Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC

Commits:

1 changed file:

Changes:

  • .gitlab/issue_templates/release_tracking.md
    1
    +<!--
    
    2
    +
    
    3
    +This is the template to be used to create release tracking tickets.  To make a new release:
    
    4
    +
    
    5
    +* **Milestone**.  Create a new Gitlab milestone for the release.  We refer to it here as **TODO milestone**.
    
    6
    +* **Tracking ticket**.  Create a new Gitlab issue, the tracking ticket, use this template.
    
    7
    +
    
    8
    +In the template, those items marked with *major-only* can be ignored for minor releases.
    
    9
    +
    
    10
    +-->
    
    11
    +
    
    12
    +This is the release checklist for the **TODO milestone**. 
    
    13
    +
    
    14
    +<!--
    
    15
    +    *(When filling in the template, make that "**TODO milestone**" into a link to the milestone, and delete this sentence.)*
    
    16
    +-->
    
    17
    +
    
    18
    +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.
    
    19
    +
    
    20
    +This template is part of the ghc repository at `.gitlab/issue_templates/release_tracking.md`.
    
    21
    +
    
    22
    +<!-- 
    
    23
    +  Pre-fork checklist is MAJOR ONLY
    
    24
    +-->
    
    25
    +# Pre-fork checklist
    
    26
    +
    
    27
    +
    
    28
    +When forking a new release branch for a new major release series (e.g. `ghc-9.14`),  please check the following:
    
    29
    +
    
    30
    +* [ ] Add the release to the [status page](https://gitlab.haskell.org/ghc/ghc/-/wikis/GHC-Status), including a link to the milestone.
    
    31
    +* [ ] Verify that the platform support documentation is up-to-date with reality:
    
    32
    +  * https://gitlab.haskell.org/ghc/ghc/-/wikis/platforms/windows
    
    33
    +  * https://gitlab.haskell.org/ghc/ghc/-/wikis/platforms/
    
    34
    +* [ ] Remove the release notes for the previous release (e.g. `docs/users_guide/8.6.*-notes.rst`)
    
    35
    +* [ ] 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`.
    
    36
    +* [ ] Create the new branch: `git branch ghc-9.14`
    
    37
    +* [ ] In the new branch bump the version number in `configure.ac` to, e.g., `9.14`
    
    38
    +* [ ] 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
    
    39
    +* [ ] Verify that package versions have been bumped as necessary under PVP:
    
    40
    +   * [ ] `base`
    
    41
    +   * [ ] `template-haskell`
    
    42
    +   * [ ] `ghc-prim`
    
    43
    +* [ ] Tag this `master` commit as, e.g., `ghc-9.14-start`
    
    44
    +* [ ] Push all of the above tags and branches
    
    45
    +* [ ] 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
    
    46
    +* [ ] After forking, remove release notes from `master` and start a new set of release notes for the next release
    
    47
    +* [ ] After forking, notify `ghc-releases@haskell.org` that fork has been made
    
    48
    +* [ ] Create a weekly scheduled pipeline building the new branch to ensure that it does not bit-rot and bindists are persistently available
    
    49
    +
    
    50
    +# Pre-release checklist
    
    51
    +
    
    52
    +* [ ] Ensure that the Haddock (haddock-library, haddock-api) version numbers have been appropriately bumped.
    
    53
    +* [ ] 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-release-summary.py)):
    
    54
    +    * [ ] `libraries/Cabal`: version *todo*
    
    55
    +    * [ ] `libraries/Win32`: version *todo*
    
    56
    +    * [ ] `libraries/array`: version *todo*
    
    57
    +    * [ ] `libraries/binary`: version *todo*
    
    58
    +    * [ ] `libraries/bytestring`: version *todo*
    
    59
    +    * [ ] `libraries/containers`: version *todo*
    
    60
    +    * [ ] `libraries/deepseq`: version *todo*
    
    61
    +    * [ ] `libraries/directory`: version *todo*
    
    62
    +    * [ ] `libraries/exceptions`: version *todo*
    
    63
    +    * [ ] `libraries/file-io`: version *todo*
    
    64
    +    * [ ] `libraries/filepath`: version *todo*
    
    65
    +    * [ ] `libraries/haskeline`: version *todo*
    
    66
    +    * [ ] `libraries/hpc`: version *todo*
    
    67
    +    * [ ] `libraries/libffi-clib`: version *todo*
    
    68
    +    * [ ] `libraries/mtl`: version *todo*
    
    69
    +    * [ ] `libraries/os-string`: version *todo*
    
    70
    +    * [ ] `libraries/parsec`: version *todo*
    
    71
    +    * [ ] `libraries/pretty`: version *todo*
    
    72
    +    * [ ] `libraries/process`: version *todo*
    
    73
    +    * [ ] `libraries/semaphore-compat`: version *todo*
    
    74
    +    * [ ] `libraries/stm`: version *todo*
    
    75
    +    * [ ] `libraries/template-haskell-lift`: version *todo*
    
    76
    +    * [ ] `libraries/template-haskell-quasiquoter`: version *todo*
    
    77
    +    * [ ] `libraries/terminfo`: version *todo*
    
    78
    +    * [ ] `libraries/text`: version *todo*
    
    79
    +    * [ ] `libraries/time`: version *todo*
    
    80
    +    * [ ] `libraries/transformers`: version *todo*
    
    81
    +    * [ ] `libraries/unix`: version *todo*
    
    82
    +    * [ ] `libraries/xhtml`: version *todo*
    
    83
    +    * [ ] `utils/hpc`: version *todo*
    
    84
    +    * [ ] `utils/hsc2hs`: version *todo*
    
    85
    +* [ ] Announce the boot lib versions that are planned to be included in the next release to the boot library maintainers, then allow for appropriate amount of grace time for boot library maintainers to include revisions.
    
    86
    +* [ ] Ensure that all of the versions above are newer than the ones for older major releases and incorporate any patch updates 
    
    87
    +* [ ] Notify stakeholders of release progress, **including timeline, reason, what to look out for, platform tier changes, build platform changes, Bindist Changes** [^1]:
    
    88
    +   * [ ] [Julian Ospald](mailto:hasufell@posteo.de)
    
    89
    +   * [ ] [GHC releases](mailto:ghc-releases@haskell.org)
    
    90
    +   * [ ] [GHC developers](mailto:ghc-devs@haskell.org)
    
    91
    +   * [ ] [GHC users](mailto:glasgow-haskell-users@haskell.org)
    
    92
    +* [ ] Non-released submodules up-to-date:
    
    93
    +   * [ ] `nofib` (upstream: ghc/nofib>)
    
    94
    +   * [ ] `libffi-tarballs` (upstream: ghc/libffi-tarballs>)
    
    95
    +   * [ ] `libraries/ghc-bignum/gmp/gmp-tarballs` (upstream: ghc/gmp-tarballs>)
    
    96
    +* [ ] `LlvmMinVersion` and `LlvmMaxVersion` in `configure.ac` is targetting intended LLVM version
    
    97
    +* [ ] `llvm-targets` file [updated](https://gitlab.haskell.org/ghc/ghc/wikis/making-releases#updating-the-tree)
    
    98
    +* [ ] Release notes (`docs/users_guide/x.y.z-notes.rst`) written
    
    99
    +   * Release notes linked in `docs/users_guide/release-notes.rst`
    
    100
    +   * LLVM version requirement mentioned
    
    101
    +* [ ] Remove "Included libraries" sections from old release notes
    
    102
    +* [ ] `autoconf` scripts [updated](https://gitlab.haskell.org/ghc/ghc/wikis/making-releases#updating-the-tree)
    
    103
    +* [ ] Check that Unicode database in `base` (`libraries/base/cbits/README.Unicode`) reflects current standard release (http://www.unicode.org/versions/latest/).
    
    104
    +* [ ] Verify that the ~"backport needed" label has no more issues/merge requests needing backport
    
    105
    +* [ ] Verify that all CI builds are green before moving to *release checklist*
    
    106
    +* [ ] Update hadrian bootstrap plans for the latest compiler releases:
    
    107
    +   * Update `hadrian/bootstrap/generate_bootstrap_plans` to include any new compiler releases in the last two major release series
    
    108
    +   * Drop any plans that are outside of the bootstrap support window
    
    109
    +   * Run `hadrian/bootstrap/generate_bootstrap_plans` and commit the files that it generates
    
    110
    +   * Update `bootstrap_matrix` in `.gitlab-ci.yml` to reflect the most recent minor release in each major series supported by bootstrapping
    
    111
    +
    
    112
    +# Release candidate checklist
    
    113
    +
    
    114
    +* Announce on:
    
    115
    +   * [ ] [GHC developers](mailto:ghc-devs@haskell.org)
    
    116
    +   * [ ] [GHC releases](mailto:ghc-releases@haskell.org), 
    
    117
    +   * [ ] [GHC users](mailto:glasgow-haskell-users@haskell.org)
    
    118
    +* [ ] For minor releases: Ask stackage maintainers to test the release candidate.
    
    119
    +* Give grace time
    
    120
    +
    
    121
    +
    
    122
    +# Release checklist
    
    123
    +
    
    124
    +* [ ] Ensure that the [Migration](https://gitlab.haskell.org/ghc/ghc/wikis/migration/) page is up-to-date
    
    125
    +* [ ] Push a provisional release commit to trigger the release builds using `git push -o ci.variable="RELEASE_JOB=yes"`
    
    126
    +* [ ] Wait until builds finish; verify that they finished successfully
    
    127
    +* [ ] Write down a link to the release pipeline here: <!-- URL -->
    
    128
    +* [ ] Fetch release artifacts:
    
    129
    +  ```bash
    
    130
    +  $ mkdir $VERSION
    
    131
    +  $ cd $VERSION
    
    132
    +  $ nix run $GHC/.gitlab/rel_eng#fetch-gitlab --pipeline $PIPELINE_ID --release $VERSION
    
    133
    +  ```
    
    134
    +  where `GHC` is the path to a GHC source tree, `VERSION` is the version number, and `PIPELINE_ID` is the release pipeline id.
    
    135
    +* [ ] Recompress release artifacts: `nix run $GHC/.gitlab/rel_eng#upload -- recompress`
    
    136
    +* [ ] Generate hashes: `nix run $GHC/.gitlab/rel_eng#upload -- gen_hashes`
    
    137
    +* [ ] Sign release artifacts: `nix run $GHC/.gitlab/rel_eng#upload -- sign`
    
    138
    +* [ ] Upload to `downloads.haskell.org`: `nix run $GHC/.gitlab/rel_eng#upload -- upload`
    
    139
    +* [ ] If most recent release: Update `latest` symlink: `nix run $GHC/.gitlab/rel_eng#upload -- set_symlink latest`
    
    140
    +* [ ] Update `X.Y-latest` symlink: `nix run $GHC/.gitlab/rel_eng#upload -- set_symlink 9.8-latest`
    
    141
    +* [ ] Purge CDN cache: `nix run $GHC/.gitlab/rel_eng#upload -- purge`
    
    142
    +* [ ] Submit `ghcup` metadata upstream:
    
    143
    +   * Manually trigger the `ghcup-metadata-testing-release` job of the release pipeline
    
    144
    +   * Download the `metadata_test.yaml` artifact from the `ghcup-metadata-release` job of the release pipeline
    
    145
    +   * Clone [`ghcup-metadata`](https://github.com/haskell/ghcup-metadata/)
    
    146
    +   * Integrate the appropriate release section into `ghcup-metadata/ghcup-0.0.7.yaml` (or `ghcup-prerelease-0.0.7.yaml` for pre-releases)
    
    147
    +   * Replace the `&id<n>` identifiers with unique names
    
    148
    +   * Add the `Latest` (or `LatestPrerelease`) to the new release's `viTags` field
    
    149
    +   * Remove `Latest` for the previous release's `viTags` field; for pre-releases add the `Prerelease` tag)
    
    150
    +   * Add the `base-w.x.y.z` (e.g. `base-4.19.0.0`) tag to `viTags`
    
    151
    +   * Sign the resulting metadata YAML file with `gpg --detach-sign`
    
    152
    +   * Open a merge request submitting the metadata upstream
    
    153
    +   * Start a "Bindist installation" [workflow](https://github.com/haskell/ghcup-metadata/actions/workflows/bindists.yaml)
    
    154
    +* [ ] [Make a release tag](https://gitlab.haskell.org/ghc/ghc/wikis/making-releases#tagging-the-release)
    
    155
    +* [ ] Release/revise GHC-maintained libraries on Hackage using [this script](https://gitlab.haskell.org/ghc/ghc/-/blob/master/.gitlab/rel_eng/upload_ghc_libs.py):
    
    156
    +   * [ ] `libraries/base`
    
    157
    +   * [ ] `libraries/ghc-prim`
    
    158
    +   * [ ] `libraries/array`
    
    159
    +   * [ ] `libraries/stm`
    
    160
    +   * [ ] `libraries/ghc-heap`
    
    161
    +   * [ ] `libraries/ghc-compact`
    
    162
    +   * [ ] `libraries/ghc-boot`
    
    163
    +   * [ ] `libraries/ghc-boot-th`
    
    164
    +   * [ ] `libraries/hpc`
    
    165
    +   * [ ] `libraries/libiserv`
    
    166
    +   * [ ] `libraries/template-haskell`
    
    167
    +   * [ ] `libraries/ghc-bignum`
    
    168
    +* [ ] Update ghc/homepage>:
    
    169
    +   * [ ] Write download page (see ghc/homepage>)
    
    170
    +   * [ ] Make sure that the Signing Key is correct for the relevant release
    
    171
    +   * [ ] Add news item to [`index.html`](https://gitlab.haskell.org/ghc/homepage/blob/master/index.shtml)
    
    172
    +   * [ ] Add link to [`download.shtml`](https://gitlab.haskell.org/ghc/homepage/blob/master/download.shtml). Be sure to link to the Migration guide.
    
    173
    +   * [ ] Look over changes locally
    
    174
    +   * [ ] Add release announcement to [GHC blog](https://gitlab.haskell.org/ghc/homepage/tree/master/blog). Be sure to link to the Migration guide.
    
    175
    +   * [ ] Push changes to `master`
    
    176
    +* [ ] Announce on: 
    
    177
    +   * [ ] [GHC developers](mailto:ghc-devs@haskell.org)
    
    178
    +   * [ ] [GHC releases](mailto:ghc-releases@haskell.org), 
    
    179
    +   * [ ] [Boot libraries maintainers](mailto:ghc-boot-libraries@haskell.org)
    
    180
    +   * [ ] [GHC users](mailto:glasgow-haskell-users@haskell.org)
    
    181
    +   * [ ] adjacent matrix channels: #haskell-releases:matrix.org, #GHC:matrix.org, #ghc-devs:matrix.org
    
    182
    +   * [ ] [Haskell Cafe](mailto:haskell-cafe@haskell.org)
    
    183
    +   * [ ] Mention sponsors
    
    184
    +   * [ ] Mention ghc / ghc-hq
    
    185
    +   * [ ] Link to release notes and migration guide
    
    186
    +* [ ] Announce on: [Haskell Discourse](https://discourse.haskell.org/), [/r/haskell](https://reddit.com/r/haskell), [/m/haskell](https://kbin.social/m/haskell)
    
    187
    +* [ ] 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.
    
    188
    +
    
    189
    +# Post-release checklist
    
    190
    +
    
    191
    +* [ ] Update the Wiki [status page](https://gitlab.haskell.org/ghc/ghc/-/wikis/GHC-Status)
    
    192
    +* [ ] Update the [language pragma history](https://gitlab.haskell.org/ghc/ghc/wikis/language-pragma-history)
    
    193
    +* [ ] Mark milestone as *closed*
    
    194
    +* [ ] Update `/topic` in `#ghc`
    
    195
    +* [ ] Update the [VersionHistory](https://gitlab.haskell.org/ghc/ghc/wikis/commentary/libraries/version-history) wiki page
    
    196
    +* [ ] Set `RELEASE=NO`
    
    197
    +* [ ] Create a release tracking ticket for the next release using the template in #16816
    
    198
    +
    
    199
    +[^1]: Build platform changes are major changes to how GHC is being built from sources.
    
    200
    +      Bindist changes are significant changes to the toolchains, changes to the layout of the bindists or changes to the user facing installation procedure.
    
    201
    +      Platform tier changes are changes that move platforms up or down a tier or drop a given platform from the tierlist.