From d95f3d0661845ded6478f1dceeed7137f223e7d3 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Thu, 13 Mar 2014 08:13:05 +0200 Subject: [PATCH] Initial ignoreUpgradeableCore --- Stackage/Config.hs | 8 ++++++++ Stackage/InstallInfo.hs | 6 +++++- Stackage/Select.hs | 1 + Stackage/Types.hs | 2 ++ app/stackage.hs | 4 ++++ 5 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Stackage/Config.hs b/Stackage/Config.hs index 0b60c2c5..6e6b79a3 100644 --- a/Stackage/Config.hs +++ b/Stackage/Config.hs @@ -125,6 +125,9 @@ defaultExpectedFailures ghcVer = execWriter $ do -- Test suite is currently failing regularly, needs to be worked out still. add "lens" + -- Requires too old a version of test-framework + add "time" + -- No code included any more, therefore Haddock fails mapM_ add $ words =<< [ "comonad-transformers comonads-fd groupoids" @@ -342,6 +345,11 @@ defaultStablePackages ghcVer = unPackageMap $ execWriter $ do -- Version 0.15.3 requires a newer template-haskell addRange "FP Complete " "language-ecmascript" "< 0.15.3" + + -- Temporary upper bounds while getting things sorted with upstream... + addRange "Michael Snoyman" "dlist" "< 0.6" + addRange "Michael Snoyman" "unix" "< 2.7" + addRange "Michael Snoyman" "array" "< 0.5" where add maintainer package = addRange maintainer package "-any" addRange maintainer package range = diff --git a/Stackage/InstallInfo.hs b/Stackage/InstallInfo.hs index 669ef110..003ca5d9 100644 --- a/Stackage/InstallInfo.hs +++ b/Stackage/InstallInfo.hs @@ -47,7 +47,11 @@ getInstallInfo settings = do Map.union (stablePackages settings) $ identsToRanges (hplibs hp) _ -> stablePackages settings allPackages = dropExcluded settings allPackages' - let totalCore = extraCore settings `Set.union` Set.map (\(PackageIdentifier p _) -> p) core + let totalCore + | ignoreUpgradeableCore settings = + Set.fromList $ map PackageName $ words "base containers template-haskell" + | otherwise = + extraCore settings `Set.union` Set.map (\(PackageIdentifier p _) -> p) core putStrLn "Loading package database" pdb <- loadPackageDB settings coreMap totalCore allPackages diff --git a/Stackage/Select.hs b/Stackage/Select.hs index c7f485d9..ad091704 100644 --- a/Stackage/Select.hs +++ b/Stackage/Select.hs @@ -25,6 +25,7 @@ defaultSelectSettings version = SelectSettings , stablePackages = defaultStablePackages version , haskellPlatformDir = "hp" , requireHaskellPlatform = True + , ignoreUpgradeableCore = False , excludedPackages = empty , flags = \coreMap -> Set.fromList (words "blaze_html_0_5 small_base") `Set.union` diff --git a/Stackage/Types.hs b/Stackage/Types.hs index 2902d420..73527cda 100644 --- a/Stackage/Types.hs +++ b/Stackage/Types.hs @@ -98,6 +98,8 @@ data SelectSettings = SelectSettings , disabledFlags :: Set String -- ^ Compile flags which should always be disabled. , extraCore :: Set PackageName + , ignoreUpgradeableCore :: Bool + -- ^ Do not pin down the versions of upgradeable core packages. , requireHaskellPlatform :: Bool , allowedPackage :: GenericPackageDescription -> Either String () -- ^ Checks if a package is allowed into the distribution. By default, we diff --git a/app/stackage.hs b/app/stackage.hs index c6075fa1..7167a5b4 100644 --- a/app/stackage.hs +++ b/app/stackage.hs @@ -16,6 +16,7 @@ import System.IO (hFlush, stdout) data SelectArgs = SelectArgs { excluded :: [String] , noPlatform :: Bool + , ignoreUpgradeable :: Bool , onlyPermissive :: Bool , allowed :: [String] , buildPlanDest :: FilePath @@ -27,6 +28,7 @@ parseSelectArgs = loop SelectArgs { excluded = [] , noPlatform = False + , ignoreUpgradeable = False , onlyPermissive = False , allowed = [] , buildPlanDest = defaultBuildPlan @@ -36,6 +38,7 @@ parseSelectArgs = loop x [] = return x loop x ("--exclude":y:rest) = loop x { excluded = y : excluded x } rest loop x ("--no-platform":rest) = loop x { noPlatform = True } rest + loop x ("--ignore-upgradeable":rest) = loop x { ignoreUpgradeable = True } rest loop x ("--only-permissive":rest) = loop x { onlyPermissive = True } rest loop x ("--allow":y:rest) = loop x { allowed = y : allowed x } rest loop x ("--build-plan":y:rest) = loop x { buildPlanDest = y } rest @@ -95,6 +98,7 @@ main = do (defaultSelectSettings ghcVersion) { excludedPackages = fromList $ map PackageName excluded , requireHaskellPlatform = not noPlatform + , ignoreUpgradeableCore = ignoreUpgradeable , allowedPackage = if onlyPermissive then allowPermissive allowed