本指南是一个全面的资源贡献 给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.附录:主题
Python开发人员指南的更多相关文章
-
第六代智能英特尔&#174; 酷睿™ 处理器图形 API 开发人员指南
欢迎查看第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南,该处理器可为开发人员和最终用户提供领先的 CPU 和图形性能增强.各种新特性和功能以及显著提高的性能. 本指南旨在帮助软件开发人员 ...
-
libjingle开发人员指南
libjingle开发人员指南 libjingle SDK包含C + +源代码和文档,使您能够设计连接和网络交换数据的应用程序(通过点对点数据连接).该SDK包含代码和示例应用程序,一个Window平 ...
-
.NET CoreCLR开发人员指南(上)
1.为什么每一个CLR开发人员都需要读这篇文章 和所有的其他的大型代码库相比,CLR代码库有很多而且比较成熟的代码调试工具去检测BUG.对于程序员来说,理解这些规则和习惯写法非常的重要. 这篇文章让所 ...
-
Microsoft Orleans 之 开发人员指南
开发一个Grain 在开发Grain之前请先阅读Grains 这篇文章 Grain 接口 Grains通过调用各自定义在接口中的方法相互作用,一个grain实现了事先定义好的一个或多个接口,grain ...
-
OAuth 2 开发人员指南
这是支持OAuth2.0的用户指南.对于OAuth1.0,一切都是不同的,所以看它的用户指南. 本用户指南分为两个部分,第一部分是OAuth2.0提供端(OAuth 2.0 Provider),第二部 ...
-
OAuth 2 开发人员指南(Spring security oauth2)
https://github.com/spring-projects/spring-security-oauth/blob/master/docs/oauth2.md 入门 这是支持OAuth2.0的 ...
-
Prism5.0开发人员指南内容 Contents of the Developer&#39;s Guide to Prism Library 5.0 for WPF(英汉对照版)
The Prism for WPF guide contains the following topics: Prism指南包含以下内容: Download and Setup Prism 下载并安装 ...
-
Prism5.0开发人员指南内容(纯汉语版)
Prism指南包含以下内容: 下载并安装Prism Prism5.0新内容 介绍 初始化应用程序 组件间的依赖管理 模块化应用程序开发 实现MVVM模式 进击的MVVM 组合式用户界面 导航 松耦合组 ...
-
Prism开发人员指南5-WPF开发 文档翻译(纯汉语版)
2014四月 Prism以示例和文档的形式帮助你更简单的设计丰富灵活易维护的WPF程序.其中使用的设计模式体现了一些重要的设计原则,例如分离关注点和松耦合,Prism帮助你利用松耦合组件设 ...
随机推荐
-
javascript 网络是否连接的几种方案
js 网络是否连接的几种方案 1.通过html5的新属性: window.onload = function () { var isOnLine = navigator.on ...
-
NFS参数配置详细说明
摘抄自:http://www.linuxidc.com/Linux/2012-05/61527p3.htm 1.NFS概述 NFS:Network file system,网络文件系统: 由sun公司 ...
-
定位表的数据块并且dump出来
SQL> select * from city; ID NAME ---------- ---------- 7 Chicago 6 Jers ...
-
A Tour of Go Function values
Functions are values too. 在函数式语言中中函数都是变量,比如在javascript中 package main import ( "fmt" " ...
-
[JavaScript] Array.prototype.reduce in JavaScript by example
Let's take a closer look at using Javascript's built in Array reduce function. Reduce is deceptively ...
-
WinDriver的一些
http://blog.csdn.net/chuajiang/article/details/2115508
-
Java 7源码分析第13篇 - 字节输入输出流(1)
上一篇介绍了关于字节输入输出流的Java类框架,同时也简单介绍了一下各个类的作用,下面就来具体看一下这些类是怎么实现这些功能的. 1.InputStream和OutputStream InputStr ...
-
Mac下安装BeautifulSoup
1.输入命令su,输入root密码,进入root用户 2.执行命令安装pip: sudo easy_install pip 详细pip介绍:http://blog.csdn.net/olanlanxi ...
-
C++ Primer 有感(标准库类型)
1.当进行string对象和字符串字面值混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的: string s1= "hello"; sring s2=&quo ...
-
从零开始学安全(四十二)●利用Wireshark分析ARP协议数据包
wireshark:是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换,是目前 ...