跳到主要内容

CEP 9 - Conda 弃用时间表

标题Conda 弃用时间表
状态已接受
作者Ken Odegard <kodegard@anaconda.com>, Jannis Leidel <jleidel@anaconda.com>, Travis Hathaway <thathaway@anaconda.com>
创建于2022 年 5 月 20 日
更新于2022 年 9 月 20 日
讨论https://github.com/conda-incubator/ceps/pull/27
实施不适用

摘要

此 CEP 描述了一个弃用时间表,以便正确警告即将从代码库中删除的内容。此政策扩展了Conda 发布时间表 (CEP 8)中定义的想法和术语。

注意 此 CEP 仅适用于已采用Conda 发布时间表 (CEP 8)的项目。

规范

我们提出了一个比Conda 发布时间表 (CEP 8)更慢的弃用时间表。这是为了承认我们多样化的用户群体(例如,从每用户每机器安装到共享集群上的多用户安装的所有内容)。

我们定义了一种新的发布类型,即弃用发布,以扩充常规发布。弃用发布每年在三月和九月发生两次

版本发布类型
YY.1.0常规
YY.2.0可选
YY.3.0常规,弃用
YY.4.0可选
YY.5.0常规
YY.6.0可选
YY.7.0常规
YY.8.0可选
YY.9.0常规,弃用
YY.10.0可选
YY.11.0常规
YY.12.0可选

所有弃用都需要经历三个 (3) 状态

  1. 待弃用:当某个功能被标记为将来弃用时
    • 任何功能都可以在任何版本中标记为待弃用
    • 此状态也是一个评论期,在此期间可能会提出社区关注或争议,请参阅争议弃用
  2. 已弃用:当某个功能被标记为将来移除时
    • 所有已标记为待弃用的功能,在至少经过两 (2+) 个常规发布(在标记为待弃用后 4-9 个月)后,将在下一个弃用发布中重新标记为已弃用
    • 此状态被认为是最终状态,弃用发生,不再可能发生争议,请参阅争议弃用
  3. 已移除:当某个功能从代码库中移除时
    • 所有已弃用的功能将在下一个弃用发布中移除

这将导致以下时间表

有时,代码库的更改可能需要更长的弃用时间表。如果发生这种情况,弃用警告将明确说明正在发生偏差以及预期的计划是什么。

争议弃用

待弃用状态也是一个评论期,在此期间可能会提出对弃用的争议。

要提出争议,请在相关存储库上打开一个 issue,并提供以下详细信息

  1. 要争议哪个待弃用功能
  2. 待弃用不应继续进行的详细信息和解释

存储库维护人员有责任参与讨论、解决疑虑或最终撤销待弃用状态。

如果争议陷入僵局,指导委员会必须按照增强提案的标准投票程序对决议进行投票。

动机

此 CEP 将有助于防止下游工具在代码库发展时发生意外中断。

向后兼容性

这是向后兼容的,也将鼓励更好的向后兼容性。

替代方案

  1. 临时弃用。
    • 不可预测且不可靠。
  2. 在一个版本中标记为待弃用,在下一个版本中标记为已弃用,并在第三个版本中移除
    • 由于生态系统庞大且下游应用程序数量未知而被拒绝,认为速度太快。

决议

本节包含关于此问题的最终决定。

参考

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