Skip to content

Commit e8b56cc

Browse files
committed
Updated RELEASE instructions to include a pre-release in our process
Signed-off-by: Marco Pracucci <[email protected]>
1 parent 332c94c commit e8b56cc

File tree

1 file changed

+30
-12
lines changed

1 file changed

+30
-12
lines changed

RELEASE.md

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,9 @@ Maintaining the release branches for older minor releases happens on a best effo
4545

4646
For a new major or minor release, create the corresponding release branch based on the master branch. For a patch release, work in the branch of the minor release you want to patch.
4747

48-
1. Update version number in the following locations:
49-
- The `VERSION` file
50-
- Kubernetes manifests located at `k8s/`
51-
- Documentation located at `docs/`
48+
0. Make you've a GPG key associated to your GitHub account (`git tag` will be signed with the GPG key)
49+
- You can add a GPG key to your GitHub account using the following [procedure](https://help.github.com/articles/generating-a-gpg-key/)
50+
1. Update the version number in the `VERSION` file
5251
2. Update `CHANGELOG.md`
5352
- Add a new section for the new release with all the changelog entries
5453
- Ensure changelog entries are in this order:
@@ -58,9 +57,34 @@ For a new major or minor release, create the corresponding release branch based
5857
* `[BUGFIX]`
5958
- Run `./tools/release/check-changelog.sh LAST-RELEASE-TAG...master` and add any missing PR which includes user-facing changes
6059

61-
### Draft the new release
60+
### Publish a release candidate
61+
62+
To publish a release candidate:
63+
64+
1. Ensure the `VERSION` number has the `-rc.X` suffix (`X` starting from `0`)
65+
2. `git tag` the new release (see [How to tag a release](#how-to-tag-a-release))
66+
3. Wait until CI pipeline succeeded (once a tag is created, the release process through CircleCI will be triggered for this tag)
67+
3. Create a pre-release in GitHub
68+
- Write the release notes (including a copy-paste of the changelog)
69+
- Build binaries with `make disk` and attach them to the release
6270

63-
Tag the new release with a tag named `v<major>.<minor>.<patch>`, e.g. `v0.1.3`. Note the `v` prefix.
71+
### Publish a stable release
72+
73+
To publish a stable release:
74+
75+
1. Ensure the `VERSION` number has **no** `-rc.X` suffix
76+
2. Update the Cortex version in the following locations:
77+
- Kubernetes manifests located at `k8s/`
78+
- Documentation located at `docs/`
79+
3. `git tag` the new release (see [How to tag a release](#how-to-tag-a-release))
80+
4. Wait until CI pipeline succeeded (once a tag is created, the release process through CircleCI will be triggered for this tag)
81+
5. Create a release in GitHub
82+
- Write the release notes (including a copy-paste of the changelog)
83+
- Build binaries with `make disk` and attach them to the release
84+
85+
### How to tag a release
86+
87+
Every release is tagged with `v<major>.<minor>.<patch>`, e.g. `v0.1.3`. Note the `v` prefix.
6488

6589
You can do the tagging on the commandline:
6690

@@ -69,9 +93,3 @@ $ tag=$(< VERSION)
6993
$ git tag -s "v${tag}" -m "v${tag}"
7094
$ git push origin "v${tag}"
7195
```
72-
73-
Signing a tag with a GPG key is appreciated, but in case you can't add a GPG key to your Github account using the following [procedure](https://help.github.com/articles/generating-a-gpg-key/), you can replace the `-s` flag by `-a` flag of the `git tag` command to only annotate the tag without signing.
74-
75-
Once a tag is created, the release process through CircleCI will be triggered for this tag. If everything goes smoothly, create a release in the GitHub UI with the changelog for this release.
76-
77-
Finally run `make dist` to build binaries into `./dist` and attach them to the release on GitHub.

0 commit comments

Comments
 (0)