Safe Haskell | None |
---|---|
Language | Haskell2010 |
Resolving a build plan for a set of packages in a given Stackage snapshot.
- data BuildPlanException
- data BuildPlanCheck
- checkSnapBuildPlan :: (StackM env m, HasConfig env, HasGHCVariant env) => [GenericPackageDescription] -> Maybe (Map PackageName (Map FlagName Bool)) -> SnapName -> m BuildPlanCheck
- data DepError = DepError {
- deVersion :: !(Maybe Version)
- deNeededBy :: !(Map PackageName VersionRange)
- type DepErrors = Map PackageName DepError
- gpdPackageDeps :: GenericPackageDescription -> CompilerVersion -> Platform -> Map FlagName Bool -> Map PackageName VersionRange
- gpdPackages :: [GenericPackageDescription] -> Map PackageName Version
- gpdPackageName :: GenericPackageDescription -> PackageName
- data MiniBuildPlan = MiniBuildPlan {}
- data MiniPackageInfo = MiniPackageInfo {
- mpiVersion :: !Version
- mpiFlags :: !(Map FlagName Bool)
- mpiGhcOptions :: ![Text]
- mpiPackageDeps :: !(Set PackageName)
- mpiToolDeps :: !(Set Text)
- mpiExes :: !(Set ExeName)
- mpiHasLibrary :: !Bool
- mpiGitSHA1 :: !(Maybe GitSHA1)
- loadResolver :: (StackMiniM env m, HasConfig env, HasGHCVariant env) => Maybe (Path Abs File) -> Resolver -> m (MiniBuildPlan, LoadedResolver)
- loadMiniBuildPlan :: (StackMiniM env m, HasConfig env, HasGHCVariant env) => SnapName -> m MiniBuildPlan
- removeSrcPkgDefaultFlags :: [GenericPackageDescription] -> Map PackageName (Map FlagName Bool) -> Map PackageName (Map FlagName Bool)
- resolveBuildPlan :: (StackMiniM env m, HasBuildConfig env) => MiniBuildPlan -> (PackageName -> Bool) -> Map PackageName (Set PackageName) -> m (Map PackageName (Version, Map FlagName Bool), Map PackageName (Set PackageName))
- selectBestSnapshot :: (StackM env m, HasConfig env, HasGHCVariant env) => [GenericPackageDescription] -> NonEmpty SnapName -> m (SnapName, BuildPlanCheck)
- getToolMap :: MiniBuildPlan -> Map Text (Set PackageName)
- shadowMiniBuildPlan :: MiniBuildPlan -> Set PackageName -> (MiniBuildPlan, Map PackageName MiniPackageInfo)
- showItems :: Show a => [a] -> Text
- showPackageFlags :: PackageName -> Map FlagName Bool -> Text
- parseCustomMiniBuildPlan :: (StackMiniM env m, HasConfig env, HasGHCVariant env) => Maybe (Path Abs File) -> Text -> m (MiniBuildPlan, SnapshotHash)
- loadBuildPlan :: (StackMiniM env m, HasConfig env) => SnapName -> m BuildPlan
Documentation
data BuildPlanException Source #
data BuildPlanCheck Source #
checkSnapBuildPlan :: (StackM env m, HasConfig env, HasGHCVariant env) => [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.
DepError | |
|
gpdPackageDeps :: GenericPackageDescription -> CompilerVersion -> Platform -> Map FlagName Bool -> Map PackageName VersionRange Source #
data MiniPackageInfo Source #
Information on a single package for the MiniBuildPlan
.
MiniPackageInfo | |
|
loadResolver :: (StackMiniM env m, HasConfig env, HasGHCVariant env) => Maybe (Path Abs File) -> Resolver -> m (MiniBuildPlan, LoadedResolver) Source #
loadMiniBuildPlan :: (StackMiniM env m, HasConfig env, HasGHCVariant env) => SnapName -> m MiniBuildPlan Source #
Load up a MiniBuildPlan
, preferably from cache
removeSrcPkgDefaultFlags :: [GenericPackageDescription] -> Map PackageName (Map FlagName Bool) -> Map PackageName (Map FlagName Bool) Source #
:: (StackMiniM env m, HasBuildConfig env) | |
=> 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 :: (StackM env m, HasConfig env, HasGHCVariant env) => [GenericPackageDescription] -> NonEmpty SnapName -> m (SnapName, BuildPlanCheck) Source #
Find a snapshot and set of flags that is compatible with and matches as
best as possible with the given GenericPackageDescription
s.
getToolMap :: MiniBuildPlan -> Map Text (Set PackageName) Source #
Map from tool name to package providing it
shadowMiniBuildPlan :: MiniBuildPlan -> Set PackageName -> (MiniBuildPlan, Map PackageName MiniPackageInfo) Source #
showPackageFlags :: PackageName -> Map FlagName Bool -> Text Source #
parseCustomMiniBuildPlan Source #
:: (StackMiniM env m, HasConfig env, HasGHCVariant env) | |
=> Maybe (Path Abs File) | Root directory for when url is a filepath |
-> Text | |
-> m (MiniBuildPlan, SnapshotHash) |
loadBuildPlan :: (StackMiniM env m, HasConfig env) => SnapName -> m BuildPlan Source #
Load the BuildPlan
for the given snapshot. Will load from a local copy
if available, otherwise downloading from Github.