@@ -12,7 +12,7 @@ import Stackage2.Prelude
12import Stackage2.BuildPlan
12import Stackage2.BuildPlan
13import Stackage2.BuildConstraints
13import Stackage2.BuildConstraints
14import Stackage2.PackageDescription
14import Stackage2.PackageDescription
15−import Distribution.Version (orLaterVersion, earlierVersion)
15+import Distribution.Version (orLaterVersion, earlierVersion, anyVersion)
16import qualified Data.Map as Map
16import qualified Data.Map as Map
18updateBuildPlan :: BuildPlan a -> IO (BuildPlan FlatComponent)
18updateBuildPlan :: BuildPlan a -> IO (BuildPlan FlatComponent)
@@ -25,19 +25,23 @@ updateBuildConstraints BuildPlan {..} =
25 bcSystemInfo = bpSystemInfo
25 bcSystemInfo = bpSystemInfo
26 bcPackages = Map.keysSet bpPackages
26 bcPackages = Map.keysSet bpPackages
28− bcPackageConstraints name =
28+ bcPackageConstraints name = PackageConstraints
29− PackageConstraints {..}
29+ { pcVersionRange = addBumpRange (maybe anyVersion pcVersionRange moldPC)
30+ , pcMaintainer = moldPC >>= pcMaintainer
31+ , pcTests = maybe ExpectSuccess pcTests moldPC
32+ , pcHaddocks = maybe ExpectSuccess pcHaddocks moldPC
33+ , pcBuildBenchmarks = maybe True pcBuildBenchmarks moldPC
34+ , pcFlagOverrides = maybe mempty pcFlagOverrides moldPC
31− {-
37+ moldBP = lookup name bpPackages
32− pcPackages = flip map bpExtra $ \pb ->
38+ moldPC = pbPackageConstraints <$> moldBP
40+ addBumpRange oldRange =
33− ( intersectVersionRanges (bumpRange (pbVersion pb)) (pbVersionRange pb)
43+ Just bp -> intersectVersionRanges oldRange
34− , pbMaintainer pb
44+ $ bumpRange $ pbVersion bp
36− pcTests = maybe ExpectSuccess pbTestState . flip lookup bpExtra
37− pcHaddocks = maybe ExpectSuccess pbHaddockState . flip lookup bpExtra
38− pcBuildBenchmark = maybe True pbTryBuildBenchmark . flip lookup bpExtra
39− pcFlagOverrides = maybe mempty pbFlags . flip lookup bpExtra
42 bumpRange version = intersectVersionRanges
46 bumpRange version = intersectVersionRanges
43 (orLaterVersion version)
47 (orLaterVersion version)