on master help sign in
stackage check
4396bedMichael Snoyman
ChangeLog.md+4
@@ -1,3 +1,7 @@
1+## 0.3.1
2+
3+* Added `justCheck` and `stackage check` command line.
4+
1## 0.3.0.1
5## 0.3.0.1
2
6
3Pre-fetch all packages from Hackage to catch Hackage downtime early.
7Pre-fetch all packages from Hackage to catch Hackage downtime early.
Stackage/CompleteBuild.hs+20
@@ -5,6 +5,7 @@ module Stackage.CompleteBuild
5 ( BuildType (..)
5 ( BuildType (..)
6 , BumpType (..)
6 , BumpType (..)
7 , completeBuild
7 , completeBuild
8+ , justCheck
8 ) where
9 ) where
9import Data.Default.Class (def)
10import Data.Default.Class (def)
10import Data.Semigroup (Max (..), Option (..))
11import Data.Semigroup (Max (..), Option (..))
@@ -129,6 +130,25 @@ renderLTSVer lts = fpFromText $ concat
129 , ".yaml"
130 , ".yaml"
130 ]
131 ]
131
132
133+-- | Generate and check a new build plan, but do not execute it.
134+--
135+-- Since 0.3.1
136+justCheck :: IO ()
137+justCheck = withManager tlsManagerSettings $ \man -> do
138+ putStrLn "Loading build constraints"
139+ bc <- defaultBuildConstraints man
140+
141+ putStrLn "Creating build plan"
142+ plan <- newBuildPlan bc
143+
144+ putStrLn $ "Writing build plan to check-plan.yaml"
145+ encodeFile "check-plan.yaml" plan
146+
147+ putStrLn "Checking plan"
148+ checkBuildPlan plan
149+
150+ putStrLn "Plan seems valid!"
151+
132completeBuild :: BuildType -> IO ()
152completeBuild :: BuildType -> IO ()
133completeBuild buildType = withManager tlsManagerSettings $ \man -> do
153completeBuild buildType = withManager tlsManagerSettings $ \man -> do
134 hSetBuffering stdout LineBuffering
154 hSetBuffering stdout LineBuffering
app/stackage.hs+5−4
@@ -5,11 +5,12 @@ main :: IO ()
5main = do
5main = do
6 args <- getArgs
6 args <- getArgs
7 case args of
7 case args of
8− [x] | Just y <- lookup x m -> completeBuild y
8+ [x] | Just y <- lookup x m -> y
9 _ -> error $ "Expected one argument, one of: " ++ unwords (map fst m)
9 _ -> error $ "Expected one argument, one of: " ++ unwords (map fst m)
10 where
10 where
11 m =
11 m =
12− [ ("nightly", Nightly)
12+ [ ("nightly", completeBuild Nightly)
13− , ("lts-major", LTS Major)
13+ , ("lts-major", completeBuild $ LTS Major)
14− , ("lts-minor", LTS Minor)
14+ , ("lts-minor", completeBuild $ LTS Minor)
15+ , ("check", justCheck)
15 ]
16 ]
stackage.cabal+1−1
@@ -1,5 +1,5 @@
1name: stackage
1name: stackage
2−version: 0.3.0.1
2+version: 0.3.1
3synopsis: "Stable Hackage," tools for creating a vetted set of packages from Hackage.
3synopsis: "Stable Hackage," tools for creating a vetted set of packages from Hackage.
4description: Please see <http://www.stackage.org/package/stackage> for a description and documentation.
4description: Please see <http://www.stackage.org/package/stackage> for a description and documentation.
5homepage: https://github.com/fpco/stackage
5homepage: https://github.com/fpco/stackage