发布经理指南
发布经理的目的是确保发布顺利进行。为了实现这一目标,他们需要协调以下方面:
拥有 Ansible GitHub 仓库 提交权限的开发者
没有提交权限的贡献者
社区
Ansible 文档团队
预发布版本:是什么以及为什么
预发布版本的存在是为了吸引测试人员。它们为那些不希望从源代码控制中运行代码的人提供了一种获取早期版本代码进行测试并提供反馈的方式。为了确保我们获得关于发布的良好反馈,我们需要确保发布中的所有主要更改都包含在预发布版本中。在最终发布之前,必须给测试人员时间来测试这些更改。理想情况下,我们希望在预发布版本之间有足够的时间让用户安装和测试一个版本一段时间。然后,他们可以花更多时间使用新代码,而不是安装最新版本。
对于测试人员来说,合适的时间长度可能大约是两周。但是,为了使我们三到四个月的开发周期正常运行,我们将此压缩到一周;如果时间更短,则会增加人们花费更多时间安装代码而不是运行代码的风险。但是,如果时间紧迫(发布日期无法推迟),那么发布包含新更改要比为了给人们时间在版本之间进行测试而保留这些更改更好。人们无法测试未发布的内容,因此我们必须发布这些压缩包,即使人们觉得他们必须更频繁地安装。
Beta 版本
在 Beta 版本中,我们知道仍然存在错误。我们将继续接受这些错误的修复。尽管我们会审查这些修复,但有时它们可能会具有侵入性或可能破坏代码的其他区域。
在 Beta 期间,我们不再接受功能提交。
候选版本
在候选版本中,我们已经修复了所有已知的阻塞错误。任何剩余的错误修复都是我们愿意从发布版本中排除的错误修复。此时,我们需要用户测试来确定是否存在任何其他潜藏的阻塞错误。
阻塞错误通常是指会导致用户遇到重大问题的错误。回归错误更有可能被视为阻塞错误,因为它们会破坏用户当前使用 Ansible 的方式。
发布经理将 cherry-pick 新的阻塞错误的修复。发布经理还将选择是否接受针对代码隔离区域的错误修复,或者将其推迟到下一个次要版本。非阻塞错误本身不会触发新的发布;如果阻塞错误需要进行新的发布,它们只会包含在下一个主要版本中。
最后一个 RC 应该尽可能接近最终版本。以下内容可能会更改:
版本号会自动更改,并且在从版本中删除预发布标签时会发生变化。
如果确实需要,测试和
docs/docsite/
可能会有所不同,因为它们不会破坏运行时。但是,发布经理仍然可能会拒绝它们,因为它们有可能导致在发布过程中可见的破坏。
注意
我们想特别强调,代码(在 bin/
、lib/ansible/
和 setup.py
中)必须相同,除非存在特殊情况。如果存在特殊情况,发布经理有责任通知需要测试该代码的组。
Ansible 发布流程
发布流程保存在 单独的文档 中,以便在发布期间轻松更新。如果您需要访问权限来编辑此文档,请联系当前发布经理之一将其添加到您的权限中。