You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: RELEASE.md
+30-12Lines changed: 30 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,10 +45,9 @@ Maintaining the release branches for older minor releases happens on a best effo
45
45
46
46
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.
47
47
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
52
51
2. Update `CHANGELOG.md`
53
52
- Add a new section for the new release with all the changelog entries
54
53
- Ensure changelog entries are in this order:
@@ -58,9 +57,34 @@ For a new major or minor release, create the corresponding release branch based
58
57
*`[BUGFIX]`
59
58
- Run `./tools/release/check-changelog.sh LAST-RELEASE-TAG...master` and add any missing PR which includes user-facing changes
60
59
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
62
70
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.
64
88
65
89
You can do the tagging on the commandline:
66
90
@@ -69,9 +93,3 @@ $ tag=$(< VERSION)
69
93
$ git tag -s "v${tag}" -m "v${tag}"
70
94
$ git push origin "v${tag}"
71
95
```
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