PEP 609 – Python 패키징 관리 기관(PyPA) 거버넌스
- Author:
- Dustin Ingram <di at python.org>, Pradyun Gedam <pradyunsg at gmail.com>, Sumana Harihareswara <sh at changeset.nyc>
- Sponsor:
- Paul Ganssle <paul at ganssle.io>
- Discussions-To:
- Discourse thread
- Status:
- Active
- Type:
- Process
- Topic:
- Governance, Packaging
- Created:
- 05-Nov-2019
- Post-History:
- 05-Nov-2019
Table of Contents
번역·라이선스 안내
이 비공식 한국어 번역은 원문 Copyright 절의 Public Domain or CC0-1.0, whichever is more permissive 조건에 따라 제공합니다. 원저자와 공식 원문은 그대로 표시합니다. 수정되지 않은 기준 원문 · 공식 최신판
초록
이 문서는 Python 패키징 관리 기관(PyPA)의 거버넌스 모델을 설명합니다. 이 모델은 기존의 비공식 관행을 밀접하게 기반으로 하며, PyPA의 운영 방식에 대한 명확성을 제공하고 PyPA의 투명한 절차를 공식화하는 것을 목적으로 합니다.
근거
Python 패키징 관리 기관(PyPA)은 Python 패키징과 관련된 여러 프로젝트를 유지 관리하고 발전시키는 협업 커뮤니티입니다. PyPA를 통해 개발된 소프트웨어와 표준은 Python 소프트웨어를 패키징하고, 공유하고, 설치하며, Python 패키지 색인인 PyPI와 같은 다운로드 가능한 Python 소프트웨어의 색인과 상호 작용하는 데 사용됩니다.
현재 PyPA는 실질적인 권한이 없는 비공식적이고 느슨하게 정의된 조직이며, 특정 프로젝트를 PyPA의 우산 아래 포함하거나 새 프로젝트를 만드는 일이 임시방편적이고 일회적인 방식으로 이루어져 왔습니다. 마찬가지로 PyPA의 개별 회원 자격도 잘 정의되어 있지 않습니다.
이 모델은 과거에 PyPA에서 대체로 잘 작동했지만, 안정적인 생태계에 필요한 특정 기능, 즉 명확하고 투명한 의사 결정 절차가 결여된 조직을 초래합니다. 이 PEP는 PyPA의 거버넌스 모델을 정의하여 이러한 문제를 바로잡고자 합니다.
용어
이 PEP에서 사용하는 개별 기여자 그룹 관련 용어는 다음과 같습니다.
- PyPA 회원:
- PyPA organization에 속한 하나 이상의 프로젝트에서 트리아지 권한 또는 커밋 권한을 가진 사람을 말합니다.
- PyPA 커미터:
- PyPA organization에 속한 하나 이상의 프로젝트에서 커밋 권한을 가진 사람을 말하며, 이는 PyPA-Committers 메일링 리스트의 모든 사람에 해당해야 합니다.
- PyPA 커뮤니티:
- PyPA 활동에 관심이 있고 이를 지켜보며 기여하거나 제안하고자 하는 사람을 말합니다.
- Packaging-WG 회원:
- Packaging-WG Wiki page에 설명된 사람을 말합니다. 명확히 하자면, Packaging-WG와 PyPA 사이에는 공식적인 관계가 없습니다. 이 그룹은 PyPA와 구분하기 위해서만 이 목록에 포함됩니다.
목표
다음 절에서는 PyPA와 이 거버넌스 모델의 목표 및 비목표를 공식화합니다.
PyPA의 목표
이러한 목표는 PyPA가 존재하는 주된 동기입니다. 대부분이 명시적으로 정의되지는 않았지만, 이러한 목표는 대체로 이미 수행되고 있습니다.
PyPA 산하 기존 프로젝트 지원 제공
특정 프로젝트에 추가 지원이 필요하거나 더 이상 활동 중인 유지 관리자가 없는 경우, PyPA는 사용자에게 필요한 범위까지 해당 프로젝트가 계속 지원되도록 보장합니다.
PyPA 프로젝트를 위한 표준의 생성 및 수용 촉진
PyPA는 가능한 한 PyPA 프로젝트 전반에서 표준화와 조정을 위해 노력해야 하며, 주로 아래에 설명된 거버넌스 프로세스를 통해 이를 수행해야 합니다. PyPA 프로젝트는 PyPA가 유지 관리하는 적용 가능한 사양을 준수해야 합니다.
여러 PyPA 프로젝트에 영향을 미치는 결정을 안내합니다.
생태계 전반에 영향을 미치는 변경 사항이 제안될 때 PyPA 커뮤니티, 특히 PyPA 회원은 의견과 통찰, 경험을 제공해야 합니다.
어떤 프로젝트가 PyPA의 지침을 따라야 하는지 결정합니다.
예를 들어 커뮤니티의 새 프로젝트를 수용하거나, PyPA 내에서 자연스럽게 프로젝트를 생성하는 등의 활동이 있습니다.
모든 프로젝트에서 행동 강령 준수를 시행합니다.
일반적으로 이는 모범을 보이는 것을 의미하지만, 때로는 보다 명시적인 조정을 의미할 수도 있습니다.
PyPA의 비목표입니다.
이는 PyPA의 목표가 _not_ 아님을 명시적으로 밝힌 구체적인 항목입니다.
누가 PyPA 회원이고 누가 아닌지 결정합니다.
이는 각 프로젝트에 새 회원을 추가할 때 개별 프로젝트의 구성원이 결정할 사항입니다. PyPA 조직에 속한 프로젝트의 유지 관리 권한을 맡으면 PyPA 회원 자격이 자동으로 부여됩니다.
개별 프로젝트를 세부적으로 관리합니다.
프로젝트가 행동 강령을 준수하고 PyPA가 지원하는 사양을 따르는 한, PyPA는 규모가 크고 생태계 전반에 영향을 미치는 변경 사항에만 관심을 가져야 합니다.
독립적인 행동 강령을 개발하고 유지 관리합니다.
PyPA 프로젝트는 the PSF Code of Conduct를 따릅니다.
PyPA 거버넌스 모델의 목표입니다.
이는 거버넌스 모델이 실현하고자 하는 새로운 목표입니다.
PyPA 회원 자격의 투명성입니다.
PyPA의 프로젝트 회원 자격과 관련하여 내려지는 결정에 투명한 절차를 제공합니다.
PyPA의 PEP 사용을 문서화합니다.
PyPA가 PyPA에서 정의한 상호 운용성 사양을 유지 관리하기 위해 Python Enhancement Proposals(PEP)를 사용하는 방식을 공식적으로 문서화합니다.
프로세스입니다.
PyPA 활동을 위한 프로세스는 아래에 설명되어 있습니다.
사양입니다.
PyPA는 PyPA가 유지 관리하는 상호 운용성 사양을 정의하고 변경하기 위해 PEP를 사용합니다. 따라서 Python Steering Council이 이러한 상호 운용성 사양의 수용 여부를 최종적으로 결정합니다.
Python Steering Council은 패키징 상호 운용성 사양과 관련된 PEP를 후원하거나 승인 또는 거부할 권한을 PyPA 커뮤니티 내의 개인에게 위임할 것으로 예상되지만, 반드시 그렇게 해야 하는 것은 아닙니다. 작성 시점인 2020년 6월 현재 Python Steering Council은 현재 활성화된 패키징 상호 운용성 사양에 대해 standing delegations을 보유하고 있습니다.
상호 운용성 사양을 제안하고 업데이트하는 프로세스의 세부 사항은 PyPA Specifications 문서에 설명되어 있습니다.
거버넌스입니다.
PyPA 커미터 투표
PyPA 회원은 공개 PyPA 커뮤니케이션 채널에서 제안을 제출하고 투표를 요청할 수 있습니다. PyPA 커미터 투표는 (제안자가 아닌) PyPA 커미터가 해당 제안에 재청할 때 발동됩니다.
제안은 7일 동안 PyPA-Committers메일링 리스트에서 투표에 부쳐집니다. 각 PyPA 커미터는 한 번만 투표할 수 있으며, +1과 -1중 하나를 선택할 수 있습니다. 기록된 투표 중 최소 3분의 2가 +1이면 투표는 통과됩니다.
PyPA 커미터 투표는 다음 종류의 제안에 대해서만 필요하며, 그 범위로 제한됩니다.
PyPA에 프로젝트 추가
PyPA 조직에 프로젝트를 받아들이는 것을 제안합니다. 이 제안은 해당 프로젝트의 기존 관리자들이 반대하지 않아야 합니다.
PyPA 내 새 프로젝트 생성
PyPA 조직에 새로운 도구/프로젝트를 생성하는 것을 제안합니다.
PyPA에서 프로젝트 제거
PyPA 조직에서 프로젝트를 제거하는 것을 제안합니다.
거버넌스/명세 프로세스 갱신
명세 및 거버넌스 프로세스에 대한 변경과 이 PEP에 대한 변경을 포함하되 이에 국한되지 않는, PyPA의 운영 방식에 대한 변경을 제안합니다.
PyPA 탈퇴
PyPA 조직의 일부인 프로젝트는 PyPA 탈퇴를 요청할 수 있습니다.
이러한 요청은 해당 프로젝트의 커미터가 PyPA-Committers메일링 리스트에서 할 수 있으며, 저장소를 이전할 GitHub 사용자/조직을 명확히 명시해야 합니다.
요청이 7일 동안 동일 프로젝트의 다른 커미터로부터 반대받지 않으면, 해당 프로젝트는 요청에 따라 PyPA를 탈퇴하고 PyPA 조직에서 이전됩니다.
행동 강령 시행
PyPA 조직의 일부인 각 프로젝트는 사건 보고 지침 및 시행 절차를 포함하여 the PSF Code of Conduct를 따릅니다.
PyPA 구성원은 모범을 보임으로써 이끌 책임이 있습니다. PyPA 구성원은 때때로 자신들의 프로젝트에서 행동을 보다 명시적으로 조율해야 할 수 있으며, PyPA 조직의 일부인 각 프로젝트는 행동 강령 관련 사건이 발생했을 때 연락 가능한 PyPA 구성원을 최소 한 명 지정해야 합니다. 자신들의 프로젝트와 관련된 행동 강령 사건에 대해 통보받으면, PyPA 구성원은 기록 및 잠재적 지원을 위해 해당 사건을 the PSF Conduct WG에 보고할 것으로 기대됩니다.
참고 문헌
Copyright
This document is placed in the public domain or under the CC0-1.0-Universal license, whichever is more permissive.