| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Stack.BuildPlan
Description
Resolving a build plan for a set of packages in a given Stackage snapshot.
- data BuildPlanException
- data MiniBuildPlan = MiniBuildPlan {}
- data MiniPackageInfo = MiniPackageInfo {
- mpiVersion :: !Version
- mpiFlags :: !(Map FlagName Bool)
- mpiPackageDeps :: !(Set PackageName)
- mpiToolDeps :: !(Set ByteString)
- mpiExes :: !(Set ExeName)
- mpiHasLibrary :: !Bool
- data Snapshots = Snapshots {
- snapshotsNightly :: !Day
- snapshotsLts :: !(IntMap Int)
- getSnapshots :: (MonadThrow m, MonadIO m, MonadReader env m, HasHttpManager env, HasStackRoot env, HasConfig env) => m Snapshots
- loadMiniBuildPlan :: (MonadIO m, MonadThrow m, MonadLogger m, MonadReader env m, HasHttpManager env, HasConfig env, HasGHCVariant env, MonadBaseControl IO m, MonadCatch m) => SnapName -> m MiniBuildPlan
- resolveBuildPlan :: (MonadThrow m, MonadIO m, MonadReader env m, HasBuildConfig env, MonadLogger m, HasHttpManager env, MonadBaseControl IO m, MonadCatch m) => EnvOverride -> MiniBuildPlan -> (PackageName -> Bool) -> Map PackageName (Set PackageName) -> m (Map PackageName (Version, Map FlagName Bool), Map PackageName (Set PackageName))
- findBuildPlan :: (MonadIO m, MonadCatch m, MonadLogger m, MonadReader env m, HasHttpManager env, HasConfig env, HasGHCVariant env, MonadBaseControl IO m) => [GenericPackageDescription] -> [SnapName] -> m (Maybe (SnapName, Map PackageName (Map FlagName Bool)))
- type ToolMap = Map ByteString (Set PackageName)
- getToolMap :: MiniBuildPlan -> Map ByteString (Set PackageName)
- shadowMiniBuildPlan :: MiniBuildPlan -> Set PackageName -> (MiniBuildPlan, Map PackageName MiniPackageInfo)
- 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
Constructors
| UnknownPackages (Path Abs File) (Map PackageName (Maybe Version, Set PackageName)) (Map PackageName (Set PackageIdentifier)) | |
| SnapshotNotFound SnapName |
data MiniBuildPlan Source
A simplified version of the BuildPlan + cabal file.
Constructors
| MiniBuildPlan | |
Fields | |
Instances
| Eq MiniBuildPlan Source | |
| Show MiniBuildPlan Source | |
| Generic MiniBuildPlan Source | |
| Binary MiniBuildPlan Source | |
| NFData MiniBuildPlan Source | |
| HasStructuralInfo MiniBuildPlan Source | |
| HasSemanticVersion MiniBuildPlan Source | |
| type Rep MiniBuildPlan Source | |
| type SemanticVersion MiniBuildPlan = 0 | |
data MiniPackageInfo Source
Information on a single package for the MiniBuildPlan.
Constructors
| MiniPackageInfo | |
Fields
| |
Instances
Most recent Nightly and newest LTS version per major release.
Constructors
| Snapshots | |
Fields
| |
getSnapshots :: (MonadThrow m, MonadIO m, MonadReader env m, HasHttpManager env, HasStackRoot env, HasConfig env) => m Snapshots Source
Download the Snapshots value from stackage.org.
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
Arguments
| :: (MonadThrow m, MonadIO m, MonadReader env m, HasBuildConfig env, MonadLogger m, HasHttpManager env, MonadBaseControl IO m, MonadCatch m) | |
| => EnvOverride | |
| -> 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.
findBuildPlan :: (MonadIO m, MonadCatch m, MonadLogger m, MonadReader env m, HasHttpManager env, HasConfig env, HasGHCVariant env, MonadBaseControl IO m) => [GenericPackageDescription] -> [SnapName] -> m (Maybe (SnapName, Map PackageName (Map FlagName Bool))) Source
Find a snapshot and set of flags that is compatible with the given
GenericPackageDescription. 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 ByteString (Set PackageName) Source
Map from tool name to package providing it
shadowMiniBuildPlan :: MiniBuildPlan -> Set PackageName -> (MiniBuildPlan, Map PackageName MiniPackageInfo) Source
parseCustomMiniBuildPlan Source
Arguments
| :: (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 |