PEP 361 – Python 2.6 和 3.0 发布计划
- 作者:
- Neal Norwitz, Barry Warsaw
- 状态:
- 最终版
- 类型:
- 信息性
- 主题:
- 发布
- 创建日期:
- 2006年6月29日
- Python 版本:
- 2.6, 3.0
- 发布历史:
- 2008年3月17日
摘要
本文档描述了 Python 2.6 和 3.0 的开发和发布计划。该计划主要关注 PEP 级别的事项。小型功能可以添加到第一个测试版发布之前(包括第一个测试版)。错误可以在最终发布之前修复。
将至少有两次 Alpha 版本发布、两次 Beta 版本发布和一个发布候选版本。计划于2008年10月发布。
Python 2.6 不仅是 Python 2 系列的下一个进展,它也是一个过渡版本,旨在帮助开发人员开始为 Python 3.0 准备他们的代码。因此,许多功能正在从 Python 3.0 反向移植到 2.6。因此,同时发布这两个版本是合理的。Python 1.6 和 2.0 的发布就开创了这一先例。
直到发布候选版(rc),我们将每月同步发布 Python 2.6 和 3.0。发布将在每个月的第一周的周三进行,贯穿整个 Beta 测试周期。由于 Python 2.6 更早准备就绪,并且我们有外部截止日期希望满足,我们决定将 rc 版本分开。因此,Python 2.6 最终版目前计划在 Python 3.0 最终版之前两周发布。
发布经理和团队
- 2.6/3.0 发布经理:Barry Warsaw
- Windows 安装程序:Martin v. Loewis
- Mac 安装程序:Ronald Oussoren
- 文档:Georg Brandl
- RPMs:Sean Reifschneider
发布生命周期
Python 3.0 不再进行任何目的的维护。
Python 2.6.9 是 Python 2.6 系列的最终安全补丁(仅源代码)维护版本。随着其于2013年10月29日发布,对 Python 2.6 的所有官方支持均已结束。Python 2.6 不再进行任何目的的维护。
发布时间表
- 2008年2月29日:Python 2.6a1 和 3.0a3 发布
- 2008年4月2日:Python 2.6a2 和 3.0a4 发布
- 2008年5月8日:Python 2.6a3 和 3.0a5 发布
- 2008年6月18日:Python 2.6b1 和 3.0b1 发布
- 2008年7月17日:Python 2.6b2 和 3.0b2 发布
- 2008年8月20日:Python 2.6b3 和 3.0b3 发布
- 2008年9月12日:Python 2.6rc1 发布
- 2008年9月17日:Python 2.6rc2 和 3.0rc1 发布
- 2008年10月1日:Python 2.6 最终版发布
- 2008年11月6日:Python 3.0rc2 发布
- 2008年11月21日:Python 3.0rc3 发布
- 2008年12月3日:Python 3.0 最终版发布
- 2008年12月4日:Python 2.6.1 最终版发布
- 2009年4月14日:Python 2.6.2 最终版发布
- 2009年10月2日:Python 2.6.3 最终版发布
- 2009年10月25日:Python 2.6.4 最终版发布
- 2010年3月19日:Python 2.6.5 最终版发布
- 2010年8月24日:Python 2.6.6 最终版发布
- 2011年6月3日:Python 2.6.7 最终版发布(仅安全补丁)
- 2012年4月10日:Python 2.6.8 最终版发布(仅安全补丁)
- 2013年10月29日:Python 2.6.9 最终版发布(仅安全补丁)
3.0 已完成的功能
2.6 已完成的功能
PEPs
- PEP 352:抛出字符串异常现在会触发
TypeError。尝试捕获字符串异常会引发DeprecationWarning。BaseException.message已被弃用。 - PEP 358:”bytes” 对象
- PEP 366:主模块显式相对导入
- PEP 370:每用户 site-packages 目录
- PEP 3112:Python 3000 中的字节字面量
- PEP 3127:整数字面量支持和语法
- PEP 371:添加 multiprocessing 包
标准库中的新模块
json- 新的增强型
turtle模块 ast
标准库中已弃用的模块和函数
buildtoolscfmfilecommands.getstatus()macostools.touched()md5MimeWritermimifypopen2,os.popen[234]()posixfilesetssha
从标准库中移除的模块
gopherlibrgbimgmacfs
Py3k 中移除功能的警告
- 内置函数:
apply,callable,coerce,dict.has_key,execfile,reduce,reload - 反引号和
<> xrange的浮点参数coerce及其所有相关函数- 按默认比较进行比较
{}.has_key()file.xreadlinesprint()函数的 softspace 移除- 由于 PEP 4/PEP 3100/PEP 3108 导致的模块移除
其他主要功能
with/as将成为关键字- 添加了控制
dir()的特殊方法__dir__()[1] - AtheOS 支持已停止。
warnings模块在 C 中实现compile()接受 AST 并可转换为字节码
2.6 可能的功能
新功能*应该*在 alpha2 之前实现,特别是任何 C 语言修改或行为变更。新功能*必须*在 beta1 之前实现,否则将需要发布经理批准。
以下 PEP 正在为纳入 2.6 而努力:无。
此处列出的每一个非平凡功能(非 PEP)都必须在 python-dev 上讨论。其他增强功能包括
distutils替换(需要 PEP)
标准库中的新模块
winerrorhttps://bugs.python.org/issue1505257 (补丁被拒绝,模块应该用 C 语言编写)setuptoolsBDFL 声明纳入 2.5:https://mail.python.org/pipermail/python-dev/2006-April/063964.html
PJE 退出 2.5 以纳入 2.6:https://mail.python.org/pipermail/python-dev/2006-April/064145.html
将获得 DeprecationWarning 的模块(针对 Python 2.6 指定或由于疏忽)
rfc822mimetoolsmultifilecompiler包(或者改为 Py3K 警告?)- 将
Parser/*.c转换为使用 Cwarnings模块而不是printf - 为 Py3k 中移除的功能添加警告
__getslice__/__setslice__/__delslice__PyArgs_ParseTuple的浮点参数__cmp__?- 其他比较变更?
- 整数除法?
- 所有
PendingDeprecationWarnings(例如异常) - 将
zip()结果用作列表 exec语句(使用函数语法)- 以
func_*开头的函数属性(应使用__*__) - 长整数文字的
L后缀 - 将
__nonzero__重命名为__bool__ - 经典类的多重继承?(MRO 可能会改变)
- 属性和经典类?(实例属性会遮盖属性)
- 如果
__bool__方法可用且没有__nonzero__,则使用__bool__方法 - 检查
Demo/和Tools/中各种代码是否仍然有效,更新或删除无效的代码。 Modules/中的所有模块都应更新为ssize_t干净。- 所有 Python 代码(包括
Modules/)都应该能用 g++ 干净编译 - 开始移除已弃用的功能,并普遍朝着 Py3k 发展
- 将所有旧式测试(在导入时操作)替换为
unittest或doctest - 为所有未经测试的模块添加测试
- 文档化未文档化的模块/功能
distutils包中的bdist_debhttps://mail.python.org/pipermail/python-dev/2006-February/060926.htmldistutils包中的bdist_egg- 纯 Python
pgen模块(所有者:Guido)推迟到 2.6:https://mail.python.org/pipermail/python-dev/2006-April/064528.html - 移除
fpectl模块?
推迟到 2.7
无
开放问题
如何处理导入警告?
参考资料
版权
本文档已置于公共领域。
来源:https://github.com/python/peps/blob/main/peps/pep-0361.rst