发布集合
集合维护者定期发布所有支持的稳定版本的集合,前提是已合并了足够多的更改以进行发布。
准备发布集合
在 ansible-collections 组织 下的集合在发布时遵循 语义化版本控制。有关详细信息,请参阅 集合版本控制和弃用。
要准备发布,集合必须具有
公开可用的发布、版本控制和弃用策略。这可以是,例如,写在其 README 中或在专门的固定问题中。
一个固定问题,其中其发布经理向社区通报计划中或已完成的发布。这可以与上面提到的发布策略问题结合在一起。
一个 变更日志。
集合在集合存储库中标记的发布。
CI 管道正在运行。这可以通过使用 GitHub Actions、Azure Pipelines、Zuul 来实现。
所有 CI 测试都针对发布集合的提交运行。如果它们没有通过,则 MUST NOT 发布集合。
如果您计划将新集合添加到 Ansible 包中,请参阅 将集合包含到 Ansible 中。
注意
您的集合必须通过 ansible-test sanity
测试。有关详细信息,请参阅 测试集合。
集合版本控制和弃用
注意
集合 MUST 遵循 语义化版本控制。
为了维护用户的向后兼容性,每个 Ansible 次要版本系列(5.1.x、5.2.x 等)都将保持集合的主版本不变。例如,如果 Ansible 5.0.0 包含 community.general
4.0.2,那么每个 Ansible 5.X.x 版本都将包含在构建时可用的最新 community.general
4.y.z 版本。Ansible 5.x.x 将 **永远不会** 包含 community.general
5.y.x 版本,即使它可用。集合主版本更改将包含在下一个 Ansible 主版本中(在本例中为 6.0.0)。确保在 6.0.0 中包含的集合的当前主版本在产生新的 Ansible 6.X.X 版本时至少接收 bug 修复。
由于包括了新的次要版本,因此您可以包含新功能、模块和插件。您必须确保不破坏向后兼容性。有关详细信息,请参阅 语义化版本控制。 这尤其意味着
您可以在 **补丁** 版本中修复 bug,但不能添加新功能或弃用内容。
您可以在 **次要** 版本中添加新功能并弃用内容,但不能删除内容或更改现有功能的行为。
您只能在 **主** 版本中删除内容或进行重大更改。
确保如果在 5.x.y 中包含的集合版本中添加了弃用,则删除本身将仅在 7.0.0 或更高版本的集合版本中发生。确保以某种方式向贡献者和用户宣布发布、版本控制和弃用策略。有关如何执行此操作的示例,请参阅 community.general 中的公告。您也可以在集合 README 文件中执行此操作。
集合变更日志
集合 MUST 包含一个变更日志。为了使集合的变更日志在外观上保持一致,并确保包含在 ansible
包中的集合存在变更日志,我们建议您使用 antsibull-changelog 来维护和生成它。
在发布之前,请验证您的变更日志是否满足以下要求
发布集合的选项
有多种方法可以发布集合。如果您不知道使用哪种方法,请在 #ansible-community
IRC 频道或 community
Matrix 频道中询问。
本节假设使用 Zuul 发布集合,并且使用 antsibull-changelog 作为变更日志。
不使用发布分支进行发布
在以下情况下,可以使用不使用发布分支进行发布
集合没有以前的重大版本。
自集合的
1.0.0
版本发布以来没有引入任何重大更改。
有关详细信息,请参阅 不使用发布分支发布集合。
当需要引入重大更改时,您可以切换到下一个方法。
混合方法
在此方法中,当前主版本的发布是从 main
分支进行的,而旧主版本的发布是从这些版本的发布分支进行的。
使用发布分支进行发布
在引入重大更改时,使用发布分支进行发布。此方法通常只由大型社区集合使用,例如 community.general
和 community.network
。
有关详细信息,请参阅 使用发布分支发布集合。