Sphinx的释放过程¶
版本化¶
Sphinx坚持 PEP 440 版本,带有 major.minor.micro
计划,为 release segment (例如1.2.3)。主要版本、次要版本和微型版本部分应更改如下:
对于不兼容的行为更改和公共API更新,应增加主版本部分。
对于Sphinx的大多数版本,应该增加次要版本部分,其中保留了API和功能的向后兼容性。
微版部分应该只为紧急的错误修复版本增加。
当主要版本部分递增时,次要版本部分和微版本部分必须设置为 0
。当次要版本部分递增时,微版本部分必须设置为 0
。
新的主要版本应该在最终发布之前有一段测试期。
不建议的功能¶
Sphinx中的代码可能被否决有以下几个原因:
如果某个功能已以向后不兼容的方式进行了改进或修改,则旧的功能或行为将被弃用。
有时,sphinx会包含一个python库的后端口,该库不包含在sphinx当前支持的python版本中。当sphinx不再需要支持不包含库的旧版本的python时,该库将在sphinx中被弃用。
作为 弃用政策 描述了Sphinx的第一个版本,它否决了一个特性 (A.B
)应该提高 RemovedInSphinxXXWarning
(何处) XX
调用不推荐使用的功能时,是否删除该功能的sphinx版本。假设我们有良好的测试覆盖率,那么在运行启用了警告的测试套件时,这些警告将转换为错误::
pytest -Wall
因此,在添加 RemovedInSphinxXXWarning
您需要消除或消除运行测试时生成的任何警告。
弃用政策¶
主要版本和次要版本可能会取消先前版本的某些功能。如果某个功能在A.X版本中被否决,它将继续在所有A.X.X版本中工作(对于X的所有版本)。它将继续在所有B.X.X版本中工作,但会发出拒绝警告。不推荐使用的功能将在C.0.0中删除。这意味着不推荐使用的功能至少在两个主要版本中可用。
例如,如果我们决定开始对sphinx 2.x中的函数进行反预测:
sphinx 2.x将包含函数的向后兼容副本,该副本将引发
RemovedInSphinx40Warning
. 这是PendingDeprecationWarning
,即默认不显示。Sphinx3.x仍然包含向后兼容的副本,但是
RemovedInSphinx40Warning
将是DeprecationWarning
然后,默认显示。Sphinx4.0将彻底删除该功能。
弃用警告¶
Sphinx 将使其 RemovedInNextVersionWarning
默认情况下,如果 PYTHONWARNINGS
未设置。因此,可以使用以下命令禁用它们:
PYTHONWARNINGS= make html
(LINUX/MAC)export PYTHONWARNINGS=
并且做make html
(LINUX/MAC)set PYTHONWARNINGS=
并且做make html
(Windows)
但是您也可以显式地使用。 PYTHONWARNINGS=default
(见 Python docs on configuring warnings )更多细节。
Python版本支持策略¶
Sphinx在过去42个月内发布的所有次要版本中都支持至少3个次要版本的Python。本保单源自 NEP 29 ,一种科学的Python域标准。
例如,2024年5月发布的Sphinx版本将支持Python3.10、3.11和3.12。
这是包含当前策略的汇总表:
日期 |
Python |
---|---|
2021年12月26日 |
3.8+ |
2023年4月14日 |
3.9+ |
2024年4月5日 |
3.10+ |
2025年4月4日 |
3.11+ |
放行程序¶
发布程序在中列出 utils/release-checklist.rst
。