17.3 为 CPython 项目做贡献

在 12 个月的时间里,CPython 有 12 个新的小版本,数百个更改和错误报告,以及数千个对源代码的提交。

CPython 是世界上最大、最有活力、最开放的软件项目之一。你在这本书中获得的知识将使你在指引、理解和帮助改进 CPython 项目方面有一个巨大的领先优势。

CPython 社区渴望有更多的贡献者。但在提交对 CPython 的更改、改进或修复之前,你需要知道从哪里开始。以下是一些想法:

  1. 开发人员在 bugs.python.org 上创建分类问题;

  2. 解决描述良好的小问题。

让我们更详细地探讨其中的每一个想法。

重要

译者注:Python 的问题单管理服务于 2022 年 3 月从 bugs.python.org 迁移至 https://github.com/python/cpython/issues

问题分类

所有错误报告和更改请求首先都提交到 bugs.python.org,也称为 BPO。这个网站是 CPython 项目的错误跟踪器。如果你想在 GitHub 上提交一个 Pull Request,那么你首先需要一个 BPO 序号,这是由 BPO(bugs.python.org)创建的问题序号。

首先,你要到左侧菜单上的 User/Register 先注册一个账号。

默认视图并不是特别有效,它同时显示了用户提出的问题和核心开发人员提出的问题,这些问题可能已经被解决了。

在登录后,请转到左侧菜单上的 Your Queries/Edit。此页面将为你提供一个可添加书签的问题索引查询列表:

图片不翻译

更改值到 leave in 中,以将这些查询包含在 Your Queries 菜单中:

以下是我觉得有用的一些查询:

  • Easy Documentation Issues:尚未进行的文档改进;

  • Easy Tasks:被确定为适合初学者的任务;

  • Recently Created:最近创建的问题;

  • Reports Without Replies:从未得到回复的 Bug 报告;

  • Unread:从未被读取的Bug报告;

  • 50 Latest Issues:最近更新的五十个问题。

有了这些视图,你可以按照 “问题分类” 指南了解评论问题的最新流程。

创建一个 Pull Request 来修复问题

当你解决了一个问题后,你就可以开始创建一个修复 Pull Request 并将其提交给 CPython 项目。流程如下:

  1. 确保你有一个 BPO 序号;

  2. 在你的 CPython 的 fork 仓上创建一个分支。有关下载源代码的步骤,请参阅“获取源代码”章节;

  3. 创建一个测试来重现问题。有关步骤,请参阅“测试套件”章节中的“测试模块”小节;

  4. 确保你的更改符合 PEP 7 和 PEP 8 风格指南;

  5. 运行回归测试套件以确认所有测试都通过。当你提交 Pull Request 时,回归测试套件将自动在 GitHub 上运行,但最好先在本地进行检查。有关步骤,请参阅“测试套件”章节;

  6. 提交并将你的更改推送到 GitHub;

  7. 访问 github.com/python/cpython 并为你的分支创建一个 Pull Request。

提交 Pull Request 后,它将由一个分类团队成员进行分类,并分配给核心开发人员或团队进行检视。

如前所述,CPython 项目需要更多的贡献者。从你提交更改到被检视之间的时间可能是一小时、一周或几个月。如果你没有立即得到回应请不要沮丧。大多数核心开发者都是志愿者,他们倾向于批量检视或合并 Pull Request。

重要

每个 Pull Request 只修复一个问题是很重要的。如果你在写补丁时,在代码中看到一个单独的、不相关的问题,请记下这个问题并将其作为第二个 Pull Request 提交。

为了帮助你快速合并更改,对问题、解决方案和修复进行良好的解释会有很大帮助。

其他贡献

除了修复错误之外,你还可以对 CPython 项目进行一些不同类型的改进:

  • 许多标准库函数和模块都缺少单元测试。你可以写一些测试并提交给项目;

  • 许多标准库函数没有最新的文档。你可以更新文档并提交更改。

Last updated