PEP 8011 – 由三位 Pythonistas 领导的 Python 治理模型
- 作者:
- Mariatta <mariatta at python.org>, Barry Warsaw <barry at python.org>
- 状态:
- 已拒绝
- 类型:
- 信息性
- 主题:
- 治理
- 创建:
- 2018-08-24
摘要
本 PEP 提出一个由三位具有同等权威的领导者领导的 Python 核心开发社区治理模型。三位 Pythonistas (ToP,或简称为 Trio) 负责对语言做出最终决定。它与 PEP 8010 的区别在于,它没有提出一个中心化的单一领导者,而是提出由三个人组成的领导小组。
本 PEP 还建议成立专门的工作组来协助领导三人组做出决策。
本 PEP 不 命名三人组成员。如果该模型被采用,它将被编入 PEP 13 中,其中还将包含本 PEP 中描述的所有职位持有者的姓名。
本 PEP 描述了
- 三人组的角色和责任
- 三人组成员组建指南
- 选择三个人小组而不是单一领导者的原因
- Python 核心开发者对三人组的角色和责任
- 可持续性考虑因素
- 多元化和包容性考虑因素
PEP 拒绝
PEP 8011 被 核心开发者投票拒绝,如 PEP 8001 中所述,于 2018 年 12 月 17 日星期一投票结果公布。
PEP 8016 及其所描述的治理模型最终被选中。
开放讨论点
在治理讨论过程中,可以对本 PEP 的参数进行各种调整,例如三人组的确切职责、任期长度、投票程序和三人组解散。这些将在 PEP 准备投票前进行编纂。
随着对该模型的经验积累,对这些参数进行调整是允许的,甚至可能是必要的,以提供更顺畅的治理过程。调整这些参数的过程通常与 PEP 8001 中描述的投票过程相同。
领导三人组的角色和责任
- 开放、体贴、尊重。换句话说,遵循 PSF 的行为准则。
- 对 PEP 进行表态,可以作为一个团队,或者如果其他三人组成员同意,也可以单独表态。
- 为 Python 语言和社区提供愿景和领导力。
- 了解自己的局限性,并在必要时寻求建议。
- 为下一代领导者提供指导。
- 成为 Python 核心开发者
- 成为 PSF 的投票成员(贡献者 / 管理员 / 会员 / 支持者之一)。[2]
- 理解 Python 不仅仅是一种语言,更是一个社区。他们需要了解 Python 中的问题,不仅是技术方面的问题,还有社区中的其他问题。
- 促进在 Python 核心代码中成立专门的工作组。请参阅下面的“专门工作组的形成”部分。
- 为 Python 社区树立良好的行为、文化和语调榜样。正如 Python 向其他社区学习灵感一样,其他社区也会向 Python 学习。
三人组的角色和责任中不包括哪些
以下不是对三人组的期望,但他们如果愿意,可以做这些事情。
- 他们不一定是所有想法、愿景、问题和解决方案的来源。三人组将对核心开发者和社区的建议持开放和接受的态度。
- 日常的错误报告不需要三人组干预。任何核心开发者都可以做出决策,但会尊重相关重点工作组,最终会尊重三人组,如果核心开发者之间存在重大分歧。
- 不负责运行 / 决定 Python 语言峰会及其物流。
- 不负责运行 / 决定 Python 核心代码冲刺及其物流。
- 不处理行为准则案例。这些是 PSF 行为准则工作组的职责,但如果他们目睹这些案例,会发表意见。
- 不做出关于其他 Python 实现(Cython、IronPython 等)的决策。
- 不负责运行 / 决定 Python 会议及其物流。
- 不是 Python 的布道者。三人组不期望宣传 / 为 Python 做广告。他们如果愿意,可以这样做,但不是必需的。
- 不是 Python 的教育者。三人组不期望成为教授 / 编写 Python 的人。他们如果愿意,可以这样做,但不是必需的。
- 三人组不期望全天候、全年可用。他们可以自行决定对 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 会员资格常见问题解答 [2]。
选择“三人组”名称的原因
不要与 Python trio(一个异步库)混淆。
“三人组”这个词简短易懂,不像其他一些长而容易产生负面解释的词,例如 triad、trinity、triumvirate、threesome 等等。
参考文献
版权
本文件已置于公共领域。
来源:https://github.com/python/peps/blob/main/peps/pep-8011.rst
最后修改时间:2023-09-09 17:39:29 GMT