cabal-install-3.12.1.0: The command-line interface for Cabal and Hackage.

Copyright | (c) David Waern 2008
License | BSD-like
Maintainer | david.waern@gmail.com
Stability | experimental
Portability | portable
Safe Haskell | None
Language | Haskell2010

Distribution.Client.BuildReports.Anonymous

Contents

- Constructing and writing reports
- parsing and pretty printing

Description

Anonymous build report data structure, printing and parsing

Synopsis

- data BuildReport = BuildReport {
  - package :: PackageIdentifier
  - os :: OS
  - arch :: Arch
  - compiler :: CompilerId
  - client :: PackageIdentifier
  - flagAssignment :: FlagAssignment
  - dependencies :: [PackageIdentifier]
  - installOutcome :: InstallOutcome
  - docsOutcome :: Outcome
  - testsOutcome :: Outcome
  }
- data InstallOutcome
  - = PlanningFailed
  - | DependencyFailed PackageIdentifier
  - | DownloadFailed
  - | UnpackFailed
  - | SetupFailed
  - | ConfigureFailed
  - | BuildFailed
  - | TestsFailed
  - | InstallFailed
  - | InstallOk
- data Outcome
  - = NotTried
  - | Failed
  - | Ok
- newBuildReport :: OS -> Arch -> CompilerId -> PackageIdentifier -> FlagAssignment -> [PackageIdentifier] -> BuildOutcome -> BuildReport
- parseBuildReport :: ByteString -> Either String BuildReport
- parseBuildReportList :: ByteString -> [BuildReport]
- showBuildReport :: BuildReport -> String
- cabalInstallID :: PackageIdentifier

# Documentation

data BuildReport #

Constructors

BuildReport |
Fields package :: PackageIdentifier The package this build report is about os :: OS The OS and Arch the package was built on arch :: Arch compiler :: CompilerId The Haskell compiler (and hopefully version) used client :: PackageIdentifier The uploading client, ie cabal-install-x.y.z flagAssignment :: FlagAssignment Which configurations flags we used dependencies :: [PackageIdentifier] Which dependent packages we were using exactly installOutcome :: InstallOutcome Did installing work ok? docsOutcome :: Outcome Configure outcome, did configure work ok? testsOutcome :: Outcome Configure outcome, did configure work ok?

#### Instances

Instances details

Generic BuildReport # |
Instance details Defined in Distribution.Client.BuildReports.Types Associated Types
type Rep BuildReport |
Instance details Defined in Distribution.Client.BuildReports.Types type Rep BuildReport = D1 ('MetaData "BuildReport" "Distribution.Client.BuildReports.Types" "cabal-install-3.12.1.0-G554PkJj2SpDqyarXp9tbt" 'False) (C1 ('MetaCons "BuildReport" 'PrefixI 'True) (((S1 ('MetaSel ('Just "package") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageIdentifier) :*: S1 ('MetaSel ('Just "os") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OS)) :*: (S1 ('MetaSel ('Just "arch") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Arch) :*: (S1 ('MetaSel ('Just "compiler") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CompilerId) :*: S1 ('MetaSel ('Just "client") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageIdentifier)))) :*: ((S1 ('MetaSel ('Just "flagAssignment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FlagAssignment) :*: S1 ('MetaSel ('Just "dependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [PackageIdentifier])) :*: (S1 ('MetaSel ('Just "installOutcome") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 InstallOutcome) :*: (S1 ('MetaSel ('Just "docsOutcome") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Outcome) :*: S1 ('MetaSel ('Just "testsOutcome") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Outcome))))))
Methods from :: BuildReport -> Rep BuildReport x # to :: Rep BuildReport x -> BuildReport #
Show BuildReport # |
Instance details Defined in Distribution.Client.BuildReports.Types Methods showsPrec :: Int -> BuildReport -> ShowS # show :: BuildReport -> String # showList :: [BuildReport] -> ShowS #
Eq BuildReport # |
Instance details Defined in Distribution.Client.BuildReports.Types Methods (==) :: BuildReport -> BuildReport -> Bool # (/=) :: BuildReport -> BuildReport -> Bool #
type Rep BuildReport # |
Instance details Defined in Distribution.Client.BuildReports.Types type Rep BuildReport = D1 ('MetaData "BuildReport" "Distribution.Client.BuildReports.Types" "cabal-install-3.12.1.0-G554PkJj2SpDqyarXp9tbt" 'False) (C1 ('MetaCons "BuildReport" 'PrefixI 'True) (((S1 ('MetaSel ('Just "package") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageIdentifier) :*: S1 ('MetaSel ('Just "os") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OS)) :*: (S1 ('MetaSel ('Just "arch") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Arch) :*: (S1 ('MetaSel ('Just "compiler") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CompilerId) :*: S1 ('MetaSel ('Just "client") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageIdentifier)))) :*: ((S1 ('MetaSel ('Just "flagAssignment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FlagAssignment) :*: S1 ('MetaSel ('Just "dependencies") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [PackageIdentifier])) :*: (S1 ('MetaSel ('Just "installOutcome") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 InstallOutcome) :*: (S1 ('MetaSel ('Just "docsOutcome") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Outcome) :*: S1 ('MetaSel ('Just "testsOutcome") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Outcome))))))

data InstallOutcome #

Constructors

PlanningFailed |
DependencyFailed PackageIdentifier |
DownloadFailed |
UnpackFailed |
SetupFailed |
ConfigureFailed |
BuildFailed |
TestsFailed |
InstallFailed |
InstallOk |

#### Instances

Instances details

Parsec InstallOutcome # |
Instance details Defined in Distribution.Client.BuildReports.Types Methods parsec :: CabalParsing m => m InstallOutcome #
Pretty InstallOutcome # |
Instance details Defined in Distribution.Client.BuildReports.Types Methods pretty :: InstallOutcome -> Doc # prettyVersioned :: CabalSpecVersion -> InstallOutcome -> Doc #
Generic InstallOutcome # |
Instance details Defined in Distribution.Client.BuildReports.Types Associated Types
type Rep InstallOutcome |
Instance details Defined in Distribution.Client.BuildReports.Types type Rep InstallOutcome = D1 ('MetaData "InstallOutcome" "Distribution.Client.BuildReports.Types" "cabal-install-3.12.1.0-G554PkJj2SpDqyarXp9tbt" 'False) (((C1 ('MetaCons "PlanningFailed" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DependencyFailed" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageIdentifier))) :+: (C1 ('MetaCons "DownloadFailed" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "UnpackFailed" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SetupFailed" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "ConfigureFailed" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BuildFailed" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TestsFailed" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "InstallFailed" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InstallOk" 'PrefixI 'False) (U1 :: Type -> Type)))))
Methods from :: InstallOutcome -> Rep InstallOutcome x # to :: Rep InstallOutcome x -> InstallOutcome #
Show InstallOutcome # |
Instance details Defined in Distribution.Client.BuildReports.Types Methods showsPrec :: Int -> InstallOutcome -> ShowS # show :: InstallOutcome -> String # showList :: [InstallOutcome] -> ShowS #
Eq InstallOutcome # |
Instance details Defined in Distribution.Client.BuildReports.Types Methods (==) :: InstallOutcome -> InstallOutcome -> Bool # (/=) :: InstallOutcome -> InstallOutcome -> Bool #
type Rep InstallOutcome # |
Instance details Defined in Distribution.Client.BuildReports.Types type Rep InstallOutcome = D1 ('MetaData "InstallOutcome" "Distribution.Client.BuildReports.Types" "cabal-install-3.12.1.0-G554PkJj2SpDqyarXp9tbt" 'False) (((C1 ('MetaCons "PlanningFailed" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DependencyFailed" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PackageIdentifier))) :+: (C1 ('MetaCons "DownloadFailed" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "UnpackFailed" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SetupFailed" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "ConfigureFailed" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BuildFailed" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TestsFailed" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "InstallFailed" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InstallOk" 'PrefixI 'False) (U1 :: Type -> Type)))))

data Outcome #

Constructors

NotTried |
Failed |
Ok |

#### Instances

Instances details

Parsec Outcome # |
Instance details Defined in Distribution.Client.BuildReports.Types Methods parsec :: CabalParsing m => m Outcome #
Pretty Outcome # |
Instance details Defined in Distribution.Client.BuildReports.Types Methods pretty :: Outcome -> Doc # prettyVersioned :: CabalSpecVersion -> Outcome -> Doc #
Bounded Outcome # |
Instance details Defined in Distribution.Client.BuildReports.Types Methods minBound :: Outcome # maxBound :: Outcome #
Enum Outcome # |
Instance details Defined in Distribution.Client.BuildReports.Types Methods succ :: Outcome -> Outcome # pred :: Outcome -> Outcome # toEnum :: Int -> Outcome # fromEnum :: Outcome -> Int # enumFrom :: Outcome -> [Outcome] # enumFromThen :: Outcome -> Outcome -> [Outcome] # enumFromTo :: Outcome -> Outcome -> [Outcome] # enumFromThenTo :: Outcome -> Outcome -> Outcome -> [Outcome] #
Generic Outcome # |
Instance details Defined in Distribution.Client.BuildReports.Types Associated Types
type Rep Outcome |
Instance details Defined in Distribution.Client.BuildReports.Types type Rep Outcome = D1 ('MetaData "Outcome" "Distribution.Client.BuildReports.Types" "cabal-install-3.12.1.0-G554PkJj2SpDqyarXp9tbt" 'False) (C1 ('MetaCons "NotTried" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Failed" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Ok" 'PrefixI 'False) (U1 :: Type -> Type)))
Methods from :: Outcome -> Rep Outcome x # to :: Rep Outcome x -> Outcome #
Show Outcome # |
Instance details Defined in Distribution.Client.BuildReports.Types Methods showsPrec :: Int -> Outcome -> ShowS # show :: Outcome -> String # showList :: [Outcome] -> ShowS #
Eq Outcome # |
Instance details Defined in Distribution.Client.BuildReports.Types Methods (==) :: Outcome -> Outcome -> Bool # (/=) :: Outcome -> Outcome -> Bool #
type Rep Outcome # |
Instance details Defined in Distribution.Client.BuildReports.Types type Rep Outcome = D1 ('MetaData "Outcome" "Distribution.Client.BuildReports.Types" "cabal-install-3.12.1.0-G554PkJj2SpDqyarXp9tbt" 'False) (C1 ('MetaCons "NotTried" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Failed" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Ok" 'PrefixI 'False) (U1 :: Type -> Type)))

# Constructing and writing reports

newBuildReport :: OS -> Arch -> CompilerId -> PackageIdentifier -> FlagAssignment -> [PackageIdentifier] -> BuildOutcome -> BuildReport #

# parsing and pretty printing

parseBuildReport :: ByteString -> Either String BuildReport #

parseBuildReportList :: ByteString -> [BuildReport] #

showBuildReport :: BuildReport -> String #

cabalInstallID :: PackageIdentifier #