PYTHON考虑更改版本编号
尽管普遍认为 Python 使用行业标准语义版本控制,但这导致了关于向后兼容性和生命周期预期的挫败感。
译自Python Mulls a Change in Version Numbering,作者 Joab Jackson。
一位 Python 核心维护者正在游说更改Python 编程语言的版本发布编号方式。
Hugo van Kemenade将担任即将发布的 Python 3.14 和 3.15 版本的发布经理,他撰写了提案 PEP 2026,即“Python 的日历版本控制”,以确定所有未来版本的编号方式。
简而言之,此提案建议 Python 版本将编号为 3.YY.micro,其中:
- 3 是主版本号 - 始终为 3。
- YY 是次要版本号 - 是短年份号:{年份} - 2000。
- micro 是微版本号 - 每次进行错误修复或安全版本发布时都会递增。
他指出,永远不会有 Python 4。“Python 3”将成为未来的品牌。
因此,Python 3.15 实际上将是 3.26,“26”代表发布年份(“2026”)。
Python 生命周期结束
van Kemenade 写道:“这旨在通过便于查看版本首次发布的时间,以及更轻松地计算其何时达到生命周期结束 (EOL) 来明确支持生命周期。”每个 Python 版本都支持五年。
自 2019 年以来,主要的Python 更新每年都会进行一次,按照Pep 603设定的发布计划进行。他写道,这种编号方式可以更好地反映节奏。
许多人认为 Python 遵循语义版本控制的行业标准。SemVer 标准规定版本号的格式为 MAJOR.MINOR.PATCH,其中 MAJOR 将是一次重大更新(可能会破坏 API 向后兼容性),MINOR 将是一个没有重大更改的版本,而 PATCH 将仅用于补丁。
由于 Python 3 的许多年度版本实际上破坏了向后兼容性,因此 Python 采用语义版本控制的这一假设导致了一些挫败感,尽管用户认为并非如此,因为所有新版本都在 3.XX 树中。但是,主版本号在第一个点之后递增,即当前版本为 3.12,今年晚些时候的下一个主版本将为 3.13。
这些版本中的任何一个都可能带来重大更改,违反 SemVer 惯例(Python 实际上比语义版本标准早了大约 15 年)。
Van Kemenade 撰写并提出了他的提案Pycon 2024 会议,该会议于上个月在匹兹堡举行。
van Kemenade 建议,Python 不应采用 SemVer,而应采用越来越常见的日历版本控制(CalVer),其中包括格里高利历年中的一些元素。
摘自 Hugo van Kemenade(Python 基金会)的演示文稿
例如,Canonical 使用日历友好的 YY.0M.micro,其中年份由 YY 表示,月份由 oM 表示,补丁版本由 micro 表示。因此,当前的 Ubuntu 版本为24.02。
未来,Python 版本将采用这种方式:
- 3.15.0 将于 2026 年发布(3.26)
- 3.16.0 将于 2027 年发布(3.27)
- 3.17.0 将于 2028 年发布(3.28)
- 3.18.0 将于 2029 年发布(3.29)
- 3.19.0 将于 2030 年发布(3.30) 依此类推…
Slashdot 上持怀疑态度的观察者指出,这种两位数方法在世纪之交会出现问题,其中两位数年份表示法会产生歧义,这使得构建系统难以自动更新到编程语言的最新版本,以及其他问题。
在 2100 年,Python v3.00 将紧随 Python v3.99 之后?
本文在云云众生(https://yylives.cc/)首发,欢迎大家访问。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
借助 NGINX Unit 在服务器端使用 WebAssembly
原文作者:Liam Crilly of F5 原文链接:借助 NGINX Unit 在服务器端使用 WebAssembly 转载来源:NGINX 中文官网 NGINX 唯一中文官方社区 ,尽在nginx.org.cn WebAssembly (缩写为 Wasm )可为 Web 应用领域提供有力支持。在浏览器中,它提供了一个安全的沙盒执行环境,支持前端开发人员在不影响性能的情况下使用各种高级语言(不仅限于 JavaScript!)。在后端(服务器端),WebAssembly 的跨平台支持和多架构可移植性有望极大地简化开发、部署和可扩展性。 NGINX 旨在帮助您创建服务器端 WebAssembly 模块并在任何位置运行它 — 不必修改也无需多个 build 流水线。相反,您的 WebAssembly 模块创建可以从本地开发开始,直至投入到运行任务关键的多云环境。 随着 NGINX Unit 1.31 的发布 ,我们很高兴实现了这一愿景。 NGINX Unit 是一个通用的 web 应用服务器 ,应用代码与 TLS、静态文件及请求路由等其他基本属性一同执行。不仅如此,NGINX Unit ...
- 下一篇
为数据安全护航,袋鼠云在数据分类分级上的探索实践
在大数据时代,数据具有多源异构的特性,且价值各异,企业需依据数据的重要性、价值指数等予以区分,以利采取不同的数据保护举措,避免数据泄露。故而,数据分类分级管理属于数据安全保护中极为重要的环节之一。 2021 年 12 月 31 日,全国信息安全标准化技术委员会秘书处颁布了《网络安全标准实践指南------网络数据分类分级指引》,指明数据分类分级需按照数据分类管理、分级保护的思路,根据合法合规、分类多维、分级明确、就高从严、动态调整等多项原则来进行划分。 近日,《数据安全技术 数据分类分级规则》正式稿发布,并将于2024年10月1日正式实施。旨在通过科学的分类分级方法,识别和保护数据中的关键信息,确保数据安全可控。该规则明确给出数据分类分级通用规则,支撑《数据安全法》第二十一条贯彻落实。 什么是数据分类分级? 从业务角度或数据管理的方向来考量数据分类,涵盖行业维度、业务领域维度、数据来源维度、共享维度、数据开放维度等等。与此同时,依据这些维度,把具有相同属性或特征的数据,按照特定的原则与方法予以归类。 而数据分级是按照数据的重要性与影响程度来区分等级,以保证数据能够获得与其重要性和影响程...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6