Branch and Version
- We use SemVer to specify version numbers;
- We only use two types of branches:
release
branch -> The release branch, the main purpose of introducing therelease
branch is to release patch versions on non-latest versions.
Start version v0.5.0
, we decided to release from a specific release
branch. The name rule of the release branch is release-x.y
, corresponding to the version vx.y.n
, where n is the name of the patch version number. See the following table:
Branch | Version |
---|---|
release-0.5 | v0.5.0 |
release-0.6 | v0.6.0, v0.6.1, … |
- The first version released on the
release-0.5
branch isv0.5.0
; - When a bug was found in the version. The commit(s) corresponding to the bugfix should be merged from the
main
branch to therelease-0.5
branch throughcherry-pick
, and then continue to release thev0.5.1
version.
Starting with v0.5.0
and until v1.0
, we maintain a cadence of one minor release per month. For example, if v0.5.0
is released this month, then the version to be released next month is v0.6.0
.
Starting from the v1.0
version, we will switch to releasing a minor version every three months and maintain a total of three minor versions. That means the maintenance cycle for each minor release is 3 x 3 = 9 months. For example, if v1.0.0
is released in January 2023, then v1.1.0
will be released in April 2023, and v1.2.0
will be released in July 2023. Within 9 months after the release of each minor version, the bugfixes will continue to be merged, and the corresponding patch version will continue to be released.