haskell / haskell/cabal

Release checklist for `3.18.2.0` (minor release)

Open
#12,295 15 comments 3 reactions 0 assignees View on GitHub
release
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

Release manager: @ffaf1
[Join Matrix](https://matrix.to/#/%23haskell:matrix.org) to help with the release!

Feel free to modify the layout or add your comments.

# Important/urgent open problems

Comments welcome:

- [x] We would like to release `cabal-install` only, but #12246, which is the main fix we would like to release, modifies `Cabal-syntax`. What to do? Release everything? Land a PR in cabal-install that does not touch `Cabal-syntax`?
**Answer**: I guess we will release `Cabal-syntax` and friends too, the fix is too important.
- [x] In #12231 most likely we are not going to have our cake (pass options on empty targets) and eat it (follow POSIX guidelines). Which path should we choose?

# Regressions

There are a number regressions we would like to take care of before releasing.

- [x] ~~#11416 (PR: #12289)~~ 🔴 This cannot be backported, it breaks `cabal-install` API!
- [x] #12244 (PR: #12246)
- [x] backport #12298
- [x] #12231 No backport, see discussion, we keep the new behaviour and add a section to the release notes warning users.
- [x] Write such section for `3.18.2.0` _and_ `3.18.1.0`.
- [x] #12245 (PR: #12276)
- [x] backport #12307
- [x] #12114
- [x] backport #12314
- [x] #12271 #12273
- [x] most likely a regression, uncontroversial #12272 #12274
- [x] backport #12327
- [x] #12296 #11921 (QOL, simple, uncontroversial)
- [x] backport #12335

There are also items, which are not a regressions, we decided (cabal-dev meeting 2026/08/27 or Francesco deciding on suggestions from cabal contributors) to include in `3.18.2.0`. The reasons are because of its importance and because it slipped through the cracks in `3.18.1.0`.

- [x] #10252 (PR: #12211)
- [x] backported #12297
- [x] ~~#12132~~ cannot be backported 🔴 (breaks API for the library of `cabal-install`)
- [x] #12260
- [x] backport #12318

# Other PRs/issues of note

- [x] It is important for our users to patch `3.18.1.0` changelog
- [x] #12291 ~~(write that the old behaviour will be reintroduced)~~ #12309.
- [x] State “Unresolved issues and Notice” will be solved in a future release.
- [x] backport to `master` #12330
- [ ] #12179 should be fixed before we tag the release. #12324
- [x] Have #12341 merged
- [ ] backport to 3.18
- [x] backport #12338

# Third-party tools concerns

(GHC, HLS, GHCup, …)

- [x] If developers are not active in Matrix, warn them. (HLS devs already aware, GHC and GHCup devs warned.)

# Checklist

Before the checklist, address:
- [x] go through additional proposed backports, decide whether they are fit for `3.18.2.0`.
- [x] Decide the fate of #12084
- [x] Double check this is indeed a minor release
- [x] No API breakage.
- [x] No cabal file format change at all.
- [x] go through PR discussions, check whether they need help (and get them merged)

Checklist:
- [ ] Before the release
- [x] Pre-flight Checks: See [Preflight checks](https://github.com/haskell/cabal/wiki/Making-a-release#c1-preflight-checks) @ffaf1
- [ ] Changelog generation: See [CHANGELOGS](https://github.com/haskell/cabal/wiki/Making-a-release#c2-changelogs) #12346 @ffaf1
- [x] Copy “Unresolved issues and notices” from 3.18.1.0 cabal install release notes file. Erase what has been fixed.
- [ ] backport to `master`
- [x] Bump version numbers: See [Bumping version numbers](https://github.com/haskell/cabal/wiki/Making-a-release#c3-bumping-version-numbers) #12345 @Mikolaj
- [ ] Tag the release: See [Tagging the release](https://github.com/haskell/cabal/wiki/Making-a-release#c4-tagging-the-release) (☞ N.B. #12324 has to be _backported_ to `3.18` for this step.)
- [ ] Upload release candidates: See [Uploading package release candidates to Hackage](https://github.com/haskell/cabal/wiki/Making-a-release#c5-uploading-package-release-candidates-to-hackage)
- [ ] Publish artifacts: See [Publishing the artifacts](https://github.com/haskell/cabal/wiki/Making-a-release#c6-publishing-the-artifacts)
- [ ] Publish everything else: See [Publishing everything else](https://github.com/haskell/cabal/wiki/Making-a-release#c7-publishing-everything-else)
- [ ] Tweak things as needed, merge patches to fix regressions
- [ ] Re-upload the candidates on Hackage based on the latest tag, and publish them
- [ ] After the release
- [ ] prepare a list of contributors for the release ([how to do it](https://github.com/haskell/cabal/wiki/Making-a-release#a2-after-the-release))
- [ ] advertise on discourse, haskell-cafe and cabal-devel and in particular ([details here](https://github.com/haskell/cabal/wiki/Making-a-release#a2-after-the-release))
- [ ] ask kind souls to cross-post to Mastodon, Matrix (#haskell-tooling and #haskell-language-server), Discord, Twitter, Reddit. Copy the links to #hackage so that others can upvote
- [ ] Move the tickets that haven't made it to the release to the next one.
- [ ] Congratulate everyone and party 🥳

Contributor guide

Open the contributing guide

Research direction

Start with the linked Making a release wiki sections and the unchecked entries in this checklist, especially changelog generation, tagging, candidate uploads, and artifact publication. Review the 3.18.1.0 release notes file and related backport issues; done means all required pre- and post-release steps are completed and the release is published.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
documentation, release
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.