cabal-plan-0.7.1.0: ChangeLog.md
# Revision history for `cabal-plan`
## 0.7.1.0
### `exe:cabal-plan` Executable
* Add `--ascii` / `--unicode` flags to control output character set
* Add `dot-png` command as a version of `dot` command with different defaults
## 0.7.0.0
### `lib:cabal-plan` Library
* Support `local+noindex` style repositories: New `Repo` constructor: `RepoLocalNoIndex`.
* Support newer versions of dependencies (GHC-8.10, aeson-1.5, optics-core-0.3)
### `exe:cabal-plan` Executable
* Support `Cabal-3.2`
## 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
* `dot` command got new options
* `--root` to limit graph to specific roots
* `--output` to write directly to some file
* `--run-dot-png` and `--run-dot-pdf` to run `dot` for you
* `cabal-plan` executable depends on `optics-core` instead of `lens`.
Therefore is buildable only with GHC-8.0+
## 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.