[Git][ghc/ghc][wip/manngoiv/release-trackign] release tracking: add a release tracking ticket
Magnus pushed to branch wip/manngoiv/release-trackign at Glasgow Haskell Compiler / GHC Commits: d4cdfcbf by mangoiv at 2026-03-12T14:17:25+01:00 release tracking: add a release tracking ticket Adds a new template for release tracking ala #16816. The information has been brought up to date with https://gitlab.haskell.org/ghc/ghc-hq/-/blob/main/release-management.mkd Resolves #26691 - - - - - 1 changed file: - + .gitlab/issue_templates/release_tracking.md Changes: ===================================== .gitlab/issue_templates/release_tracking.md ===================================== @@ -0,0 +1,203 @@ +<!-- + +This is the template to be used to create release tracking tickets. To make a new release: + +* **Milestone**. Create a new Gitlab milestone for the release. We refer to it here as **TODO milestone**. +* **Tracking ticket**. Create a new Gitlab issue, the tracking ticket, use this template. + +In the template, those items marked with *major-only* can be ignored for minor releases. + +--> + +This is the release checklist for the **TODO milestone**. + +<!-- + *(When filling in the template, make that "**TODO milestone**" into a link to the milestone, and delete this sentence.)* +--> + +See the milestone for the planned release schedule, and other details. See [GHC HQ - Release Management](https://gitlab.haskell.org/ghc/ghc-hq/-/blob/main/release-management.mkd) for release policies. + +This template is part of the ghc repository at `.gitlab/issue_templates/release_tracking.md`. + +<!-- + Pre-fork checklist is MAJOR ONLY +--> +# Pre-fork checklist + + +When forking a new release branch for a new major release series (e.g. `ghc-9.14`), please check the following: + +* [ ] Add the release to the [status page](https://gitlab.haskell.org/ghc/ghc/-/wikis/GHC-Status), including a link to the milestone. +* [ ] Verify that the platform support documentation is up-to-date with reality: + * https://gitlab.haskell.org/ghc/ghc/-/wikis/platforms/windows + * https://gitlab.haskell.org/ghc/ghc/-/wikis/platforms/ +* [ ] Remove the release notes for the previous release (e.g. `docs/users_guide/8.6.*-notes.rst`) +* [ ] In `configure.ac` update `MinBootGhcVersion` to be the major version of the last supported bootstrap compiler. We currently guarantee bootstrapping with the last two major releases; therefore, when preparing, e.g., GHC `9.14` you should set `MinBootGhcVersion` to `9.10`. +* [ ] Create the new branch: `git branch ghc-9.14` +* [ ] In the new branch bump the version number in `configure.ac` to, e.g., `9.14` +* [ ] In `master` bump the version number in `configure.ac` to that of the next development series, e.g., `9.15` and ensure that `MinBootGhcVersion` is set correctly +* [ ] Verify that package versions have been bumped as necessary under PVP: + * [ ] `base` + * [ ] `template-haskell` + * [ ] `ghc-prim` +* [ ] Tag this `master` commit as, e.g., `ghc-9.14-start` +* [ ] Push all of the above tags and branches +* [ ] Create a new worksheet in the GHC submodule tracking spreadsheet (ask in `#ghc` for a link), populate the "current" and "desired" version columns, and send an email to submodule maintainers and `ghc-releases@haskell.org` asking them to notify us of their needs +* [ ] After forking, remove release notes from `master` and start a new set of release notes for the next release +* [ ] After forking, notify `ghc-releases@haskell.org` that fork has been made +* [ ] Create a weekly scheduled pipeline building the new branch to ensure that it does not bit-rot and bindists are persistently available + +# Pre-release checklist + +* [ ] Ensure that the Haddock (haddock-library, haddock-api) version numbers have been appropriately bumped. +* [ ] Ensure that submodules are on released tags (the below is produced using [this script](https://gitlab.haskell.org/bgamari/ghc-utils/blob/master/rel-eng/submod-rele...)): + * [ ] `libraries/Cabal`: version *todo* + * [ ] `libraries/Win32`: version *todo* + * [ ] `libraries/array`: version *todo* + * [ ] `libraries/binary`: version *todo* + * [ ] `libraries/bytestring`: version *todo* + * [ ] `libraries/containers`: version *todo* + * [ ] `libraries/deepseq`: version *todo* + * [ ] `libraries/directory`: version *todo* + * [ ] `libraries/exceptions`: version *todo* + * [ ] `libraries/file-io`: version *todo* + * [ ] `libraries/filepath`: version *todo* + * [ ] `libraries/haskeline`: version *todo* + * [ ] `libraries/hpc`: version *todo* + * [ ] `libraries/libffi-clib`: version *todo* + * [ ] `libraries/mtl`: version *todo* + * [ ] `libraries/os-string`: version *todo* + * [ ] `libraries/parsec`: version *todo* + * [ ] `libraries/pretty`: version *todo* + * [ ] `libraries/process`: version *todo* + * [ ] `libraries/semaphore-compat`: version *todo* + * [ ] `libraries/stm`: version *todo* + * [ ] `libraries/template-haskell-lift`: version *todo* + * [ ] `libraries/template-haskell-quasiquoter`: 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/hpc`: version *todo* + * [ ] `utils/hsc2hs`: version *todo* +* [ ] Announce the boot lib versions that are planned to be included in the next release on the + [Boot libraries maintainers mailing list](mailto:ghc-boot-libraries@haskell.org), then allow for appropriate amount of grace time + for boot library maintainers to include revisions. +* [ ] 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, **including timeline, reason, what to look out for, platform tier changes, build platform changes, Bindist Changes** [^1]: + * [ ] [Julian Ospald](mailto:hasufell@posteo.de) + * [ ] [GHC releases](mailto:ghc-releases@haskell.org) + * [ ] [GHC developers](mailto:ghc-devs@haskell.org) + * [ ] [GHC users](mailto:glasgow-haskell-users@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` and `LlvmMaxVersion` in `configure.ac` is targetting intended LLVM version +* [ ] `llvm-targets` file [updated](https://gitlab.haskell.org/ghc/ghc/wikis/making-releases#updating-the-tree) +* [ ] 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 +* [ ] Remove "Included libraries" sections from old release notes +* [ ] `autoconf` scripts [updated](https://gitlab.haskell.org/ghc/ghc/wikis/making-releases#updating-the-tree) +* [ ] 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 + +# Release candidate checklist + +* Announce on: + * [ ] [GHC developers](mailto:ghc-devs@haskell.org) + * [ ] [GHC releases](mailto:ghc-releases@haskell.org), + * [ ] [GHC users](mailto:glasgow-haskell-users@haskell.org) +* [ ] For minor releases: Ask stackage maintainers to test the release candidate. +* Give grace time + + +# Release checklist + +* [ ] Ensure that the [Migration](https://gitlab.haskell.org/ghc/ghc/wikis/migration/) page is up-to-date +* [ ] Push a 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 +* [ ] Write down a link to the release pipeline here: <!-- URL --> +* [ ] Fetch release artifacts: + ```bash + $ mkdir $VERSION + $ cd $VERSION + $ nix run $GHC/.gitlab/rel_eng#fetch-gitlab --pipeline $PIPELINE_ID --release $VERSION + ``` + where `GHC` is the path to a GHC source tree, `VERSION` is the version number, and `PIPELINE_ID` is the release pipeline id. +* [ ] Recompress release artifacts: `nix run $GHC/.gitlab/rel_eng#upload -- recompress` +* [ ] Generate hashes: `nix run $GHC/.gitlab/rel_eng#upload -- gen_hashes` +* [ ] Sign release artifacts: `nix run $GHC/.gitlab/rel_eng#upload -- sign` +* [ ] Upload to `downloads.haskell.org`: `nix run $GHC/.gitlab/rel_eng#upload -- upload` +* [ ] If most recent release: Update `latest` symlink: `nix run $GHC/.gitlab/rel_eng#upload -- set_symlink latest` +* [ ] Update `X.Y-latest` symlink: `nix run $GHC/.gitlab/rel_eng#upload -- set_symlink 9.8-latest` +* [ ] Purge CDN cache: `nix run $GHC/.gitlab/rel_eng#upload -- purge` +* [ ] Submit `ghcup` metadata upstream: + * Manually trigger the `ghcup-metadata-testing-release` job of the release pipeline + * Download the `metadata_test.yaml` artifact from the `ghcup-metadata-release` job of the release pipeline + * Clone [`ghcup-metadata`](https://github.com/haskell/ghcup-metadata/) + * Integrate the appropriate release section into `ghcup-metadata/ghcup-0.0.7.yaml` (or `ghcup-prerelease-0.0.7.yaml` for pre-releases) + * Replace the `&id<n>` identifiers with unique names + * Add the `Latest` (or `LatestPrerelease`) to the new release's `viTags` field + * Remove `Latest` for the previous release's `viTags` field; for pre-releases add the `Prerelease` tag) + * Add the `base-w.x.y.z` (e.g. `base-4.19.0.0`) tag to `viTags` + * Sign the resulting metadata YAML file with `gpg --detach-sign` + * Open a merge request submitting the metadata upstream + * Start a "Bindist installation" [workflow](https://github.com/haskell/ghcup-metadata/actions/workflows/bindists.yaml) +* [ ] [Make a release tag](https://gitlab.haskell.org/ghc/ghc/wikis/making-releases#tagging-the-release) +* [ ] Release/revise GHC-maintained libraries on Hackage using [this script](https://gitlab.haskell.org/ghc/ghc/-/blob/master/.gitlab/rel_eng/upload_ghc_...): + * [ ] `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`](https://gitlab.haskell.org/ghc/homepage/blob/master/index.shtml) + * [ ] Add link to [`download.shtml`](https://gitlab.haskell.org/ghc/homepage/blob/master/download.shtml). Be sure to link to the Migration guide. + * [ ] Look over changes locally + * [ ] Add release announcement to [GHC blog](https://gitlab.haskell.org/ghc/homepage/tree/master/blog). Be sure to link to the Migration guide. + * [ ] Push changes to `master` +* [ ] Announce on: + * [ ] [GHC developers](mailto:ghc-devs@haskell.org) + * [ ] [GHC releases](mailto:ghc-releases@haskell.org), + * [ ] [Boot libraries maintainers](mailto:ghc-boot-libraries@haskell.org) + * [ ] [GHC users](mailto:glasgow-haskell-users@haskell.org) + * [ ] adjacent matrix channels: #haskell-releases:matrix.org, #GHC:matrix.org, #ghc-devs:matrix.org + * [ ] [Haskell Cafe](mailto:haskell-cafe@haskell.org) + * [ ] Mention sponsors + * [ ] Mention ghc / ghc-hq + * [ ] Link to release notes and migration guide +* [ ] Announce on: [Haskell Discourse](https://discourse.haskell.org/), [/r/haskell](https://reddit.com/r/haskell), [/m/haskell](https://kbin.social/m/haskell) +* [ ] When releasing the latest version, update `latest` symlink on `downloads.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](https://gitlab.haskell.org/ghc/ghc/-/wikis/GHC-Status) +* [ ] Update the [language pragma history](https://gitlab.haskell.org/ghc/ghc/wikis/language-pragma-history) +* [ ] Mark milestone as *closed* +* [ ] Update `/topic` in `#ghc` +* [ ] Update the [VersionHistory](https://gitlab.haskell.org/ghc/ghc/wikis/commentary/libraries/version-histor...) wiki page +* [ ] Set `RELEASE=NO` +* [ ] Create a release tracking ticket for the next release using the template in #16816 + +[^1]: Build platform changes are major changes to how GHC is being built from sources. + Bindist changes are significant changes to the toolchains, changes to the layout of the bindists or changes to the user facing installation procedure. + Platform tier changes are changes that move platforms up or down a tier or drop a given platform from the tierlist. View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/d4cdfcbfc45c34219b53eae78a8544e3... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/d4cdfcbfc45c34219b53eae78a8544e3... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
Magnus (@MangoIV)