|
| 1 | +# Release checklist |
| 2 | + |
| 3 | +## Step-by-step release process |
| 4 | + |
| 5 | +### Prepare release PR |
| 6 | + - [ ] Create a branch named `release-{version}`: |
| 7 | + - [ ] If it's a patch release, based the new branch out of the one that |
| 8 | + contains the fixes. For example, if we added some fixes to the already |
| 9 | + released `release-0.12` branch, then it will be the base for our `0.12.1` |
| 10 | + release. |
| 11 | + - [ ] Update `version` and `appVersion` in `deploy/helm-chart/Chart.yml` |
| 12 | + - [ ] Update Promscale in `pkg/version/version.go` update. If required, update |
| 13 | + the values for PrevReleaseVersion, PgVersionNumRange and |
| 14 | + ExtVersionRangeString. |
| 15 | + - [ ] If the release includes changes to prom-migrator, update the `version` |
| 16 | + variable at `migration-tool/cmd/prom-migrator/main.go`. |
| 17 | + - [ ] (optionally) Update `prom-migrator` version in `.goreleaser.yml` (2 places) |
| 18 | + - [ ] Run `./scripts/generate-deploy-script.sh` |
| 19 | + - [ ] Finalize CHANGELOG, adding release version and date |
| 20 | + - [ ] Commit: `git commit -a -m "Prepare for the 0.1.0-alpha.4 release"` |
| 21 | + - Create PR: |
| 22 | + - [ ] For major/minor releases the PR should target the master branch. |
| 23 | + - [ ] For patch releases the PR should target the release branch it was |
| 24 | + based of. |
| 25 | + - Wait for review and merge. |
| 26 | + |
| 27 | +### Prepare git tag |
| 28 | + - [ ] Pull the branch were the PR was merged, it should be `master` for |
| 29 | + major/minor and `release-{version}` for patch releases. Triple check that |
| 30 | + you have the right commit checked out. |
| 31 | + - [ ] tag commit: `git tag -a 0.1.0-alpha.1 -m "Release 0.1.0-alpha.1"` |
| 32 | + - [ ] push tag to main repo (not in fork!) `git push origin 0.1.0-alpha.1` |
| 33 | + |
| 34 | +### Create GitHub release notes |
| 35 | + |
| 36 | +[ ] The `goreleaser` GitHub Action will automatically create a new draft release with the generated binaries, docker images, and a changelog attached. When it is created contact PM to validate if release notes are correct and click green publish button. |
| 37 | + |
| 38 | +### Post-release |
| 39 | + |
| 40 | +For major/minor releases: |
| 41 | + |
| 42 | + - [ ] Update Promscale and PrevReleaseVersion in `pkg/version/version.go` to the |
| 43 | + next devel version. |
| 44 | + - [ ] Commit: `git commit -a -m "Prepare for the next development cycle"` |
| 45 | + - [ ] Create PR & Merge when ready |
| 46 | + - [ ] Update Promscale docs to point to the latest release as done in this [PR](https://github.com/timescale/docs/pull/1075) |
| 47 | + |
| 48 | +For patch releases: |
| 49 | + |
| 50 | + - [ ] Update Promscale docs to point to the latest release as done in this |
| 51 | + [PR](https://github.com/timescale/docs/pull/1075). |
| 52 | + - [ ] Create a branch based on master. |
| 53 | + - [ ] Cherry-pick the commits related to the patch. |
| 54 | + - [ ] Merge back into master. |
| 55 | + |
| 56 | +Take a breath. You're done releasing. |
| 57 | + |
| 58 | +## Release notes guide |
| 59 | + |
| 60 | +Here are a couple of good examples of release notes which can be used for comparison: |
| 61 | +- [Full release 0.6.0](https://github.com/timescale/promscale/releases/tag/0.6.0) |
| 62 | +- [Patch release 0.6.2](https://github.com/timescale/promscale/releases/tag/0.6.2) |
| 63 | + |
| 64 | +The following sections describe the different aspects of the release which should be highlighted. |
| 65 | + |
| 66 | +### Headline Features |
| 67 | + |
| 68 | +Describe the major features of this release. Point to announcements or blog posts for reference. |
| 69 | + |
| 70 | +### Thanks |
| 71 | + |
| 72 | +It's nice to shout out to community members who've contributed some changes. Use the following to find all authors (and then figure out who are internal and external on your own): |
| 73 | + |
| 74 | +``` |
| 75 | +git shortlog --summary --numbered --email <PREV_RELEASE>..<CURRENT_RELEASE> |
| 76 | +``` |
| 77 | + |
| 78 | +### Deprecations |
| 79 | + |
| 80 | +Highlight functionality which has been deprecated in this release, and give and indication of when users can expect that the deprecated functionality will be removed. |
| 81 | + |
| 82 | +### Backwards-incompatible changes |
| 83 | + |
| 84 | +Highlight functionality which has been removed in this release, and point out the alternatives (if present). |
| 85 | + |
| 86 | +### Upgrade notes |
| 87 | + |
| 88 | +Provide any notes on special steps that users must take during the upgrade, e.g. configuration changes which must (or can) be made. |
| 89 | + |
| 90 | +### Changelog |
| 91 | + |
| 92 | +This will be automatically populated by `goreleaser`. Remove all bors merge commits and dependabot version bump commits. |
0 commit comments