diff --git a/ChangeLog.md b/ChangeLog.md index 3dd9afc9..416ca03d 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,7 +1,8 @@ -## 0.4.1 +## 0.5.0 * Print "Still Alive" while checking, to avoid Travis timeouts * Include `stackage upload-nightly` command +* Optional plan checking ## 0.4.0 diff --git a/Stackage/CompleteBuild.hs b/Stackage/CompleteBuild.hs index acdf682b..7a96ce74 100644 --- a/Stackage/CompleteBuild.hs +++ b/Stackage/CompleteBuild.hs @@ -35,6 +35,7 @@ data BuildFlags = BuildFlags , bfDoUpload :: !Bool , bfEnableLibProfile :: !Bool , bfVerbose :: !Bool + , bfSkipCheck :: !Bool } deriving (Show) data BuildType = Nightly | LTS BumpType @@ -200,6 +201,7 @@ getPerformBuild buildFlags Settings {..} = PerformBuild , pbEnableTests = bfEnableTests buildFlags , pbEnableLibProfiling = bfEnableLibProfile buildFlags , pbVerbose = bfVerbose buildFlags + , pbAllowNewer = bfSkipCheck buildFlags } -- | Make a complete plan, build, test and upload bundle, docs and @@ -214,8 +216,11 @@ completeBuild buildType buildFlags = withManager tlsManagerSettings $ \man -> do putStrLn $ "Writing build plan to: " ++ fpToText planFile encodeFile (fpToString planFile) plan - putStrLn "Checking build plan" - checkBuildPlan plan + if bfSkipCheck buildFlags + then putStrLn "Skipping build plan check" + else do + putStrLn "Checking build plan" + checkBuildPlan plan putStrLn "Performing build" performBuild (getPerformBuild buildFlags settings) >>= mapM_ putStrLn diff --git a/Stackage/PerformBuild.hs b/Stackage/PerformBuild.hs index 7cdb3efd..55601341 100644 --- a/Stackage/PerformBuild.hs +++ b/Stackage/PerformBuild.hs @@ -64,6 +64,8 @@ data PerformBuild = PerformBuild , pbEnableTests :: Bool , pbEnableLibProfiling :: Bool , pbVerbose :: Bool + , pbAllowNewer :: Bool + -- ^ Pass --allow-newer to cabal configure } data PackageInfo = PackageInfo @@ -293,6 +295,7 @@ singleBuild pb@PerformBuild {..} SingleBuild {..} = withBinaryFile (fpToString fp) WriteMode inner' configArgs = ($ []) $ execWriter $ do + when pbAllowNewer $ tell' "--allow-newer" tell' "--package-db=clear" tell' "--package-db=global" forM_ (pbDatabase pb) $ \db -> tell' $ "--package-db=" ++ fpToText db diff --git a/app/stackage.hs b/app/stackage.hs index f9d31f7c..1f61496f 100644 --- a/app/stackage.hs +++ b/app/stackage.hs @@ -78,7 +78,10 @@ main = help "Enable profiling when building") <*> switch (long "verbose" <> short 'v' <> - help "Output verbose detail about the build steps") + help "Output verbose detail about the build steps") <*> + switch + (long "skip-check" <> + help "Skip the check phase, and pass --allow-newer to cabal configure") nightlyUploadFlags = fromString <$> strArgument (metavar "DATE" <> diff --git a/stackage.cabal b/stackage.cabal index 8401a6ad..03a55f6e 100644 --- a/stackage.cabal +++ b/stackage.cabal @@ -1,5 +1,5 @@ name: stackage -version: 0.4.1 +version: 0.5.0 synopsis: "Stable Hackage," tools for creating a vetted set of packages from Hackage. description: Please see for a description and documentation. homepage: https://github.com/fpco/stackage