[Haskell-cafe] [ANN] Cabal 3.12 released

Francesco Ariis fa-ml at ariis.it
Wed May 8 15:17:15 UTC 2024


Dear cafe,

    Cabal team is happy to announce the release of `Cabal` the library version
`3.12.0.0` and the companion pre-release of `cabal-install` (the commandline
tool; scroll down for more information).


## What is new?

There are a number of new features in this release (`Cabal`) and pre-release
(`cabal-install`), such as:

- Add support for `asm`, `cmm`, and `js` sources in executable components.
- Add `--haddock-output-dir` flag to `cabal haddock`.
- Add `--semaphore` option to `./Setup build` interface.
- Add `--promised-dependency` flag to `./Setup configure` interface.
- Add the ability to `--ignore` specific checks to `cabal check`.
- Add support for `GHC2024` language edition.
- Add support for loading multiple components into one repl session
  (especially important for HLS users).
- Add `cabal path` command.
- Add support for authentication tokens for uploading to Hackage.
- Allow more flags in the init section of config file.
- Add `--semaphore` flag to enable interaction with GHC Job Server protocol.
- Adds functionality for the `--offline` flag with the `build` command.
- Improve solver rejections in brevity and accuracy.

There is much more: for a detailed list of enhancements, changes, and
bugfixes, please check the Cabal-3.12.0.0 changelog [1] (and the cabal-install
3.12.0.0-prerelease changelog [2].

[1] https://github.com/haskell/cabal/blob/master/release-notes/Cabal-3.12.0.0.md
[2] https://github.com/haskell/cabal/blob/master/release-notes/WIP-cabal-install-3.12.x.0.md


## Authors and contributors

Cabal is a collaborative effort; these people contributed with code to this
release:

aleeusgr
Adam Gundry
Andrea Bedini
Andreas Abel
Andreas Klebinger
Arjun Kathuria
Artem Pelenitsyn
BasLaa
Bas Laarakker
Ben Gamari
Bodigrim
Brandon Chinn
Brandon S. Allbery
Bryan Richter
Colton Clemmer
Csaba Hruska
cydparser
Daniel Trstenjak
David Binder
David Christiansen
Edwin Marshall
Elodie Lander
Erik de Castro Lopo
Felix Yan
Fendor
Finley
Francesco Ariis
Francesco Gazzetta
Fraser Tweedale
Gershom Bazerman
Hamish Mackenzie
Hécate Moonlight
Ikko Eltociear Ashimine
Jana Chadt
Javier Sagredo
Jean-Paul Calderone
Jens Petersen
Jessica Hamilton
John Paul Adrian Glaubitz
Josh Meredith
Julia Longtin
Julian Ospald
Kazuki Okamoto
Kleidukos
Kristen Kozak
Krzysztof Gogolewski
liamzee
Liisi Kerik
Lin Runze
malteneuss
Malte Neuss
Marcin Szamotulski
Matthew Pickering
Mel Zuser
Michael Peyton Jones
Mike Pilgrem
Mikolaj Konarski
mixphix
Oleg Grenrus
Ondřej Šebek
Patrick Augusto
Patrick Dougherty
Phil de Joux
Pierre Le Marre
Rebecca Turner
Rodrigo Mesquita
Ryan Scott
Samuel Thibault
Sander
Sebastian Tee
Sergey Vinokurov
Shae Erisson
sheaf
Simon Hengel
Siyuan Chen
Sören Tempel
Suganya Raju
Sylvain Henry
Taylor Fausak
Teo Camarasu
Tom Ellis
Tom Smeding
Torsten Schmits
Tristan Cacqueray
Troels Henriksen
Wismill
Yvan Sraka

The release could not be done without the help of the manual QA team and
devops people, we thank them both. Thanks also to the many users who provided
bug reports and suggestions for improvements.

A special mention to Hécate, who recently stepped down from Cabal release
coordination and left the process in a better, more organised shape than what
was before.

## How to get the `cabal-install` pre-release

This release is a Cabal-the-library release, but if you want to test the new
features of `cabal-install`, you can download the pre-release of the
commandline tool via GHCup. Use one of the following commands, depending on
your OS:

    ghcup --no-cache install cabal -u 'https://gitlab.haskell.org/haskell/cabal/-/jobs/1848320/artifacts/raw/out/cabal-install-3.11.0.0-x86_64-linux-alpine3_12.tar.xz' 3.12.0.0-prerelease

    ghcup --no-cache install cabal -u 'https://gitlab.haskell.org/haskell/cabal/-/jobs/1848326/artifacts/raw/out/cabal-install-3.11.0.0-aarch64-darwin.tar.xz' 3.12.0.0-prerelease

    ghcup --no-cache install cabal -u 'https://gitlab.haskell.org/haskell/cabal/-/jobs/1848327/artifacts/raw/out/cabal-install-3.11.0.0-x86_64-windows.zip' 3.12.0.0-prerelease

or an analogous command for any other of the artifacts produced by the [pre-release pipeline](https://gitlab.haskell.org/haskell/cabal/-/pipelines/93759).


## How to help?

Cabal is a complex piece of software running on many different machine. Two
easy ways to help the development team producing quality releases are:

- Join the manual QA team
- Test nightly binary `cabal-install` snapshots and pre-releases (such as the
  3.12.0.0 pre-release mentioned above) and report any problem you find.

[3] https://discourse.haskell.org/t/manual-qa-for-cabal-install/6225


More information about the Haskell-Cafe mailing list