b9 0.5.52 → 0.5.60
raw patch · 3 files changed
+25/−24 lines, 3 filesdep ~shakePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: shake
API changes (from Hackage documentation)
Files
- b9.cabal +2/−2
- src/lib/B9/Shake/SharedImageRules.hs +21/−18
- stack.yaml +2/−4
b9.cabal view
@@ -1,5 +1,5 @@ name: b9-version: 0.5.52+version: 0.5.60 synopsis: A tool and library for building virtual machine images. @@ -123,7 +123,7 @@ , pretty >= 1.1 , process >= 1.4 , random >= 1.1- , shake >= 0.16 && < 0.17+ , shake >= 0.17 && < 0.18 , syb >= 0.6 , template >= 0.2 , text >= 1.2
@@ -11,43 +11,46 @@ import Development.Shake.Classes import Development.Shake.Rule import qualified Data.ByteString as ByteString+import qualified Data.ByteString.Builder as Builder+import Data.ByteString.Builder ( stringUtf8 ) import qualified Data.ByteString.Lazy as LazyByteString import qualified Data.Binary as Binary+import Data.Function import B9 -- | In order to use 'needSharedImage' and 'customSharedImageAction' you need to -- call this action before using any of the afore mentioned. enableSharedImageRules :: B9ConfigOverride -> Rules ()-enableSharedImageRules b9inv = addBuiltinRule noLint go+enableSharedImageRules b9inv = addBuiltinRule noLint sharedImageIdentity go where- go- :: SharedImageName- -> Maybe ByteString.ByteString- -> Bool- -> Action (RunResult SharedImageBuildId)+ sharedImageIdentity :: BuiltinIdentity SharedImageName SharedImageBuildId+ sharedImageIdentity (SharedImageName k) (SharedImageBuildId v) =+ LazyByteString.toStrict+ (Builder.toLazyByteString (stringUtf8 k <> stringUtf8 v))++ go :: BuiltinRun SharedImageName SharedImageBuildId go nameQ mSerlializedBuildId dependenciesChanged = let mOld = decodeBuildId <$> mSerlializedBuildId in do- (rebuilt, newBuildId) <- if dependenciesChanged- then (True, ) <$> rebuild- else do- mNewBuildId <- getImgBuildId- maybe ((\i -> (True, i)) <$> rebuild)- (\i -> return (False, i))- mNewBuildId+ (rebuilt, newBuildId) <-+ if dependenciesChanged == RunDependenciesChanged+ then (True, ) <$> rebuild+ else do+ mNewBuildId <- getImgBuildId+ maybe ((True, ) <$> rebuild) (return . (False, )) mNewBuildId let newBuildIdBin = encodeBuildId newBuildId change = if rebuilt then maybe ChangedRecomputeDiff (\buildIdChanged -> if buildIdChanged- then ChangedRecomputeSame+ then ChangedRecomputeDiff else ChangedRecomputeSame ) ((/= newBuildId) <$> mOld) else maybe ChangedStore (\buildIdChanged -> if buildIdChanged- then ChangedRecomputeSame+ then ChangedRecomputeDiff else ChangedRecomputeSame ) ((/= newBuildId) <$> mOld)@@ -64,11 +67,11 @@ rebuild :: Action SharedImageBuildId rebuild = do- rules <- getUserRules- case userRuleMatch rules imgMatch of+ rules <- getUserRuleList imgMatch+ case sortBy (compare `on` fst) rules of [] -> fail $ "No rules to build B9 shared image " ++ show nameQ ++ " found"- [act] -> act b9inv+ [(_, act)] -> act b9inv _rs -> fail $ "Multiple rules for the B9 shared image "
stack.yaml view
@@ -1,11 +1,9 @@ flags: {} packages: - '.'-extra-deps: +extra-deps: - ConfigFile-1.1.4 - template-0.2.0.10 -resolver: lts-12.21-allow-newer: true-# pvp-bounds: lower+resolver: lts-13.3 require-stack-version: ">=1.6.5"