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 the release 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:

    BranchVersion
    release-0.5v0.5.0
    release-0.6v0.6.0, v0.6.1, …
    • The first version released on the release-0.5 branch is v0.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 the release-0.5 branch through cherry-pick, and then continue to release the v0.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.