分支和版本

1. 分支名称和版本号

  • 我们使用 SemVer 来指定版本号;
  • 我们只使用两种分支:
  • main 分支 -> 主分支和集成分支, 所有pr都应该先合并到 main 分支中;
  • release 分支 -> 发布分支, 引入 release 分支的主要目的是在non-latest版本上发布补丁版本。

2. 我们从哪个分支发布

由于历史原因,早期我们只维护了main分支,所以分支与版本的对应分为两种情况:

BranchVersion
main<= v0.4.0
release-x.y>= v0.5.0

3. 分支名称与版本号的对应关系

v0.5.0版本开始,我们决定从特定的 release 分支发布。发布分支的命名规则是release-x.y,对应版本vx.y.n,其中n是补丁版本号的名称。见下表:

BranchVersion
release-0.5v0.5.0
release-0.6v0.6.0, v0.6.1, …

例如

  • release-0.5 分支上发布的第一个版本是 v0.5.0;
  • When a bug was found in the v0.5.0 version. 与 bugfix 对应的提交应该通过 cherry-pickmain 分支合并到 release-0.5 分支, 然后继续发布v0.5.1版本。

4. 发布周期

v0.5.0v1.0,我们保持每月发布一个次要版本的节奏。例如,如果本月发布了v0.5.0,那么下个月发布的版本是v0.6.0

5. 一个版本支持多久

v1.0 发布之前,我们只维护最新版本。 例如, 在发布v0.5.0后,v0.6.0 发布之前, 我们会将所有的bugfix合并到 release-0.5cherry-pick 分支中, 并且在 release-0.5v0.5.n 补丁版本会不断发布.当 v0.6.0 版本发布时, release-0.5 将不再更新。

v1.0 版本开始,我们将改为每三个月发布一次次要版本,共维护三个次要版本。 这意味着每个次要版本的维护周期为 3 x 3 = 9 月。例如,如果 v1.0.02023 年 1 月 发布, 那么 v1.1.0 将在2023 年 4 月 发布, v1.2.0 将在 2023 年 7月发布 。 每个次要版本发布后 9 个月内, bugfixes 会继续合并,相应的补丁版本会继续发布。