Closed
Description
Here we track the status of the GHC-related steps for the Cabal release which will ship with GHC 9.10. The previous ticket in this series: #9203. This issue is a part of the https://github.com/haskell/cabal/wiki/Making-a-release process, but this portion of the process is managed jointly by the cabal and GHC team (which should be reflected in who is assigned to it).
- Agree which cabal release is aimed for sync with the GHC release and let GHC include a snapshot of the release branch once it's cut. It's better if it's a major cabal release, but patch release is doable, though we can't perform the steps that break the API and instead we hack around the steps.
- Bump any deps that GHC bumps. Update on
master
, then backport. - Make the new GHC a known compiler to cabal by updating
setupMinCabalVersionConstraint
incabal-install/src/Distribution/Client/ProjectPlanning.hs
. Update onmaster
, then backport. - Update
Cabal/src/Distribution/Simple/GHC.hs
to include the new GHC version --- the dozen of lines after "Cabal currently supports" (and sometimes much more, though it's probably not for release managers to do but for PR authors that add support for new major GHC features). Update onmaster
, then backport. - Update
Cabal-syntax/src/Language/Haskell/Extension.hs
list, if there are new GHC extensions. Compare withghc --supported-languages
to determine if there are any. Update onmaster
, then backport. There is a test for that (https://gitlab.haskell.org/ghc/ghc/-/blob/master/testsuite/tests/driver/T4437.hs) that the GHC team runs in CI for their new GHC branch, so we can ask the liaison if it's green and if it stays green when GHC is being finalised. - Add a new language version GHCXXXX, if any, e.g., Support GHC2024 (fixes #9736) (backport #9791) #9880. Update on
master
, then backport. - Add any new GHC flags (I don't remember whether they are used to determine recompilation only or anything else?). This involves (amounts to?) updating
normaliseGhcArgs
inCabal/src/Distribution/Simple/Program/GHC.hs
and adding the new GHC version tosupportedGHCVersions
in the same file. Update onmaster
, then backport. This one point can be postponed to the first patch release if we are sure there's going to be one. add the applicable new (version 9.10) GHC flags to normaliseGhcArgs #10014 - Add the new GHC to CI (this always causes problems; we haven't recovered from CI Windows segfaults on 9.6 yet, I think, so in practice this unfortunately often gets postponed). Update on
master
, then backport. - Ask the GHC liaison whether
T4437
is green for the last time (or check in GHC CI manually). - When we tag Cabal the library for release (with Cabal-syntax), give the final realease git tag (not commit) to the GHC devs for inclusion in GHC. Ideally, that cabal version would be on Hackage before the GHC ships.
Here's an old ticket for coordinating manual testing with a new GHC: #8026. It's useful if we don't have the new GHC in CI before cabal release. If we decide to run the equivalent of CI runs manually before release, let's clone this ticket and report in it how the runs go.