This document explains the process to release new versions.
Versions are expressed as vX.Y.Z
;
X
is the major versionY
is the minor versionZ
is the patch version
- Major releases: arbitrary timing
- Minor releases: roughly every 2 months
- Patch releases: roughly every 2-3 weeks
Note: The team can release Release candidates(vX.Y.Z-rcXYZ) for versions at any time for early access/testing.
This refers to the release of new features or breaking changes.
-
Run the release script
This example assumes that
vX.Y.Z
will be released:make release/init version=vX.Y.Z
RELEASE
file will be updated. -
Push the above changes and Create a pull request to confirm the changelog. You can confirm the changelog through the reviewing comment in pull request by GitHub Actions. For more information, Please see actions-gh-release.
-
Run the release document script
This example assumes that
vX.Y.Z
will be released:make release/docs version=vX.Y.Z
-
Make a pull request to
master
branch with the above changes and get reviews and merge.
-
Before cutting a new release, wait for all jobs in GitHub Actions to pass on the master branch.
-
Create a tagged release from the master branch. The release should start with "v" and be followed by the version number.
This refers to the release of new features.
Please refer to Major release for the processes.
This refers to the release of critical bug fixes.
A bugfix for a functional issue (not a data loss or security issue) that only affects an alpha feature does not qualify as a critical bug fix.
gh
is needed to be installed and rangh auth login
. Please refer to cli/cli.
-
Create a pull request to fix a bug on the
master
branch. -
Get reviews and merge.
-
As well as Major release, create a pull request to create a release note on the
master
branch. -
Get a review and merge.
-
Run release pick commits
This example assumes that the name of a release branch is
release-vX.Y.x
and the numbers of pull request are#1234
and#5678
:make release/pick branch=release-vX.Y.x pull_numbers="1234 5678"
-
Get a review and merge.
-
Before cutting a new release, wait for all jobs in GitHub Actions to pass on the release branch.
-
Create a tagged release from the release branch
release-vX.Y.x
. The release should start with "v" and be followed by the version number.
- Move on to Releases > Draft a New Release.
- Set values as below:
Choose a tag
: Create a new tagvX.Y.Z-rcN
Target
(branch):master
Release title
:Release vX.Y.Z-rcN
- Body area
- Copy from the previous rc-release note.
- Modify the version of
> Note: This is a candidate release of vX.Y.Z.
if needed. - Modify the version of
## Changes since
. - List Changes:
-
Extract commits to include by the below commands.
$ PREVIOUS_TAG=v0.46.0-rc1 # Set the previous release tag $ git log $PREVIOUS_TAG..HEAD --oneline | awk '{$1=""; print substr($0, 2)}'
output(from newer to older):
Add reference to the blog that shows how to install control plane on ECS (#4746) Update copyright (#4745) ... Add docs for SCRIPT_RUN stage (#4734)
-
Classify the changes into 'Notable Changes' and 'Internal Changes'.
-
Write them to the body area.
-
- Select
Set as a pre-release
, notSet as the latest release
.
- Push
Publish Release
.