packages feed

haskell-ci-0.18: haskell-ci.cabal

cabal-version:      2.2
name:               haskell-ci
version:            0.18
synopsis:           Cabal package script generator for Travis-CI
description:
  Script generator (@haskell-ci@) for
  [GitHub Actions](https://docs.github.com/en/actions) and
  [Travis-CI](https://travis-ci.org/)
  for continuous-integration testing of Haskell Cabal packages.
  .
  Included features (not limited to):
  .
  * Multiple GHC support
  * Dependency caching
  * cabal.project support (see [Nix-style local builds documentation](https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html))
  * Runs tests and builds benchmarks
  * Generates Haddocks
  * GHCJS support
  * building with specific constraints
  .
  === Quick Start Guide
  .
  Add a @tested-with@ line to your @.cabal@ file (e.g. @tested-with: GHC == 8.0.2 || == 8.2.2@) and then run @haskell-ci yourpackage.cabal -o .travis.yml@ to generate the Travis-CI job script.
  .
  See @haskell-ci --help@ for more information.

homepage:           https://haskell-ci.rtfd.org/
bug-reports:        https://github.com/haskell-CI/haskell-ci/issues
license:            GPL-3.0-or-later
license-file:       LICENSE
author:             Herbert Valerio Riedel, Oleg Grenrus
maintainer:         hvr@gnu.org
category:           Development
build-type:         Simple
tested-with:
  GHC ==8.2.2
   || ==8.4.4
   || ==8.6.5
   || ==8.8.4
   || ==8.10.7
   || ==9.0.2
   || ==9.2.8
   || ==9.4.8
   || ==9.6.4
   || ==9.8.1

extra-source-files: CHANGELOG.md
extra-source-files:
  fixtures/*.args
  fixtures/*.bash
  fixtures/*.github
  fixtures/*.patch
  fixtures/*.project
  fixtures/*.travis
  fixtures/servant/servant.cabal
  fixtures/servant-client/servant-client.cabal
  fixtures/servant-client-core/servant-client-core.cabal
  fixtures/servant-docs/servant-docs.cabal
  fixtures/servant-foreign/servant-foreign.cabal
  fixtures/servant-server/servant-server.cabal
  fixtures/splitmix/splitmix.cabal

source-repository head
  type:     git
  location: https://github.com/haskell-CI/haskell-ci.git

flag ShellCheck
  default: True
  manual:  True

library haskell-ci-internal
  default-language:   Haskell2010
  hs-source-dirs:     src
  ghc-options:
    -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates
    -Wcompat -Wnoncanonical-monad-instances

  if impl(ghc <8.8)
    ghc-options: -Wnoncanonical-monadfail-instances

  exposed-modules:
    HaskellCI
    HaskellCI.Auxiliary
    HaskellCI.Bash
    HaskellCI.Bash.Template
    HaskellCI.Cabal
    HaskellCI.Cli
    HaskellCI.Compiler
    HaskellCI.Config
    HaskellCI.Config.Components
    HaskellCI.Config.ConstraintSet
    HaskellCI.Config.CopyFields
    HaskellCI.Config.Docspec
    HaskellCI.Config.Doctest
    HaskellCI.Config.Dump
    HaskellCI.Config.Empty
    HaskellCI.Config.Folds
    HaskellCI.Config.HLint
    HaskellCI.Config.Installed
    HaskellCI.Config.Jobs
    HaskellCI.Config.PackageScope
    HaskellCI.Config.Ubuntu
    HaskellCI.Config.Validity
    HaskellCI.Diagnostics
    HaskellCI.Error
    HaskellCI.Ghcup
    HaskellCI.GitConfig
    HaskellCI.GitHub
    HaskellCI.GitHub.Yaml
    HaskellCI.HeadHackage
    HaskellCI.Jobs
    HaskellCI.List
    HaskellCI.MonadErr
    HaskellCI.Newtypes
    HaskellCI.OptionsGrammar
    HaskellCI.OptparseGrammar
    HaskellCI.Package
    HaskellCI.ParsecUtils
    HaskellCI.Prelude
    HaskellCI.Sh
    HaskellCI.ShVersionRange
    HaskellCI.TestedWith
    HaskellCI.Tools
    HaskellCI.Travis
    HaskellCI.Travis.Yaml
    HaskellCI.VersionInfo
    HaskellCI.YamlSyntax

  default-extensions:
    BangPatterns
    DeriveAnyClass
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    DerivingStrategies
    GeneralizedNewtypeDeriving
    NoImplicitPrelude
    ScopedTypeVariables
    TypeOperators

  other-extensions:
    CPP
    NamedFieldPuns
    OverloadedLabels
    ViewPatterns

  build-depends:
    , base          >=4.10      && <4.20
    , binary        ^>=0.8.5.1
    , bytestring    ^>=0.10.8.1 || ^>=0.11.1.0 || ^>=0.12.0.2
    , Cabal-syntax  ^>=3.10.1.0
    , containers    ^>=0.5.7.1  || ^>=0.6.0.1
    , deepseq       ^>=1.4.2.0  || ^>=1.5.0.0
    , directory     ^>=1.3.0.0
    , filepath      ^>=1.4.1.1
    , mtl           ^>=2.2.2    || ^>=2.3.1
    , parsec        ^>=3.1.13.0
    , pretty        ^>=1.1.3.3
    , process       ^>=1.4.3.0  || ^>=1.6.1.0
    , text          ^>=1.2.3.0  || ^>=2.0.1    || ^>=2.1
    , transformers  ^>=0.5.2.0  || ^>=0.6.1.0

  if !impl(ghc >=8.2)
    build-depends: bifunctors ^>=5.5.4

  -- other dependencies
  build-depends:
    , aeson                          ^>=2.1.0.0    || ^>=2.2.0.0
    , attoparsec                     ^>=0.14.1
    , base-compat                    ^>=0.13.0
    , base16-bytestring              ^>=1.0.1.0
    , cabal-install-parsers          ^>=0.6.1.1
    , cryptohash-sha256              ^>=0.11.101.0
    , exceptions                     ^>=0.10.0
    , generic-lens-lite              ^>=0.1
    , HsYAML                         ^>=0.2.0.0
    , indexed-traversable            ^>=0.1.1
    , indexed-traversable-instances  ^>=0.1
    , ini                            ^>=0.4.1
    , lattices                       ^>=2.2
    , network-uri                    ^>=2.6.1.0
    , optparse-applicative           ^>=0.18.1.0
    , temporary                      ^>=1.3
    , unordered-containers           ^>=0.2.10.0
    , zinza                          ^>=0.2

  -- ShellCheck. Would need newer transformers for older GHC
  if flag(shellcheck)
    build-depends: ShellCheck ==0.9.0

executable haskell-ci
  main-is:          Main.hs
  ghc-options:      -threaded -rtsopts
  hs-source-dirs:   cli
  build-depends:
    , base
    , haskell-ci-internal

  default-language: Haskell2010

test-suite golden
  default-language: Haskell2010
  type:             exitcode-stdio-1.0
  main-is:          Tests.hs
  hs-source-dirs:   test

  -- inherited constraints via lib:haskell-ci
  build-depends:
    , base
    , base-compat
    , bytestring
    , Cabal-syntax
    , directory
    , filepath
    , haskell-ci-internal
    , transformers

  -- dependencies needing explicit constraints
  build-depends:
    , ansi-terminal  >=1.0      && <1.1
    , Diff           ^>=0.4.0   || ^>=0.5
    , tasty          ^>=1.4.1   || ^>=1.5
    , tasty-golden   ^>=2.3.1.1