[Haskell-cafe] ANN: Cabal v1.18.0 released

1,014 views
Skip to first unread message

Johan Tibell

unread,
Sep 4, 2013, 5:11:44 PM9/4/13
to haskell-cafe, cabal...@haskell.org
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-install-v1.18.0

(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
Haskel...@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Darren Grant

unread,
Sep 4, 2013, 5:25:08 PM9/4/13
to Johan Tibell, cabal...@haskell.org, Haskell Cafe

Thank you all for the hard work. The new features are already of great help to me!

Cheers,
Darren

Yuri de Wit

unread,
Sep 4, 2013, 5:41:33 PM9/4/13
to Johan Tibell, cabal...@haskell.org, 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.



Paolo Giarrusso

unread,
Sep 5, 2013, 7:53:09 AM9/5/13
to haskel...@googlegroups.com, cabal...@haskell.org, haskell-cafe
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).

Yuri de Wit

unread,
Sep 5, 2013, 9:18:30 AM9/5/13
to Paolo Giarrusso, cabal...@haskell.org, haskell-cafe, haskel...@googlegroups.com
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.

Rogan Creswick

unread,
Sep 5, 2013, 11:16:01 AM9/5/13
to Yuri de Wit, cabal...@haskell.org, Paolo Giarrusso, haskell-cafe, haskel...@googlegroups.com
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


Johan Tibell

unread,
Sep 5, 2013, 11:36:21 AM9/5/13
to Rogan Creswick, haskel...@googlegroups.com, cabal...@haskell.org, Paolo Giarrusso, 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.

Johan Tibell

unread,
Sep 6, 2013, 12:41:32 AM9/6/13
to haskell-cafe, cabal...@haskell.org
Hideyuki Tanaka was missing from the list of contributors (his patch was applied through me). His contribution made 'cabal update' faster!

Henning Thielemann

unread,
Sep 16, 2013, 4:16:19 AM9/16/13
to Johan Tibell, cabal...@haskell.org, haskell-cafe

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.

Erik Hesselink

unread,
Sep 16, 2013, 4:52:09 AM9/16/13
to Henning Thielemann, cabal...@haskell.org, haskell-cafe
On Mon, Sep 16, 2013 at 10:16 AM, Henning Thielemann
<lem...@henning-thielemann.de> wrote:
>
> 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
Reply all
Reply to author
Forward
0 new messages