-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | "Stable Hackage," tools for creating a vetted set of packages from Hackage. -- -- Please see http://www.stackage.org/package/stackage for a -- description and documentation. @package stackage @version 0.6.0 module Stackage.Prelude unPackageName :: PackageName -> Text unFlagName :: FlagName -> Text mkPackageName :: Text -> PackageName mkFlagName :: Text -> FlagName display :: Text a => a -> Text simpleParse :: (MonadThrow m, Text a, Typeable a) => Text -> m a data ParseFailedException ParseFailedException :: TypeRep -> Text -> ParseFailedException newtype Maintainer Maintainer :: Text -> Maintainer unMaintainer :: Maintainer -> Text -- | Name of an executable. newtype ExeName ExeName :: Text -> ExeName unExeName :: ExeName -> Text intersectVersionRanges :: VersionRange -> VersionRange -> VersionRange -- | 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 () instance Typeable ParseFailedException instance Typeable TopologicalSortException instance Show ParseFailedException instance Show Maintainer instance Eq Maintainer instance Ord Maintainer instance Hashable Maintainer instance ToJSON Maintainer instance FromJSON Maintainer instance IsString Maintainer instance Show ExeName instance Eq ExeName instance Ord ExeName instance Hashable ExeName instance ToJSON ExeName instance FromJSON ExeName instance IsString ExeName instance Show key => Show (TopologicalSortException key) instance (Show key, Typeable key) => Exception (TopologicalSortException key) instance Exception ParseFailedException 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) -> 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) data PackageConstraints PackageConstraints :: VersionRange -> Maybe Maintainer -> TestState -> TestState -> Bool -> Map FlagName Bool -> Bool -> PackageConstraints pcVersionRange :: PackageConstraints -> VersionRange pcMaintainer :: PackageConstraints -> Maybe Maintainer pcTests :: PackageConstraints -> TestState pcHaddocks :: PackageConstraints -> TestState pcBuildBenchmarks :: PackageConstraints -> Bool pcFlagOverrides :: PackageConstraints -> Map FlagName Bool pcEnableLibProfile :: 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 instance Show TestState instance Eq TestState instance Ord TestState instance Bounded TestState instance Enum TestState instance Show SystemInfo instance Eq SystemInfo instance Ord SystemInfo instance Show PackageConstraints instance Eq PackageConstraints instance Show BuildConstraintsSource instance FromJSON ConstraintFile instance FromJSON PackageConstraints instance ToJSON PackageConstraints instance FromJSON SystemInfo instance ToJSON SystemInfo instance FromJSON TestState instance ToJSON TestState -- | 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 -> (forall m. MonadThrow m => m GenericPackageDescription) -> UnparsedCabalFile ucfName :: UnparsedCabalFile -> PackageName ucfVersion :: UnparsedCabalFile -> Version ucfParse :: UnparsedCabalFile -> forall m. MonadThrow m => m GenericPackageDescription -- | Get all of the latest descriptions for name/version pairs matching the -- given criterion. getLatestDescriptions :: MonadIO m => (PackageName -> Version -> Bool) -> (GenericPackageDescription -> IO desc) -> m (Map PackageName desc) instance Typeable InvalidCabalPath instance Typeable CabalParseException instance Show InvalidCabalPath instance Show CabalParseException instance Exception CabalParseException instance Exception InvalidCabalPath module Stackage.GithubPings -- | Determine accounts to be pinged on Github based on various metadata in -- the package description. getGithubPings :: BuildConstraints -> GenericPackageDescription -> Set Text -- | 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 -> SimpleDesc sdPackages :: SimpleDesc -> Map PackageName DepInfo sdTools :: SimpleDesc -> Map ExeName DepInfo sdProvidedExes :: SimpleDesc -> Set ExeName -- | modules exported by the library sdModules :: SimpleDesc -> Set Text -- | Convert a GenericPackageDescription into a SimpleDesc by -- following the constraints in the provided CheckCond. toSimpleDesc :: MonadThrow m => CheckCond -> GenericPackageDescription -> 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 Typeable CheckCondException instance Show Component instance Read Component instance Eq Component instance Ord Component instance Enum Component instance Bounded Component instance Show DepInfo instance Eq DepInfo instance Show SimpleDesc instance Eq SimpleDesc instance Show CheckCondException instance Exception CheckCondException instance FromJSON SimpleDesc instance ToJSON SimpleDesc instance Monoid SimpleDesc instance FromJSON DepInfo instance ToJSON DepInfo instance Semigroup DepInfo instance FromJSON Component instance ToJSON Component -- | 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) -> BuildPlan bpSystemInfo :: BuildPlan -> SystemInfo bpTools :: BuildPlan -> Vector (PackageName, Version) bpPackages :: BuildPlan -> Map PackageName PackagePlan bpGithubUsers :: BuildPlan -> Map Text (Set Text) data PackagePlan PackagePlan :: Version -> Set Text -> Set PackageName -> PackageConstraints -> SimpleDesc -> PackagePlan ppVersion :: PackagePlan -> Version ppGithubPings :: PackagePlan -> Set Text ppUsers :: PackagePlan -> Set PackageName ppConstraints :: PackagePlan -> PackageConstraints ppDesc :: PackagePlan -> SimpleDesc -- | Make a build plan given these package set and build constraints. newBuildPlan :: MonadIO m => Map PackageName PackagePlan -> BuildConstraints -> m BuildPlan makeToolMap :: Map PackageName PackagePlan -> Map ExeName (Set PackageName) getLatestAllowedPlans :: MonadIO m => BuildConstraints -> m (Map PackageName PackagePlan) instance Show PackagePlan instance Eq PackagePlan instance Show BuildPlan instance Eq BuildPlan instance FromJSON PackagePlan instance ToJSON PackagePlan instance FromJSON BuildPlan instance ToJSON BuildPlan -- | 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 => BuildPlan -> m () data BadBuildPlan instance Typeable BadBuildPlan instance Eq PkgUser instance Ord PkgUser instance Monoid BadBuildPlan instance Show BadBuildPlan instance Exception BadBuildPlan -- | 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 -- | General commands related to ghc-pkg. module Stackage.GhcPkg setupPackageDatabase :: Maybe FilePath -> FilePath -> (ByteString -> IO ()) -> Map PackageName Version -> (PackageIdentifier -> IO ()) -> IO (Set PackageName) -- | 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 -> 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 pbEnableHaddock :: PerformBuild -> Bool pbEnableLibProfiling :: PerformBuild -> Bool pbEnableExecDyn :: PerformBuild -> Bool pbVerbose :: PerformBuild -> Bool -- | Pass --allow-newer to cabal configure pbAllowNewer :: PerformBuild -> Bool data BuildException BuildException :: (Map PackageName BuildFailure) -> [Text] -> BuildException pbDocDir :: PerformBuild -> FilePath instance Typeable BuildFailure instance Typeable BuildException instance Show BuildFailure instance Show ResultType instance Enum ResultType instance Eq ResultType instance Ord ResultType instance Bounded ResultType instance Read ResultType instance Show PrevResult instance Enum PrevResult instance Eq PrevResult instance Ord PrevResult instance Bounded PrevResult instance Read PrevResult instance Exception BuildFailure instance Show BuildException instance Exception BuildException 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 -> InstallFlags ifPlanSource :: InstallFlags -> !BuildPlanSource ifInstallDest :: InstallFlags -> !FilePath ifLogDir :: InstallFlags -> !(Maybe FilePath) ifJobs :: InstallFlags -> !Int ifGlobalInstall :: InstallFlags -> !Bool ifEnableTests :: InstallFlags -> !Bool ifEnableHaddock :: InstallFlags -> !Bool ifEnableLibProfiling :: InstallFlags -> !Bool ifEnableExecDyn :: InstallFlags -> !Bool ifVerbose :: InstallFlags -> !Bool ifSkipCheck :: 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 Typeable InstallBuildException instance Show BuildPlanSource instance Show InstallFlags instance Show InstallBuildException instance Exception 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 -> CreateBundleV2 cb2Plan :: CreateBundleV2 -> BuildPlan cb2Type :: CreateBundleV2 -> SnapshotType cb2DocsDir :: CreateBundleV2 -> FilePath cb2Dest :: CreateBundleV2 -> FilePath data SnapshotType STNightly :: 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] instance Show SnapshotType instance Read SnapshotType instance Eq SnapshotType instance Ord SnapshotType instance FromJSON SnapshotType instance ToJSON SnapshotType instance FromJSON PackageDocs instance ToJSON PackageDocs -- | Upload to Stackage and Hackage module Stackage.Upload data UploadBundle UploadBundle :: StackageServer -> LByteString -> Maybe Text -> Maybe Text -> Maybe Text -> Text -> UploadBundle ubServer :: UploadBundle -> StackageServer ubContents :: UploadBundle -> LByteString ubAlias :: UploadBundle -> Maybe Text -- | should be GHC version ubNightly :: UploadBundle -> Maybe Text -- | e.g. 2.3 ubLTS :: UploadBundle -> Maybe Text ubAuthToken :: UploadBundle -> Text newtype SnapshotIdent SnapshotIdent :: Text -> SnapshotIdent unSnapshotIdent :: SnapshotIdent -> Text uploadBundle :: UploadBundle -> Manager -> IO (SnapshotIdent, Maybe Text) data UploadDocs UploadDocs :: StackageServer -> FilePath -> Text -> SnapshotIdent -> UploadDocs udServer :: UploadDocs -> StackageServer -- | may be a directory or a tarball udDocs :: UploadDocs -> FilePath udAuthToken :: UploadDocs -> Text udSnapshot :: UploadDocs -> SnapshotIdent uploadDocs :: UploadDocs -> Manager -> IO (Response LByteString) uploadHackageDistro :: BuildPlan -> ByteString -> ByteString -> Manager -> IO (Response LByteString) uploadHackageDistroNamed :: Text -> BuildPlan -> ByteString -> ByteString -> Manager -> IO (Response LByteString) data UploadDocMap UploadDocMap :: StackageServer -> Text -> SnapshotIdent -> FilePath -> BuildPlan -> UploadDocMap udmServer :: UploadDocMap -> StackageServer udmAuthToken :: UploadDocMap -> Text udmSnapshot :: UploadDocMap -> SnapshotIdent udmDocDir :: UploadDocMap -> FilePath udmPlan :: UploadDocMap -> BuildPlan uploadDocMap :: UploadDocMap -> 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 def :: Default a => a unStackageServer :: StackageServer -> Text instance Show StackageServer instance Eq StackageServer instance Ord StackageServer instance Hashable StackageServer instance IsString StackageServer instance Show SnapshotIdent instance Eq SnapshotIdent instance Ord SnapshotIdent instance Hashable SnapshotIdent instance IsString SnapshotIdent instance Default UploadBundle instance Default StackageServer module Stackage.CompleteBuild data BuildType Nightly :: BuildType LTS :: BumpType -> BuildType data BumpType Major :: BumpType Minor :: BumpType -- | Flags passed in from the command line. data BuildFlags BuildFlags :: !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> BuildFlags bfEnableTests :: BuildFlags -> !Bool bfEnableHaddock :: BuildFlags -> !Bool bfDoUpload :: BuildFlags -> !Bool bfEnableLibProfile :: BuildFlags -> !Bool bfEnableExecDyn :: BuildFlags -> !Bool bfVerbose :: BuildFlags -> !Bool bfSkipCheck :: BuildFlags -> !Bool bfUploadV2 :: BuildFlags -> !Bool -- | Make a complete plan, build, test and upload bundle, docs and distro. completeBuild :: BuildType -> BuildFlags -> IO () -- | Generate and check a new build plan, but do not execute it. -- -- Since 0.3.1 justCheck :: IO () justUploadNightly :: Text -> IO () getStackageAuthToken :: IO Text instance Show BuildFlags instance Show BumpType instance Read BumpType instance Eq BumpType instance Ord BumpType instance Show BuildType instance Read BuildType instance Eq BuildType instance Ord BuildType instance Eq LTSVer instance Ord LTSVer instance Show LTSVer