17.3 为 CPython 项目做贡献
在 12 个月的时间里,CPython 有 12 个新的小版本,数百个更改和错误报告,以及数千个对源代码的提交。
CPython 是世界上最大、最有活力、最开放的软件项目之一。你在这本书中获得的知识将使你在指引、理解和帮助改进 CPython 项目方面有一个巨大的领先优势。
CPython 社区渴望有更多的贡献者。但在提交对 CPython 的更改、改进或修复之前,你需要知道从哪里开始。以下是一些想法:
开发人员在 bugs.python.org 上创建分类问题;
解决描述良好的小问题。
让我们更详细地探讨其中的每一个想法。
重要
译者注: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 项目。流程如下:
确保你有一个 BPO 序号;
在你的 CPython 的 fork 仓上创建一个分支。有关下载源代码的步骤,请参阅“获取源代码”章节;
创建一个测试来重现问题。有关步骤,请参阅“测试套件”章节中的“测试模块”小节;
确保你的更改符合 PEP 7 和 PEP 8 风格指南;
运行回归测试套件以确认所有测试都通过。当你提交 Pull Request 时,回归测试套件将自动在 GitHub 上运行,但最好先在本地进行检查。有关步骤,请参阅“测试套件”章节;
提交并将你的更改推送到 GitHub;
访问 github.com/python/cpython 并为你的分支创建一个 Pull Request。
提交 Pull Request 后,它将由一个分类团队成员进行分类,并分配给核心开发人员或团队进行检视。
如前所述,CPython 项目需要更多的贡献者。从你提交更改到被检视之间的时间可能是一小时、一周或几个月。如果你没有立即得到回应请不要沮丧。大多数核心开发者都是志愿者,他们倾向于批量检视或合并 Pull Request。
重要
每个 Pull Request 只修复一个问题是很重要的。如果你在写补丁时,在代码中看到一个单独的、不相关的问题,请记下这个问题并将其作为第二个 Pull Request 提交。
为了帮助你快速合并更改,对问题、解决方案和修复进行良好的解释会有很大帮助。
其他贡献
除了修复错误之外,你还可以对 CPython 项目进行一些不同类型的改进:
许多标准库函数和模块都缺少单元测试。你可以写一些测试并提交给项目;
许多标准库函数没有最新的文档。你可以更新文档并提交更改。
Last updated