packages feed

haskell-ci-0.6: haskell-ci.cabal

cabal-version:      2.2
name:               haskell-ci
version:            0.6
synopsis:           Cabal package script generator for Travis-CI
description:
  Script generator (@haskell-ci@) for [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
  * macOS (OSX) support
  * 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.1
extra-source-files:
  CHANGELOG.md
  fixtures/cabal.haskell-ci
  fixtures/cabal.project.haskell-ci
  fixtures/cabal.project.fail-versions
  fixtures/cabal.project.fail-versions.stderr
  fixtures/haskell-ci.cabal
  fixtures/cabal.project.empty-line
  fixtures/cabal.project.messy
  fixtures/cabal.project.copy-fields.all
  fixtures/cabal.project.copy-fields.some
  fixtures/cabal.project.copy-fields.none
  fixtures/haskell-ci.cabal.stderr
  fixtures/cabal.project.empty-line.stderr
  fixtures/cabal.project.messy.stderr
  fixtures/cabal.project.copy-fields.all.stderr
  fixtures/cabal.project.copy-fields.some.stderr
  fixtures/cabal.project.copy-fields.none.stderr
  fixtures/haskell-ci.cabal.travis.yml
  fixtures/cabal.project.empty-line.travis.yml
  fixtures/cabal.project.messy.travis.yml
  fixtures/cabal.project.copy-fields.all.travis.yml
  fixtures/cabal.project.copy-fields.some.travis.yml
  fixtures/cabal.project.copy-fields.none.travis.yml
  fixtures/cabal.project.travis-patch
  fixtures/cabal.project.travis-patch.patch
  fixtures/cabal.project.travis-patch.stderr
  fixtures/cabal.project.travis-patch.travis.yml
  fixtures/servant-client-core/*.cabal
  fixtures/servant-client/*.cabal
  fixtures/servant-docs/*.cabal
  fixtures/servant-foreign/*.cabal
  fixtures/servant-server/*.cabal
  fixtures/servant/*.cabal
  fixtures/doc/tutorial/tutorial.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
  exposed-modules:
    HaskellCI
    HaskellCI.Cli
    HaskellCI.Compiler
    HaskellCI.Config
    HaskellCI.Config.ConstraintSet
    HaskellCI.Config.CopyFields
    HaskellCI.Config.Doctest
    HaskellCI.Config.Dump
    HaskellCI.Config.Folds
    HaskellCI.Config.HLint
    HaskellCI.Config.Installed
    HaskellCI.Config.Jobs
    HaskellCI.Config.Ubuntu
    HaskellCI.Diagnostics
    HaskellCI.Glob
    HaskellCI.Jobs
    HaskellCI.List
    HaskellCI.MonadErr
    HaskellCI.Newtypes
    HaskellCI.Optimization
    HaskellCI.OptionsGrammar
    HaskellCI.OptparseGrammar
    HaskellCI.Package
    HaskellCI.ParsecError
    HaskellCI.ParsecUtils
    HaskellCI.Prelude
    HaskellCI.Project
    HaskellCI.Sh
    HaskellCI.ShVersionRange
    HaskellCI.TestedWith
    HaskellCI.Tools
    HaskellCI.Travis
    HaskellCI.Travis.Yaml
    HaskellCI.YamlSyntax

  ghc-options:        -Wall -Wcompat -Wnoncanonical-monad-instances

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

  hs-source-dirs:     src
  default-extensions:
    NoImplicitPrelude
    BangPatterns
    DeriveAnyClass
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    DerivingStrategies
    GeneralizedNewtypeDeriving
    ScopedTypeVariables

  other-extensions:
    CPP
    NamedFieldPuns
    OverloadedLabels
    ViewPatterns

  build-depends:
    , base          >=4.10     && <4.14
    , bytestring    ^>=0.10.8.1
    , Cabal         ^>=3.0
    , containers    ^>=0.5.7.1 || ^>=0.6.0.1
    , deepseq       ^>=1.4.2.0
    , directory     ^>=1.3.0.0
    , filepath      ^>=1.4.1.1
    , mtl           >=2.2.2
    , parsec        ^>=3.1.13.0
    , pretty        ^>=1.1.3.3
    , process       ^>=1.4.3.0 || ^>=1.6.1.0
    , text          ^>=1.2.3.0
    , transformers  ^>=0.5.2.0

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

  -- other dependencies
  build-depends:
    , aeson                 ^>=1.4.2.0
    , base-compat           ^>=0.11
    , exceptions            ^>=0.10.0
    , generic-lens          ^>=1.2.0.0
    , HsYAML                ^>=0.2.0.0
    , lattices              ^>=2
    , microlens             ^>=0.4.10
    , network-uri           ^>=2.6.1.0
    , optparse-applicative  ^>=0.15
    , temporary             ^>=1.3
    , unordered-containers  ^>=0.2.10.0

  default-language:   Haskell2010

  -- ShellCheck. Would need newer transformers for older GHC
  if (flag(shellcheck) && impl(ghc >=7.10 && <8.7))
    build-depends: ShellCheck ==0.7.0

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

  default-language: Haskell2010

test-suite golden
  type:             exitcode-stdio-1.0
  main-is:          Tests.hs
  hs-source-dirs:   test
  build-depends:
    , ansi-terminal        ^>=0.10
    , base
    , base-compat
    , bytestring
    , Diff                 ^>=0.4.0
    , directory
    , filepath
    , haskell-ci-internal
    , tasty                >=1.0     && <1.3
    , tasty-golden         ^>=2.3.1.1
    , transformers

  -- inherited constraints via lib:haskell-ci
  -- dependencies needing explicit constraints
  default-language: Haskell2010