|
| 1 | +# Releasing |
| 2 | + |
| 3 | +## Release checklist |
| 4 | + |
| 5 | +- [ ] check ghcup supports new GHC releases if any |
| 6 | +- [ ] set the supported GHCs in workflow file `.github/workflows/release.yaml` |
| 7 | +- [ ] check all plugins still work if release includes code changes |
| 8 | +- [ ] bump package versions in all `*.cabal` files (same version as hls) |
| 9 | +- [ ] generate and update changelog |
| 10 | +- [ ] create release branch as `wip/<version>` |
| 11 | +- [ ] create release tag as `<version>` |
| 12 | +- [ ] trigger release pipeline by pushing the tag |
| 13 | + - this creates a draft release |
| 14 | +- [ ] run `sh scripts/release/download-gh-artifacts <version> <your-gpg-email>` |
| 15 | + - downloads artifacts to `gh-release-artifacts/<version>/` |
| 16 | + - also downloads FreeBSD bindist from circle CI |
| 17 | + - adds signatures |
| 18 | +- [ ] upload artifacts to downloads.haskell.org manually from `gh-release-artifacts/<version>/` |
| 19 | +- [ ] create PR to [ghcup-metadata](https://github.com/haskell/ghcup-metadata) |
| 20 | + - [ ] update `ghcup-0.0.7.yaml` and `ghcup-vanilla-0.0.7.yaml` |
| 21 | + - can use `sh scripts/release/create-yaml-snippet.sh <version>` to generate a snippet that can be manually inserted into the yaml files |
| 22 | + - [ ] update `hls-metadata-0.0.1.json` |
| 23 | + - utilize `cabal run ghcup-gen -- generate-hls-ghcs -f ghcup-0.0.7.yaml --format json --stdout` in the root of ghcup-metadata repository |
| 24 | +- [ ] get sign-off on release |
| 25 | + - from wz1000, michealpj, maerwald and fendor |
| 26 | +- [ ] publish release on github |
| 27 | +- [ ] upload hackage packages |
| 28 | + - requires credentials |
| 29 | +- [ ] update https://haskell-language-server.readthedocs.io/en/latest/support/ghc-version-support.html#current-ghc-version-support-status |
| 30 | +- [ ] post release on discourse and reddit |
0 commit comments