packunused: Tool for detecting redundant Cabal package dependencies
This simple CLI tool allows to find out which of the packages listed as
build-depends
in a Cabal package description file are redundant.
packunused
works by taking advantage of GHC's
-ddump-minimal-imports
feature which creates .import
files for
each compiled module containing a minimal set of explicit import
declarations. These .import
files together with Cabal's generated
package configuration meta-data is analyzed by packunused
to
detect potentially redundant package dependencies.
In order to use packunused
you have to configure the package as
usual. See the example session below:
cabal clean rm *.imports cabal configure -O0 --disable-library-profiling cabal build --ghc-option=-ddump-minimal-imports packunused
The -O0 --disable-library-profiling
options are just to speed up
compilation. In some cases you might want to pass additional options
to the configure
step, such as --enable-benchmark
or
--enable-tests
.
When run, packunused
prints a report to standard output listing
its findings for each component built. The following is an example
for the packunused
package itself, with a redundant dependency
added for demonstration on purpose:
detected package components ~~~~~~~~~~~~~~~~~~~~~~~~~~~ - executable(s): packunused (component names suffixed with '*' are not configured to be built) executable(packunused) ~~~~~~~~~~~~~~~~~~~~~~ The following package dependencies seem redundant: - criterion-0.6.2.0-9dd4d764629a47662168743b2dfda9bc
Downloads
- packunused-0.1.1.2.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 0.1.0.0, 0.1.0.1, 0.1.1.0, 0.1.1.1, 0.1.1.2, 0.1.1.3, 0.1.1.4, 0.1.2 |
---|---|
Change log | changelog.md |
Dependencies | base (>=4.5 && <4.8), Cabal (>=1.14 && <1.21), directory (>=1.1 && <1.3), filepath (>=1.3 && <1.4), haskell-src-exts (>=1.13 && <1.16), optparse-applicative (>=0.8 && <0.9), split (>=0.2 && <0.3) [details] |
License | BSD-3-Clause |
Copyright | © 2014 Herbert Valerio Riedel |
Author | Herbert Valerio Riedel |
Maintainer | Herbert Valerio Riedel <hvr@gnu.org> |
Category | Distribution |
Home page | https://github.com/hvr/packunused |
Bug tracker | https://github.com/hvr/packunused/issues |
Source repo | head: git clone https://github.com/hvr/packunused.git |
Uploaded | by HerbertValerioRiedel at 2014-04-26T22:26:20Z |
Distributions | |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Executables | packunused |
Downloads | 8724 total (14 in the last 30 days) |
Rating | 2.0 (votes: 1) [estimated by Bayesian average] |
Your Rating | |
Status | Docs not available [build log] Last success reported on 2015-06-06 [all 7 reports] |