packages feed

haskell-ci-0.2: haskell-ci.cabal

cabal-version:      2.2
name:               haskell-ci
version:            0.2
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
  * 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:            BSD-3-Clause
license-file:       LICENSE
author:             Herbert Valerio Riedel, Oleg Grenrus
maintainer:         hvr@gnu.org
category:           Development
build-type:         Simple
tested-with:        GHC ==8.6.3 || ==8.4.4 || ==8.2.2 || ==8.0.2
extra-source-files:
  fixtures/cabal.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/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.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.Extras
    HaskellCI.GHC
    HaskellCI.Glob
    HaskellCI.MakeTravisOutput
    HaskellCI.Newtypes
    HaskellCI.Optimization
    HaskellCI.OptionsGrammar
    HaskellCI.OptparseGrammar
    HaskellCI.Package
    HaskellCI.ParsecError
    HaskellCI.ParsecUtils
    HaskellCI.Project
    HaskellCI.TestedWith
    HaskellCI.Version

  -- vendored from Cabal development version
  other-modules:      Distribution.Fields.Pretty
  ghc-options:
    -Wall -Wcompat -Wnoncanonical-monad-instances
    -Wnoncanonical-monadfail-instances

  hs-source-dirs:     src
  default-extensions:
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable

  other-extensions:
    CPP
    NamedFieldPuns
    OverloadedLabels
    ViewPatterns

  build-depends:
    , base          >=4.9      && <4.13
    , bytestring    ^>=0.10.8.1
    , Cabal         ^>=2.4
    , containers    ^>=0.5.7.1 || ^>=0.6.0.1
    , deepseq       ^>=1.4.2.0
    , directory     ^>=1.3.0.0
    , filepath      ^>=1.4.1.1
    , parsec        ^>=3.1.13.0
    , pretty        ^>=1.1.3.3
    , text          ^>=1.2.3.0
    , transformers  ^>=0.5.2.0

  -- other dependencies
  build-depends:
    , base-compat           ^>=0.10.5
    , generic-lens          ^>=1.1.0.0
    , HsYAML                ^>=0.1.1.3
    , microlens             ^>=0.4.10
    , optparse-applicative  ^>=0.14.3.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.6.0

executable haskell-ci
  main-is:          Main.hs
  ghc-options:      -Wall
  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.8.0.2
    , base
    , bytestring
    , Diff                 ^>=0.3.4
    , directory
    , filepath
    , haskell-ci-internal
    , tasty                >=1.0     && <1.2
    , tasty-golden         ^>=2.3.1.1
    , transformers

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