packunused-0.1.0.1: packunused.cabal
name: packunused
version: 0.1.0.1
synopsis: Tool for detecting redundant Cabal package dependencies
homepage: https://github.com/hvr/packunused
license: BSD3
license-file: LICENSE
author: Herbert Valerio Riedel <hvr@gnu.org>
maintainer: Herbert Valerio Riedel <hvr@gnu.org>
category: Distribution
build-type: Simple
cabal-version: >=1.10
tested-with: GHC ==7.6.3, GHC ==7.6.2, GHC ==7.6.1, GHC ==7.4.2, GHC ==7.4.1
description:
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 depencencies seem redundant:
>
> - criterion-0.6.2.0-9dd4d764629a47662168743b2dfda9bc
>
source-repository head
type: git
location: https://github.com/hvr/packunused.git
executable packunused
main-is: packunused.hs
default-language: Haskell2010
other-extensions: CPP, DeriveDataTypeable, RecordWildCards
ghc-options: -Wall -fwarn-tabs -fno-warn-unused-do-bind
build-depends:
base >=4.5 && <4.7,
Cabal >=1.14 && <1.17,
cmdargs ==0.10.*,
directory >=1.1 && <1.3,
filepath ==1.3.*,
haskell-src-exts >=1.13 && <1.15