Release checklist for `3.18.2.0` (minor 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
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