分支和版本
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.0
version. 与 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 会继续合并,相应的补丁版本会继续发布。