[Active] PEP 731 - C API Working Group Charter
원문 링크: PEP 731 - C API Working Group Charter
상태: Active 유형: Process 작성일: 11-Oct-2023
PEP 731은 Python C API 워킹 그룹(Working Group)의 설립을 제안하는 문서로, 이 워킹 그룹은 Python C API의 개발 및 유지보수를 감독하고 조율하는 역할을 담당합니다.
개요 (Abstract)
이 PEP는 Python C API의 개발 및 유지보수를 감독하고 조율하는 역할을 하는 Python 코어 개발자들로 구성된 소규모 위원회인 C API 워킹 그룹의 설립을 제안합니다.
워킹 그룹은 Python C API와 관련된 문서, 테스트 스위트(test suites) 및 도구(tooling)를 유지관리합니다. 스티어링 카운슬(Steering Council)로부터 위임받아, 개별 API 함수, 타입(types) 등의 추가 또는 제거부터 다소 급진적인 새로운 설계의 수용에 이르기까지 C API 변경 사항에 대한 결정 권한을 가집니다.
워킹 그룹의 임무는 모든 Python 사용자, 특히 CPython 환경에서든, 다른 Python 구현을 사용하든, 또는 C++ 및 Rust와 같은 다른 프로그래밍 언어를 위한 바인딩 프레임워크를 사용하든 관계없이 Python C API를 사용하는 모든 코드의 유지보수자들의 이익을 대변하는 것입니다.
워킹 그룹은 Python 스티어링 카운슬의 뜻에 따라 운영되며, 이 문서는 워킹 그룹의 헌장 역할을 합니다.
동기 (Motivation)
코어 개발자 스프린트(sprints) 및 언어 서밋(Language Summits)에서의 수많은 논의와 대면 회의, 그리고 C API의 문제점 및 이해관계자들에 대한 철저한 조사가 있었음에도 불구하고, 다음과 같은 많은 논쟁적인 문제들에 대해 합의에 도달하지 못했습니다.
- 새로운 API 함수 설계를 위한 규칙
- 호환성 처리 방법
- 오류 처리(error handling)를 위한 최적의 전략
- Stable ABI 및 Limited API의 미래
- 핸들 기반(handle-based) API 규칙으로 전환할지 여부(및 방법)
일반적인 의견은 너무 많은 이해관계자, 제안, 요구 사항, 제약 조건 및 규칙이 존재하여 소규모의 신뢰할 수 있는 결정 그룹 없이는 진전을 이루기 어렵다는 것입니다.
2023년 솔트레이크시티에서 열린 언어 서밋에서는 문제점 목록 작성을 시작하기로 결정했습니다. 2023년 브르노에서 열린 코어 개발자 스프린트에서 이 작업은 거의 완료되었고, 논의 끝에 영원히 정체되지 않도록 워킹 그룹을 설립하는 것이 다음 단계라는 결론에 도달했습니다.
스티어링 카운슬은 이러한 워킹 그룹의 공식적인 설립을 예상하고, C API에 대한 결정을 워킹 그룹에 위임하겠다는 의사를 표명했습니다.
명세 (Specification)
새로운 그룹인 C API 워킹 그룹의 생성을 제안합니다. 이 그룹은 Python C API의 개발 및 유지보수를 감독하고 조율하는 역할을 담당합니다. 워킹 그룹은 작업의 기본 원칙을 수립하고 코어 개발자들이 참조할 수 있는 가이드라인을 발행함으로써 이 역할을 수행할 것입니다.
“운영 및 프로세스” 섹션에서 워킹 그룹이 어떻게 운영되고 관리되는지 설명합니다.
구성원 (Members)
워킹 그룹의 구성원은 다음과 같습니다.
- Erlend Aasland
- Michael Droettboom
- Petr Viktorin
- Serhiy Storchaka
- Steve Dower
- Victor Stinner
임무 (Mandate)
워킹 그룹의 임무는 Python C API가 특정 그룹을 부당하게 선호하지 않고 모든 API 사용자 및 기여자에게 적합하도록 보장하는 것입니다. 워킹 그룹은 모범적인 이해관계자들, 그들의 필요와 선호를 파악하고, 이러한 필요를 공정하고 지속 가능하게 충족하기 위한 계획을 수립할 것입니다. 또한, 이 계획의 실행을 감독합니다.
운영 및 프로세스 (Operations and process)
워킹 그룹은 저명한 Python 코어 개발자들로 구성된 최소 3명 이상의 구성원을 가집니다. 구성원들은 다양한 이해관계자들의 필요를 신중하게 고려해야 합니다.
스티어링 카운슬이 초기 워킹 그룹을 임명합니다. 워킹 그룹 구성원의 임기 제한은 없습니다. 워킹 그룹 구성원은 언제든지 어떤 이유로든 자신의 직책을 사임할 수 있습니다. 구성원들은 시간이 지남에 따라 바뀔 것으로 예상됩니다.
교체자를 결정하기 위해 코어 개발자 커뮤니티에서 추천을 받습니다. 자기 추천도 허용됩니다. 기존 워킹 그룹은 후보자 중에서 교체 구성원을 결정합니다. 이는 독단적으로 이루어질 것으로 예상되지만, 워킹 그룹은 투표를 포함하여 적절하다고 판단되는 모든 방법으로 교체자를 선택할 수 있습니다.
워킹 그룹은 스티어링 카운슬에 계속해서 책임이 있습니다. 스티어링 카운슬은 언제든지 어떤 이유로든 (공개적으로 또는 비공개적으로) 워킹 그룹의 구성에 대한 특정 변경을 지시하거나 비특정 변경을 요청할 수 있습니다.
이것이 특별히 민주적인 구조는 아니며 워킹 그룹에 많은 신뢰를 부여한다는 점을 인정합니다. 그러나 Python 커뮤니티는 완전히 민주적이지 않은 구조로도 오랫동안 성공을 거두었습니다! 워킹 그룹의 자체 관리, 구성원 순환, 그리고 스티어링 카운슬에 대한 책임이 C API 워킹 그룹이 커뮤니티의 필요를 충족하는 데 충분할 것이라고 믿습니다.
워킹 그룹은 주로 GitHub 이슈(issues) 및 PR(Pull Requests) 검토를 통해 운영될 수 있습니다. 정기 회의는 필요하지 않을 수 있지만, 워킹 그룹은 화상 통화, 비공개 채팅 또는 내부적으로 결정하는 다른 메커니즘을 설정할 수 있습니다.
워킹 그룹은 투명성을 목표로 하며, 가능하다면 모든 결정을 discuss.python.org에 공개적으로 게시하고 그 이유를 설명해야 합니다. 결정을 내리기 전에 워킹 그룹은 관심 있는 모든 커뮤니티 구성원(다양한 범주의 이해관계자 예시)에게 의견을 제시할 기회를 주어야 합니다. 논의 시작과 워킹 그룹의 결정 사이에 최소 일주일의 간격이 있어야 합니다.
스티어링 카운슬과의 관계 (Relationship with the Steering Council)
현재와 마찬가지로 Python 스티어링 카운슬은 Python C API의 전반적인 방향에 대한 책임을 유지하며, 표준 PEP 검토 프로세스(커뮤니티 논의 등)를 사용하여 C API와 관련된 PEP에 대한 결정을 계속 내립니다. C API 워킹 그룹은 C API와 관련된 PEP에 대해 스티어링 카운슬에 서면 의견과 권고를 제공합니다.
그러나 워킹 그룹은 더 작은 C API 변경 사항을 직접 만들 수 있습니다. 스티어링 카운슬은 일부 PEP에 대한 결정을 워킹 그룹에 위임할 수도 있습니다(다른 PEP 위임과 동일하게).
개정 (Amendments)
이 PEP는 워킹 그룹의 헌장 역할을 합니다. 운영 변경은 새로운 PEP를 통해 이루어지거나 이 PEP를 변경함으로써 이루어질 수 있습니다. 두 경우 모두, 커뮤니티 논의 후 스티어링 카운슬이 변경 사항을 결정합니다.
연락처 (Contact)
C API 워킹 그룹에 결정을 요청하려면 커뮤니티 구성원은 capi-workgroup/decisions
저장소에 이슈를 열 수 있습니다.
⚠️ 알림: 이 문서는 AI를 활용하여 번역되었으며, 기술적 정확성을 보장하지 않습니다. 정확한 내용은 반드시 원문을 확인하시기 바랍니다.
Comments