ANN: Cabal v1.18.0 released

Hi all, On behalf of the cabal maintainers and contributors I'm proud to announce the Cabal (and cabal-install) 1.18.0 release. To install run cabal update && cabal install Cabal-1.18.0 cabal-install-1.18.0 With 854 commits since the last release there are two many improvements and bug fixes to list them here, but two highlights are: * Hermetic builds using sandboxes. This should reduce the number of "dependency hell" and broken package DB problems. * GHCi support. It's now much easier to use ghci when developing your packages, especially if those packages require preprocessors (e.g. hsc2hs). Here's how working on a package might look like using the new features: # Only once: cabal sandbox init cabal install --only-dependencies --enable-tests # Configure, build, and run tests: cabal test # now implies configure and build # Play around with the code in GHCi: cabal repl Mikhail wrote a bit more about the user visible changes on his blog: http://coldwa.st/e/blog/2013-08-21-Cabal-1-18.html For a complete list of changes run git log cabal-install-v1.16.0.2..cabal-install-v1.18.0 in the cabal repo or look at the GitHub compare page: https://github.com/haskell/cabal/compare/cabal-install-v1.16.0.2...cabal-ins... (only shows the last 250 commits). 57 people contributed to this release! 503 Mikhail Glushenkov 99 Johan Tibell 41 Duncan Coutts 39 Ian Lynagh 19 Brent Yorgey 19 Thomas Tuegel 18 Ben Millwood 16 Eyal Lotem 10 Thomas Dziedzic 7 Andres Loeh 6 John Wiegley 6 Benno Fünfstück 5 Gregory Collins 4 Herbert Valerio Riedel 4 Simon Hengel 3 Joachim Breitner 3 Luke Iannini 3 Bryan Richter 3 Richard Eisenberg 3 Tuncer Ayaz 3 Jens Petersen 2 Arun Tejasvi Chaganty 2 Bryan O'Sullivan 2 Eric Kow 2 Jookia 2 Paolo G. Giarrusso 2 Paolo Capriotti 1 Sönke Hahn 1 Yitzchak Gale 1 Albert Krewinkel 1 stepcut 1 Alexander Kjeldaas 1 Austin Seipp 1 Bardur Arantsson 1 Ben Doyle 1 Ben Gamari 1 Bram 1 Carter Tazio Schonwald 1 Clint Adams 1 Daniel Wagner 1 David Lazar 1 Erik Hesselink 1 Eugene Sukhodolin 1 Gabor Greif 1 Jack Henahan 1 Jason Dagit 1 Ken Bateman 1 Mark Lentczner 1 Masahiro Yamauchi 1 Merijn Verstraaten 1 Michael Thompson 1 Niklas Hambüchen 1 Oleksandr Manzyuk 1 Patrick Premont 1 Roman Cheplyaka 1 Sergei Trofimovich 1 Stephen Blackheath -- Johan, on behalf of the cabal maintainers and contributors.

Thank you all for the hard work. The new features are already of great help
to me!
Cheers,
Darren
On 2013-09-04 2:13 PM, "Johan Tibell"
Hi all,
On behalf of the cabal maintainers and contributors I'm proud to announce the Cabal (and cabal-install) 1.18.0 release. To install run
cabal update && cabal install Cabal-1.18.0 cabal-install-1.18.0
With 854 commits since the last release there are two many improvements and bug fixes to list them here, but two highlights are:
* Hermetic builds using sandboxes. This should reduce the number of "dependency hell" and broken package DB problems.
* GHCi support. It's now much easier to use ghci when developing your packages, especially if those packages require preprocessors (e.g. hsc2hs).
Here's how working on a package might look like using the new features:
# Only once: cabal sandbox init cabal install --only-dependencies --enable-tests # Configure, build, and run tests: cabal test # now implies configure and build # Play around with the code in GHCi: cabal repl
Mikhail wrote a bit more about the user visible changes on his blog:
http://coldwa.st/e/blog/2013-08-21-Cabal-1-18.html
For a complete list of changes run
git log cabal-install-v1.16.0.2..cabal-install-v1.18.0
in the cabal repo or look at the GitHub compare page:
https://github.com/haskell/cabal/compare/cabal-install-v1.16.0.2...cabal-ins...
(only shows the last 250 commits).
57 people contributed to this release!
503 Mikhail Glushenkov 99 Johan Tibell 41 Duncan Coutts 39 Ian Lynagh 19 Brent Yorgey 19 Thomas Tuegel 18 Ben Millwood 16 Eyal Lotem 10 Thomas Dziedzic 7 Andres Loeh 6 John Wiegley 6 Benno Fünfstück 5 Gregory Collins 4 Herbert Valerio Riedel 4 Simon Hengel 3 Joachim Breitner 3 Luke Iannini 3 Bryan Richter 3 Richard Eisenberg 3 Tuncer Ayaz 3 Jens Petersen 2 Arun Tejasvi Chaganty 2 Bryan O'Sullivan 2 Eric Kow 2 Jookia 2 Paolo G. Giarrusso 2 Paolo Capriotti 1 Sönke Hahn 1 Yitzchak Gale 1 Albert Krewinkel 1 stepcut 1 Alexander Kjeldaas 1 Austin Seipp 1 Bardur Arantsson 1 Ben Doyle 1 Ben Gamari 1 Bram 1 Carter Tazio Schonwald 1 Clint Adams 1 Daniel Wagner 1 David Lazar 1 Erik Hesselink 1 Eugene Sukhodolin 1 Gabor Greif 1 Jack Henahan 1 Jason Dagit 1 Ken Bateman 1 Mark Lentczner 1 Masahiro Yamauchi 1 Merijn Verstraaten 1 Michael Thompson 1 Niklas Hambüchen 1 Oleksandr Manzyuk 1 Patrick Premont 1 Roman Cheplyaka 1 Sergei Trofimovich 1 Stephen Blackheath
-- Johan, on behalf of the cabal maintainers and contributors.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Thanks for all the hard work!
If you see this in OSX (#1009) while installing cabal 1.18:
*Warning: could not create a symlink in /Users/lemao/Library/Haskell/bin for
*
*cabal because the file exists there already but is not managed by cabal.
You*
*can create a symlink for this executable manually if you wish. The
executable*
*file has been installed at*
*/Users/user/Library/Haskell/ghc-7.6.3/lib/cabal-install-1.18.0/bin/cabal*
You will need to manually remove the pre-existing 1.16 links in
~/Library/Haskell/bin before installing again.
On Wed, Sep 4, 2013 at 5:11 PM, Johan Tibell
Hi all,
On behalf of the cabal maintainers and contributors I'm proud to announce the Cabal (and cabal-install) 1.18.0 release. To install run
cabal update && cabal install Cabal-1.18.0 cabal-install-1.18.0
With 854 commits since the last release there are two many improvements and bug fixes to list them here, but two highlights are:
* Hermetic builds using sandboxes. This should reduce the number of "dependency hell" and broken package DB problems.
* GHCi support. It's now much easier to use ghci when developing your packages, especially if those packages require preprocessors (e.g. hsc2hs).
Here's how working on a package might look like using the new features:
# Only once: cabal sandbox init cabal install --only-dependencies --enable-tests # Configure, build, and run tests: cabal test # now implies configure and build # Play around with the code in GHCi: cabal repl
Mikhail wrote a bit more about the user visible changes on his blog:
http://coldwa.st/e/blog/2013-08-21-Cabal-1-18.html
For a complete list of changes run
git log cabal-install-v1.16.0.2..cabal-install-v1.18.0
in the cabal repo or look at the GitHub compare page:
https://github.com/haskell/cabal/compare/cabal-install-v1.16.0.2...cabal-ins...
(only shows the last 250 commits).
57 people contributed to this release!
503 Mikhail Glushenkov 99 Johan Tibell 41 Duncan Coutts 39 Ian Lynagh 19 Brent Yorgey 19 Thomas Tuegel 18 Ben Millwood 16 Eyal Lotem 10 Thomas Dziedzic 7 Andres Loeh 6 John Wiegley 6 Benno Fünfstück 5 Gregory Collins 4 Herbert Valerio Riedel 4 Simon Hengel 3 Joachim Breitner 3 Luke Iannini 3 Bryan Richter 3 Richard Eisenberg 3 Tuncer Ayaz 3 Jens Petersen 2 Arun Tejasvi Chaganty 2 Bryan O'Sullivan 2 Eric Kow 2 Jookia 2 Paolo G. Giarrusso 2 Paolo Capriotti 1 Sönke Hahn 1 Yitzchak Gale 1 Albert Krewinkel 1 stepcut 1 Alexander Kjeldaas 1 Austin Seipp 1 Bardur Arantsson 1 Ben Doyle 1 Ben Gamari 1 Bram 1 Carter Tazio Schonwald 1 Clint Adams 1 Daniel Wagner 1 David Lazar 1 Erik Hesselink 1 Eugene Sukhodolin 1 Gabor Greif 1 Jack Henahan 1 Jason Dagit 1 Ken Bateman 1 Mark Lentczner 1 Masahiro Yamauchi 1 Merijn Verstraaten 1 Michael Thompson 1 Niklas Hambüchen 1 Oleksandr Manzyuk 1 Patrick Premont 1 Roman Cheplyaka 1 Sergei Trofimovich 1 Stephen Blackheath
-- Johan, on behalf of the cabal maintainers and contributors.
_______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel

On Wednesday, September 4, 2013 11:41:33 PM UTC+2, Yuri de Wit wrote:
Thanks for all the hard work!
If you see this in OSX (#1009) while installing cabal 1.18:
*Warning: could not create a symlink in /Users/lemao/Library/Haskell/bin for* *cabal because the file exists there already but is not managed by cabal. You* *can create a symlink for this executable manually if you wish. The executable* *file has been installed at* */Users/user/Library/Haskell/ghc-7.6.3/lib/cabal-install-1.18.0/bin/cabal*
You will need to manually remove the pre-existing 1.16 links in ~/Library/Haskell/bin before installing again.
Instead of installing again, you can even just recreate the symlink as mentioned by the message (if you know how to do that).

It is easy enough to recreate the link manually or as easy to run cabal install again, but that is not the point here. The point is that it will bite the next dozen of unsuspecting users since, at first, they have no idea of what is going on. In any case, apologies for sending this in this thread as it doesn't seem the right forum to discuss it. On Thu, Sep 5, 2013 at 7:53 AM, Paolo Giarrusso
On Wednesday, September 4, 2013 11:41:33 PM UTC+2, Yuri de Wit wrote:
Thanks for all the hard work!
If you see this in OSX (#1009) while installing cabal 1.18:
*Warning: could not create a symlink in /Users/lemao/Library/Haskell/bin for* *cabal because the file exists there already but is not managed by cabal. You* *can create a symlink for this executable manually if you wish. The executable* *file has been installed at* */Users/user/Library/Haskell/ghc-7.6.3/lib/cabal-install-1.18.0/bin/cabal *
You will need to manually remove the pre-existing 1.16 links in ~/Library/Haskell/bin before installing again.
Instead of installing again, you can even just recreate the symlink as mentioned by the message (if you know how to do that).

I ran into another oddity due to old build artifacts today -- it was easy
to fix, but very confusing; cabal repl was exiting with "unrecognised
command: repl".
tl/dr; if you see this, delete the old 'dist' dir and re-run 'cabal
configure'.
Here's a snippit of my shell session to explain in more detail:
$ cabal sandbox init
...
$ cabal --version
cabal-install version 1.18.0
using version 1.18.0 of the Cabal library
$ cabal configure
Resolving dependencies...
Configuring pgftransform-0.0.0.1...
$ cabal repl
unrecognised command: repl (try --help)
$ cabal --help
...
Commands:
...
build Compile all targets or specific targets.
repl Open an interpreter session for the given target.
sandbox Create/modify/delete a sandbox.
...
Note that cabal --version and cabal --help indicated that repl /was/ a
valid command.
The issue appears to be that an old dist directory was still hanging
around, and (I suspect) the compiled setup.hs build program (which would
have been built with an old Cabal) was causing the actual error. Deleting
the dist dir and re-running cabal configure set everything right.
--Rogan
On Thu, Sep 5, 2013 at 6:18 AM, Yuri de Wit
It is easy enough to recreate the link manually or as easy to run cabal install again, but that is not the point here. The point is that it will bite the next dozen of unsuspecting users since, at first, they have no idea of what is going on.
In any case, apologies for sending this in this thread as it doesn't seem the right forum to discuss it.
On Thu, Sep 5, 2013 at 7:53 AM, Paolo Giarrusso
wrote: On Wednesday, September 4, 2013 11:41:33 PM UTC+2, Yuri de Wit wrote:
Thanks for all the hard work!
If you see this in OSX (#1009) while installing cabal 1.18:
*Warning: could not create a symlink in /Users/lemao/Library/Haskell/bin for* *cabal because the file exists there already but is not managed by cabal. You* *can create a symlink for this executable manually if you wish. The executable* *file has been installed at* */Users/user/Library/Haskell/ghc-7.6.3/lib/cabal-install-1. 18.0/bin/cabal*
You will need to manually remove the pre-existing 1.16 links in ~/Library/Haskell/bin before installing again.
Instead of installing again, you can even just recreate the symlink as mentioned by the message (if you know how to do that).
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

I pasted your report into the bug tracker:
https://github.com/haskell/cabal/issues/1478
I don't know if you're on GitHub or not so I could link the report to your user.
On Thu, Sep 5, 2013 at 8:16 AM, Rogan Creswick
I ran into another oddity due to old build artifacts today -- it was easy to fix, but very confusing; cabal repl was exiting with "unrecognised command: repl".
tl/dr; if you see this, delete the old 'dist' dir and re-run 'cabal configure'.
Here's a snippit of my shell session to explain in more detail:
$ cabal sandbox init ... $ cabal --version cabal-install version 1.18.0 using version 1.18.0 of the Cabal library $ cabal configure Resolving dependencies... Configuring pgftransform-0.0.0.1... $ cabal repl unrecognised command: repl (try --help) $ cabal --help ... Commands: ... build Compile all targets or specific targets. repl Open an interpreter session for the given target. sandbox Create/modify/delete a sandbox. ...
Note that cabal --version and cabal --help indicated that repl /was/ a valid command.
The issue appears to be that an old dist directory was still hanging around, and (I suspect) the compiled setup.hs build program (which would have been built with an old Cabal) was causing the actual error. Deleting the dist dir and re-running cabal configure set everything right.
--Rogan
On Thu, Sep 5, 2013 at 6:18 AM, Yuri de Wit
wrote: It is easy enough to recreate the link manually or as easy to run cabal install again, but that is not the point here. The point is that it will bite the next dozen of unsuspecting users since, at first, they have no idea of what is going on.
In any case, apologies for sending this in this thread as it doesn't seem the right forum to discuss it.
On Thu, Sep 5, 2013 at 7:53 AM, Paolo Giarrusso
wrote: On Wednesday, September 4, 2013 11:41:33 PM UTC+2, Yuri de Wit wrote:
Thanks for all the hard work!
If you see this in OSX (#1009) while installing cabal 1.18:
Warning: could not create a symlink in /Users/lemao/Library/Haskell/bin for cabal because the file exists there already but is not managed by cabal. You can create a symlink for this executable manually if you wish. The executable file has been installed at /Users/user/Library/Haskell/ghc-7.6.3/lib/cabal-install-1.18.0/bin/cabal
You will need to manually remove the pre-existing 1.16 links in ~/Library/Haskell/bin before installing again.
Instead of installing again, you can even just recreate the symlink as mentioned by the message (if you know how to do that).
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Hideyuki Tanaka was missing from the list of contributors (his patch was
applied through me). His contribution made 'cabal update' faster!
On Wed, Sep 4, 2013 at 2:11 PM, Johan Tibell
Hi all,
On behalf of the cabal maintainers and contributors I'm proud to announce the Cabal (and cabal-install) 1.18.0 release. To install run
cabal update && cabal install Cabal-1.18.0 cabal-install-1.18.0
With 854 commits since the last release there are two many improvements and bug fixes to list them here, but two highlights are:
* Hermetic builds using sandboxes. This should reduce the number of "dependency hell" and broken package DB problems.
* GHCi support. It's now much easier to use ghci when developing your packages, especially if those packages require preprocessors (e.g. hsc2hs).
Here's how working on a package might look like using the new features:
# Only once: cabal sandbox init cabal install --only-dependencies --enable-tests # Configure, build, and run tests: cabal test # now implies configure and build # Play around with the code in GHCi: cabal repl
Mikhail wrote a bit more about the user visible changes on his blog:
http://coldwa.st/e/blog/2013-08-21-Cabal-1-18.html
For a complete list of changes run
git log cabal-install-v1.16.0.2..cabal-install-v1.18.0
in the cabal repo or look at the GitHub compare page:
https://github.com/haskell/cabal/compare/cabal-install-v1.16.0.2...cabal-ins...
(only shows the last 250 commits).
57 people contributed to this release!
503 Mikhail Glushenkov 99 Johan Tibell 41 Duncan Coutts 39 Ian Lynagh 19 Brent Yorgey 19 Thomas Tuegel 18 Ben Millwood 16 Eyal Lotem 10 Thomas Dziedzic 7 Andres Loeh 6 John Wiegley 6 Benno Fünfstück 5 Gregory Collins 4 Herbert Valerio Riedel 4 Simon Hengel 3 Joachim Breitner 3 Luke Iannini 3 Bryan Richter 3 Richard Eisenberg 3 Tuncer Ayaz 3 Jens Petersen 2 Arun Tejasvi Chaganty 2 Bryan O'Sullivan 2 Eric Kow 2 Jookia 2 Paolo G. Giarrusso 2 Paolo Capriotti 1 Sönke Hahn 1 Yitzchak Gale 1 Albert Krewinkel 1 stepcut 1 Alexander Kjeldaas 1 Austin Seipp 1 Bardur Arantsson 1 Ben Doyle 1 Ben Gamari 1 Bram 1 Carter Tazio Schonwald 1 Clint Adams 1 Daniel Wagner 1 David Lazar 1 Erik Hesselink 1 Eugene Sukhodolin 1 Gabor Greif 1 Jack Henahan 1 Jason Dagit 1 Ken Bateman 1 Mark Lentczner 1 Masahiro Yamauchi 1 Merijn Verstraaten 1 Michael Thompson 1 Niklas Hambüchen 1 Oleksandr Manzyuk 1 Patrick Premont 1 Roman Cheplyaka 1 Sergei Trofimovich 1 Stephen Blackheath
-- Johan, on behalf of the cabal maintainers and contributors.

On Wed, 4 Sep 2013, Johan Tibell wrote:
* GHCi support. It's now much easier to use ghci when developing your packages, especially if those packages require preprocessors (e.g. hsc2hs).
That's a great feature! How can I configure Cabal to start ghci with certain options? I like to enable more warnings. I could not find a documentation for the Cabal config file.

On Mon, Sep 16, 2013 at 10:16 AM, Henning Thielemann
On Wed, 4 Sep 2013, Johan Tibell wrote:
* GHCi support. It's now much easier to use ghci when developing your packages, especially if those packages require preprocessors (e.g. hsc2hs).
That's a great feature! How can I configure Cabal to start ghci with certain options? I like to enable more warnings. I could not find a documentation for the Cabal config file.
I assume a .ghci file, either in the project directory, or in your home directory, still works. See also http://www.haskell.org/ghc/docs/latest/html/users_guide/ghci-dot-files.html Regards, Erik
participants (7)
-
Darren Grant
-
Erik Hesselink
-
Henning Thielemann
-
Johan Tibell
-
Paolo Giarrusso
-
Rogan Creswick
-
Yuri de Wit