PEP 13 – Python 语言治理
- 作者:
- Python 核心团队和社区
- 状态:
- 活跃
- 类型:
- 流程
- 主题:
- 治理
- 创建日期:
- 2018年12月16日
摘要
本PEP定义了Python的正式治理流程,并记录了其随时间的变化。目前,治理以指导委员会为中心。委员会拥有广泛的权力,他们力求尽可能少地行使这些权力。
现任指导委员会
2025届指导委员会成员包括:
- Barry Warsaw
- Donghee Na
- Emily Morehouse
- Gregory P. Smith
- Pablo Galindo Salgado
根据PEP 8106中跟踪的投票结果。
核心团队由私人仓库https://github.com/python/voters/中列出并通过https://devguide.pythonlang.cn/developers/公开分享的人员组成。
规范
指导委员会
组成
指导委员会是一个5人委员会。
授权
指导委员会应致力于:
- 维护Python语言和CPython解释器的质量和稳定性,
- 使贡献尽可能地易于访问、包容和可持续,
- 正式化并维护核心团队与PSF之间的关系,
- 为PEP制定适当的决策流程,
- 在以正式身份行事之前,寻求贡献者和核心团队之间的共识,
- 在所有其他方法都失败的情况下,充当决策的“最终上诉法院”。
权力
委员会拥有广泛的权力来决定项目。例如,他们可以:
- 接受或拒绝PEP
- 执行或更新项目的行为准则
- 与PSF合作管理任何项目资产
- 将其部分权力委托给其他小组委员会或流程
但是,他们不能修改本PEP,也不能影响核心团队的成员资格,除非通过本PEP中规定的机制。
委员会应寻求尽可能少地使用这些权力。与其投票,不如寻求共识。与其对个别PEP做出裁决,不如定义一个标准的PEP决策流程(例如,通过接受801x系列的其他PEP之一)。与其裁决个别案例,不如成立一个行为准则委员会。依此类推。
为了行使其权力,委员会进行投票。每位委员会成员必须投票或明确弃权。在特定投票中存在利益冲突的成员必须弃权。通过需要非弃权委员会成员的严格多数票。
在可能的情况下,委员会的审议和投票应公开进行。
选举委员会
委员会选举包括两个阶段:
- 第一阶段:候选人宣传其任职意向。候选人必须由核心团队成员提名。允许自荐。
- 第二阶段:每位核心团队成员可以给每位候选人分配零到五颗星。投票匿名进行。投票结果使用STAR投票系统,并修改为使用多赢家区块STAR方法确定。如果出现平局,可以通过候选人之间的相互协议解决,否则将随机选择获胜者。
每个阶段持续一到两周,由即将离任的委员会自行决定。对于首次选举,两个阶段都将持续两周。
选举过程由即将离任的指导委员会提名的计票官管理。对于首次选举,计票官将由PSF执行董事提名。
委员会理想情况下应反映Python贡献者和用户的多样性,并鼓励核心团队成员相应地投票。
任期
每次功能发布后都会选举新的委员会。每个委员会的任期从其选举结果确定之时起,到下一届委员会任期开始之时止。没有任期限制。
空缺
委员会成员可以随时辞职。
在委员会正常任期内出现空缺时,委员会可以投票任命替补成员以完成剩余任期。
如果委员会成员失去联系一个月或更长时间,则委员会其余成员可以投票替换他们。
利益冲突
虽然我们信任委员会成员为了Python的最佳利益而非自身或其雇主的利益行事,但任何一家公司主导Python开发的纯粹表象本身可能是有害的,并会侵蚀信任。为避免任何利益冲突的表象,委员会中最多只能有2名成员为同一雇主工作。
在委员会选举中,如果排名前五的得票者中有三人为同一雇主工作,则其中排名最低者将被取消资格,排名第六的候选人升至第五位;此过程重复进行,直到形成有效的委员会。
在委员会任期内,如果情况变化导致此规则被打破(例如,由于委员会成员更换工作),则一名或多名委员会成员必须辞职以解决问题,然后可以正常填补由此产生的空缺。
开除核心团队成员
在特殊情况下,可能需要违背某人的意愿将其从核心团队中移除。(例如:严重和持续的行为准则违规。)这可以通过指导委员会投票完成,但与其他指导委员会投票不同,这需要至少三分之二的多数票。对于5名成员投票,这意味着3:2的投票不足;4:1赞成是此类投票成功的最低要求。此外,这是指导委员会唯一不能委托的权力,并且在不信任投票进行期间不能使用此权力。
如果被开除的核心团队成员同时也是指导委员会成员,那么他们也将从指导委员会中移除。
不信任投票
在特殊情况下,核心团队可以通过不信任投票罢免现任委员会成员或整个委员会。
当一位核心团队成员在适当的项目沟通渠道上公开呼吁,并在一周内有另一位核心团队成员附议该提议时,不信任投票将被触发。
投票持续两周。核心团队成员投票赞成或反对。如果至少三分之二的投票者表示不信任,则投票成功。
不信任投票有两种形式:针对单个成员的,和针对整个委员会的。不信任投票的最初发起必须明确意图是哪种类型。如果单个成员投票成功,则该成员将被罢免,由此产生的空缺可以按常规方式处理。如果整个委员会投票成功,委员会将被解散,并立即触发新的委员会选举。
核心团队
角色
核心团队是管理Python的值得信赖的志愿者群体。他们承担着实现项目目标所需的许多角色,特别是那些需要高度信任的角色。他们做出塑造项目未来的决定。
核心团队成员被期望代表社区和所有依赖Python的人,充当社区的榜样和项目的守护者。
在极少数情况下,如果出现需要干预的情况,他们将在必要时干预在线讨论或官方Python活动。
他们对Python项目基础设施拥有权力,包括Python项目网站本身、Python GitHub组织和仓库、错误追踪器、邮件列表、IRC频道等。
特权
核心团队成员可以参与正式投票,通常是提名新团队成员和选举指导委员会。
成员资格
Python核心团队成员应展现出:
- 对Python项目理念的良好理解
- 在建设性和乐于助人方面拥有良好记录
- 以任何形式对项目目标做出重大贡献
- 愿意投入时间改进Python
随着项目成熟,贡献不再局限于代码。以下是可能被考虑加入核心团队的贡献领域的不完整列表,不分先后:
- 社区管理和外展工作
- 在邮件列表和IRC上提供支持
- 分类处理问题单
- 编写补丁(代码、文档或测试)
- 审查补丁(代码、文档或测试)
- 参与设计决策
- 提供特定领域的专业知识(安全、国际化等)
- 管理持续集成基础设施
- 管理服务器(网站、追踪器、文档等)
- 维护相关项目(替代解释器、核心基础设施如打包等)
- 创建视觉设计
核心团队成员资格是对与Python项目理念和目标高度一致的持续和有价值努力的认可。
它通过在为期一周的核心团队投票中获得至少三分之二的赞成票来授予,并且未被指导委员会否决。
注意
开发指南提供了一个建议模板用于此类投票。
核心团队成员一直在寻找有前途的贡献者,教导他们如何管理项目,并在他们准备好时将其姓名提交给核心团队投票。
核心团队成员资格没有时间限制。然而,为了向公众提供关于有多少人维护Python的合理概念,停止贡献的核心团队成员被鼓励声明自己为“非活跃”。两年内未做出任何非平凡贡献的成员可能会被要求将自己移至此类别,如果他们不回应,则被移至此类别。为了记录和表彰他们的贡献,非活跃团队成员将继续与活跃核心团队成员一起列出;并且,如果他们后来恢复贡献,他们可以自行切换回活跃状态。但是,当某人处于非活跃状态时,他们将失去其活跃特权,例如投票或提名指导委员会,以及提交访问权限。
最初的活跃核心团队成员将包括目前在GitHub上的“Python core”团队中列出的所有人员(仅限核心成员访问),而最初的非活跃成员将包括过去曾是提交者的所有其他人。
修改本文件
对本文件的修改需要至少三分之二的赞成票,该投票应开放两周。
无需投票即可更新注释块以及“现任指导委员会”和“委员会选举历史”部分中的当前信息。
历史
本文件的创建
Python项目由Guido van Rossum创建,他从项目成立到2018年7月一直担任其仁慈的终身独裁者(BDFL),之后他卸任。
经过讨论,提出了许多新的治理模式提案,核心开发人员投票选择其一。整个过程在PEP 8000和PEP 8001中描述,在PEP 8002中对其他项目进行了审查,提案本身以801x系列PEP的形式编写。最终,PEP 8016中的提案被选定为新的治理模式,并用于创建本PEP的初始版本。8000系列PEP保留用于历史参考(特别是PEP 8016包含额外的理由和对同期讨论的链接),但本PEP现为官方参考,并将遵循此处描述的规则演变。
委员会选举历史
修订历史
- 2019年4月17日:增加了核心开发人员的投票时长和对本文件的修改。
- 2024年12月10日:采纳了多赢家区块STAR投票用于委员会选举。
- 2024年12月10日:增加了不信任投票附议的一周截止日期。
致谢
本PEP最初为PEP 8016,由Nathaniel J. Smith和Donald Stufft撰写,基于Aymeric Augustin撰写的Django治理文档,并吸纳了众多其他人的反馈和协助。
版权
本文档已置于公共领域。
来源:https://github.com/python/peps/blob/main/peps/pep-0013.rst