packages feed

cabal-matrix-1.0.2.0: cabal-matrix.cabal

cabal-version:   3.0
name:            cabal-matrix
version:         1.0.2.0
author:          mniip
maintainer:      mniip
license:         BSD-3-Clause
category:        Development
synopsis:        Matrix builds for cabal
description:
  @cabal-matrix@ is a matrix builder for cabal. It lets you specify in a
  flexible way a list of configurations in which something can be built, such as
  compiler versions, or dependency version restrictions. It will then run the
  builds in parallel (locally), and present the results in a TUI table where the
  specific outcomes can be more closely examined. This is useful for inventing
  and correcting dependency bounds for your package, as well as finding
  dependency issues in other packages and fixing them.

homepage:        https://github.com/mniip/cabal-matrix
build-type:      Simple
extra-doc-files:
  CHANGELOG.md
  README.md

source-repository HEAD
  type:     git
  location: https://github.com/mniip/cabal-matrix.git

common common
  default-language:   GHC2021
  default-extensions:
    BlockArguments
    DeriveAnyClass
    DeriveTraversable
    DerivingStrategies
    DuplicateRecordFields
    LambdaCase
    MultiWayIf
    NoFieldSelectors
    OverloadedRecordDot
    OverloadedStrings
    RecordWildCards
    ViewPatterns

library
  import:          common
  build-depends:
    , aeson                 >=2.0      && <2.3
    , base                  >=4.16     && <4.22
    , bytestring            >=0.11     && <0.13
    , Cabal                 >=3.8      && <3.17
    , cabal-install         >=3.8      && <3.17
    , cabal-install-solver  >=3.8      && <3.17
    , Cabal-syntax          >=3.8      && <3.17
    , containers            >=0.6      && <0.9
    , directory             >=1.3      && <1.4
    , filepath              >=1.3      && <1.6
    , hashable              >=1.3      && <1.6
    , optparse-applicative  >=0.19.0.0 && <0.20
    , primitive             >=0.7      && <0.10
    , process               >=1.6      && <1.7
    , safe-exceptions       >=0.1      && <0.2
    , split                 >=0.1      && <0.3
    , stm                   >=2.5      && <2.6
    , text                  >=2.0      && <2.2
    , transformers          >=0.5      && <0.7
    , vty                   >=6.0      && <6.5
    , vty-crossplatform     >=0.1      && <0.5
    , word-wrap             >=0.3      && <0.6

  hs-source-dirs:  src
  exposed-modules:
    Cabal.Matrix.CabalArgs
    Cabal.Matrix.Cli
    Cabal.Matrix.Files
    Cabal.Matrix.Main
    Cabal.Matrix.Matrix
    Cabal.Matrix.ProcessRunner
    Cabal.Matrix.Record
    Cabal.Matrix.Rectangle
    Cabal.Matrix.Scheduler
    Cabal.Matrix.Tui
    Cabal.Matrix.Tui.Common
    Cabal.Matrix.Tui.Flavor
    Cabal.Matrix.Tui.Headers
    Cabal.Matrix.Tui.Table

executable cabal-matrix
  import:         common
  build-depends:
    , base
    , cabal-matrix

  -- -threaded is required so that waiting for child processes does not block
  -- the RTS
  ghc-options:    -threaded
  hs-source-dirs: app
  main-is:        Main.hs