Python开发人员指南
本指南是一个全面的资源贡献 给Python的 -为新的和经验丰富的贡献者。这是 保持由维护的Python同一社区。我们欢迎您对Python的贡献!
快速参考
这是设置和添加补丁所需的基本步骤。了解基础知识后,这就是清单。有关完整说明,请参阅安装指南。
-
用叉子CPython的库 到你的GitHub帐户,并获得源代码使用:
git clone https://github.com/<your_username>/cpython cd cpython
-
在UNIX和Mac OS上构建Python,请使用:
./configure --with-pydebug && make -j
在Windows上使用:
PCbuild\build.bat -e -d
另请参见更详细的说明, 如何安装和构建依赖项以及UNIX, Mac OS和Windows的特定于平台的页面。
-
运行测试:
./python -m test -j3
在大多数 Mac OS X系统上,请替换
./python
为./python.exe
。在Windows上,使用python.bat
。在Python 2.7中,替换test
为test.regrtest
。 -
创建一个新分支,您将在其中处理该问题,例如:
git checkout -b fix-issue-12345 master
如果问题尚不存在,请创建它。琐碎的问题(例如拼写错误)不需要创建任何问题。
-
解决问题后,运行测试,然后运行,如果一切正常,请提交。
make patchcheck
-
将分支推送到GitHub的fork上,并创建一个pull请求。
bpo-NNNN
在请求请求描述中使用发行号。例如:bpo-12345: Fix some bug in spam module
注意:如本指南“ 许可”部分所述,初次贡献者将需要签署“贡献者许可协议”(CLA)。
Python分支的状态
科 | 时间表 | 状态 | 初版 | 生命尽头 | 发布经理 |
---|---|---|---|---|---|
主 | PEP 596 | 特征 | 待定 | 待定 | ŁukaszLanga |
3.8 | 人教版569 | 错误修正 | 2019-10-14 | 2024-10 | ŁukaszLanga |
3.7 | PEP 537 | 错误修正 | 2018-06-27 | 2023-06-27 | 内德·迪利 |
2.7 | PEP 373 | 错误修正 | 2010-07-03 | 2020-01-01 | 本杰明·彼得森 |
3.6 | PEP 494 | 安全 | 2016-12-23 | 2021-12-23 | 内德·迪利 |
3.5 | PEP 478 | 安全 | 2015-09-13 | 2020-09-13 | 拉里·黑斯廷斯 |
master分支当前是将来的Python 3.9,并且是唯一接受新功能的分支。可以在下载页面上找到每个Python版本的最新版本。
状态:
特征: | 接受新功能,错误修正和安全修正。 |
---|---|
预发行: | 即将发布的功能版本接受了功能修复,错误修复和安全修复。 |
错误修正: | 错误修正和安全修正被接受,新的二进制文件仍被发布。(也称为维护模式或稳定发布) |
安全: | 仅接受安全修复程序,并且不再发布任何二进制文件,但是可以发布仅源代码的新版本 |
生命尽头: | 释放周期被冻结;没有进一步的变化可以推到它。 |
斜体字的日期已安排好并且可以调整。
默认情况下,寿命终止是在第一个发行版之后的5年,但是可以由每个分支的发行经理进行调整。对Python 2.7的支持目前已扩展至2020-01-01。早于2.7的版本已达到使用寿命。
另请参阅开发周期页面以获取有关分支的更多信息。
贡献
我们鼓励每个人都为Python做出贡献,因此我们制定了本开发人员指南。如果您在阅读了本指南中的内容后仍然有疑问,那么可以使用Core Python Mentorship组来帮助指导新贡献者完成整个过程。
来自Python社区的许多人为《开源指南》中的一系列出色指南做出了贡献。
核心开发人员和贡献者都将发现以下有用的指南:
贡献Python指南:
入门后,高级任务和主题:
- 测试套件中的静音警告
- 修复buildbots发现的问题
- 覆盖范围扫描
- 帮助审核打开的请求。了解如何查看“拉取请求”。
- 解决“简单”问题(及以后)
据建议,由于需要上述文件读取。新的贡献者将通过阅读此表中提到的部分来建立对CPython工作流程的理解。您可以停下来感到舒适,然后立即开始贡献,而无需立即阅读和理解这些文档。如果您确实选择跳过文档,请注意,它是在阅读了先前文档的前提下编写的,因此您可能会发现有必要回溯以填写缺少的概念和术语。
提议对Python本身进行更改
改进Python的代码,文档和测试是正在进行的任务,这些任务永远都不会“完成”,因为Python是不断发展的技术体系的一部分。与这些必要的维护活动相比,一项更具挑战性的正在进行的任务是找到以标准库和语言定义的形式使Python成为开发人员工具包中更好的工具的方法。
尽管这些更改比上述更改少得多,但它们确实会发生,并且该过程也作为本指南的一部分进行了描述:
其他口译员的实现
该指南专门为Python参考解释器(也称为CPython)做出了贡献(尽管大多数标准库是用Python编写的,解释器核心是用C编写的,并且最容易与C和C ++生态系统集成)。
还有其他Python实现,每个实现都有不同的重点。像CPython一样,他们总是比开发人员有更多要做的事情。可能有趣的一些主要示例是:
- PyPy:一个Python解释器,专注于在主要平台上进行高速(JIT编译)操作
- Jython:一个Python解释器,致力于与Java虚拟机(JVM)环境的良好集成
- IronPython:一个Python解释器,致力于与.NET和Mono提供的公共语言运行时(CLR)良好集成
- Stackless:Python解释器专注于提供轻量级微线程,同时仍与CPython特定的扩展模块保持很大程度上兼容
主要资源
- Buildbot状态
- PEP(Python增强建议)
- 在哪里获得帮助
- 开发者日志
其他资源
- 任何人都可以克隆本指南的资源。请参阅 帮助开发人员指南。
- 工具支援
-
- gdb支持
- 用Clang进行动态分析
- 在Misc目录中找到各种带有配置文件的工具
- 有关编辑器及其配置的信息可在Wiki中找到。
- python.org维护
- 搜索本指南
行为准则
请注意,PSF行为准则涵盖 了Python Software Foundation支持的基础架构上的所有交互 ,其中包括Python自身开发中使用的所有基础架构(例如,邮件列表,问题跟踪器,GitHub等)。总的来说,这意味着无论他们在项目中的地位如何,每个人都应该开放,体贴和尊重他人。
完整目录
- 1.入门
- 2.在哪里获得帮助
- 3.拉取请求的生命周期
- 4.运行和写作测试
- 5.增加测试范围
- 6.帮助文档
- 7.编写Python文档
- 8.测试套件中的静音警告
- 9.解决“容易”的问题(及以后)
- 10.问题追踪
- 11.对问题进行分类
- 12.跟随Python的发展
- 13.将Python移植到新平台
- 14.如何成为核心开发人员
- 15.开发者日志
- 16.接受拉取请求
- 17.开发周期
- 18.持续整合
- 19.添加到Stdlib
- 20.更改Python语言
- 21.专家索引
- 22. gdb支持
- 23.探索CPython的内部
- 24.更改CPython的语法
- 25. CPython编译器的设计
- 26.更新标准库扩展模块
- 27.覆盖率扫描
- 28.使用Clang进行动态分析
- 29.运行一个buildbot工人
- 30.核心开发人员的动机和隶属关系
- 31. Git训练营和备忘单
- 32.附录:主题