内容提要
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,之后每年发布一个新版本,保持年度发布的节奏。