-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Tools for curating Stackage bundles -- -- Please see http://www.stackage.org/package/stackage-curator for -- a description and documentation. @package stackage-curator @version 0.14.4.1 -- | Shared types for various stackage packages. module Stackage.Types data SnapshotType STNightly :: SnapshotType STNightly2 :: !Day -> SnapshotType -- | major, minor STLTS :: !Int -> !Int -> SnapshotType -- | Package name is key type DocMap = Map Text PackageDocs data PackageDocs PackageDocs :: Text -> Map Text [Text] -> PackageDocs [pdVersion] :: PackageDocs -> Text -- | module name, path [pdModules] :: PackageDocs -> Map Text [Text] data BuildPlan BuildPlan :: SystemInfo -> Vector (PackageName, Version) -> Map PackageName PackagePlan -> Map Text (Set Text) -> Map Text (Set Text) -> Maybe Text -> BuildPlan [bpSystemInfo] :: BuildPlan -> SystemInfo [bpTools] :: BuildPlan -> Vector (PackageName, Version) [bpPackages] :: BuildPlan -> Map PackageName PackagePlan [bpGithubUsers] :: BuildPlan -> Map Text (Set Text) [bpBuildToolOverrides] :: BuildPlan -> Map Text (Set Text) [bpAllCabalHashesCommit] :: BuildPlan -> Maybe Text data PackagePlan PackagePlan :: Version -> Maybe CabalFileInfo -> Set Text -> Set PackageName -> PackageConstraints -> SimpleDesc -> Maybe Text -> PackagePlan [ppVersion] :: PackagePlan -> Version [ppCabalFileInfo] :: PackagePlan -> Maybe CabalFileInfo [ppGithubPings] :: PackagePlan -> Set Text [ppUsers] :: PackagePlan -> Set PackageName [ppConstraints] :: PackagePlan -> PackageConstraints [ppDesc] :: PackagePlan -> SimpleDesc [ppSourceUrl] :: PackagePlan -> Maybe Text data PackageConstraints PackageConstraints :: VersionRange -> Maybe Maintainer -> TestState -> TestState -> TestState -> Map FlagName Bool -> Vector Text -> Bool -> Bool -> PackageConstraints [pcVersionRange] :: PackageConstraints -> VersionRange [pcMaintainer] :: PackageConstraints -> Maybe Maintainer [pcTests] :: PackageConstraints -> TestState [pcBenches] :: PackageConstraints -> TestState [pcHaddocks] :: PackageConstraints -> TestState [pcFlagOverrides] :: PackageConstraints -> Map FlagName Bool [pcConfigureArgs] :: PackageConstraints -> Vector Text [pcEnableLibProfile] :: PackageConstraints -> Bool -- | Don't even bother building this library, useful when dealing with -- OS-specific packages. See: -- https://github.com/fpco/stackage-curator/issues/3 [pcSkipBuild] :: PackageConstraints -> Bool data ParseFailedException ParseFailedException :: TypeRep -> Text -> ParseFailedException data TestState ExpectSuccess :: TestState ExpectFailure :: TestState -- | when the test suite will pull in things we don't want Don'tBuild :: TestState data SystemInfo SystemInfo :: Version -> OS -> Arch -> Map PackageName Version -> Set ExeName -> SystemInfo [siGhcVersion] :: SystemInfo -> Version [siOS] :: SystemInfo -> OS [siArch] :: SystemInfo -> Arch [siCorePackages] :: SystemInfo -> Map PackageName Version [siCoreExecutables] :: SystemInfo -> Set ExeName newtype Maintainer Maintainer :: Text -> Maintainer [unMaintainer] :: Maintainer -> Text -- | Name of an executable. newtype ExeName ExeName :: Text -> ExeName [unExeName] :: ExeName -> Text -- | A simplified package description that tracks: -- -- -- -- It has fully resolved all conditionals data SimpleDesc SimpleDesc :: Map PackageName DepInfo -> Map ExeName DepInfo -> Set ExeName -> Set Text -> Option (Max Version) -> SimpleDesc [sdPackages] :: SimpleDesc -> Map PackageName DepInfo [sdTools] :: SimpleDesc -> Map ExeName DepInfo [sdProvidedExes] :: SimpleDesc -> Set ExeName -- | modules exported by the library [sdModules] :: SimpleDesc -> Set Text -- | minimum acceptable Cabal version [sdCabalVersion] :: SimpleDesc -> Option (Max Version) data DepInfo DepInfo :: Set Component -> VersionRange -> DepInfo [diComponents] :: DepInfo -> Set Component [diRange] :: DepInfo -> VersionRange data Component CompLibrary :: Component CompExecutable :: Component CompTestSuite :: Component CompBenchmark :: Component -- | Information on the contents of a cabal file data CabalFileInfo CabalFileInfo :: !Int -> !(Map Text Text) -> CabalFileInfo -- | File size in bytes [cfiSize] :: CabalFileInfo -> !Int -- | Various hashes of the file contents [cfiHashes] :: CabalFileInfo -> !(Map Text Text) display :: Text a => a -> Text simpleParse :: (MonadThrow m, Text a, Typeable a) => Text -> m a unPackageName :: PackageName -> Text mkPackageName :: Text -> PackageName unFlagName :: FlagName -> Text mkFlagName :: Text -> FlagName intersectVersionRanges :: VersionRange -> VersionRange -> VersionRange compToText :: Component -> Text instance GHC.Classes.Eq Stackage.Types.BuildPlan instance GHC.Show.Show Stackage.Types.BuildPlan instance GHC.Classes.Eq Stackage.Types.PackagePlan instance GHC.Show.Show Stackage.Types.PackagePlan instance GHC.Classes.Eq Stackage.Types.SimpleDesc instance GHC.Show.Show Stackage.Types.SimpleDesc instance GHC.Classes.Eq Stackage.Types.DepInfo instance GHC.Show.Show Stackage.Types.DepInfo instance GHC.Enum.Bounded Stackage.Types.Component instance GHC.Enum.Enum Stackage.Types.Component instance GHC.Classes.Ord Stackage.Types.Component instance GHC.Classes.Eq Stackage.Types.Component instance GHC.Read.Read Stackage.Types.Component instance GHC.Show.Show Stackage.Types.Component instance GHC.Classes.Ord Stackage.Types.SystemInfo instance GHC.Classes.Eq Stackage.Types.SystemInfo instance GHC.Show.Show Stackage.Types.SystemInfo instance Data.String.IsString Stackage.Types.ExeName instance Data.Aeson.Types.FromJSON.FromJSON Stackage.Types.ExeName instance Data.Aeson.Types.ToJSON.ToJSON Stackage.Types.ExeName instance Data.Hashable.Class.Hashable Stackage.Types.ExeName instance GHC.Classes.Ord Stackage.Types.ExeName instance GHC.Classes.Eq Stackage.Types.ExeName instance GHC.Show.Show Stackage.Types.ExeName instance GHC.Classes.Eq Stackage.Types.PackageConstraints instance GHC.Show.Show Stackage.Types.PackageConstraints instance Data.String.IsString Stackage.Types.Maintainer instance Data.Aeson.Types.FromJSON.FromJSON Stackage.Types.Maintainer instance Data.Aeson.Types.ToJSON.ToJSON Stackage.Types.Maintainer instance Data.Hashable.Class.Hashable Stackage.Types.Maintainer instance GHC.Classes.Ord Stackage.Types.Maintainer instance GHC.Classes.Eq Stackage.Types.Maintainer instance GHC.Show.Show Stackage.Types.Maintainer instance GHC.Enum.Enum Stackage.Types.TestState instance GHC.Enum.Bounded Stackage.Types.TestState instance GHC.Classes.Ord Stackage.Types.TestState instance GHC.Classes.Eq Stackage.Types.TestState instance GHC.Show.Show Stackage.Types.TestState instance GHC.Show.Show Stackage.Types.ParseFailedException instance GHC.Generics.Generic Stackage.Types.CabalFileInfo instance GHC.Classes.Eq Stackage.Types.CabalFileInfo instance GHC.Show.Show Stackage.Types.CabalFileInfo instance GHC.Classes.Ord Stackage.Types.SnapshotType instance GHC.Classes.Eq Stackage.Types.SnapshotType instance GHC.Read.Read Stackage.Types.SnapshotType instance GHC.Show.Show Stackage.Types.SnapshotType instance Data.Aeson.Types.ToJSON.ToJSON Stackage.Types.SnapshotType instance Data.Aeson.Types.FromJSON.FromJSON Stackage.Types.SnapshotType instance Data.Aeson.Types.ToJSON.ToJSON Stackage.Types.PackageDocs instance Data.Aeson.Types.FromJSON.FromJSON Stackage.Types.PackageDocs instance Data.Aeson.Types.ToJSON.ToJSON Stackage.Types.BuildPlan instance Data.Aeson.Types.FromJSON.FromJSON Stackage.Types.BuildPlan instance Data.Aeson.Types.ToJSON.ToJSON Stackage.Types.PackagePlan instance Data.Aeson.Types.FromJSON.FromJSON Stackage.Types.PackagePlan instance Data.Store.Impl.Store Stackage.Types.CabalFileInfo instance Data.Aeson.Types.ToJSON.ToJSON Stackage.Types.CabalFileInfo instance Data.Aeson.Types.FromJSON.FromJSON Stackage.Types.CabalFileInfo instance GHC.Exception.Exception Stackage.Types.ParseFailedException instance Data.Aeson.Types.ToJSON.ToJSON Stackage.Types.PackageConstraints instance Data.Aeson.Types.FromJSON.FromJSON Stackage.Types.PackageConstraints instance Data.Aeson.Types.ToJSON.ToJSON Stackage.Types.TestState instance Data.Aeson.Types.FromJSON.FromJSON Stackage.Types.TestState instance Data.Aeson.Types.ToJSON.ToJSON Stackage.Types.SystemInfo instance Data.Aeson.Types.FromJSON.FromJSON Stackage.Types.SystemInfo instance GHC.Base.Monoid Stackage.Types.SimpleDesc instance Data.Aeson.Types.ToJSON.ToJSON Stackage.Types.SimpleDesc instance Data.Aeson.Types.FromJSON.FromJSON Stackage.Types.SimpleDesc instance Data.Semigroup.Semigroup Stackage.Types.DepInfo instance Data.Aeson.Types.ToJSON.ToJSON Stackage.Types.DepInfo instance Data.Aeson.Types.FromJSON.FromJSON Stackage.Types.DepInfo instance Data.Aeson.Types.ToJSON.ToJSON Stackage.Types.Component instance Data.Aeson.Types.FromJSON.FromJSON Stackage.Types.Component module Stackage.ShowBuildPlan -- | Settings affecting various functions in this module. -- -- Since 0.1.0.0 data Settings data SnapshotSpec -- | Parse a snapshot specification from the given Text. -- -- Since 0.1.0.0 parseSnapshotSpec :: MonadThrow m => Text -> m SnapshotSpec -- | Default settings, to be tweaked via setter functions. -- -- Since 0.1.0.0 defaultSettings :: Settings -- | Set the mirror prefix for tarball downloads (shell script only). -- -- Default: -- "https://s3.amazonaws.com/hackage.fpcomplete.com/package/" -- -- Since 0.1.0.0 setMirror :: Text -> Settings -> Settings -- | Set the snapshot from which to pull the build plan. -- -- Default: latest LTS release -- -- Since 0.1.0.0 setSnapshot :: SnapshotSpec -> Settings -> Settings -- | Should we trace dependencies of test suites and benchmarks? -- -- Default: False -- -- Since 0.1.1.0 setFullDeps :: Bool -> Settings -> Settings -- | How to generate commands for shell output. -- -- Since 0.1.0.0 data ShellCommands -- | Set the shell commands when using shell formatting. -- -- Default: abstractCommands -- -- Since 0.1.0.0 setShellCommands :: ShellCommands -> Settings -> Settings -- | Use abstract commands like build_plan_fetch. -- -- See: -- https://github.com/fpco/stackage-server/issues/95#issuecomment-97146188 -- -- Since 0.1.0.0 abstractCommands :: ShellCommands -- | Use simple commands requiring no wrapper shell script -- -- Since 0.1.0.0 simpleCommands :: ShellCommands getBuildPlan :: Settings -> [PackageName] -> IO [ToInstall] toSimpleText :: [ToInstall] -> Text toShellScript :: Settings -> [ToInstall] -> Text mkPackageName :: Text -> PackageName instance GHC.Show.Show Stackage.ShowBuildPlan.ToInstall instance GHC.Show.Show Stackage.ShowBuildPlan.BuildPlanException instance GHC.Show.Show Stackage.ShowBuildPlan.SnapshotSpec instance GHC.Show.Show Stackage.ShowBuildPlan.IncompleteSpec instance GHC.Show.Show Stackage.ShowBuildPlan.CompleteSpec instance GHC.Exception.Exception Stackage.ShowBuildPlan.BuildPlanException instance Data.Aeson.Types.ToJSON.ToJSON Stackage.ShowBuildPlan.ToInstall module Stackage.Prelude -- | There seems to be a bug in Cabal where serializing and deserializing -- version ranges winds up with different representations. So we have a -- super-simplifier to deal with that. simplifyVersionRange :: VersionRange -> VersionRange -- | Topologically sort so that items with dependencies occur after those -- dependencies. topologicalSort :: (Ord key, Show key, MonadThrow m, Typeable key) => (value -> finalValue) -> (value -> Set key) -> Map key value -> m (Vector (key, finalValue)) data TopologicalSortException key NoEmptyDeps :: (Map key (Set key)) -> TopologicalSortException key copyDir :: FilePath -> FilePath -> IO () data Target TargetNightly :: !Day -> Target TargetLts :: !Int -> !Int -> Target targetSlug :: Target -> Text instance GHC.Show.Show Stackage.Prelude.Target instance GHC.Show.Show key => GHC.Show.Show (Stackage.Prelude.TopologicalSortException key) instance (GHC.Show.Show key, Data.Typeable.Internal.Typeable key) => GHC.Exception.Exception (Stackage.Prelude.TopologicalSortException key) module Stackage.Stats printStats :: FilePath -> IO () -- | General commands related to ghc-pkg. module Stackage.GhcPkg setupPackageDatabase :: Maybe FilePath -> FilePath -> (ByteString -> IO ()) -> Map PackageName Version -> (PackageIdentifier -> IO ()) -> IO (Map PackageName Version) module Stackage.DiffPlans diffPlans :: FilePath -> FilePath -> Bool -> Bool -> Bool -> Bool -> IO () instance GHC.Show.Show a => GHC.Show.Show (Stackage.DiffPlans.AndOr a) instance GHC.Classes.Ord Stackage.DiffPlans.Change instance GHC.Classes.Eq Stackage.DiffPlans.Change instance GHC.Show.Show Stackage.DiffPlans.Change instance Data.Semigroup.Semigroup (Stackage.DiffPlans.AndOr a) -- | Upload Haddock documentation to S3. module Stackage.Curator.UploadDocs -- | Uses newEnv for S3 credentials. uploadDocs :: FilePath -> FilePath -> Text -> Text -> IO () upload :: (MonadResource m) => Bool -> Env -> Text -> Text -> Consumer ByteString m () module Stackage.CorePackages -- | Get a Map of all of the core packages. Core packages are -- defined as packages which ship with GHC itself. -- -- Precondition: GHC global package database has only core packages, and -- GHC ships with just a single version of each packages. getCorePackages :: IO (Map PackageName Version) -- | A list of executables that are shipped with GHC. getCoreExecutables :: IO (Set ExeName) getGhcVersion :: IO Version -- | The constraints on package selection for a new build plan. module Stackage.BuildConstraints data BuildConstraints BuildConstraints :: Set PackageName -> (PackageName -> PackageConstraints) -> SystemInfo -> Map Text (Set Text) -> Map Text (Set Text) -> Map PackageName Version -> BuildConstraints -- | This does not include core packages. [bcPackages] :: BuildConstraints -> Set PackageName [bcPackageConstraints] :: BuildConstraints -> PackageName -> PackageConstraints [bcSystemInfo] :: BuildConstraints -> SystemInfo -- | map an account to set of pingees [bcGithubUsers] :: BuildConstraints -> Map Text (Set Text) -- | map a build tool name to a set of packages we should include -- -- Used to avoid situations like extra packages on Hackage providing the -- cabal executable [bcBuildToolOverrides] :: BuildConstraints -> Map Text (Set Text) [bcTellMeWhenItsReleased] :: BuildConstraints -> Map PackageName Version data PackageConstraints PackageConstraints :: VersionRange -> Maybe Maintainer -> TestState -> TestState -> TestState -> Map FlagName Bool -> Vector Text -> Bool -> Bool -> PackageConstraints [pcVersionRange] :: PackageConstraints -> VersionRange [pcMaintainer] :: PackageConstraints -> Maybe Maintainer [pcTests] :: PackageConstraints -> TestState [pcBenches] :: PackageConstraints -> TestState [pcHaddocks] :: PackageConstraints -> TestState [pcFlagOverrides] :: PackageConstraints -> Map FlagName Bool [pcConfigureArgs] :: PackageConstraints -> Vector Text [pcEnableLibProfile] :: PackageConstraints -> Bool -- | Don't even bother building this library, useful when dealing with -- OS-specific packages. See: -- https://github.com/fpco/stackage-curator/issues/3 [pcSkipBuild] :: PackageConstraints -> Bool data TestState ExpectSuccess :: TestState ExpectFailure :: TestState -- | when the test suite will pull in things we don't want Don'tBuild :: TestState data SystemInfo SystemInfo :: Version -> OS -> Arch -> Map PackageName Version -> Set ExeName -> SystemInfo [siGhcVersion] :: SystemInfo -> Version [siOS] :: SystemInfo -> OS [siArch] :: SystemInfo -> Arch [siCorePackages] :: SystemInfo -> Map PackageName Version [siCoreExecutables] :: SystemInfo -> Set ExeName getSystemInfo :: IO SystemInfo -- | The proposed plan from the requirements provided by contributors. -- -- Checks the current directory for a build-constraints.yaml file and -- uses it if present. If not, downloads from Github. defaultBuildConstraints :: Manager -> IO BuildConstraints toBC :: ConstraintFile -> IO BuildConstraints data BuildConstraintsSource BCSDefault :: BuildConstraintsSource BCSFile :: FilePath -> BuildConstraintsSource BCSWeb :: Request -> BuildConstraintsSource loadBuildConstraints :: BuildConstraintsSource -> Manager -> IO BuildConstraints -- | Modify the version bounds with the given Dependencies setConstraints :: [Dependency] -> BuildConstraints -> BuildConstraints instance GHC.Show.Show Stackage.BuildConstraints.MismatchedGhcVersion instance GHC.Show.Show Stackage.BuildConstraints.BuildConstraintsSource instance Data.Aeson.Types.FromJSON.FromJSON Stackage.BuildConstraints.ConstraintFile instance GHC.Exception.Exception Stackage.BuildConstraints.MismatchedGhcVersion module Stackage.GithubPings -- | Determine accounts to be pinged on Github based on various metadata in -- the package description. getGithubPings :: GenericPackageDescription -> Set Text applyGithubMapping :: BuildConstraints -> Set Text -> Set Text -- | Dealing with the 00-index file and all its cabal files. module Stackage.PackageIndex -- | Stream all of the cabal files from the 00-index tar file. sourcePackageIndex :: (MonadThrow m, MonadResource m, MonadActive m, MonadBaseControl IO m) => Producer m UnparsedCabalFile -- | A cabal file with name and version parsed from the filepath, and the -- package description itself ready to be parsed. It's left in unparsed -- form for efficiency. data UnparsedCabalFile UnparsedCabalFile :: PackageName -> Version -> FilePath -> LByteString -> Entry -> UnparsedCabalFile [ucfName] :: UnparsedCabalFile -> PackageName [ucfVersion] :: UnparsedCabalFile -> Version [ucfPath] :: UnparsedCabalFile -> FilePath [ucfContent] :: UnparsedCabalFile -> LByteString [ucfEntry] :: UnparsedCabalFile -> Entry data SimplifiedPackageDescription SimplifiedPackageDescription :: PackageName -> Version -> CabalFileInfo -> Maybe (CondTree ConfVar [Dependency] SimplifiedComponentInfo) -> [(String, CondTree ConfVar [Dependency] SimplifiedComponentInfo)] -> [(String, CondTree ConfVar [Dependency] SimplifiedComponentInfo)] -> [(String, CondTree ConfVar [Dependency] SimplifiedComponentInfo)] -> [Dependency] -> Map FlagName Bool -> Set Text -> Maybe Version -> SimplifiedPackageDescription [spdName] :: SimplifiedPackageDescription -> PackageName [spdVersion] :: SimplifiedPackageDescription -> Version [spdCabalFileInfo] :: SimplifiedPackageDescription -> CabalFileInfo [spdCondLibrary] :: SimplifiedPackageDescription -> Maybe (CondTree ConfVar [Dependency] SimplifiedComponentInfo) [spdCondExecutables] :: SimplifiedPackageDescription -> [(String, CondTree ConfVar [Dependency] SimplifiedComponentInfo)] [spdCondTestSuites] :: SimplifiedPackageDescription -> [(String, CondTree ConfVar [Dependency] SimplifiedComponentInfo)] [spdCondBenchmarks] :: SimplifiedPackageDescription -> [(String, CondTree ConfVar [Dependency] SimplifiedComponentInfo)] [spdSetupDeps] :: SimplifiedPackageDescription -> [Dependency] [spdPackageFlags] :: SimplifiedPackageDescription -> Map FlagName Bool [spdGithubPings] :: SimplifiedPackageDescription -> Set Text [spdCabalVersion] :: SimplifiedPackageDescription -> Maybe Version data SimplifiedComponentInfo SimplifiedComponentInfo :: [Dependency] -> Set Text -> SimplifiedComponentInfo [sciBuildTools] :: SimplifiedComponentInfo -> [Dependency] [sciModules] :: SimplifiedComponentInfo -> Set Text -- | Get all of the latest descriptions for name/version pairs matching the -- given criterion. getLatestDescriptions :: MonadIO m => (PackageName -> Version -> Bool) -> (SimplifiedPackageDescription -> IO desc) -> m (Map PackageName desc, Map PackageName Version) gpdFromLBS :: MonadThrow m => FilePath -> LByteString -> m GenericPackageDescription -- | Get the Git commit of the all-cabal-hashes repo at its current state getAllCabalHashesCommit :: MonadIO m => m Text instance GHC.Show.Show Stackage.PackageIndex.CabalParseException instance GHC.Show.Show Stackage.PackageIndex.InvalidCabalPath instance GHC.Base.Functor (Distribution.PackageDescription.CondTree v c) instance Data.Store.TypeHash.Internal.HasTypeHash Stackage.PackageIndex.SimplifiedPackageDescription instance GHC.Exception.Exception Stackage.PackageIndex.InvalidCabalPath instance GHC.Exception.Exception Stackage.PackageIndex.CabalParseException instance GHC.Generics.Generic Stackage.PackageIndex.SimplifiedPackageDescription instance GHC.Generics.Generic Stackage.PackageIndex.SimplifiedComponentInfo instance Data.Store.Impl.Store Stackage.PackageIndex.SimplifiedComponentInfo instance Data.Store.Impl.Store Stackage.PackageIndex.SimplifiedPackageDescription instance Data.Store.Impl.Store a => Data.Store.Impl.Store (Distribution.PackageDescription.CondTree Distribution.PackageDescription.ConfVar [Distribution.Package.Dependency] a) instance Data.Store.Impl.Store Distribution.Package.Dependency instance Data.Store.Impl.Store v => Data.Store.Impl.Store (Distribution.PackageDescription.Condition v) instance Data.Store.Impl.Store Distribution.PackageDescription.ConfVar instance Data.Store.Impl.Store Distribution.System.Arch instance Data.Store.Impl.Store Distribution.System.OS instance Data.Store.Impl.Store Distribution.Compiler.CompilerFlavor instance Data.Store.Impl.Store Distribution.Package.PackageName instance Data.Store.Impl.Store Data.Version.Version instance Data.Store.Impl.Store Distribution.Version.VersionRange instance Data.Store.Impl.Store Distribution.PackageDescription.FlagName -- | Manipulate GenericPackageDescription from Cabal into -- something more useful for us. module Stackage.PackageDescription -- | A simplified package description that tracks: -- -- -- -- It has fully resolved all conditionals data SimpleDesc SimpleDesc :: Map PackageName DepInfo -> Map ExeName DepInfo -> Set ExeName -> Set Text -> Option (Max Version) -> SimpleDesc [sdPackages] :: SimpleDesc -> Map PackageName DepInfo [sdTools] :: SimpleDesc -> Map ExeName DepInfo [sdProvidedExes] :: SimpleDesc -> Set ExeName -- | modules exported by the library [sdModules] :: SimpleDesc -> Set Text -- | minimum acceptable Cabal version [sdCabalVersion] :: SimpleDesc -> Option (Max Version) -- | Convert a GenericPackageDescription into a SimpleDesc by -- following the constraints in the provided CheckCond. toSimpleDesc :: MonadThrow m => CheckCond -> SimplifiedPackageDescription -> m SimpleDesc data CheckCond CheckCond :: PackageName -> OS -> Arch -> Map FlagName Bool -> CompilerFlavor -> Version -> Bool -> Bool -> CheckCond [ccPackageName] :: CheckCond -> PackageName [ccOS] :: CheckCond -> OS [ccArch] :: CheckCond -> Arch [ccFlags] :: CheckCond -> Map FlagName Bool [ccCompilerFlavor] :: CheckCond -> CompilerFlavor [ccCompilerVersion] :: CheckCond -> Version [ccIncludeTests] :: CheckCond -> Bool [ccIncludeBenchmarks] :: CheckCond -> Bool data Component CompLibrary :: Component CompExecutable :: Component CompTestSuite :: Component CompBenchmark :: Component data DepInfo DepInfo :: Set Component -> VersionRange -> DepInfo [diComponents] :: DepInfo -> Set Component [diRange] :: DepInfo -> VersionRange instance GHC.Show.Show Stackage.PackageDescription.CheckCondException instance GHC.Exception.Exception Stackage.PackageDescription.CheckCondException -- | Representation of a concrete build plan, and how to generate a new one -- based on constraints. module Stackage.BuildPlan data BuildPlan BuildPlan :: SystemInfo -> Vector (PackageName, Version) -> Map PackageName PackagePlan -> Map Text (Set Text) -> Map Text (Set Text) -> Maybe Text -> BuildPlan [bpSystemInfo] :: BuildPlan -> SystemInfo [bpTools] :: BuildPlan -> Vector (PackageName, Version) [bpPackages] :: BuildPlan -> Map PackageName PackagePlan [bpGithubUsers] :: BuildPlan -> Map Text (Set Text) [bpBuildToolOverrides] :: BuildPlan -> Map Text (Set Text) [bpAllCabalHashesCommit] :: BuildPlan -> Maybe Text data PackagePlan PackagePlan :: Version -> Maybe CabalFileInfo -> Set Text -> Set PackageName -> PackageConstraints -> SimpleDesc -> Maybe Text -> PackagePlan [ppVersion] :: PackagePlan -> Version [ppCabalFileInfo] :: PackagePlan -> Maybe CabalFileInfo [ppGithubPings] :: PackagePlan -> Set Text [ppUsers] :: PackagePlan -> Set PackageName [ppConstraints] :: PackagePlan -> PackageConstraints [ppDesc] :: PackagePlan -> SimpleDesc [ppSourceUrl] :: PackagePlan -> Maybe Text -- | Make a build plan given these package set and build constraints. newBuildPlan :: MonadIO m => Text -> Map PackageName PackagePlan -> Map PackageName Version -> BuildConstraints -> m BuildPlan makeToolMap :: Map Text (Set Text) -> Map PackageName PackagePlan -> Map ExeName (Set PackageName) getLatestAllowedPlans :: MonadIO m => BuildConstraints -> m (Map PackageName PackagePlan, Map PackageName Version) module Stackage.Curator.UploadIndex uploadIndex :: FilePath -> Target -> Text -> Text -> IO () -- | Confirm that a build plan has a consistent set of dependencies. module Stackage.CheckBuildPlan -- | Check the build plan for missing deps, wrong versions, etc. checkBuildPlan :: (MonadThrow m) => Bool -> BuildPlan -> m () data BadBuildPlan instance GHC.Classes.Ord Stackage.CheckBuildPlan.PkgUser instance GHC.Classes.Eq Stackage.CheckBuildPlan.PkgUser instance GHC.Exception.Exception Stackage.CheckBuildPlan.BadBuildPlan instance GHC.Show.Show Stackage.CheckBuildPlan.BadBuildPlan instance GHC.Base.Monoid Stackage.CheckBuildPlan.BadBuildPlan -- | Perform an actual build, generate a binary package database and a -- documentation directory in the process. module Stackage.PerformBuild performBuild :: PerformBuild -> IO [Text] data PerformBuild PerformBuild :: BuildPlan -> FilePath -> (ByteString -> IO ()) -> FilePath -> Int -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> !Bool -> !Bool -> PerformBuild [pbPlan] :: PerformBuild -> BuildPlan [pbInstallDest] :: PerformBuild -> FilePath [pbLog] :: PerformBuild -> ByteString -> IO () [pbLogDir] :: PerformBuild -> FilePath [pbJobs] :: PerformBuild -> Int -- | Register packages in the global database [pbGlobalInstall] :: PerformBuild -> Bool [pbEnableTests] :: PerformBuild -> Bool [pbEnableBenches] :: PerformBuild -> Bool [pbEnableHaddock] :: PerformBuild -> Bool [pbEnableLibProfiling] :: PerformBuild -> Bool [pbEnableExecDyn] :: PerformBuild -> Bool [pbVerbose] :: PerformBuild -> Bool -- | Strip out version bounds in .cabal files [pbAllowNewer] :: PerformBuild -> Bool -- | Should we build Hoogle database? -- -- May be disabled due to: -- https://ghc.haskell.org/trac/ghc/ticket/9921 [pbBuildHoogle] :: PerformBuild -> Bool -- | Ignore new Cabal version from the plan and use whatever's in the -- database. Useful for testing pre-release GHCs [pbNoRebuildCabal] :: PerformBuild -> !Bool -- | Used for testing Cabal itself: grab the most recent version of Cabal -- from Github master [pbCabalFromHead] :: PerformBuild -> !Bool data BuildException BuildException :: (Map PackageName BuildFailure) -> [Text] -> BuildException pbDocDir :: PerformBuild -> FilePath sdistFilePath :: IsString filepath => FilePath -> Text -> Text -> filepath instance GHC.Show.Show Stackage.PerformBuild.BuildState instance GHC.Read.Read Stackage.PerformBuild.PrevResult instance GHC.Enum.Bounded Stackage.PerformBuild.PrevResult instance GHC.Classes.Ord Stackage.PerformBuild.PrevResult instance GHC.Classes.Eq Stackage.PerformBuild.PrevResult instance GHC.Enum.Enum Stackage.PerformBuild.PrevResult instance GHC.Show.Show Stackage.PerformBuild.PrevResult instance GHC.Read.Read Stackage.PerformBuild.ResultType instance GHC.Enum.Bounded Stackage.PerformBuild.ResultType instance GHC.Classes.Ord Stackage.PerformBuild.ResultType instance GHC.Classes.Eq Stackage.PerformBuild.ResultType instance GHC.Enum.Enum Stackage.PerformBuild.ResultType instance GHC.Show.Show Stackage.PerformBuild.ResultType instance GHC.Show.Show Stackage.PerformBuild.BuildFailure instance GHC.Exception.Exception Stackage.PerformBuild.BuildException instance GHC.Show.Show Stackage.PerformBuild.BuildException instance GHC.Exception.Exception Stackage.PerformBuild.BuildFailure module Stackage.InstallBuild -- | Flags passed in from the command line. data InstallFlags InstallFlags :: !BuildPlanSource -> !FilePath -> !(Maybe FilePath) -> !Int -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> InstallFlags [ifPlanSource] :: InstallFlags -> !BuildPlanSource [ifInstallDest] :: InstallFlags -> !FilePath [ifLogDir] :: InstallFlags -> !(Maybe FilePath) [ifJobs] :: InstallFlags -> !Int [ifGlobalInstall] :: InstallFlags -> !Bool [ifEnableTests] :: InstallFlags -> !Bool [ifEnableBenches] :: InstallFlags -> !Bool [ifEnableHaddock] :: InstallFlags -> !Bool [ifEnableLibProfiling] :: InstallFlags -> !Bool [ifEnableExecDyn] :: InstallFlags -> !Bool [ifVerbose] :: InstallFlags -> !Bool [ifSkipCheck] :: InstallFlags -> !Bool [ifBuildHoogle] :: InstallFlags -> !Bool [ifNoRebuildCabal] :: InstallFlags -> !Bool -- | Source for build plan. data BuildPlanSource BPSBundleWeb :: String -> BuildPlanSource BPSFile :: FilePath -> BuildPlanSource -- | Install stackage from an existing build plan. installBuild :: InstallFlags -> IO () instance GHC.Show.Show Stackage.InstallBuild.InstallFlags instance GHC.Show.Show Stackage.InstallBuild.BuildPlanSource instance GHC.Exception.Exception Stackage.InstallBuild.InstallBuildException instance GHC.Show.Show Stackage.InstallBuild.InstallBuildException -- | Create a bundle to be uploaded to Stackage Server. module Stackage.ServerBundle serverBundle :: EpochTime -> Text -> Text -> BuildPlan -> LByteString -- | Get current time epochTime :: IO EpochTime -- | All package/versions in a build plan, including core packages. -- -- Note that this may include packages not available on Hackage. bpAllPackages :: BuildPlan -> Map PackageName Version docsListing :: BuildPlan -> FilePath -> IO DocMap -- | Create a V2 bundle, which contains the build plan, metadata, docs, and -- doc map. createBundleV2 :: CreateBundleV2 -> IO () data CreateBundleV2 CreateBundleV2 :: BuildPlan -> SnapshotType -> FilePath -> FilePath -> !FilePath -> CreateBundleV2 [cb2Plan] :: CreateBundleV2 -> BuildPlan [cb2Type] :: CreateBundleV2 -> SnapshotType [cb2DocsDir] :: CreateBundleV2 -> FilePath [cb2Dest] :: CreateBundleV2 -> FilePath [cb2DocmapFile] :: CreateBundleV2 -> !FilePath data SnapshotType STNightly :: SnapshotType STNightly2 :: !Day -> SnapshotType -- | major, minor STLTS :: !Int -> !Int -> SnapshotType writeIndexStyle :: Maybe Text -> FilePath -> IO [String] -- | Package name is key type DocMap = Map Text PackageDocs data PackageDocs PackageDocs :: Text -> Map Text [Text] -> PackageDocs [pdVersion] :: PackageDocs -> Text -- | module name, path [pdModules] :: PackageDocs -> Map Text [Text] -- | Upload to Stackage and Hackage module Stackage.Upload uploadHackageDistro :: Text -> BuildPlan -> ByteString -> ByteString -> Manager -> IO (Response LByteString) uploadBundleV2 :: UploadBundleV2 -> Manager -> IO Text data UploadBundleV2 UploadBundleV2 :: StackageServer -> Text -> FilePath -> UploadBundleV2 [ub2Server] :: UploadBundleV2 -> StackageServer [ub2AuthToken] :: UploadBundleV2 -> Text [ub2Bundle] :: UploadBundleV2 -> FilePath -- | The default value for this type. def :: Default a => a data StackageServer unStackageServer :: StackageServer -> Text instance Data.String.IsString Stackage.Upload.StackageServer instance Data.Hashable.Class.Hashable Stackage.Upload.StackageServer instance GHC.Classes.Ord Stackage.Upload.StackageServer instance GHC.Classes.Eq Stackage.Upload.StackageServer instance GHC.Show.Show Stackage.Upload.StackageServer instance Data.Default.Class.Default Stackage.Upload.StackageServer -- | Take an existing build plan and bump all packages to the newest -- version in the same major version number. module Stackage.UpdateBuildPlan updateBuildConstraints :: BuildPlan -> BuildConstraints updateBuildPlan :: Map PackageName PackagePlan -> BuildPlan -> IO BuildPlan module Stackage.CompleteBuild -- | Flags passed in from the command line. data BuildFlags BuildFlags :: !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !StackageServer -> !Bool -> !(Maybe FilePath) -> !Bool -> !(Maybe Int) -> !(Maybe FilePath) -> !Bool -> !Bool -> BuildFlags [bfEnableTests] :: BuildFlags -> !Bool [bfEnableBenches] :: BuildFlags -> !Bool [bfEnableHaddock] :: BuildFlags -> !Bool [bfDoUpload] :: BuildFlags -> !Bool [bfEnableLibProfile] :: BuildFlags -> !Bool [bfEnableExecDyn] :: BuildFlags -> !Bool [bfVerbose] :: BuildFlags -> !Bool [bfSkipCheck] :: BuildFlags -> !Bool [bfServer] :: BuildFlags -> !StackageServer [bfBuildHoogle] :: BuildFlags -> !Bool [bfBundleDest] :: BuildFlags -> !(Maybe FilePath) -- | push to Git (when doing an LTS build) [bfGitPush] :: BuildFlags -> !Bool [bfJobs] :: BuildFlags -> !(Maybe Int) [bfPlanFile] :: BuildFlags -> !(Maybe FilePath) [bfPreBuild] :: BuildFlags -> !Bool [bfLoadPlan] :: BuildFlags -> !Bool -- | Generate and check a new build plan, but do not execute it. -- -- Since 0.3.1 checkPlan :: Maybe FilePath -> IO () getStackageAuthToken :: IO Text createPlan :: Target -> FilePath -> [Dependency] -> [PackageName] -> [PackageName] -> [PackageName] -> [PackageName] -> IO () fetch :: FilePath -> IO () makeBundle :: FilePath -> FilePath -> FilePath -> Target -> Maybe Int -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> IO () upload :: FilePath -> StackageServer -> IO () hackageDistro :: FilePath -> Target -> IO () uploadGithub :: FilePath -> FilePath -> Target -> IO () uploadDocs' :: Target -> FilePath -> IO () -- | Check if the given target is already used in the Github repos checkTargetAvailable :: Target -> IO () instance GHC.Show.Show Stackage.CompleteBuild.BuildFlags