Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python 개선 제안 한국어 번역

PEP 8001 – Python 거버넌스 투표 절차

Author:
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>
Status:
Final
Type:
Process
Topic:
Governance
Created:
24-Aug-2018

Table of Contents

번역·라이선스 안내

이 비공식 한국어 번역은 원문 Copyright 절의 Public Domain 조건에 따라 제공합니다. 원저자와 공식 원문은 그대로 표시합니다. 수정되지 않은 기준 원문 · 공식 최신판

초록

이 PEP는 Guido의 은퇴 이후 새로운 Python 거버넌스 모델을 선정하는 절차를 설명합니다. 여기에 설명된 절차에 따라 모델이 선정되면, 그 모델은 PEP 13에 성문화됩니다.

동기와 근거

Guido가 BDFL 역할에서 물러나면서, 앞으로 Python 프로젝트를 어떻게 운영할지를 어떻게 선택할지부터 정해야 하는 메타 문제가 남았습니다.

이 문서는 이 선택을 어떻게 할 수 있는지에 대한 구체적인 제안을 제시합니다. 이 문서는 2018년 9월 레드먼드에서 열린 코어 스프린트의 워킹 그룹 회의에서 나온 논의와 결론을 요약합니다(참석자 전원의 이름이 저자로 기재되어 있습니다). 이 PEP는 discuss.python.org에서 이어진 후속 스레드도 요약합니다.

거버넌스 문제는 적시에 해결되어야 합니다. 이상적으로는 2018년 말까지 해결되어야 하며, 그래야 상당한 개선 사항을 Python 3.8에 맞춰 병합할 수 있습니다. 홍보상의 위기를 피하려면 늦어도 PyCon US 2019까지는 거버넌스 문제가 해결되어야 합니다.

구현

무엇에 대해 투표합니까?

Python 프로젝트가 어떤 거버넌스 PEP를 시행할지 선택하기 위해 투표합니다. 후보 PEP 목록은 PEP 8000에 나와 있으며, 801X 범위의 번호가 매겨진 모든 PEP로 구성됩니다.

투표의 정당성을 보장하기 위해, 앞서 언급한 PEP들은 투표 기간 중에 수정해서는 안 됩니다.

누가 투표할 수 있습니까?

모든 CPython 코어 개발자를 투표에 초대합니다. 투명성과 공정성을 위해, 코어 개발자들에게 거버넌스 상황이 자신에게 직접 영향을 미치는지를 기준으로 투표 참여 여부를 스스로 판단해 주도록 요청합니다. 다시 말해, 앞으로도 활동하지 않을 생각인 비활동 코어 개발자는 투표를 기권할 것을 권고합니다.

투표는 언제 합니까?

2018년 11월 16일부터 2018년 11월 30일까지가 공식 거버넌스 PEP 검토 기간입니다. 이 기간 동안 PEP 작성자가 실질적인 큰 변경을 하는 것은 자제해 주실 것을 권합니다. 다만 이 논의 기간의 결과로 사소한 수정은 있을 수 있을 것으로 예상합니다.

투표는 2018년 12월 1일부터 2018년 12월 16일까지 2주 동안 진행됩니다(Anywhere on Earth 기준).

투표는 어디에서 합니까?

투표는 Condorcet Internet Voting Service의 “비공개” 투표로 진행됩니다. 모든 커미터는 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.python.org/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.python.org/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.python.org/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.python.org/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.python.org/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.python.org/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.python.org/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.python.org/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] 안타깝게도 비밀 투표를 하려면 새로운 암호 기술이나, 투표용지를 익명화할 신뢰할 수 있는 제3자가 필요합니다. 콩도르세 투표용지에 쓸 수 있는 새로운 암호 시스템은 현재 존재하는 것으로 알려진 것이 없으므로, 신뢰할 수 있는 제3자 역할을 할 시스템으로 CIVS가 선택되었습니다.

악의적인 투표자, 선거 관리자 또는 CIVS 관리자가 선거에 어떻게 영향을 미칠 수 있는지를 포함하여 CIVS가 제공하는 보안 및 프라이버시에 관한 자세한 정보는 여기에서 확인할 수 있습니다.

투표자는 왜 자신의 투표를 변경할 수 없습니까?

CIVS는 선거 관리자가 투표에 영향을 미칠 수 없도록 한다는 목표의 일환으로, 투표자가 자신의 투표를 수정하는 것을 허용하지 않습니다.

콩도르세 방식에 결함이 있습니까?

완벽한 투표 방식은 없습니다. 기바드-새터스웨이트 정리에 의해, 독재적이지 않은 단일 당선자 순위 투표 방식은 모두 이른바 “전략적 투표”에 취약할 수밖에 없다는 것이 증명되었습니다. 이로 인해 사람들이 결과에 영향을 미치려고 자신의 진정한 생각과 다르게 투표할 수 있습니다.

콩도르세 방식에는 순환이 발생할 가능성도 있습니다(콩도르세 역설이라고 알려져 있습니다). 콩도르세 방식은 1대1 경쟁에서 다른 선택지를 이길 수 있는지를 기준으로 승자를 고르기 때문에, PEP A > PEP B > PEP C > PEP A가 될 가능성이 있습니다(가위바위보 게임에 빗대어 말하면, 세 명이 하는 게임에서 한 사람은 바위를, 다른 사람은 보를, 마지막 사람은 가위를 냈다고 상상해 보십시오. 모두가 누군가에게 지기 때문에 그 게임에서는 아무도 이기지 못합니다). 투표자가 21명 이상인 실제 선거들을 분석한 한 자료에 따르면, 순환은 1.5% 미만의 빈도로 발생했습니다..

참고 문헌