[Haskell-cafe] [ANN] cabal-bounds: A command line program for managing the bounds/versions of the dependencies in a cabal file.

Daniel Trstenjak daniel.trstenjak at gmail.com
Sun Feb 23 17:47:12 UTC 2014


Hi all,

If you have several cabalized projects, then it can be quite time consuming to keep the
bounds of your dependencies up to date. Especially if you're following the package versioning policy,
then you want to raise your upper bounds from time to time, to allow the building with newer
versions of the dependencies.

`cabal-bounds` tries to automate this update process to some degree. So a typical update process might look like:

    $> # update the version infos of all libraries
    $> cabal update

    $> # drops the upper bound of all dependencies in 'myproject.cabal', most likely you want to ignore 'base'
    $> cabal-bounds drop --upper --ignore=base myproject.cabal

    $> # create a cabal sandbox for building of 'myproject'
    $> cabal sandbox init
      
    $> # build 'myproject'
    $> cabal install

    $> # update the upper bound of all dependencies in 'myproject.cabal' by the cabal build information
    $> cabal-bounds update --upper --ignore=base myproject.cabal dist/dist-sandbox-*/setup-config


Perhaps the currently most annoying thing is, that you have to live with the reformating of your
`cabal` file done by the pretty printer of the `Cabal` library.

https://github.com/dan-t/cabal-bounds


Greetings,
Daniel


More information about the Haskell-Cafe mailing list