File cabal-plan.cabal of Package cabal-plan

cabal-version:       2.2
name:                cabal-plan
version:             0.7.3.0
x-revision:          2

synopsis:            Library and utility for processing cabal's plan.json file
description: {
This package provides a library (see "Cabal.Plan") for decoding @plan.json@ files as
well as the simple tool @cabal-plan@ for extracting and pretty printing
the information contained in the @plan.json@ file.
.
@plan.json@ files are generated by [cabal](https://hackage.haskell.org/package/cabal-install)'s [Nix-style local builds](http://cabal.readthedocs.io/en/latest/nix-local-build.html) and contain detailed information about the build/install plan computed by the cabal solver.
.
== @cabal-plan@ utility
.
The @cabal-plan@ executable (enabled via the @exe@ cabal flag) provides various operations:
.
[info] Show basic report of dependency tree
[show] Dump 'PlanJson' data-structure via 'Show' instance
[tred] Show dependency tree as a graph
[diff] Diff two install plans
[list-bins] List all binaries
[list-bin] List single binary (useful for scripting, e.g. @cabal list-bin exe:cabal-plan@)
[fingerprint] Print SHA256 sums of dependencies' source tarballs and cabal files
[dot] Generate graph of dependencies in @.dot@ format
[topo] Print plan topologically sorted
[license-report] Generate license report for a component (only available when built with @license-report@ flag enabled); see <src/example/cabal-plan.md report example for cabal-plan> (<src/example/cabal-plan.html Pandoc rendered HTML>)
.
See also ["New things in Haskell package QA" Blogpost](https://oleg.fi/gists/posts/2018-01-08-haskell-package-qa.html) for a description of the @topo@ and @dot@ operations as well as how to enable tab-completion.
}

bug-reports:         https://github.com/hvr/cabal-plan/issues
license:             GPL-2.0-or-later
license-files:       LICENSE.GPLv2 LICENSE.GPLv3
author:              Herbert Valerio Riedel
maintainer:          hvr@gnu.org
copyright:           2016 Herbert Valerio Riedel
category:            Development
build-type:          Simple

tested-with:
  GHC==9.6.2,
  GHC==9.4.5,
  GHC==9.2.8,
  GHC==9.0.2,
  GHC==8.10.7,
  GHC==8.8.4,
  GHC==8.6.5,
  GHC==8.4.4,
  GHC==8.2.2

extra-source-files:
  ChangeLog.md
  example/cabal-plan.html
  example/cabal-plan.md

----------------------------------------------------------------------------

flag exe
  -- this automatic flag allows the cabal solver to disable the exe:cabal-plan component (& its build-deps);
  -- IOW, emulate https://github.com/haskell/cabal/issues/4660
  description: Enable @exe:cabal-plan@ component

flag license-report
  description: Enable @license-report@ sub-command (only relevant when the @exe@ flag is active)
  manual: True
  default: False

flag _
  description: Enable underlining of primary unit-ids
  manual: True
  default: False

library
  default-language:    Haskell2010
  other-extensions:    OverloadedStrings
                       GeneralizedNewtypeDeriving
                       RecordWildCards
  exposed-modules:     Cabal.Plan

  build-depends:       base              ^>= 4.10.0.0 || ^>=4.11.0.0 || ^>=4.12.0.0 || ^>=4.13.0.0 || ^>=4.14.0.0 || ^>=4.15.0.0 || ^>=4.16.0.0 || ^>=4.17.0.0 || ^>=4.18.0.0
                     , aeson             ^>= 2.0.0.0 || ^>=2.1.0.0 || ^>=2.2.0.0
                     , bytestring        ^>= 0.10.8.0 || ^>=0.11.1.0
                     , containers        ^>= 0.5.10 || ^>= 0.6.0.1
                     , text              ^>= 1.2.3 || ^>=2.0.1
                     , directory         ^>= 1.3.0.2
                     , filepath          ^>= 1.4.1.2
                     , base16-bytestring ^>= 1.0.0.0

  hs-source-dirs:      src

  ghc-options: -Wall

executable cabal-plan
  default-language:    Haskell2010
  other-extensions:    RecordWildCards

  hs-source-dirs: src-exe
  main-is: cabal-plan.hs
  other-modules: Paths_cabal_plan LicenseReport Flag ProcessLazyByteString
  other-modules: CText
  autogen-modules: Paths_cabal_plan
  ghc-options: -Wall

  if flag(exe)
    -- dependencies w/ inherited version ranges via 'cabal-plan' library
    -- Note: exe is installable only with GHC-8.0+
    build-depends: cabal-plan
                 , base
                 , text
                 , containers
                 , bytestring
                 , directory

    -- dependencies which require version bounds
    build-depends: mtl            ^>= 2.2.2 || ^>=2.3.1
                 , async          ^>= 2.2.2
                 , ansi-terminal  ^>= 0.11 || ^>=1.0
                 , base-compat    ^>= 0.13.0
                 , optics-core    ^>= 0.4
                 , optparse-applicative ^>=0.17.0.0 || ^>=0.18.1.0
                 , parsec         ^>= 3.1.13
                 , process        ^>= 1.6.1.0
                 , semialign      ^>= 1.3
                 , singleton-bool ^>= 0.1.5
                 , these          ^>= 1.2
                 , topograph      ^>= 1.0.0.2
                 , transformers   ^>= 0.5.2.0 || ^>=0.6.1.0
                 , vector         ^>= 0.12.0.1 || ^>=0.13.0.0

    if flag(license-report)
      build-depends: Cabal-syntax    ^>=3.10.1.0
                   , cabal-install-parsers ^>=0.6
                   , tar      ^>= 0.5.1.0
                   , zlib     ^>= 0.6.2
                   , filepath ^>= 1.4.1.1

    if flag(_)
      cpp-options: -DUNDERLINE_SUPPORT
  else
    buildable: False

  ghc-options: -Wall

source-repository head
  type: git
  location: https://github.com/hvr/cabal-plan
openSUSE Build Service is sponsored by