Posted in

Python 考虑更改版本编号_AI阅读总结 — 包阅AI

包阅导读总结

1. 关键词:Python、版本编号、CalVer、支持生命周期、向后兼容性

2. 总结:Python 核心维护者 Hugo van Kemenade 提议改变版本编号方式,采用包含年份的 Calendar Versioning ,以明确支持生命周期,目前每年有重大更新,但其版本编号与语义版本标准不同,此提议引发了一些讨论和质疑。

3.

– Python 核心维护者提议改变版本编号

– Hugo van Kemenade 将负责 Python 3.14 和 3.15 版本发布

– 提出 PEP 2026 提案,建议版本编号为 3.YY.micro

– 新编号方式的解释

– 3 为固定的主版本号

– YY 是短年份编号

– micro 为微版本号,用于修复漏洞和安全更新

– 相关说明

– 不会有 Python 4 ,“Python 3”是品牌

– 每个版本支持 5 年

– 此编号方式能反映发布节奏

– 目前 Python 版本编号与语义版本标准不同

– 面临的质疑

– 世纪之交时两位数年份可能有歧义,给构建系统等带来问题

思维导图:

文章地址:https://thenewstack.io/python-mulls-a-change-in-version-numbering/

文章来源:thenewstack.io

作者:Joab Jackson

发布时间:2024/6/18 21:30

语言:英文

总字数:575字

预计阅读时间:3分钟

评分:81分

标签:编程语言,Python


以下为原文内容

本内容来源于用户推荐转载,旨在分享知识与观点,如有侵权请联系删除 联系邮箱 media@ilingban.com

A Python core maintainer is lobbying to change the way the Python programming language numbers its releases.

Hugo van Kemenade, who will be the release manager for the upcoming Python 3.14 and 3.15 releases, has authored the proposal PEP 2026, “Calendar Versioning for Python,” for how all future releases be numbered.

In short, this proposal suggests thatPython versions will be numbered 3.YY.micro where:

3 is the major version number – it is always 3.
YY is the minor version number – it is the short year number: {year} – 2000.
micro is the micro version number – it is incremented for each bugfix or security release.

He noted that there would never be a Python 4. “Python 3” will be the brand going forward.

Thus, Python 3.15 would actually be 3.26, with the “26” representing the year of the release (“2026”).

Python End of Life

“This aims to make the support lifecycle clear by making it easy to see when a version was first released, and easier to work out when it will reach end of life (EOL),” van Kemenade wrote. Each Python release is supported for five years.

Since 2019, major Python updates have occurred on an annual basis, as per the release schedule set by Pep 603. This numbering would better reflect the cadence, he wrote.

Many people assume Python follows the industry standard of semantic versioning. The SemVer standard dictates a version number would be in the format of MAJOR.MINOR.PATCH, where MAJOR would be a major update (that could break API backward compatibility), MINOR would be a version with no breaking changes and PATCH would just be for patches.

This assumption that Python does semantic versioning has led to some frustrations as many yearly Python 3 releases actually break backward compatibility, though users assume otherwise as all new releases are in the 3.XX tree. But major versions are incremented after the first dot, i.e. the current release is 3.12 and the next major release, later this year, will be 3.13.

Any of these versions may come with breaking changes, flaunting SemVer convention (Python actually predates the Semantic Version standard by about 15 years).

Van Kemenade wrote and presented his proposal the Pycon 2024 conference, held last month in Pittsburgh.

Instead of adopting SemVer, van Kemenade suggested Python should go with an increasingly common Calendar Versioning (CalVer), which includes some elements of the Gregorian calendar year in the numbering.

Examples of CalVer numbering with JavaScript and other languages.

From the presentation of Hugo van Kemenade (Python Foundation)

Canonical, for instance, uses a calendar-friendly YY.0M.micro, where the year is represented by YY, the month by oM and patched releases by the micro designation. Thus the current Ubuntu version is 24.02.

Going forward, Python releases would go this way:

3.15.0 will be released in 2026 (3.26)
3.16.0 will be released in 2027 (3.27)
3.17.0 will be released in 2028 (3.28)
3.18.0 will be released in 2029 (3.29)
3.19.0 will be released in 2030 (3.30)

And so on…

Skeptical observers on Slashdot noted that this two-number approach would be problematic around the turn of the century, where a two-digit year designation would present ambiguity, making it difficult for build systems to auto-update to the latest version of the programming language, among other issues.

In the year 2100, Python v3.00 would follow Python v3.99?

“Did Y2K teach us nothing?” one reader quipped.

YOUTUBE.COM/THENEWSTACK

Tech moves fast, don’t miss an episode. Subscribe to our YouTubechannel to stream all our podcasts, interviews, demos, and more.

GroupCreated with Sketch.