GHC 9.8.4 tracking ticket
This is the release checklist for the %9.8.4 release.
See the milestone for the planned release schedule, and other details.
See #16816 for the template that this ticket was derived from.
Pre-release checklist
-
Ensure that submodules are on released tags (the below is produced using this script):
-
libraries/Cabal
: version todo -
libraries/Win32
: version todo -
libraries/binary
: version todo -
libraries/bytestring
: version todo -
libraries/containers
: version todo -
libraries/deepseq
: version todo -
libraries/directory
: version todo -
libraries/filepath
: version todo -
libraries/haskeline
: version todo -
libraries/mtl
: version todo -
libraries/parsec
: version todo -
libraries/pretty
: version todo -
libraries/process
: version todo -
libraries/terminfo
: version todo -
libraries/text
: version todo -
libraries/time
: version todo -
libraries/transformers
: version todo -
libraries/unix
: version todo -
libraries/xhtml
: version todo -
utils/haddock
: version todo -
utils/hsc2hs
: version todo
-
- Ensure that all of the versions above are newer than the ones for older major releases and incorporate any patch updates
-
Notify stakeholders of release progress:
Julian Ospald <hasufell@posteo.de>, GHC releases <ghc-releases@haskell.org>, GHC developers <ghc-devs@haskell.org>
-
Non-released submodules up-to-date:
-
nofib
(upstream: ghc/nofib>) -
libffi-tarballs
(upstream: ghc/libffi-tarballs>) -
libraries/ghc-bignum/gmp/gmp-tarballs
(upstream: ghc/gmp-tarballs>)
-
-
LlvmMinVersion
andLlvmMaxVersion
inconfigure.ac
is targetting intended LLVM version -
llvm-targets
file updated -
Release notes (
docs/users_guide/x.y.z-notes.rst
) written- Release notes linked in
docs/users_guide/release-notes.rst
- LLVM version requirement mentioned
- Release notes linked in
- Remove "Included libraries" sections from old release notes
-
autoconf
scripts updated -
Check that Unicode database in
base
(libraries/base/cbits/README.Unicode
) reflects current standard release (http://www.unicode.org/versions/latest/). - Verify that the ~"backport needed" label has no more issues/merge requests needing backport
- Verify that all CI builds are green before moving to release checklist
-
Update hadrian bootstrap plans for the latest compiler releases:
- Update
hadrian/bootstrap/generate_bootstrap_plans
to include any new compiler releases in the last two major release series - Drop any plans that are outside of the bootstrap support window
- Run
hadrian/bootstrap/generate_bootstrap_plans
and commit the files that it generates - Update
bootstrap_matrix
in.gitlab-ci.yml
to reflect the most recent minor release in each major series supported by bootstrapping
- Update
Release candidate checklist (major-only)
-
Announce on:
GHC developers <ghc-devs@haskell.org>, GHC releases <ghc-releases@haskell.org>, GHC users <glasgow-haskell-users@haskell.org>
Release checklist
- Ensure that the Migration page is up-to-date
-
Push a provision provisional release commit to trigger the release builds using
git push -o ci.variable="RELEASE_JOB=yes"
- Wait until builds finish; verify that they finished successfully
- Fetch release artifacts TODO: documentation
- Write down a link to the release pipeline here:
-
Sign and push release artifacts to
downloads.haskell.org
[TODO: documentation] -
Submit
ghcup
metadata upstream:- Manually trigger the
ghcup-metadata-testing-release
job of the release pipeline - Download the
metadata_test.yaml
artifact from theghcup-metadata-release
job of the release pipeline - Clone
ghcup-metadata
- Integrate the appropriate release section into
ghcup-metadata/ghcup-0.0.7.yaml
(orghcup-prerelease-0.0.7.yaml
for pre-releases) - Replace the
&id<n>
identifiers with unique names - Add the
Latest
(orLatestPrerelease
) to the new release'sviTags
field - Remove
Latest
for the previous release'sviTags
field; for pre-releases add thePrerelease
tag) - Add the
base-w.x.y.z
(e.g.base-4.19.0.0
) tag toviTags
- Sign the resulting metadata YAML file with
gpg --detach-sign
- Open a merge request submitting the metadata upstream
- Start a "Bindist installation" workflow
- Manually trigger the
- Make a release tag
-
Release/revise GHC-maintained libraries on Hackage using this script:
-
libraries/base
-
libraries/ghc-prim
-
libraries/array
-
libraries/stm
-
libraries/ghc-heap
-
libraries/ghc-compact
-
libraries/ghc-boot
-
libraries/ghc-boot-th
-
libraries/hpc
-
libraries/libiserv
-
libraries/template-haskell
-
libraries/ghc-bignum
-
-
Update ghc/homepage>:
- Write download page (see ghc/homepage>)
- Make sure that the Signing Key is correct for the relevant release
-
Add news item to
index.html
-
Add link to
download.shtml
. Be sure to link to the Migration guide. - Look over changes locally
- Add release announcement to GHC blog. Be sure to link to the Migration guide.
-
Push changes to
master
-
Announce on:
GHC developers <ghc-devs@haskell.org>, GHC releases <ghc-releases@haskell.org>, GHC users <glasgow-haskell-users@haskell.org>, Haskell Cafe <haskell-cafe@haskell.org>
- Mention sponsors
- Mention ghc/ghc-hq>
- Link to release notes and migration guide
- Announce on: Haskell Discourse, /r/haskell, /m/haskell
-
When releasing the latest version, update
latest
symlink ondownloads.haskell.org
, e.g.ln -sfT 9.6.3 latest
if 9.6 was the latest major series.
Post-release checklist
- Update the Wiki status page
- Update the language pragma history
- Mark milestone as closed
-
Update
/topic
in#ghc
- Update the VersionHistory wiki page
-
Set
RELEASE=NO
- Create a release tracking ticket for the next release using the template in #16816