Cabal-3.16.0.0 released

The Cabal release team brings you a new release of the cabal-install tool and accompanying libraries, version 3.16.0.0. This release supports the (not yet available) GHC 9.14, including its upcoming alpha but isn’t compatible with currently available HLS. We expect to publish cabal-install 3.16.1.0 soon after GHC 9.14 is out and address any discovered issues and incompatibilities that can be fixed in the respective timeframe.

The binaries for cabal-install are available:

  • In the GHCup main channel (we thank the GHCup maintainers for the swift support of our release).
  • On our website (the same set of binaries can also be installed via the GHCup vanilla channel); these binaries are signed by “Francesco Ariis francesco@ariis.it” (fingerprint: DAFB 4D8A F684 1435 18D5 051F A9AF 0AAA 6B87 EC51; the key is hosted on keyserver.ubuntu.com).
  • As usual, cabal update && cabal install cabal-install-3.16.0.0 is an option too.

What’s new

Some of the cool features in the release: the new cabal target command, faster Git clones, cabal haddock-project handles user-provided CSS, multiple flags stanzas in cabal.project accumulate values instead of using the last one, cabal gen-bounds works with multi-package projects (i.e., embraces the v2-commands infrastructure), cabal multi-repl supports reexported-modules with renaming for GHC >= 9.12, and more!

See the cabal-install release notes on Github for the full changelog. Power users may be interested in Cabal-the-library notes too.

3.16.0.0 Contributors

The credits go to: Andreas Abel, Andreas Klebinger, Artem Pelenitsyn, Benjamin, Benjamin McRae, Berk Özkütük, Bodigrim, brandon s allbery kf8nh, Bryan Richter, Francesco Ariis, Francesco Gazzetta, Gleb Popov, Hécate Moonlight, James Blackburn, Jaro, Jasper Van der Jeugt, Javier Sagredo, Jens Petersen, Kazu Yamamoto, Kevin Quick, Leonid Znamenok, malteneuss, Matthew Pickering, Matt Parsons, Mike Pilgrem, Mikolaj Konarski, Moritz Angermann, noiioiu, parsonsmatt, Peter Becich, Phil de Joux, PHO, Praneya Kumar, Rebecca Turner, Rodrigo Mesquita, Sdywolf, Serge S. Gulin, Sergey Vinokurov, sheaf, Sylvain Henry, Teo Camarasu, theGhostJW, Tom Smeding, Trevis, Troels Henriksen, Yi Fang, Yuto Takano, zlonast, Zubin Duggal.

We thank all the contributors as well as our reviewers, QA testers, devops, and others without whom this release wouldn’t be possible.

Feedback

Please report any issues you notice with the 3.16.0.0 release on our GitHub: GitHub · Where software is built

— Cabal release team (Artem, Brandon, Francesco, Mikołaj)

31 Likes

UPDATE: cabal-3.16.0.0 isn’t compatible with currently available HLS but we’re working on it (see Always pass '--interactive' as the first ghc argument by fendor · Pull Request #11101 · haskell/cabal · GitHub)

3 Likes

Any chance to introduce some infrastructure for *cough* uninstalling *cough* of installed packages, in a foreseeable future? Or some garbage-collecting mechanism to keep storage maintainable in a longer run? Or bring back sandboxes, to keep packages store isolated and easily disposable, for quick on-off projects?

2 Likes

@torimus thanks for your question and interest to Cabal! Sadly, there’s no immediate plans afaik. There’s a stale PR that had a start: RFC: Store garbage collection by andreabedini · Pull Request #10126 · haskell/cabal · GitHub I think @geekosaur was interested in reviving this work (or starting anew) but I’ll defer to Brandon to comment on that.

This task seems hard to me.

@torimus, @artem: I did take a look at the store garbage collection PR, but not much more. It will indeed take some work (especially since I realized it’s missing something), but before I can really poke at it I need to bring it up to date because it’s bitrotted somewhat.

There is also an open issue requesting that sandboxes be brought back in a modified form: GitHub · Where software is built

A bit of a caveat: Installing cabal-3.16 with ghcup might break VSCode even if you keep the default cabal to 3.14. According to my experiments, VSCode just goes for the latest cabal installed by ghcup even if that is not compatible with HLS nor the default version set in ghcup:

So, unfortunately, I had to remove cabal-3.16 from my system again, but in the short time I tried it out, I found no regressions! :+1:

5 Likes