name: packunused version: 0.1.2 synopsis: Tool for detecting redundant Cabal package dependencies homepage: https://github.com/hvr/packunused bug-reports: https://github.com/hvr/packunused/issues license: BSD3 license-file: LICENSE author: Herbert Valerio Riedel maintainer: Herbert Valerio Riedel copyright: © 2014 Herbert Valerio Riedel category: Distribution build-type: Simple cabal-version: >=1.10 tested-with: GHC==8.0.2, GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2 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 . Experimental support for @stack@: . > stack setup --upgrade-cabal # necessary only when stack's global Cabal installation is out of date > stack clean > stack build --ghc-options '-ddump-minimal-imports -O0' > 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 > extra-source-files: changelog.md source-repository head type: git location: https://github.com/hvr/packunused.git executable packunused main-is: packunused.hs other-modules: Paths_packunused default-language: Haskell2010 other-extensions: CPP, RecordWildCards ghc-options: -Wall -fwarn-tabs -fno-warn-unused-do-bind build-depends: base >= 4.5 && < 4.10 , Cabal >= 1.24 && < 1.25 , optparse-applicative >= 0.8 && < 0.14 , directory >= 1.1 && < 1.4 , filepath >= 1.3 && < 1.5 , haskell-src-exts >= 1.18.2 && < 1.19 , process >= 1.1 && < 1.5 , split >= 0.2 && < 0.3