跳转至主要内容

CEP 8 - Conda 发布计划

标题Conda 发布计划
状态已接受
作者Ken Odegard <kodegard@anaconda.com>, Jannis Leidel <jleidel@anaconda.com>
创建于2022 年 5 月 20 日
更新于2022 年 8 月 22 日
讨论https://github.com/conda-incubator/ceps/pull/26
实施不适用

摘要

本 CEP 描述了从 22.9.0 版本开始的所有未来 conda 版本的发布节奏。

规范

我们建议定期安排双月(每两个月一次)发布,其中标记/发布发生在每月第二个星期一当周(根据 ISO 8601 标准,星期一至星期四)。

考虑到我们各种不同的用户,我们还将提出一项弃用策略(将在以后的 CEP 中定义),该策略允许较慢的采用率(即,用户可以每 3-4 个月更新一次)。

为了实现更好、更可预测的版本控制,我们将采用 CalVer

  • YY:主版本将是缩短的年份(22+)
  • MM:次版本将是缩短的月份(1-12)
  • MICRO:微型/补丁版本每月重置为零,并在该月发生的每次额外发布时递增(0+)

此方案将从 2022 年 9 月发布的 22.9.0 版本开始,从而产生以下定期发布计划

版本发布周
22.9.02022-09-12
22.11.02022-11-14
23.1.02023-01-09
23.3.02023-03-13
23.5.02023-05-08
23.7.02023-07-10
23.9.02023-09-11
......

注意 尽管遵循双月发布计划,我们仍允许在定期发布之间的任何时间进行发布,以进行热修复、安全发布或其他需要立即发布的高优先级更改。

为了区分双月发布计划和其他可选发布,我们定义以下发布类型

  • 定期发布:定期安排的双月发布
  • 可选发布:可能在与定期发布交替的月份发布的版本
  • 热修复发布:可能在任何月份发生的额外发布,以修补同月早期发布的版本(无论是定期发布还是可选发布)

因此,完全有可能看到以下发布

版本发布类型
22.9.0定期
22.9.1热修复
22.9.2热修复
22.10.0可选
22.10.1热修复
22.11.0定期
22.12.0可选
22.12.1热修复
......

注意 如果自上次发布以来没有或几乎没有进行重大更改,则 conda 维护团队可以决定跳过定期发布,前提是该决定已公开并在变更日志中记录。

动机

本 CEP 的目标是消除关于何时以及什么保证发布的歧义/维护者猜测。

向后兼容性

采用此发布计划不会破坏任何现有流程或方案。

我们将消除关于计划在 conda 5.0 版本中进行的多年传闻更改的困惑,因为我们将从 conda 4.14.0 跳到 conda 22.9.0。避免 conda 5.0 并不是说这些更改不会发生,而是说这些更改在单个版本中成功(且安全地)推出是不现实的。

最后,由于 SemVer 在语义上可与 CalVer 互换,并且我们建议从 conda 4.14.0 切换到 conda 22.9.0,因此版本解析和版本排序都不会受到影响。

备选方案

  1. 无所作为。继续临时发布。
    • 因过于不一致且对路线图/计划目的具有挑战性而被拒绝。
  2. 遵循每月计划。
    • 因对于维护人员和多用户安装来说太快而被拒绝。
  3. 遵循季度计划。
    • 因对于维护人员和希望看到改进的普通用户来说太慢而被拒绝。

决议

这是一个标准的、非超时投票。

本次投票已达到法定人数(10 + 0 = 10,至少占 16 的 60%)。

由于记录了 10 票“赞成”票和 0 票“反对”票,因此也已通过,10/10 大于 15 的 60%。

应该注意的是,在关于不使先前投票无效的次要实施细节的拉取请求中记录了更改请求。作者进行了请求的更改。

参考

所有 CEP 均明确采用 CC0 1.0 通用