[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
`` 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- changelog [1] (and the cabal-install changelog [2].

[1] https://github.com/haskell/cabal/blob/master/release-notes/Cabal-
[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

Adam Gundry
Andrea Bedini
Andreas Abel
Andreas Klebinger
Arjun Kathuria
Artem Pelenitsyn
Bas Laarakker
Ben Gamari
Brandon Chinn
Brandon S. Allbery
Bryan Richter
Colton Clemmer
Csaba Hruska
Daniel Trstenjak
David Binder
David Christiansen
Edwin Marshall
Elodie Lander
Erik de Castro Lopo
Felix Yan
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
Kristen Kozak
Krzysztof Gogolewski
Liisi Kerik
Lin Runze
Malte Neuss
Marcin Szamotulski
Matthew Pickering
Mel Zuser
Michael Peyton Jones
Mike Pilgrem
Mikolaj Konarski
Oleg Grenrus
Ondřej Šebek
Patrick Augusto
Patrick Dougherty
Phil de Joux
Pierre Le Marre
Rebecca Turner
Rodrigo Mesquita
Ryan Scott
Samuel Thibault
Sebastian Tee
Sergey Vinokurov
Shae Erisson
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
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-'

    ghcup --no-cache install cabal -u 'https://gitlab.haskell.org/haskell/cabal/-/jobs/1848326/artifacts/raw/out/cabal-install-'

    ghcup --no-cache install cabal -u 'https://gitlab.haskell.org/haskell/cabal/-/jobs/1848327/artifacts/raw/out/cabal-install-'

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 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