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

Python 개선 제안 한국어 번역

PEP 8016 – 운영 위원회 모델

Author:
Nathaniel J. Smith, Donald Stufft
Status:
Accepted
Type:
Informational
Topic:
Governance
Created:
01-Nov-2018

Table of Contents

번역·라이선스 안내

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

참고

이 PEP는 역사적 목적으로 보존되며, 현재 공식 거버넌스 문서는 PEP 13입니다.

초록

이 PEP는 운영 위원회를 중심으로 하는 Python 거버넌스 모델을 제안합니다. 위원회는 폭넓은 권한을 가지지만, 이를 가능한 한 드물게 행사하고자 합니다. 그 대신 이 권한을 사용하여 다른 801x 시리즈 PEP에서 제안된 것과 같은 표준 절차를 수립합니다. 이는 큰 변경을 독립적으로 검토할 수 있는 일련의 작은 변경으로 나누는 편이 더 낫다는 일반적인 철학을 따른 것입니다. 하나의 PEP에서 모든 것을 하려고 하는 대신, 이후의 거버넌스 결정을 위한 최소한이면서도 견고한 기반을 제공하는 데 집중합니다.

PEP 수락

PEP 8016은 2018년 12월 17일 월요일에 PEP 8001에 설명된 핵심 개발자 투표로 채택되었습니다.

근거

이 제안의 주요 목표는 다음과 같습니다.

  • 지루할 것: 우리는 거버넌스 전문가가 아니며, Python이 새롭고 검증되지 않은 거버넌스 모델을 실험하기에 좋은 곳이라고 생각하지 않습니다. 따라서 이 제안은 가능한 한 성숙하고 잘 알려져 있으며 이전에 검증된 절차를 고수합니다. 대체로 간섭하지 않는 위원회라는 상위 수준의 접근 방식은 성공한 대규모 F/OSS 프로젝트에서 아마도 가장 흔한 방식일 것이며, 하위 수준의 세부 사항은 Django의 거버넌스에서 직접 가져왔습니다.
  • 단순하게 하십시오: 이 체계가 작동하는 데 필요한 최소한의 요소, 즉 운영 위원회, (위원회를 선출하는) 코어 팀, 그리고 문서 변경 절차만 남기도록 정리하고자 했습니다. 목표는 최소 실행 가능 거버넌스(Minimum Viable Governance)입니다.
  • 포괄적일 것: 하지만 정의해야 하는 사항에 대해서는 모든 경우를 빠짐없이 다루려고 노력했습니다. 이런 종류의 위기를 다시 겪고 싶지 않기 때문입니다. 명확하고 모호하지 않은 규칙을 갖추는 것은 혼란과 불만을 최소화하는 데에도 도움이 됩니다.
  • 유연하고 가벼울 것: 함께 일하기 위한 최선의 절차를 찾으려면 시간과 실험이 필요하다는 것을 알고 있습니다. 이 문서를 가능한 한 최소한으로 유지함으로써, 나중에 조정할 수 있는 유연성을 최대한 확보하는 동시에 프로젝트 전체 투표처럼 무겁고 불안을 유발하는 절차의 필요성을 최소화합니다.

여러 세부 사항이 이 Discourse 스레드에서 논의되었고, 이후 이 스레드에서 추가로 논의되었습니다. 이 논의들은 여러 사소한 결정의 근거를 이해하려는 사람에게 유용할 수 있습니다.

명세

운영 위원회

구성

운영 위원회는 5인으로 구성된 위원회입니다.

임무

운영 위원회는 다음을 위해 노력합니다.

  • Python 언어와 CPython 인터프리터의 품질과 안정성을 유지합니다.
  • 기여를 가능한 한 접근하기 쉽고, 포용적이며, 지속 가능하게 만듭니다.
  • 코어 팀과 PSF 사이의 관계를 공식화하고 유지하십시오,
  • PEP에 적합한 의사 결정 절차를 수립합니다.
  • 공식적인 자격으로 행동하기 전에 기여자들과 코어 팀 사이의 합의를 구합니다.
  • 다른 모든 방법이 실패한 결정에 대해 “최종 항소 법원” 역할을 합니다.

권한

위원회는 프로젝트에 관한 결정을 내릴 수 있는 폭넓은 권한을 가집니다. 예를 들어, 위원회는 다음과 같은 일을 할 수 있습니다:

  • PEP를 수락하거나 거부합니다
  • 프로젝트의 행동 강령을 시행하거나 갱신합니다
  • PSF와 협력하여 프로젝트 자산을 관리합니다
  • 권한의 일부를 다른 소위원회나 절차에 위임합니다

그러나 위원회는 이 PEP에 명시된 메커니즘을 통하지 않고서는 이 PEP를 수정하거나 코어 팀의 구성원 자격에 영향을 줄 수 없습니다.

위원회는 이러한 권한을 가능한 한 적게 사용할 방법을 찾아야 합니다. 투표하기보다는 합의를 구하는 편이 더 좋습니다. 개별 PEP에 대해 판정하기보다는 PEP 의사 결정을 위한 표준 절차를 정의하는 편이 더 좋습니다(예를 들어, 다른 801x 시리즈 PEP 중 하나를 수락하는 방식으로). 개별 사안에 대해 판정하기보다는 행동 강령 위원회를 설립하는 편이 더 좋습니다. 이런 식으로 계속됩니다.

위원회는 권한을 행사하기 위해 투표합니다. 모든 위원은 투표하거나 명시적으로 기권해야 합니다. 특정 투표에 이해 상충이 있는 위원은 기권해야 합니다. 가결되려면 기권하지 않은 위원 과반수의 지지가 필요합니다.

가능한 경우 언제나 위원회의 심의와 투표는 공개적으로 진행합니다.

위원회 선출

위원회 선거는 두 단계로 구성됩니다:

  • 1단계: 후보자는 위원으로 활동할 의사를 알립니다. 후보자는 코어 팀 구성원의 추천을 받아야 합니다. 자기 추천도 허용됩니다.
  • 2단계: 각 코어 팀 구성원은 후보자 중 0명에서 5명까지 투표할 수 있습니다. 투표는 익명으로 진행됩니다. 후보자는 받은 총 득표수에 따라 순위가 매겨집니다. 동점이 발생하면 후보자 간의 상호 합의로 해결할 수 있으며, 그렇지 않으면 당선자를 무작위로 선정합니다.

각 단계는 임기를 마치는 위원회의 재량에 따라 1주에서 2주 동안 진행됩니다. 첫 번째 선거에서는 두 단계 모두 2주 동안 진행됩니다.

선거 절차는 퇴임하는 운영 위원회가 지명한 선거 관리자가 관리합니다. 첫 번째 선거에서는 PSF 사무총장이 선거 관리자를 지명합니다.

위원회는 Python 기여자와 사용자의 다양성을 반영하는 것이 이상적이므로, 코어 팀 구성원은 이를 고려하여 투표하시기 바랍니다.

임기

새 위원회는 각 기능 릴리스 이후에 선출됩니다. 각 위원회의 임기는 선거 결과가 확정된 때부터 다음 위원회의 임기가 시작될 때까지입니다. 임기 제한은 없습니다.

공석

위원회 구성원은 언제든지 사임할 수 있습니다.

정규 위원회 임기 중에 공석이 생기면, 위원회는 투표를 통해 남은 임기를 채울 후임자를 임명할 수 있습니다.

위원회 구성원이 연락이 끊겨 한 달 이상 연락이 닿지 않으면, 나머지 위원회 구성원이 투표를 통해 그 구성원을 교체할 수 있습니다.

이해 상충

우리는 위원회 구성원이 자신이나 고용주가 아닌 Python의 최선의 이익을 위해 행동하리라 믿지만, 어느 한 회사가 Python 개발을 지배하는 것처럼 보이는 것만으로도 그 자체로 해로울 수 있으며 신뢰를 무너뜨릴 수 있습니다. 이해 상충으로 보일 소지를 없애기 위해, 같은 고용주에 소속된 위원회 구성원은 최대 2명까지만 허용합니다.

위원회 선거에서 득표 상위 5명 중 3명이 같은 고용주에 소속되어 있다면, 그중 순위가 가장 낮은 사람은 자격을 잃고 6위 후보가 5위로 올라갑니다. 유효한 위원회가 구성될 때까지 이 과정을 반복합니다.

위원회 임기 중에 상황이 바뀌어(예를 들어 위원회 구성원의 이직으로 인해) 이 규칙에 어긋나게 되면, 문제를 해소하기 위해 위원회 구성원 한 명 이상이 사임해야 하며, 그로 인해 생긴 공석은 일반적인 방식으로 채울 수 있습니다.

코어 팀 구성원 축출

예외적인 상황에서는 본인의 의사에 반하여 누군가를 코어 팀에서 제외해야 할 수도 있습니다. (예를 들어 행동 강령을 심각하고 지속적으로 위반하는 경우입니다.) 이는 운영 위원회 투표로 할 수 있지만, 다른 운영 위원회 투표와 달리 최소 3분의 2 이상의 찬성이 필요합니다. 즉, 5명이 투표하는 경우 3:2로는 부족하며, 이러한 투표가 가결되려면 최소 4:1의 찬성이 필요합니다. 또한 이는 운영 위원회가 위임할 수 없는 유일한 권한이며, 불신임 투표가 진행 중인 동안에는 이 권한을 행사할 수 없습니다.

축출된 코어 팀 구성원이 운영 위원회에도 속해 있다면, 운영 위원회에서도 제외됩니다.

불신임 투표

예외적인 상황에서 코어 팀은 불신임 투표를 통해 현직 위원회 구성원 또는 위원회 전체를 해임할 수 있습니다.

불신임 투표는 코어 팀 구성원이 적절한 프로젝트 소통 채널에서 공개적으로 이를 요구하고, 다른 코어 팀 구성원이 그 제안에 재청하면 시작됩니다.

투표는 2주 동안 진행됩니다. 코어 팀 구성원은 찬성 또는 반대로 투표합니다. 투표자의 3분의 2 이상이 불신임을 표명하면 투표는 가결됩니다.

불신임 투표에는 두 가지 형태가 있습니다. 하나는 구성원 한 명을 대상으로 하는 투표이고, 다른 하나는 위원회 전체를 대상으로 하는 투표입니다. 불신임 투표를 처음 요구할 때는 어떤 형태의 투표인지 명시해야 합니다. 구성원 한 명을 대상으로 한 투표가 가결되면, 해당 구성원은 위원회에서 제외되며 그로 인해 생긴 공석은 일반적인 방식으로 처리할 수 있습니다. 위원회 전체를 대상으로 한 투표가 가결되면, 위원회는 해산되고 즉시 새 위원회 선거가 시작됩니다.

코어 팀

역할

코어 팀은 Python을 관리하는 신뢰받는 자원봉사자들의 그룹입니다. 이들은 프로젝트의 목표를 달성하는 데 필요한 여러 역할, 특히 높은 수준의 신뢰가 요구되는 역할을 맡습니다. 이들은 프로젝트의 미래를 결정짓는 결정을 내립니다.

코어 팀 멤버는 커뮤니티와 Python에 의존하는 모든 이들을 대신하여 커뮤니티의 본보기이자 프로젝트의 관리자로서 행동할 것이 기대됩니다.

이들은 개입이 필요한 상황이 드물게 발생하면, 필요한 경우 온라인 토론이나 공식 Python 행사에 개입합니다.

이들은 Python 프로젝트 웹사이트 자체, Python GitHub 조직과 저장소, 버그 트래커, 메일링 리스트, IRC 채널 등을 포함한 Python 프로젝트 인프라에 대한 권한을 가집니다.

특권

코어 팀 멤버는 공식 투표에 참여할 수 있으며, 이 투표는 주로 새 팀 멤버를 지명하거나 운영 위원회를 선출하기 위한 것입니다.

멤버십

Python 코어 팀 멤버는 다음을 보여 줍니다:

  • Python 프로젝트의 철학에 대한 충분한 이해
  • 건설적이고 도움이 되는 활동을 해 온 확실한 이력
  • 형태를 불문하고 프로젝트의 목표에 대한 상당한 기여
  • Python을 개선하는 데 어느 정도 시간을 할애하려는 의지

프로젝트가 성숙해짐에 따라 기여는 코드에 국한되지 않습니다. 다음은 코어 팀 합류 시 고려될 수 있는 기여 분야를 순서 없이 나열한 목록이며, 모든 분야를 망라하지는 않습니다:

  • 커뮤니티 관리 및 대외 활동
  • 메일링 리스트와 IRC에서의 지원 제공
  • 티켓 분류
  • 패치 작성(코드, 문서 또는 테스트)
  • 패치 리뷰(코드, 문서 또는 테스트)
  • 설계 결정에 참여
  • 특정 분야(보안, i18n 등)에 대한 전문 지식 제공
  • 지속적 통합 인프라 관리
  • 서버 관리(웹사이트, 트래커, 문서 등)
  • 관련 프로젝트 유지 관리(대체 인터프리터, 패키징 같은 핵심 인프라 등)
  • 시각 디자인 제작

코어 팀 멤버십은 Python 프로젝트의 철학 및 목표에 잘 부합하는 지속적이고 가치 있는 노력을 인정하는 것입니다.

멤버십은 코어 팀 투표에서 3분의 2 이상의 찬성표를 얻고 운영 위원회의 거부권 행사가 없을 때 부여됩니다.

코어 팀 멤버는 항상 유망한 기여자를 찾아 프로젝트가 어떻게 관리되는지 가르치고, 준비가 되면 그들의 이름을 코어 팀 투표에 올립니다.

코어 팀 구성원 자격에는 기간 제한이 없습니다. 다만 Python을 유지 관리하는 사람이 얼마나 되는지 일반 대중이 합리적으로 파악할 수 있도록, 기여를 중단한 코어 팀 구성원은 스스로를 “비활성”으로 선언하도록 권장됩니다. 2년 동안 사소하지 않은 기여를 전혀 하지 않은 사람에게는 스스로 이 범주로 옮기도록 요청할 수 있으며, 응답이 없으면 이 범주로 옮겨질 수 있습니다. 이들의 기여를 기록하고 기리기 위해 비활성 팀 구성원은 활성 코어 팀 구성원과 함께 계속 명단에 오르며, 나중에 기여를 재개하면 원할 때 언제든 활성 상태로 되돌아갈 수 있습니다. 다만 비활성 상태인 동안에는 운영 위원회 투표나 후보 추천 같은 활성 구성원의 권한과 커밋 권한을 잃습니다.

최초의 활성 코어 팀 구성원은 현재 GitHub의 “Python core” 팀에 올라 있는 모든 사람으로 구성되며, 최초의 비활성 구성원은 과거에 커미터였던 나머지 모든 사람으로 구성됩니다.

이 문서의 변경

이 문서를 변경하려면 코어 팀 투표에서 행사된 표의 3분의 2 이상의 찬성이 필요합니다.

TODO

  • 많은 분이 유용한 제안과 피드백을 주셨으므로, 그분들이 공동 저자로 추가되는 데 동의하시는지 확인해야 합니다
  • Aymeric Augustin이 Django 문서 전체를 작성한 것으로 보이므로 아마 그가 저작권을 보유하고 있을 것입니다. 아래의 저작권 표기를 더 간단하게 할 수 있도록, 그 문서를 퍼블릭 도메인으로 공개할 의향이 있는지 그에게 물어보는 것이 좋겠습니다.

감사의 글

상당 부분의 텍스트를 Django 프로젝트의 거버넌스 문서에서 염치없이 그대로 가져왔습니다.