Daniel Trstenjak | 23 Feb 18:47 2014

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

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.

(Continue reading)