GPL-2.0-or-later licensed by Herbert Valerio Riedel
This version can be pinned in stack with:cabal-plan-0.6.2.0@sha256:648b70896d310ec5f14c69f58696f636ccba5b3109a64dc4e30daece28f74aa3,5261
Module documentation for 0.6.2.0
Depends on 23 packages
(full list with versions ) :
aeson ,
ansi-terminal ,
async ,
base ,
base16-bytestring ,
base-compat ,
bytestring ,
cabal-plan ,
containers ,
directory ,
filepath ,
mtl ,
optics-core ,
optparse-applicative ,
parsec ,
process ,
semialign ,
singleton-bool ,
text ,
these ,
topograph ,
transformers ,
vector 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
utilityThe 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.
Revision history for cabal-plan
0.6.2.0
lib:cabal-plan
Library
Add findPlanJson
function
exe:cabal-plan
Executable
Drop process-extras
dependency
0.6.1.0
lib:cabal-plan
Library
No changes
exe:cabal-plan
Executable
0.6.0.0
lib:cabal-plan
Library
ExactPath
constructor to skip find
in findAndDecodePlanJson
.
(Note: see also decodePlanJson
)
exe:cabal-plan
Executable
--plan-json
for exact plan.json
location
--relative
search for project root relative to that directory
--colors=auto|never|always
flag
tred
command to print transtive reduction of dependency graph
diff
command to compare two plans
list-bins
prints full selector “pkg:type:name”, i.e. includes package name
0.5.0.0
lib:cabal-plan
Library
New dispCompNameTarget
function for pretty-printing CompName
s in cabal’s target-selector syntax.
Add support for cabal 2.4’s pkg-src
package provenience metadata.
Add support for cabal 2.4.1’s pkg-cabal-sha256
package description checksum field.
exe:cabal-plan
Executable
Add support for including package description checksums in fingerprint
output
Add support for printing flag selection in topo
output
Fail gracefully in license-report
when metadata cannot be found in index
0.4.0.0
lib:cabal-plan
Library
New SearchPlanJson
type to specify strategy for locating plan.json
Add SearchPlanJson
parameter to findAndDecodePlanJson
function and change return type
Expose separate findProjectRoot
operation
exe:cabal-plan
Executable
New command license-report
(requires Cabal flag license-report
to be active)
0.3.0.0
lib:cabal-plan
Library
Add support for foreign-lib components.
Add support for dist-dir
plan.json
field.
Make Sha256
type abstract and add new sha256{To,From}ByteString
conversion functions, as well as the new parseSha256
function.
Introduce FlagName
newtype.
Add FromJSONKey
/ToJSONKey
instances for UnitId
, PackageName
, and PkgId
.
exe:cabal-plan
Executable
smart completer for list-bin/list-bins pattern
new command topo
(printing out topographic sorting of install-plan)
dot
prints component dependency graph. New options:
--tred
transitive reduction
--tred-weights
Adjust edge thickness during transitive reduction
--path-from pkgA --path-from pkgB
Highlight dependency paths from pkgA to pkgB
--revdep pkg
highlight reverse dependencies of pkg in the install plan
0.2.0.0
Add an optional --builddir
argument to all commands and to findAndDecodePlanJson
function.
Add experimental support for underlining.
Reimplement CLI with optparse-applicative
.
Add new sub-command list-bins
and change semantics of existing list-bin
sub-cmd.
0.1.1.0
Add cabal-plan fingerprint
command for printing
sha256 sums of source tarballs.
0.1.0.0
First version. Released on an unsuspecting world.
Stackage is a service provided by the
Haskell Foundation
│ Originally developed by
FP Complete