-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | What version is the package X in stackage lts-Y.ZZ? -- -- A command-line tool to look for version numbers for Haskell packages -- in specific stackage resolvers. See README.md @package staversion @version 0.1.3.0 -- | This is an internal module. End-users should not use it. module Staversion.Internal.Query type PackageName = Text -- | Resolver name at stackage like "lts-4.1". type Resolver = String -- | Source of packages. data PackageSource -- | stackage. SourceStackage :: Resolver -> PackageSource -- | hackage (latest) SourceHackage :: PackageSource -- | description of a PackageSource. sourceDesc :: PackageSource -> Text -- | Query for package version(s). data Query QueryName :: PackageName -> Query QueryCabalFile :: FilePath -> Query parseQuery :: String -> Query type ErrorMsg = String instance GHC.Classes.Ord Staversion.Internal.Query.Query instance GHC.Classes.Eq Staversion.Internal.Query.Query instance GHC.Show.Show Staversion.Internal.Query.Query instance GHC.Classes.Ord Staversion.Internal.Query.PackageSource instance GHC.Classes.Eq Staversion.Internal.Query.PackageSource instance GHC.Show.Show Staversion.Internal.Query.PackageSource module Staversion.Internal.Log data LogLevel LogDebug :: LogLevel LogInfo :: LogLevel LogWarn :: LogLevel LogError :: LogLevel data Logger defaultLogger :: Logger putLog :: Logger -> LogLevel -> String -> IO () logDebug :: Logger -> String -> IO () logInfo :: Logger -> String -> IO () logWarn :: Logger -> String -> IO () logError :: Logger -> String -> IO () -- | FOR TEST: the IORef is the history of logged messages. _mockLogger :: IO (Logger, IORef [(LogLevel, String)]) instance GHC.Enum.Bounded Staversion.Internal.Log.LogLevel instance GHC.Enum.Enum Staversion.Internal.Log.LogLevel instance GHC.Classes.Ord Staversion.Internal.Log.LogLevel instance GHC.Classes.Eq Staversion.Internal.Log.LogLevel instance GHC.Show.Show Staversion.Internal.Log.LogLevel instance GHC.Show.Show Staversion.Internal.Log.Logger -- | This is an internal module. End-users should not use it. module Staversion.Internal.Cabal loadCabalFile :: FilePath -> IO (Either ErrorMsg [BuildDepends]) -- | Build target type. data Target -- | the library target. TargetLibrary :: Target -- | the executable NAME target. TargetExecutable :: Text -> Target -- | the test-suite NAME target. TargetTestSuite :: Text -> Target -- | the benchmark NAME target. TargetBenchmark :: Text -> Target -- | A block of build-depends:. data BuildDepends BuildDepends :: Target -> [PackageName] -> BuildDepends [depsTarget] :: BuildDepends -> Target [depsPackages] :: BuildDepends -> [PackageName] instance GHC.Classes.Ord Staversion.Internal.Cabal.BuildDepends instance GHC.Classes.Eq Staversion.Internal.Cabal.BuildDepends instance GHC.Show.Show Staversion.Internal.Cabal.BuildDepends instance GHC.Classes.Ord Staversion.Internal.Cabal.Target instance GHC.Classes.Eq Staversion.Internal.Cabal.Target instance GHC.Show.Show Staversion.Internal.Cabal.Target -- | This is an internal module. End-users should not use it. module Staversion.Internal.Result -- | Result for a query. data Result Result :: PackageSource -> Query -> Maybe PackageSource -> Either ErrorMsg ResultBody -> Result [resultIn] :: Result -> PackageSource [resultFor] :: Result -> Query -- | the true PackageSource resolved (or redirected) from resultIn, -- if any. [resultReallyIn] :: Result -> Maybe PackageSource [resultBody] :: Result -> Either ErrorMsg ResultBody data ResultBody SimpleResultBody :: PackageName -> (Maybe Version) -> ResultBody CabalResultBody :: FilePath -> Target -> [(PackageName, Maybe Version)] -> ResultBody instance GHC.Classes.Eq Staversion.Internal.Result.Result instance GHC.Show.Show Staversion.Internal.Result.Result instance GHC.Classes.Eq Staversion.Internal.Result.ResultBody instance GHC.Show.Show Staversion.Internal.Result.ResultBody -- | This is an internal module. End-users should not use it. module Staversion.Internal.Format -- | format Results like it's in build-depends in .cabal files. formatResultsCabal :: [Result] -> Text -- | This is an internal module. End-users should not use it. module Staversion.Internal.BuildPlan.Version -- | Parse a version text. There must not be any trailing characters after -- a valid version text. parseVersionText :: Text -> Maybe Version -- | a wrapper around Version for JSON I/F newtype VersionJSON VersionJSON :: Version -> VersionJSON [unVersionJSON] :: VersionJSON -> Version instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Version.VersionJSON instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Version.VersionJSON instance GHC.Show.Show Staversion.Internal.BuildPlan.Version.VersionJSON instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.Version.VersionJSON -- | This is an internal module. End-users should not use it. -- -- This module is meant to be exposed only to -- Staversion.Internal.BuildPlan and test modules. module Staversion.Internal.BuildPlan.Stackage -- | Non-ambiguous fully-resolved resolver for stackage. data ExactResolver -- | lts-(major).(minor) ExactLTS :: Word -> Word -> ExactResolver -- | nightly-(year)-(month)-(day) ExactNightly :: Word -> Word -> Word -> ExactResolver -- | Potentially partial resolver for stackage. data PartialResolver PartialExact :: ExactResolver -> PartialResolver -- | lts (latest) PartialLTSLatest :: PartialResolver -- | lts-(major) PartialLTSMajor :: Word -> PartialResolver -- | nightly (latest) PartialNightlyLatest :: PartialResolver parseResolverString :: Resolver -> Maybe PartialResolver formatResolverString :: PartialResolver -> Resolver formatExactResolverString :: ExactResolver -> Resolver type Disambiguator = PartialResolver -> Maybe ExactResolver -- | Fetch the Disambiguator from the Internet. fetchDisambiguator :: Manager -> IO (Either ErrorMsg Disambiguator) -- | Fetch build plan YAML data from the Internet. fetchBuildPlanYAML :: Manager -> ExactResolver -> IO ByteString parseDisambiguator :: ByteString -> Maybe Disambiguator instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Stackage.PartialResolver instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Stackage.PartialResolver instance GHC.Show.Show Staversion.Internal.BuildPlan.Stackage.PartialResolver instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Stackage.ExactResolver instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Stackage.ExactResolver instance GHC.Show.Show Staversion.Internal.BuildPlan.Stackage.ExactResolver instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.Stackage.DisamMap -- | This is an internal module. End-users should not use it. module Staversion.Internal.BuildPlan.Hackage data RegisteredVersions fetchPreferredVersions :: Manager -> PackageName -> IO (Either ErrorMsg RegisteredVersions) latestVersion :: RegisteredVersions -> Maybe Version parsePreferredVersionsJSON :: ByteString -> Either ErrorMsg RegisteredVersions instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Hackage.RegisteredVersions instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Hackage.RegisteredVersions instance GHC.Show.Show Staversion.Internal.BuildPlan.Hackage.RegisteredVersions instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.Hackage.RegisteredVersions -- | This is an internal module. End-users should not use it. module Staversion.Internal.BuildPlan -- | Types that have mapping between PackageName and Version. class HasVersions t packageVersion :: HasVersions t => t -> PackageName -> Maybe Version -- | A BuildPlanMap associated with its PackageSource. data BuildPlan buildPlanSource :: BuildPlan -> PackageSource -- | Stateful manager for BuildPlans. data BuildPlanManager newBuildPlanManager :: FilePath -> Logger -> Bool -> IO BuildPlanManager loadBuildPlan :: BuildPlanManager -> [PackageName] -> PackageSource -> IO (Either ErrorMsg BuildPlan) -- | A data structure that keeps a map between package names and their -- versions. data BuildPlanMap -- | Load a BuildPlanMap from a file. loadBuildPlanMapYAML :: FilePath -> IO (Either ErrorMsg BuildPlanMap) _setLTSDisambiguator :: BuildPlanManager -> Word -> Word -> IO () instance GHC.Base.Monoid Staversion.Internal.BuildPlan.BuildPlanMap instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.BuildPlanMap instance Staversion.Internal.BuildPlan.HasVersions Staversion.Internal.BuildPlan.BuildPlanMap instance Staversion.Internal.BuildPlan.HasVersions Staversion.Internal.BuildPlan.BuildPlan -- | This is an internal module. End-users should not use it. module Staversion.Internal.Command -- | Command from the user. data Command Command :: FilePath -> Logger -> [PackageSource] -> [Query] -> Bool -> Command -- | path to the directory where build plan files are stored. [commBuildPlanDir] :: Command -> FilePath -- | the logger [commLogger] :: Command -> Logger -- | package sources to search [commSources] :: Command -> [PackageSource] -- | package queries [commQueries] :: Command -> [Query] -- | if True, it accesses the Internet to query build plans etc. [commAllowNetwork] :: Command -> Bool parseCommandArgs :: IO Command instance GHC.Classes.Ord Staversion.Internal.Command.DefCommand instance GHC.Classes.Eq Staversion.Internal.Command.DefCommand instance GHC.Show.Show Staversion.Internal.Command.DefCommand instance GHC.Show.Show Staversion.Internal.Command.Command -- | This is an internal module. End-users should not use it. module Staversion.Internal.Exec main :: IO () processCommand :: Command -> IO [Result] _processCommandWithCustomBuildPlanManager :: (BuildPlanManager -> IO BuildPlanManager) -> Command -> IO [Result] instance GHC.Classes.Ord Staversion.Internal.Exec.ResolvedQuery instance GHC.Classes.Eq Staversion.Internal.Exec.ResolvedQuery instance GHC.Show.Show Staversion.Internal.Exec.ResolvedQuery