Thursday, May 5, 2011

Python 3.3 将放弃对 OS/2, Windows 2000 和 VMS 的支持

原文链接: Python 3.3 to Drop Support for OS/2, Windows 2000, and VMS

基本上每隔一段时间, 我们都会依据使用状况来对所支持的操作系统列表做一些增删.衡量增删的最重要的原因是各个平台开发人员的数量, 因为我们需要足够的开发人员以保证发行版的质量. 其他一些因素也在考量范围之内, 例如操作系统的年龄周期以及开发是否停滞等.

Victor Stinner 最近提议在CPython中 放弃支持 OS/2 和 VMS, 这已经是在他提出 最初问题 的一年以后了. Victor 最初提问时, 他正在竭力处理 Unicode相关的问题, 尤其是关于 os.execvpe() 通过 PEP 383 的 surrogateescape handler支持环境变量的一个问题. OS/2 和 VMS 目前在开发组中没有负责人, 而且在发布过程中并没有专门的测试.

写这篇帖子的过程 让我想到了 以前关于移除 Windows 2000 支持的 讨论 ,不过以前的讨论好像已经被闲置了. 当时的讨论还打算将 COMSPEC 设为 command.com的系统也一并取消支持. 从现在开始 , 这两者都已经加入了 OS/2 和 VMS 的行列.为了让开发工作更容易, Windows 2000 将被取消支持, 这样我们就不用考虑一款2010年已经生命结束的操作系统里的古老API了.

为了开始移除对于这些系统的支持, 我和 Victor 已经开始更新 PEP 11.

PEP 11

这篇 PEP 提供了不再支持的操作系统列表, 并且解释了将操作系统添加到这份列表中的流程.

一旦决定操作系统可以开始移除支持的流程, 该系统将被正式宣告为不支持的系统.该声明通常在开发中的版本生效, 所以取消 OS/2, Windows 2000 和 VMS 的支持将从 Python 3.3 开始.

第一阶段只是一个放手阶段, 可以说是举举白旗, 告诉大家已经没有人维护代码以保证发行版的质量了. 编译和安装的过程可能会做些改动, 用来提示这些平台的用户,告诉他们这些平台已经不支持了. 文档中的 "What's New" 部分也会列出新加的不支持的平台.

在一个"不支持"的发行周期之后, 下一个版本将会变成移除代码的公平游戏. 以这次的情况来看, 代码可以在 3.4 中移除. 也许不会把所有的代码全盘移除, 但开发者在正常工作中碰到相关的代码时可能会移掉里边的任何 #ifdef 片段, configure段落, 或者过时的代码.

你可以做什么?

如果你是 OS/2 或者 VMS 的用户, 你可以通过下面这些事情来拯救你的平台.

成为维护者

如果你能成为一名活跃的开发者, 那就是对 Python 最大的支持了. Andrew MacIntyre已经维护 OS/2 很长时间, 他在 Victor 一开始提问时就说过 Python 在 OS/2 平台的Unicode 支持已经落后, 所以这片领域确实需要集中精力搞搞. VMS 平台大致可以通过http://www.vmspython.org 得到一些外部支持, 不过正如 issue 11918 讨论过的,需要有人站出来才可以让 VMS 的上游支持继续下去.

如果你对上述任何平台的开发有兴趣, 请参见 developer's guide 以了解现行的开发流程.

贡献一台 build slave

有了一个活跃的开发者, 一个平台就有更好的机会生存下去. 有了一台 build slave, 一个平台的机会就更大了, 不仅是生存的机会, 而且质量也会得到保障.

Python 使用 Buildbot 来做持续集成, 至于build slave, 目前我们 提供 了对于 Linux, Mac, Windows, 以及 Open Indiana (Solaris) 各种版本, 各种架构, 以及各种配置的机器. 如果你能向 "build 舰队" 捐献一台 OS/2 或者 VMS 的机器的话,这些平台受到的关注将和其他更主流的平台一样多.

如果你可以通过捐献时间或者硬件让我们继续支持 OS/2 和 VMS 的话, 请联系 python-dev邮件组以协调你的努力.

No comments:

Post a Comment