Safe Haskell | None |
---|---|
Language | Haskell2010 |
Resolving a build plan for a set of packages in a given Stackage snapshot.
- gpdPackages :: [GenericPackageDescription] -> Map PackageName Version
- data BuildPlanException
- data BuildPlanCheck
- = BuildPlanCheckOk (Map PackageName (Map FlagName Bool))
- | BuildPlanCheckPartial (Map PackageName (Map FlagName Bool)) DepErrors
- | BuildPlanCheckFail (Map PackageName (Map FlagName Bool)) DepErrors CompilerVersion
- checkSnapBuildPlan :: (MonadIO m, MonadCatch m, MonadLogger m, MonadReader env m, HasHttpManager env, HasConfig env, HasGHCVariant env, MonadBaseControl IO m) => [GenericPackageDescription] -> Maybe (Map PackageName (Map FlagName Bool)) -> SnapName -> m BuildPlanCheck
- data MiniBuildPlan = MiniBuildPlan {}
- data MiniPackageInfo = MiniPackageInfo {
- mpiVersion :: !Version
- mpiFlags :: !(Map FlagName Bool)
- mpiPackageDeps :: !(Set PackageName)
- mpiToolDeps :: !(Set Text)
- mpiExes :: !(Set ExeName)
- mpiHasLibrary :: !Bool
- loadMiniBuildPlan :: (MonadIO m, MonadThrow m, MonadLogger m, MonadReader env m, HasHttpManager env, HasConfig env, HasGHCVariant env, MonadBaseControl IO m, MonadCatch m) => SnapName -> m MiniBuildPlan
- removeSrcPkgDefaultFlags :: [GenericPackageDescription] -> Map PackageName (Map FlagName Bool) -> Map PackageName (Map FlagName Bool)
- resolveBuildPlan :: (MonadThrow m, MonadIO m, MonadReader env m, HasBuildConfig env, MonadLogger m, HasHttpManager env, MonadBaseControl IO m, MonadCatch m) => MiniBuildPlan -> (PackageName -> Bool) -> Map PackageName (Set PackageName) -> m (Map PackageName (Version, Map FlagName Bool), Map PackageName (Set PackageName))
- selectBestSnapshot :: (MonadIO m, MonadCatch m, MonadLogger m, MonadReader env m, HasHttpManager env, HasConfig env, HasGHCVariant env, MonadBaseControl IO m) => [GenericPackageDescription] -> [SnapName] -> m (Maybe SnapName)
- type ToolMap = Map ByteString (Set PackageName)
- getToolMap :: MiniBuildPlan -> Map Text (Set PackageName)
- shadowMiniBuildPlan :: MiniBuildPlan -> Set PackageName -> (MiniBuildPlan, Map PackageName MiniPackageInfo)
- showCompilerErrors :: Map PackageName (Map FlagName Bool) -> DepErrors -> CompilerVersion -> Text
- showDepErrors :: Map PackageName (Map FlagName Bool) -> DepErrors -> Text
- parseCustomMiniBuildPlan :: (MonadIO m, MonadCatch m, MonadLogger m, MonadReader env m, HasHttpManager env, HasConfig env, MonadBaseControl IO m) => Path Abs File -> Text -> m MiniBuildPlan
Documentation
data BuildPlanException Source
data BuildPlanCheck Source
BuildPlanCheckOk (Map PackageName (Map FlagName Bool)) | |
BuildPlanCheckPartial (Map PackageName (Map FlagName Bool)) DepErrors | |
BuildPlanCheckFail (Map PackageName (Map FlagName Bool)) DepErrors CompilerVersion |
checkSnapBuildPlan :: (MonadIO m, MonadCatch m, MonadLogger m, MonadReader env m, HasHttpManager env, HasConfig env, HasGHCVariant env, MonadBaseControl IO m) => [GenericPackageDescription] -> Maybe (Map PackageName (Map FlagName Bool)) -> SnapName -> m BuildPlanCheck Source
Check a set of GenericPackageDescription
s and a set of flags against a
given snapshot. Returns how well the snapshot satisfies the dependencies of
the packages.
data MiniPackageInfo Source
Information on a single package for the MiniBuildPlan
.
MiniPackageInfo | |
|
loadMiniBuildPlan :: (MonadIO m, MonadThrow m, MonadLogger m, MonadReader env m, HasHttpManager env, HasConfig env, HasGHCVariant env, MonadBaseControl IO m, MonadCatch m) => SnapName -> m MiniBuildPlan Source
Load up a MiniBuildPlan
, preferably from cache
removeSrcPkgDefaultFlags :: [GenericPackageDescription] -> Map PackageName (Map FlagName Bool) -> Map PackageName (Map FlagName Bool) Source
:: (MonadThrow m, MonadIO m, MonadReader env m, HasBuildConfig env, MonadLogger m, HasHttpManager env, MonadBaseControl IO m, MonadCatch m) | |
=> MiniBuildPlan | |
-> (PackageName -> Bool) | is it shadowed by a local package? |
-> Map PackageName (Set PackageName) | required packages, and users of it |
-> m (Map PackageName (Version, Map FlagName Bool), Map PackageName (Set PackageName)) |
Determine the necessary packages to install to have the given set of packages available.
This function will not provide test suite and benchmark dependencies.
This may fail if a target package is not present in the BuildPlan
.
selectBestSnapshot :: (MonadIO m, MonadCatch m, MonadLogger m, MonadReader env m, HasHttpManager env, HasConfig env, HasGHCVariant env, MonadBaseControl IO m) => [GenericPackageDescription] -> [SnapName] -> m (Maybe SnapName) Source
Find a snapshot and set of flags that is compatible with and matches as
best as possible with the given GenericPackageDescription
s. Returns
Nothing
if no such snapshot is found.
type ToolMap = Map ByteString (Set PackageName) Source
Look up with packages provide which tools.
getToolMap :: MiniBuildPlan -> Map Text (Set PackageName) Source
Map from tool name to package providing it
shadowMiniBuildPlan :: MiniBuildPlan -> Set PackageName -> (MiniBuildPlan, Map PackageName MiniPackageInfo) Source
showCompilerErrors :: Map PackageName (Map FlagName Bool) -> DepErrors -> CompilerVersion -> Text Source
showDepErrors :: Map PackageName (Map FlagName Bool) -> DepErrors -> Text Source
parseCustomMiniBuildPlan Source
:: (MonadIO m, MonadCatch m, MonadLogger m, MonadReader env m, HasHttpManager env, HasConfig env, MonadBaseControl IO m) | |
=> Path Abs File | stack.yaml file location |
-> Text | |
-> m MiniBuildPlan |