-- 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:
--
--
-- - Package dependencies
-- - Build tool dependencies
-- - Provided executables
--
--
-- 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:
--
--
-- - Package dependencies
-- - Build tool dependencies
-- - Provided executables
--
--
-- 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