Sphinx的释放过程¶
版本化¶
Sphinx坚持 PEP 440 版本,带有 major.minor.micro
计划,为 release segment (例如1.2.3)。主要版本、次要版本和微型版本部分应更改如下:
对于不兼容的行为更改和公共API更新,应增加主版本部分。
对于Sphinx的大多数版本,应该增加次要版本部分,其中保留了API和功能的向后兼容性。
微版部分应该只为紧急的错误修复版本增加。
当主要版本部分递增时,次要版本部分和微版本部分必须设置为 0
。当次要版本部分递增时,微版本部分必须设置为 0
。
新的主要版本应该在最终发布之前有一段测试期。
不推荐使用某项功能¶
Sphinx中的代码可能会被弃用,原因有几个:
如果以向后不兼容的方式改进或修改了某个功能,则旧的功能或行为将被弃用。
有时,Sphinx会包含一个不包含在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
即,默认情况下不会显示。Sphinx 3.x仍将包含向后兼容的副本,但
RemovedInSphinx40Warning
将是的子类DeprecationWarning
然后,默认情况下会显示和。Sphinx 4.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支持从预期发布日期起过去3年内发布的所有Python次要版本,至少支持3个Python次要版本。该政策源自 SPEC 0 ,科学的Python领域标准。
例如,2025年5月发布的Sphinx版本将支持Python 3.11、3.12和3.13。
这是包含当前策略的汇总表:
日期 |
Python |
---|---|
2023年10月5日 |
3.10+ |
2024年10月4日 |
3.11+ |
2025年10月24日 |
3.12+ |
2026年10月1日 |
3.13+ |
2027年10月1日 |
3.14+ |
放行程序¶
发布程序在中列出 utils/release-checklist.rst
。