Following system colour scheme - Python 增强提案 Selected dark colour scheme - Python 增强提案 Selected light colour scheme - Python 增强提案

Python 增强提案

PEP 8001 – Python 治理投票流程

作者:
Brett Cannon <brett at python.org>, Christian Heimes <christian at python.org>, Donald Stufft <donald at stufft.io>, Eric Snow <ericsnowcurrently at gmail.com>, Gregory P. Smith <greg at krypto.org>, Łukasz Langa <lukasz at python.org>, Mariatta <mariatta at python.org>, Nathaniel J. Smith <njs at pobox.com>, Pablo Galindo Salgado <pablogsal at python.org>, Raymond Hettinger <python at rcn.com>, Tal Einat <tal at python.org>, Tim Peters <tim.peters at gmail.com>, Zachary Ware <zach at python.org>
状态:
最终
类型:
流程
主题:
治理
创建时间:
2018 年 8 月 24 日

目录

摘要

本 PEP概述了在Guido退休之后,如何选择Python治理的新模式的流程。一旦该模型通过此处概述的程序选择,它将被编入PEP 13中。

动机和理由

Guido 从 BDFL 角色中退下,让我们面临着一个元问题:我们必须选择如何选择如何从现在开始治理 Python 项目。

本文档提出了一种关于如何做出这种选择的具体提案。它总结了 2018 年 9 月在雷德蒙德核心冲刺期间工作组会议的讨论和结论(所有与会者的姓名列在作者中)。本 PEP 还总结了随后的讨论,该讨论在 discuss.python.org 上进行。

治理问题应该及时解决。理想情况下,应该在 2018 年底之前完成,这将为在 Python 3.8 发布之前合并实质性改进铺平道路。最迟在 2019 年美国 PyCon 之前,必须解决治理问题,以避免公关危机。

实施

我们投票的是什么?

我们正在投票选择哪个治理 PEP 应该由 Python 项目实施。候选 PEP 列表列在PEP 8000 中,包括所有编号为 801X 范围的 PEP。

为了确保投票合法,上述 PEP 在投票期间不得修改。

谁有投票权?

邀请每个 CPython 核心开发者投票。为了透明和公平,我们要求核心开发者根据治理情况是否会直接影响他们来进行自我选择。换句话说,我们建议打算保持不活跃的非活跃核心开发者弃权。

投票时间?

2018 年 11 月 16 日至 2018 年 11 月 30 日是治理 PEP 正式审查期。我们不鼓励 PEP 作者在此期间进行重大实质性更改,尽管预计可能会进行一些微调,因为这是此次讨论期的结果。

投票将在 2018 年 12 月 1 日至 2018 年 12 月 16 日的为期两周的时间窗口内进行(世界各地)。

投票地点?

投票将在Condorcet 互联网投票服务上进行“私人”投票。每个提交者都会收到一封包含链接的电子邮件,允许他们按偏好顺序对 PEP 进行排名。

选举将由 PSF 基础设施主管 Ee Durbin 监督。

选举结果(包括匿名投票)将在选举结束后,于 12 月 17 日公布。

将在 CIVS 系统中使用以下设置进行投票

民意调查名称:Python governance vote (December 2018)

民意调查描述

This is the vote to choose how the CPython project will govern
itself, now that Guido has announced his retirement as BDFL. For
full details, see <a
href="https://peps.pythonlang.cn/pep-8001/">PEP
8001</a>. Many discussions have occurred under <a
href="https://discuss.python.org/tags/governance">the "governance"
tag</a> on discuss.python.org.
<p>
All votes must be received <b>by the end of December 16th, 2018, <a
href="https://en.wikipedia.org/wiki/Anywhere_on_Earth">Anywhere on
Earth</a></b>. All CPython core developers are <a
href="https://github.com/python/voters">eligible to vote</a>.
It is asked that inactive core developers <i>who intend to remain
inactive</i> abstain from voting.
<p>
<b>Note: You can only vote once, and all votes are final.</b> Once
you click "Submit ranking", it's too late to change your mind.
<p>
All ballots will be published at the end of voting, but <b>without
any names attached</b>. No-one associated with the Python project or
the PSF will know how you voted, or even whether you voted.
<p>
If you have any questions, you can post in <a
href="https://discuss.python.org/c/committers">the Committers
topic</a>, on <a href="mailto:python-committers@python.org">the
python-committers list</a>, or <a
href="mailto:ee@python.org">contact the vote administrator
directly</a>.
<p>
<h1>Options</h1>
<p>
We're selecting between seven PEPs, each proposing a different
governance model.
<p>
The options below include links to the text of each PEP, as well
as their complete change history. The text of these PEPs was
frozen on December 1, when the vote started. But if you looked at
the PEPs before that, they might have changed. Please take the
time to check the current text of the PEPs if you read an older
draft.
<p>
A "Further discussion" option is also included. It represents the
option of not making a choice at all at this time, and continuing
the discussion instead. Including this option lets us demonstrate
the core team's readiness to move forward.
<p>
If you think a proposal is a particularly bad idea, you can
express that by ranking it below "Further discussion". If you
think all of the proposals are better than further discussion,
then you should rank "Further discussion" last.

候选人(注意:换行符在这里很重要)

<a href="https://peps.pythonlang.cn/pep-8010/">PEP 8010: The Technical Leader Governance Model</a> (Warsaw) (<a href="https://github.com/python/peps/commits/main/pep-8010.rst">changelog</a>)
<a href="https://peps.pythonlang.cn/pep-8011/">PEP 8011: Python Governance Model Lead by Trio of Pythonistas</a> (Mariatta, Warsaw) (<a href="https://github.com/python/peps/commits/main/pep-8011.rst">changelog</a>)
<a href="https://peps.pythonlang.cn/pep-8012/">PEP 8012: The Community Governance Model</a> (Langa) (<a href="https://github.com/python/peps/commits/main/pep-8012.rst">changelog</a>)
<a href="https://peps.pythonlang.cn/pep-8013/">PEP 8013: The External Council Governance Model</a> (Dower) (<a href="https://github.com/python/peps/commits/main/pep-8013.rst">changelog</a>)
<a href="https://peps.pythonlang.cn/pep-8014/">PEP 8014: The Commons Governance Model</a> (Jansen) (<a href="https://github.com/python/peps/commits/main/pep-8014.rst">changelog</a>)
<a href="https://peps.pythonlang.cn/pep-8015/">PEP 8015: Organization of the Python community</a> (Stinner) (<a href="https://github.com/python/peps/commits/main/pep-8015.rst">changelog</a>)
<a href="https://peps.pythonlang.cn/pep-8016/">PEP 8016: The Steering Council Model</a> (Smith, Stufft) (<a href="https://github.com/python/peps/commits/main/pep-8016.rst">changelog</a>)
Further discussion

选项

[x] Private
[ ] Make this a test poll: read all votes from a file.
[ ] Do not release results to all voters.
[x] Enable detailed ballot reporting.
    [ ] In detailed ballot report, also reveal the identity of the voter with each ballot.
[ ] Allow voters to write in new choices.
[ ] Present choices on voting page in exactly the given order.
[ ] Allow voters to select “no opinion” for some choices.
[ ] Enforce proportional representation

这些选项将产生以下影响

  • 使选举“私密”,或者换句话说,仅限邀请。
  • 选举结果将发布给所有投票者。
  • 每张选票的内容将发布给公众,以及一份详细的报告,概述获胜者是如何当选的。
  • 详细的选票不会包含任何识别信息,并且投票者的电子邮件地址将在发送包含投票链接的电子邮件后立即被 CIVS 系统丢弃。
  • 投票者不能写入新的选择,这意味着他们将仅限于选举中指定的选项。
  • 投票者在投票后不能更改投票。 [no-changes]
  • 每张选票的默认排序将被随机化,以消除选票顺序对选举可能产生的任何影响。
  • 投票者必须对所有选择进行排名,但可以将多个选择排在同等位置。

投票机制

投票将通过排名投票进行。每个投票者对所有候选 PEP 进行排序,从最喜欢的到最不喜欢的。投票将进行统计,并使用孔多塞方法选出获胜者。

注意:每个投票者只能投一次票,并且不能在之后修改投票。 [no-changes] 如果你不确定你的选择,请在投票期结束后再投票。选举最后一天投票与第一天投票一样有效。

虽然 CIVS 系统没有提供“纯”孔多塞选举的选项,但任何孔多塞方法都会选择“纯”孔多塞获胜者(如果存在),否则只会因不存在而有所不同。CIVS 系统通过声明获胜者是孔多塞获胜者,还是仅仅没有被任何其他选项击败,来区分孔多塞获胜者和非孔多塞获胜者。因此,CIVS 系统中的获胜者只有在声明它是孔多塞获胜者时才会被接受。

在不太可能出现平局(或孔多塞方法中可能出现的循环)的情况下,将启动一个新的选举,仅限于参与平局或循环的选项,以从平局选项中选择一个新的获胜者。这项新的选举将开放一周,并将重复进行,直到确定唯一的获胜者。

问答

为什么是孔多塞方法?

  1. 它允许投票者通过对 PEP 进行排名来表达偏好
  2. 它是共识决策
  3. 在一个仅向核心开发者开放并使用同意投票进行的民意调查中,它是明显的首选

排名中是否允许省略任何候选 PEP?

省略候选人排名的投票无效。这是因为此类投票与上述所需属性不兼容,即

  • 让投票者考虑替代方案,以及
  • 尽一切努力在一次选举中达成结论。

为什么建议休眠的核心开发者不要投票?

治理模式的选择将对 Python 及其社区产生深远而长期的影响。我们邀请核心开发者评估他们在游戏中的“赌注”。

注意:这不是一项法令,也不会被执行。我们相信核心团队的所有成员都会以 Python 的最佳利益行事。

为什么投票应该私密?

在讨论选举制度时,许多核心开发者对公开投票的想法表示担忧,至少有一位核心开发者表示,由于使用了公开投票,他们计划完全弃权投票。在 Discourse 上进行的民意调查发现,绝大多数投票者更倾向于私密投票。 [private-vote]

许多人认为秘密投票是自由公正选举的必要条件,它允许成员投票表达他们的真实意愿,而不必担心社会压力或因投票方式可能带来的后果。

为什么使用 CIVS?

在对本 PEP 的后续讨论中,大家一致认为核心开发者希望进行秘密投票。 [private-vote] 不幸的是,秘密投票需要新颖的密码学或一个值得信赖的第三方来匿名化选票。由于据了解没有现有的适用于孔多塞选票的新颖密码系统,因此选择了 CIVS 系统作为可信第三方。

有关 CIVS 提供的安全性 and 隐私的更多信息,包括恶意投票者、选举监督员或 CIVS 管理员如何影响选举,请点击此处查看。

为什么投票者不能更改投票?

CIVS 不允许投票者更新投票,这是其防止选举监督员影响投票的目标之一。

孔多塞方法有什么缺陷吗?

没有完美的投票方法。吉巴德-萨特斯韦特定理已经证明,任何非独裁的单一获胜者排名投票方法都必然容易受到所谓的“策略性投票”的影响。这会导致人们为了影响结果而没有按照他们的真实想法投票。

孔多塞方法也可能出现循环(称为孔多塞悖论)。由于孔多塞方法通过在 1 对 1 的比赛中判断某个选项是否能战胜其他选项来选择获胜者,因此存在 PEP A > PEP B > PEP C > PEP A 的可能性(或用石头剪刀布游戏来说,想象一个三个人玩游戏,一个人出石头,另一个人出剪刀,最后一个人出布;没有人会赢,因为每个人都会被别人打败)。对于经过分析的一组包含 21 个或更多投票者的真实世界选举,循环发生的频率不到 1.5%

参考资料


来源:https://github.com/python/peps/blob/main/peps/pep-8001.rst

最后修改:2023 年 10 月 9 日 23:43:15 GMT