The Kubernetes C Client Project is released on an as-needed basis. The process is as follows:
An issue is proposing a new release with a changelog since the last release
All OWNERS must LGTM this release
Before release, we need to determine our release branch.
The release branch will always be of the form release-<MAJOR>.<MINOR>
. Any
time a <MAJOR>
or <MINOR>
version number is incremented, a new release
branch needs to be created with git checkout -b release-<MAJOR>.<MINOR>
from
the branch containing the changes you want to release. If you are only
releasing bug fixes for an existing <MAJOR>.<MINOR>
release (a patch
release), you simply checkout that existing release branch git checkout release-<MAJOR>.<MINOR>
.
Now we are ready to perform the release.
There are 2 options to release: via GitHub Action or by manul
Maintainers meeting the following requirements will be able to perform automated release:
- Has "collaborator" permission or higher (otherwise they can't run the job manually).
- Should be in the OWNERS file.
The GitHub Action workflow Release will require three manual inputs:
-
The branch on which the workflow runs, must be a release branch, e.g.
release-X.Y
-
The releasing version, must be a valid semver
X.Y.Z
(without "v" prefix). -
Dry-Run: Indicating whether the release job will push the generated tag to the release branch and actually do a GitHub release.
Fill in the inputs, then click "Run" to start the job.
After the release job successfully finishes, we're supposed to see a git tag vX.Y.Z
pushed to the release branch, a GitHub draft release will also be packed on the tag.
In the end, manually update the release notes and publish the release on the GitHub release page.
An OWNER runs git tag -s $VERSION
or git tag -a $VERSION
(If GPG-signed tag is not required) and inserts the changelog and pushes the tag with git push origin $VERSION
e.g
```shell
git tag -a v0.1.0 -m "version 0.1.0"
git push origin v0.1.0
```
The release issue is closed
An announcement email is sent to [email protected]
with the subject [ANNOUNCE] kubernetes-template-project $VERSION is released