本指南是一个全面的资源贡献 给Python的 -为新的和经验丰富的贡献者。这是 保持由维护的Python同一社区。我们欢迎您对Python的贡献!

快速参考

这是设置和添加补丁所需的基本步骤。了解基础知识后,这就是清单。有关完整说明,请参阅安装指南

  1. 安装并设置Git和其他依赖项(有关详细信息,请参见“ 获取安装程序”页面)。

  2. 用叉子CPython的库 到你的GitHub帐户,并获得源代码使用:

    git clone https://github.com/<your_username>/cpython
    cd cpython
  3. 在UNIX和Mac OS上构建Python,请使用:

    ./configure --with-pydebug && make -j
    

    在Windows上使用:

    PCbuild\build.bat -e -d
    

    另请参见更详细的说明, 如何安装和构建依赖项以及UNIX, Mac OSWindows的特定于平台的页面。

  4. 运行测试

    ./python -m test -j3
    

    大多数 Mac OS X系统上,请替换./python 为./python.exe。在Windows上,使用python.bat。在Python 2.7中,替换testtest.regrtest

  5. 创建一个新分支,您将在其中处理该问题,例如:

    git checkout -b fix-issue-12345 master
    

    如果问题尚不存在,请创建它。琐碎的问题(例如拼写错误)不需要创建任何问题。

  6. 解决问题后,运行测试,然后运行,如果一切正常,请提交。make patchcheck

  7. 将分支推送到GitHub的fork上,并创建一个pull请求bpo-NNNN在请求请求描述中使用发行号。例如:

    bpo-12345: Fix some bug in spam module
    

注意:如本指南“ 许可”部分所述,初次贡献者将需要签署“贡献者许可协议”(CLA)。

快速链接

以下是在贡献Python时可能会经常引用的一些链接:

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指南:

入门后,高级任务和主题:

建议,由于需要上述文件读取。新的贡献者将通过阅读此表中提到的部分来建立对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特定的扩展模块保持很大程度上兼容

主要资源

其他资源

行为准则

请注意,PSF行为准则涵盖 了Python Software Foundation支持的基础架构上的所有交互 ,其中包括Python自身开发中使用的所有基础架构(例如,邮件列表,问题跟踪器,GitHub等)。总的来说,这意味着无论他们在项目中的地位如何,每个人都应该开放,体贴和尊重他人。

完整目录

Python开发人员指南的更多相关文章

  1. 第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南

    欢迎查看第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南,该处理器可为开发人员和最终用户提供领先的 CPU 和图形性能增强.各种新特性和功能以及显著提高的性能. 本指南旨在帮助软件开发人员 ...

  2. libjingle开发人员指南

    libjingle开发人员指南 libjingle SDK包含C + +源代码和文档,使您能够设计连接和网络交换数据的应用程序(通过点对点数据连接).该SDK包含代码和示例应用程序,一个Window平 ...

  3. .NET CoreCLR开发人员指南(上)

    1.为什么每一个CLR开发人员都需要读这篇文章 和所有的其他的大型代码库相比,CLR代码库有很多而且比较成熟的代码调试工具去检测BUG.对于程序员来说,理解这些规则和习惯写法非常的重要. 这篇文章让所 ...

  4. Microsoft Orleans 之 开发人员指南

    开发一个Grain 在开发Grain之前请先阅读Grains 这篇文章 Grain 接口 Grains通过调用各自定义在接口中的方法相互作用,一个grain实现了事先定义好的一个或多个接口,grain ...

  5. OAuth 2 开发人员指南

    这是支持OAuth2.0的用户指南.对于OAuth1.0,一切都是不同的,所以看它的用户指南. 本用户指南分为两个部分,第一部分是OAuth2.0提供端(OAuth 2.0 Provider),第二部 ...

  6. OAuth 2 开发人员指南(Spring security oauth2)

    https://github.com/spring-projects/spring-security-oauth/blob/master/docs/oauth2.md 入门 这是支持OAuth2.0的 ...

  7. Prism5.0开发人员指南内容 Contents of the Developer's Guide to Prism Library 5.0 for WPF(英汉对照版)

    The Prism for WPF guide contains the following topics: Prism指南包含以下内容: Download and Setup Prism 下载并安装 ...

  8. Prism5.0开发人员指南内容(纯汉语版)

    Prism指南包含以下内容: 下载并安装Prism Prism5.0新内容 介绍 初始化应用程序 组件间的依赖管理 模块化应用程序开发 实现MVVM模式 进击的MVVM 组合式用户界面 导航 松耦合组 ...

  9. Prism开发人员指南5-WPF开发 文档翻译(纯汉语版)

    2014四月       Prism以示例和文档的形式帮助你更简单的设计丰富灵活易维护的WPF程序.其中使用的设计模式体现了一些重要的设计原则,例如分离关注点和松耦合,Prism帮助你利用松耦合组件设 ...

随机推荐

  1. 搭建helm私服ChartMuseum

    介绍 ChartMuseum是一个用Go(Golang)编写的开源Helm Chart Repository服务器 ChartMuseum是一个用Go(Golang)编写的开源Helm Chart R ...

  2. 【转载】.Net 大型分布式基础服务架构横向演变概述

    原文:https://www.cnblogs.com/chejiangyi/p/5220217.html 一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支 ...

  3. NUCLEO-8L152开发板中文应用笔记整理集合

    [AN5182]基于Adafruit TFT Shield与STM8 Nucleo-64板的图片查看器:https://www.yiboard.com/thread-962-1-1.html 本应用笔 ...

  4. Supermarket(贪心/并查集)

    题目链接 原创的博客 题意: 超市里有N个商品. 第i个商品必须在保质期(第di天)之前卖掉, 若卖掉可让超市获得pi的利润. 每天只能卖一个商品. 现在你要让超市获得最大的利润. n , p[i], ...

  5. Refactoring open source business models

    https://opensource.com/business/16/4/refactoring-open-source-business-models They say you never forg ...

  6. 11 open source business models

    https://www.zdnet.com/article/11-open-source-business-models/ Critics are always claiming open sourc ...

  7. Partition HDU - 4602 (不知道为什么被放在了FFT的题单里)

    题目链接:Vjudge 传送门 相当于把nnn个点分隔为若干块,求所有方案中大小为kkk的块数量 我们把大小为kkk的块,即使在同一种分隔方案中的块 单独考虑,它可能出现的位置是在nnn个点的首.尾. ...

  8. [HTML5] Using HTMLPortalElement to improve MPA preformance

    For multi pages application, it is very slow to navgiate between page by page, because it needs to r ...

  9. laravel使用手札——使用PHPStorm提升开发速度

    laravel使用手札——使用PHPStorm提升开发速度 phpstormphplaravel  阅读约 4 分钟 PHPStorm安装 PHPStorm 使用手札——安装看这里 代码自动提示支持 ...

  10. NET PDB文件到底包含多少秘密?

    虽然我希望.NET PDB文件与本地PDB文件处理方式相同,但我们在这件事上没有任何选择,因为事情就是这样.我相信微软的调试器团队多年来听到过很多类似帕特里克的评论.也许我们会在未来的Visual S ...