@@ -5,6 +5,7 @@
55module Stackage where
66
77import Control.DeepSeq.Generics
8+import Control.Exception ( assert )
89import Control.Monad
910import Control.Monad.Par.Combinator
1011import Control.Monad.Par.IO
@@ -18,7 +19,6 @@ import Data.Yaml
1819import Distribution.Compiler
1920import Distribution.Nixpkgs.Haskell.OrphanInstances ( )
2021import Distribution.Package
21−import Distribution.PackageDescription
2222import Distribution.Version
2323import GHC.Generics ( Generic )
2424import Stackage.Types hiding ( display )
@@ -28,10 +28,10 @@ import Text.PrettyPrint.HughesPJClass
2828
2929data Spec = Spec
3030 { version :: Version
31− , flagOverrides :: Map FlagName Bool
31+ -- , flagOverrides :: Map FlagName Bool
3232 , runTests :: Bool
3333 , runHaddock :: Bool
34− , runLinuxBuilds :: Bool
34+ -- , runLinuxBuilds :: Bool
3535 }
3636 deriving (Show, Generic)
3737
@@ -94,13 +94,21 @@ fromBuildPlan snt bp = Snapshot snt
9494
9595fromPackagePlan :: PackagePlan -> Spec
9696fromPackagePlan pp = Spec (ppVersion pp)
97− (pcFlagOverrides ppc)
97+ -- (pcFlagOverrides ppc)
9898 (pcTests ppc == ExpectSuccess)
9999 (pcHaddocks ppc == ExpectSuccess)
100− (not (pcSkipBuild ppc))
100+ -- (not (pcSkipBuild ppc))
101101 where ppc = ppConstraints pp
102102
103103listFiles :: FilePath -> IO [FilePath]
104104listFiles path = do
105105 let isFile p = doesFileExist (path </> p)
106106 getDirectoryContents path >>= filterM isFile . Prelude.filter (\x -> head x /= '.')
107+
108+mergeSpecs :: Spec -> Spec -> Spec
109+mergeSpecs a b = Spec { version = assert (version a == version b) version a
110+ -- , flagOverrides = flagOverrides a
111+ , runTests = runTests a && runTests b
112+ , runHaddock = runHaddock a && runHaddock b
113+ -- , runLinuxBuilds = runLinuxBuilds a
114+ }