在 tests-passed 中,从 3.2.0.beta1-dev 开始,Discourse 核心版本号将包含一个 -dev 后缀,以表明它们不是 beta 的最终“发布”版本。此后缀不会出现在 UI 中,因此这只是一个技术细节,对绝大多数人没有影响。
有关技术细节,请参见下文:
在 Discourse 3.1 及更早版本的 beta 系列中,我们的版本控制策略是“发布”一个 beta,然后将 tests-passed 中的版本号保持不变,直到下一个 beta 版本发布。这带来了一些问题:
-
在尝试指定版本时,像
3.1.0.beta2这样的版本可能指代数百个可能的时间点。在精确定义兼容性时,这尤其成问题 通过 .discourse-compatibility 文件 -
在主要版本发布后,我们必须立即“发布”下一个版本的 beta1,以便在 tests-passed 上继续开发。这就是为什么我们有 冗余的 beta1 发布
为了改善这种情况,我们现在将在 beta 版本发布期间将 -dev 追加到版本号中。例如,我们以 3.2.0.beta1-dev 开始 3.2 的开发周期。当它准备好发布时,将被标记为 3.2.0.beta1,然后我们将立即跟进另一个提交,开始开发 3.2.0.beta2-dev。
今后,我们的“主要版本”将如下所示:
%%{init: { 'logLevel': 'debug', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchOrder': 2}} }%%
gitGraph
branch stable order: 1
commit tag: "v3.1.8"
checkout main
commit id: "bump to v3.2.0.beta17" tag: "v3.2.0.beta17" type: HIGHLIGHT
commit id: "bump to v3.2.0.beta18-dev"
commit
commit id: "bump to v3.2.0.beta18" tag: "v3.2.0.beta18" type: HIGHLIGHT
checkout stable
merge main id: "merge"
commit id: "bump to v3.2.0" type: HIGHLIGHT tag: "v3.2.0"
checkout main
commit id: "bump to v3.3.0.beta1-dev"
“次要版本”将如下所示:
%%{init: { 'logLevel': 'debug', 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchOrder': 2}} }%%
gitGraph
branch stable order: 1
commit tag: "v3.1.1"
checkout main
commit id: "bump to v3.2.0.beta2-dev"
commit id: "... development of beta2 ..."
commit id: "bump to v3.2.0.beta2" tag: "v3.2.0.beta2" type: HIGHLIGHT
checkout stable
commit id: "backports"
commit id: "bump to v3.1.2" type: HIGHLIGHT tag: "v3.1.2"
checkout main
commit id: "bump to v3.2.0.beta3-dev"
(在这些图中,“main”和“tests-passed”可以被视为等同)
这些流程已编入一些 rake 任务中,可以在 version_bump.rake 中找到。