packages feed

packunused-0.1.2: packunused.cabal

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 <hvr@gnu.org>
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