@hackage / cabal-plan

Library and utility for processing cabal's plan.json file

Latest0.7.6.1

About

Metadata

  • Last updated , by phadej
  • License GPL-2.0-or-later
  • Categories Development
  • Maintained by: hvr@gnu.org

  • Lottery factor: 2

Links

Installation

Tested Compilers

  1. 9.12.2
  2. 9.10.2
  3. 9.8.4
  4. 9.6.7
  5. 9.4.8
  6. 9.2.8
  7. 9.0.2
  8. 8.10.7
  9. 8.8.4

Package Flags

Use the -f option with cabal commands to enable flags

    exe (on by default)

    Enable exe:cabal-plan component

    license-report (off by default)

    Enable license-report sub-command (only relevant when the exe flag is active)

    _ (off by default)

    Enable underlining of primary unit-ids

Readme

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's Nix-style local builds 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 report example for cabal-plan (Pandoc rendered HTML)

See also "New things in Haskell package QA" Blogpost for a description of the topo and dot operations as well as how to enable tab-completion.