Skip to content

Release tracking ticket for GHC 9.6.3

This is the release checklist for the %9.6.3 milestone. See #16816 for the template that this was derived from.

Pre-release checklist

  • Ensure that submodules are on released tags (the below is produced using this script):
    • libraries/Cabal: version 3.10.1
    • libraries/Win32: version 2.13.3.0
    • libraries/array: version 0.5.5.0
    • libraries/binary: version 0.8.9.1
    • libraries/bytestring: version 0.11.5.2
    • libraries/containers: version 0.6.7
    • libraries/deepseq: version 1.4.8.1
    • libraries/directory: version 1.3.8.1
    • libraries/exceptions: version 0.10.7 + revisions
    • libraries/filepath: version 1.4.100.4
    • libraries/haskeline: version 0.8.2.1
    • libraries/mtl: version 2.3.1
    • libraries/parsec: version 3.1.16.1
    • libraries/pretty: version 1.1.3.6
    • libraries/process: version 1.6.17.0
    • libraries/stm: version 2.5.1.0 + revisions
    • libraries/terminfo: version 0.4.1.6
    • libraries/text: version 2.0.2
    • libraries/time: version 1.12.2
    • libraries/transformers: version 0.6.1.0
    • libraries/unix: version 2.8.1.0
    • libraries/xhtml: version 3000.2.2.1
    • utils/haddock: todo (on haddock-2.29.0-release-1-g6c77e062)
    • utils/hsc2hs: version 0.68.9
  • Notify stakeholders of release progress: Julian Ospald <hasufell@posteo.de>, ghc-devs@haskell.org
  • [ ] Non-released submodules up-to-date: (not for point releases)
    • [ ] nofib (upstream: ghc/nofib>): todo (on 2009-06-25-442-g2cee928)
    • [ ] libffi-tarballs (upstream: ghc/libffi-tarballs>): todo (on libffi-3.3+git20200501+4f9e20a)
    • [ ] libraries/ghc-bignum/gmp/gmp-tarballs (upstream: ghc/gmp-tarballs>): todo (on heads/master-7-g4f26049)
  • Release notes (docs/users_guide/x.y.z-notes.rst) written
  • Release notes linked in docs/users_guide/release-notes.rst
  • [ ] autoconf scripts updated (see #23759 (comment 527370))
  • [ ] Update the Hadrian bootstrap metadata (duplicate of last checklist item)
  • [ ] Check that Unicode database in base (libraries/base/cbits/README.Unicode) reflects current standard release (http://www.unicode.org/versions/latest/). (decided against for 9.6.3 on 2023-09-19)
  • [ ] LlvmVersion in configure.ac is targetting intended LLVM version (not for point releases)
  • [ ] Release notes mentions LLVM version requirement (not for point releases, a consequence of the previous point)
  • [ ] llvm-targets file updated (not for point releases)
  • Changelogs updated (these can be checked using .gitlab/linters/check-changelogs.sh):
    • libraries/ghc-prim
    • libraries/ghc-bignum
    • libraries/template-haskell
    • libraries/hpc (upstream: hpc/hpc>)
    • libraries/base
  • Verify that the backport needed:9.6 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 bootstramp_matrix in .gitlab-ci.yml to reflect the most recent minor release in each major series supported by bootstrapping

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: https://gitlab.haskell.org/ghc/ghc/-/pipelines/84424
  • Sign and push release artifacts to downloads.haskell.org [TODO: documentation]
  • Submit ghcup metadata upstream:
    • Download the metadata_test.yaml artifact from the ghcup-metadata-release job of the release pipeline
    • Clone ghcup-metadata
    • Integrate the appropriate release section (e.g. ``) into ghcup-metadata/ghcup-0.0.7.yaml
    • Replace the &id<n> identifiers with unique names
    • Open a merge request submitting the metadata upstream
  • 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 Users <glasgow-haskell-users@haskell.org>, Haskell Cafe <haskell-cafe@haskell.org>
  • Announce on: Haskell Discourse, /r/haskell, Twitter
  • Update latest symlink on downloads.haskell.org

Post-release checklist

  • Update the Wiki status page
  • [ ] Update the language pragma history (not for point releases)
  • Mark milestone as closed
  • [ ] Update /topic in #ghc (supplanted by status page)
  • Update the VersionHistory wiki page
  • Set RELEASE=NO
  • Create a release tracking ticket for the next release using the template in #16816
Edited by Bryan R
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information