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 maintainer: Herbert Valerio Riedel 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