PEP 2026:Python 的日历版本管理

PEP 2026:Python 的日历版本管理

💡 原文英文,约3300词,阅读约需12分钟。
📝

内容提要

PEP 2026 提议将 Python 的版本命名方案改为日历版本(CalVer),格式为 3.YY.micro,其中 YY 表示初始发布年份。例如,Python 3.26 将于 2026 年发布,EOL 为 2031 年。此方案旨在简化版本管理,帮助用户理解安装版本的年龄及其支持状态。

🔎

延伸解读

为何选择 3.YY 而非其他 CalVer 方案

PEP 2026 最终选择 3.YY.micro 格式,而非 YY.0 或 YY.MM 等方案,主要出于兼容性考量。保持主版本号为 3 且次版本号仍为两位数字,可避免破坏平台兼容性标签、python3 命令以及大量假设版本号以 3 开头的代码。例如,若采用 YY.0,版本号变为 26.0,会引发标签解析歧义和生态工具适配问题。因此,3.YY 被视为最安全、改动最小的方案。

对库维护者和用户的实际影响

采用 CalVer 后,库维护者能更直观地判断需要测试的 Python 版本。例如在 2030 年,支持的上游版本为 3.26 至 3.30,一眼便知哪些是当前版本。用户也能从版本号直接推算安装年龄和 EOL,如 Python 3.26 于 2026 年发布,2031 年 EOL。这有助于推动用户升级到受支持版本,减少安全风险。

版本号映射与过渡安排

根据提案,Python 3.14 将是旧方案最后一个版本,2025 年发布。2026 年起直接跳至 3.26,跳过 3.15 至 3.25。原计划在这些版本中移除的弃用功能将重新映射到新版本号,例如原定 3.16 移除的改为 3.27。开发周期不变,3.26 的首个 alpha 计划于 2025 年 10 月发布,正式版 2026 年 10 月推出。

提案状态与未来可能性

该 PEP 状态为 Rejected,即已被拒绝,因此不会实施。但文中也探讨了未来若改变发布节奏,CalVer 仍可适应:如改为每两年一发布,版本号可变为 3.36、3.38;若每年发布两次,则有多种编号方案可选。此外,未来也可选择放弃 CalVer,回归原方案或转向 SemVer,只需调整版本号策略即可。

❓

Q&A

PEP 2026 提议的版本命名方案是什么?

PEP 2026 提议将 Python 的版本命名方案改为日历版本(CalVer),格式为 3.YY.micro,其中 YY 表示初始发布年份。

Python 3.26 的发布和支持时间是什么?

Python 3.26 将于 2026 年发布,EOL 为 2031 年。

采用日历版本有什么好处?

采用日历版本可以简化版本管理,帮助用户更清晰地理解安装版本的年龄及其支持状态。

PEP 2026 如何影响 Python 的版本升级?

PEP 2026 使用户更容易判断安装的 Python 版本的年龄,促进用户升级到受支持的版本。

PEP 2026 与语义版本有什么不同?

PEP 2026 的版本号是基于年份的日历版本,而语义版本(SemVer)是基于重大和次要变化的。

PEP 2026 的实施时间表是什么?

PEP 2026 计划在 2026 年发布 Python 3.26,之后每年发布一个新版本,保持年度发布的节奏。

🏷️

标签

➡️

继续阅读