分支和版本¶
1. 分支名称和版本号¶
- 我们使用 SemVer 来指定版本号;
- 我们只使用两种分支:
main分支 -> 主分支和集成分支, 所有pr都应该先合并到main分支中;release分支 -> 发布分支, 引入release分支的主要目的是在non-latest版本上发布补丁版本。
2. 我们从哪个分支发布¶
由于历史原因,早期我们只维护了main分支,所以分支与版本的对应分为两种情况:
| Branch | Version |
|---|---|
| main | <= v0.4.0 |
| release-x.y | >= v0.5.0 |
3. 分支名称与版本号的对应关系¶
v0.5.0版本开始,我们决定从特定的 release 分支发布。发布分支的命名规则是release-x.y,对应版本vx.y.n,其中n是补丁版本号的名称。见下表:
| Branch | Version |
|---|---|
| release-0.5 | v0.5.0 |
| release-0.6 | v0.6.0, v0.6.1, ... |
例如
- 在
release-0.5分支上发布的第一个版本是v0.5.0; - When a bug was found in the
v0.5.0version. 与 bugfix 对应的提交应该通过cherry-pick从main分支合并到release-0.5分支, 然后继续发布v0.5.1版本。
4. 发布周期¶
从 v0.5.0 到 v1.0,我们保持每月发布一个次要版本的节奏。例如,如果本月发布了v0.5.0,那么下个月发布的版本是v0.6.0。
5. 一个版本支持多久¶
在 v1.0 发布之前,我们只维护最新版本。 例如, 在发布v0.5.0后,v0.6.0 发布之前, 我们会将所有的bugfix合并到 release-0.5 的cherry-pick 分支中, 并且在 release-0.5 中 v0.5.n 补丁版本会不断发布.当 v0.6.0 版本发布时, release-0.5 将不再更新。
从 v1.0 版本开始,我们将改为每三个月发布一次次要版本,共维护三个次要版本。 这意味着每个次要版本的维护周期为 3 x 3 = 9 月。例如,如果 v1.0.0 在 2023 年 1 月 发布, 那么 v1.1.0 将在2023 年 4 月 发布, v1.2.0 将在 2023 年 7月发布 。 每个次要版本发布后 9 个月内, bugfixes 会继续合并,相应的补丁版本会继续发布。