The cabal-bounds package
A command line program for managing the bounds/versions of the dependencies in a cabal file.
cabal-bounds is able to do these things with the bounds of the dependencies in the cabal file:
update them by the library versions of the current cabal build
update them by the library versions of a haskell platform release
update them by the library versions specified by a file
dump the libraries/dependencies and their lower bound versions from the cabal file(s) into a file
For further details please consult the README.
You have to ensure, that the Cabal library of cabal-bounds matches the one used by the cabal binary:
$ cabal --version cabal-install version 22.214.171.124 using version 1.18.1 of the Cabal library
$ cabal install --constraint="Cabal == 1.18.1" cabal-bounds
If you update the cabal binary and the used Cabal library changes, then you have to rebuild cabal-bounds.
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.
To reformat your cabal file without changing any bounds you can call cabal-bounds with the name of a section that isn't present in the cabal file:
$ cabal-bounds drop --executable=blub myproject.cabal
|Versions||0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.1.9, 0.1.10, 0.1.11, 0.1.12, 0.1.13, 0.1.14, 0.1.15, 0.1.16, 0.2, 0.2.1, 0.3, 0.4, 0.4.1, 0.5, 0.6, 0.7, 0.8, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.8.5, 0.8.6, 0.8.7, 0.8.8, 0.8.9|
|Dependencies||base (>=3 && <5), Cabal (>=1.18.0 && <1.21), cabal-bounds, cabal-lenses (==0.4.*), cmdargs (>=0.10.5 && <0.11), either (>=4.1.1 && <4.4), lens (>=4.0.1 && <4.7), strict (>=0.3.2 && <0.4), transformers (>=0.3.0.0 && <0.5), unordered-containers (>=0.2.3.3 && <0.3)|
|Source repository||head: git clone https://github.com/dan-t/cabal-bounds|
|Upload date||Sat Nov 22 14:25:54 UTC 2014|
|Downloads||2286 total (320 in last 30 days)|
- cabal-bounds-0.8.9.tar.gz [browse] (Cabal source package)
- Package description (included in the package)
For package maintainers and hackage trustees