PEP 8011 – 由三位 Pythonista 领导的 Python 治理模型
- 作者:
- Mariatta <mariatta at python.org>, Barry Warsaw <barry at python.org>
- 状态:
- 已拒绝
- 类型:
- 信息性
- 主题:
- 治理
- 创建日期:
- 2018年8月24日
摘要
本 PEP 提出了一种核心 Python 开发社区的治理模型,由三位拥有同等权威的领导者领导。“Pythonista 三人组”(The Trio of Pythonistas,简称 ToP 或 Trio)负责对该语言做出最终决定。它与 PEP 8010 的不同之处在于,它不提倡单一的中央领导者,而是由三个人组成的领导团队。
本 PEP 还提议组建专门的工作组,协助领导三人组做出决策。
本 PEP **不**命名三人组的成员。如果该模型被采纳,它将与本 PEP 中描述的所有职位的名称一起,被编码到 PEP 13 中。
本 PEP 描述了
- 三人组的角色和职责
- 三人组的组建指南
- 选择三人组而非单一领导者的原因
- Python 核心开发者对三人组的角色和职责
- 可持续性考虑
- 多元化和包容性考虑
PEP 驳回
PEP 8011 在 2018 年 12 月 17 日(星期一)的 核心开发者投票 中被否决,该过程在 PEP 8001 中有所描述。
取而代之的是 PEP 8016 及其描述的治理模型。
开放讨论点
在治理讨论过程中,允许对本 PEP 的参数进行各种调整,例如三人组的具体职责、任期长度、投票程序以及三人组解散等。这些将在 PEP 准备好投票时进行编码。
随着对该模型的经验积累,允许并且可能期望对这些参数进行调整,以提供更顺畅的治理过程。调整这些参数的过程通常与 PEP 8001 中描述的投票过程相同。
领导三人组的角色和职责
- 保持开放、考虑周全、互相尊重。换句话说,遵守 PSF 的行为准则。
- 对 PEP 发表意见,可以作为一个团队,也可以在其他三人组同意的情况下单独发表。
- 为 Python(编程语言和社区)提供愿景和领导力。
- 了解自身的局限性,并在必要时寻求建议。
- 为下一代领导者提供指导。
- 成为一名 Python 核心开发者。
- 成为 PSF 的投票成员(贡献者/管理者/研究员/支持者之一)。[2]
- 理解 Python 不仅仅是一门语言,也是一个社区。他们需要了解 Python 的技术方面以及社区中的其他问题。
- 促进核心 Python 内的专业工作组的组建。请参见下文“专业工作组的组建”部分。
- 为 Python 社区树立良好的行为、文化和基调榜样。正如 Python 从其他社区汲取灵感一样,其他社区也将以 Python 为榜样。
不属于三人组角色职责的范畴
以下内容不属于对三人组的期望,但他们如果愿意,也可以去做。
- 他们不总是那些提出所有想法、愿景、需要解决的问题等等的人。三人组将对核心开发者和社区的建议持开放态度并予以接受。
- 日常的错误报告不需要三人组介入。任何核心开发者都可以做出决定,但会根据各自专注的工作组进行,并在核心开发者之间出现重大分歧时最终上报给三人组。
- 不负责运行/决定 Python 语言峰会及其后勤事务。
- 不负责运行/决定 Python 核心冲刺开发会议及其后勤事务。
- 不处理行为准则(CoC)案例。这些是 PSF CoC 工作组的职责,但他们会主动声明,如果他们目睹了这些案例。
- 不就其他 Python 实现(Cython、IronPython 等)做出决定。
- 不负责运行/决定 Python 会议及其后勤事务。
- 不是 Python 的传播者。不期望三人组去宣传/推广 Python。如果他们愿意,可以去做,但不是必需的。
- 不是 Python 的教育者。不期望三人组成为教授/撰写关于 Python 的人。如果他们愿意,可以去做,但不是必需的。
- 不期望三人组 24/7 全年无休地待命。他们可以自由决定自己对 Python 的可用性。
- 不是 PEP 编辑。
三人组组建指南
此治理模型的成功取决于三人组的成员以及三人组成员协作和良好合作的能力。
这三个人需要对 Python 有相似的愿景,并且每个人可以拥有不同的、互补的技能。
有了这样的团队,分歧和冲突应该很少发生,但仍然可能发生。我们需要信任我们选出的人,相信他们能够自行解决。
在选择三人组的成员时,核心开发者将提名三人组合,并投票选出他们认为可以组成这个团结的三人组的组合,而不是提名各种个人并选择前三名。一个人可以被提名到不止一个组合。
本 PEP 不会提名或指定任何人进入三人组。
只有在本 PEP 被接受后,任何活跃的核心开发者(有投票权者)才能提交三人组合的提名。
一旦本 PEP 被接受,并且核心开发者提交了他们的提名,投票就可以开始,届时将使用 PEP 8001 中描述的投票机制。
三人组的期望品质
- 成为一名 Python 核心开发者。
- 成为 PSF 的投票成员(贡献者/管理者/研究员/支持者之一)。[2]
- 成为社区中声誉良好的一员。
- 遵守 PSF 的行为准则(保持开放、考虑周全、互相尊重)。[1]
- 愿意接受所述的角色和职责。
- 能够有效地沟通和表达自己的想法。
在考虑将某人纳入三人组时,以下内容并非要求
- “拥有某事 BDFL 经验”并非要求。
- “是天才”并非要求。
多元化和包容性
核心 Python 开发团队完全支持 Python 软件基金会的多元化声明,并欢迎来自不同背景的参与和贡献。在提名三人组人选时,Python 核心开发者将尽一切努力考虑来自弱势群体的成员。
理想情况下,提名应包含并反映核心 Python 贡献者的多元化。
可持续性
缺乏雇主支持或没有业余时间的奢侈不应成为确定谁应该成为三人组成员的因素。如果核心开发者认为某些个人具备成为三人组成员所需的技能,但由于时间不足、缺乏经济支持而无法胜任,那么我们应该与 PSF 或其他相关方讨论提供必要的支持。
附加指南
在提名非本人时,请先私下询问他们是否愿意被提名,以及他们是否愿意被提名到该三人组合中。这样可以避免人们因公开提名而感到被迫接受。
为何不采用其他治理模型
核心 Python 社区在过去二十多年来熟悉了单一 BDFL 模型,该模型对 Python 来说是“有效”的。突然转向一个完全不同的模型可能会破坏社区的稳定性。然而,社区未来可以继续发展。
如果本 PEP 被采纳,它不意味着是 Python 未来唯一的治理模型。
本 PEP 提议向一个由(尽管人数较少)一群人领导的社区过渡,同时引入了其他专业工作组的概念。
为何不多于三人
人多嘴杂,坏了汤。
建立领导团队的目标是让 Python 核心开发者团队能够达成共识和做出决定。领导团队越大,做出决定就越困难。
这也有利于三人组的成员。学习与团队中的其他人合作并非自然而然发生,需要付出很多努力。预计三人组的成员将长期任职。与另外两个人打交道可能已经足够困难了。我们希望三人组能够高效地履行其职责。
团队人数越多,越难安排时间会面、讨论并做出决定。
Python 核心开发者对三人组的角色和职责
- 保持开放、考虑周全、互相尊重。换句话说,遵守 PSF 的行为准则。
- 由三人组个人成员做出的决定和声明,应被视为权威性的,并来自三人组。
- 一旦三人组做出决定,核心开发者将给予支持,即使他们一开始(在三人组做出决定之前)不支持。
- 继续在错误跟踪器中进行日常决策,并在出现重大分歧时上报给三人组。
- Python 核心开发者不处理 CoC 案例,这些是 CoC 工作组的职责,但如果他们目睹了这些案例,会主动声明。
- 认识到他们是更广泛的 Python 社区的一部分,而不仅仅是技术方面。
- 成为 PSF 的投票成员(贡献者/管理者/研究员/支持者之一)。
- 为 Python 社区树立良好的行为、文化和基调榜样。
任期限制
不期望三人组终身任职,但期望更长的任期。长期任职的目的是避免不必要的“选举”更迭,并为语言和社区提供稳定性和一致性。
目前,Python 发布经理任职 5 年(一个发布周期),这似乎迄今为止是有效的。因此,本 PEP 提议三人组任职 5 年。
三人组的继任计划(开放讨论)
三人组应至少提前一年通知核心开发者其解散/退休/辞职的意图,以便他们能够积极指导和培训下一代继任者,并避免权力真空。
三人组不一定必须选择下一任领导者。
本 PEP 不强制要求下一代采用相同的治理模型。Python 作为语言和社区可以继续发展。通过提前一年通知解散,三人组为核心 Python 社区提供了反思该治理模型成功/失败的机会,并在需要时选择不同的治理模型。
然而,下一任治理模型和领导者应在三人组宣布解散意愿后的一年内选出。
如果决定继续采用此治理模型,下一代三人组将按照第一代三人组的提名/选拔方式进行提名和选举。
三人组应至少担任 X 个月的新一代选定领导者的顾问/导师。
由于未来的三人组将从 Python 核心开发者中选出,因此未来的 Python 核心开发者也应该具备本 PEP 中列出的部分(但不一定是全部)三人组的素质。
因此,选择三人组成员的指南也可以作为确定未来 Python 核心开发者的指南。
若三人组中的一名成员需要退出,该如何处理
有效的治理模型为需要辞职或暂停领导职务的领导者提供了退出或临时休息的途径。
如果选定的三人组中有一名成员因不可预见的原因需要退出,该怎么办?
有几种可能的选择:
- 剩余的两人可以选举另一名成员填补该职位。
- 三人组可以选择解散,核心开发者可以提名其他三人组合。
- 核心开发者可以选择不同的治理模型。
由于三人组是作为一个整体被选举出来的,所以其中一人的损失会打破这个当选的整体。因此,应该举行新的选举。
工作组/专业领域/所有权(原 BDFL 委托人)的组建
(开放讨论)。
核心 Python 和 Python 社区的某些领域和主题需要具有特定专业技能的领导者。建议成立几个在特定领域拥有更大权威的工作组,以协助三人组做出决策。
这些“专业工作组/委员会”的角色是针对各自领域出现的争议性讨论做出最终决定。
这些工作组应规模较小(3-5 人),原因与领导三人组是小团体的原因类似。
这些工作组应由 Python 核心开发者和外部专家组成。这是为了确保决策不会只偏袒 Python 核心开发者。
Python 核心开发者将在各自的主题上将决策权交给这些工作组。然而,这些工作组将向三人组汇报/服从。
这些工作组的成员可以在本 PEP 被接受后进行选拔和投票。
如果本 PEP 被接受,可以在 PEP 接受后的一到两年内决定工作组。
在选择这些特别工作组成员时,三人组将尽一切努力考虑来自弱势群体的成员。理想情况下,工作组成员应包含并反映更广泛 Python 社区的多元化。
这些工作组成员不必是 Python 核心开发者,但至少需要是 PSF 的基本会员。[2]
这些工作组的活跃程度与三人组的活跃程度相同。
建议开始的几个工作组
- CPython 的文档
- CPython 的安全性
- CPython 的性能
这些工作组的角色可以被视为与以前的“BDFL 委托人”或 PEP 审查员的角色相似。不同之处在于,不是任命一个人作为决策者,而是由一个小团队做出决策。
与以前的“BDFL 委托人”角色相比,另一个不同之处在于,工作组可以像三人组一样持续活跃,而不是仅在需要他们专业知识的 PEP 出现时才活跃。
当三人组解散时,这些工作组也随之解散。
为何需要这些工作组
这是对前任 Python BDFL “庞大角色”进行“重构”的尝试。
作为 PSF 会员的确认
本 PEP 提议核心开发者和三人组成员自我认证为 PSF 的会员。
成为 PSF 的一部分意味着成为 Python 社区的一部分,并支持 PSF 的使命和多元化声明。
通过成为 PSF 的会员,Python 核心开发者声明支持 Python 并同意社区行为准则。
有关 PSF 会员资格的更多详情,请参见:PSF 会员资格 FAQ。[2]
选择“三人组”名称的原因
不要与 Python trio(一个异步库)混淆。
“trio”(三人组)这个词简短易读,不像其他词语长且可能带有负面含义,如 triad(三合会)、trinity(三位一体)、triumvirate(三巨头)、threesome(三人组合)等。
参考资料
版权
本文档已置于公共领域。
来源:https://github.com/python/peps/blob/main/peps/pep-8011.rst
最后修改时间:2025-02-01 08:55:40 GMT