NuGet 거버넌스
이 문서는 옥스포드 대학교(University of Oxford)의 선한 독재자 통치 모델을 기반으로 합니다. Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales 라이선스에 따라 사용이 허가됩니다.
NuGet 프로젝트는 선한 독재자가 주도하고 커뮤니티에서 관리합니다. 즉 커뮤니티는 일상적인 프로젝트 유지에 적극적으로 참가하지만, 선한 독재자는 일반적인 전략적 방향을 이끌어갑니다. 반대 의견이 있으면 선한 독재자가 마지막 말을 남깁니다.
커뮤니티 내의 분쟁을 해결하고 프로젝트가 조정된 방식으로 진행될 수 있게 하는 것은 선한 독재자의 책임입니다. 차례로 적극적인 참여와 기여를 통해 선한 독재자의 결정을 관리하는 것은 커뮤니티의 책임입니다.
여기서는 선한 독재자, 대리인, 참가자 및 사용자의 네 가지 역할에 대해 설명합니다.
NuGet Core 팀은 자체적으로 선한 독재자 또는 프로젝트 책임자로 지정됩니다. 그러나 커뮤니티에는 항상 포크할 수 있는 기능이 있기 때문에 팀은 커뮤니티에 완벽하게 응답할 수 있습니다. 프로젝트 책임자는 커뮤니티를 전체적으로 이해하고 가능한 한 충돌하는 많은 요구 사항을 충족하면서 프로젝트가 장기간 지속될 수 있도록 노력해야 합니다.
다양한 방식에서 선한 독재자의 역할은 덜 독재적이면서 더 외교적입니다. 핵심은 프로젝트가 확장됨에 따라 적절한 사람들이 프로젝트에 영향을 주고 프로젝트 책임자의 비전에 기반하여 커뮤니티를 결집하도록 보장하는 것입니다. 따라서 책임자의 임무는 대리인(아래 참조)가 프로젝트를 대신하여 올바른 결정을 내릴 수 있도록 하는 것입니다. 일반적으로 대리인가 프로젝트의 전략과 일치하는 한 프로젝트 책임자는 원하는 대로 계속 진행할 수 있습니다.
또한 .NET Foundation 직원은 도메인 등록 및 기술 지원 서비스(예: 코드 서명)를 포함한 업무를 위해 프로젝트를 NuGet에 대한 기본 또는 첫 번째 연락 지점으로 간주합니다.
대리인은 NuGet에 지속적으로 중요한 기여를 하고 선한 독재자가 지정한 참가자입니다. 지정된 대리인은 전적으로 리포지토리에 코드를 직접 작성하고 다른 사람의 기여를 화면에 표시합니다. 대리인은 종종 개발자이지만 다른 방식으로 기여할 수 있습니다.
일반적으로 대리인은 프로젝트의 특정 부분을 중점적으로 다루며, 커뮤니티와 프로젝트 책임자의 존경을 받는 수준의 전문 지식과 이해력을 제공합니다. 대리인의 역할은 공식적인 것이 아니며, 프로젝트 책임자에게 지침과 지원이 필요할 때 커뮤니티의 영향력 있는 구성원이 맡을 수 있는 지위에 불과합니다.
대리인에게는 NuGet의 전체적인 방향과 관련하여 아무 권한이 없지만, 프로젝트 책임자에게 제안할 수 있는 권한은 있습니다. 책임자가 커뮤니티의 요구 사항과 총체적인 목표를 인식하고 프로젝트에 대한 적절한 기여를 개발하거나 끌어낼 수 있도록 지원하는 것이 대리인의 책임입니다. 대리인은 종종 자신의 특정 책임 영역에 대한 비공식적인 제어를 받으며, 소스 코드의 특정 영역을 직접 수정할 수 있는 권한을 할당받습니다. 즉 대리인은 명시적 의사 결정 권한을 가지고 있지 않지만, 자신의 작업이 책임자가 내리는 결정과 같다는 사실을 알게 되는 경우도 있습니다.
참가자는 NuGet에 패치를 제출하는 커뮤니티 구성원입니다. 이러한 패치는 한 번 발생하거나 시간이 지남에 따라 발생할 수 있습니다. 참가자는 처음에는 작은 패치를 제출하고, 참가자, 대리인 및 프로젝트 책임자가 참가자의 패치 품질을 확신하게 되면 더 큰 패치를 제출할 수 있게 됩니다. 참가자는 관련 제품 릴리스 정보 문서에서 인정됩니다.
참가자의 첫 번째 패치가 리포지토리에 저장되기 전에 해당 참가자는 참가자 사용권 계약 또는 .NET Foundation에 대한 할당 규약에 서명해야 합니다. 패치를 제출하고 논의할 수는 있지만 적절한 문서 작업이 없으면 실제로 리포지토리에 패치를 남겨둘 수 없습니다. 참가자 사용권 계약을 얻으려면 전자 메일 요청을 contributions@nuget.org로 보내주세요.
참가자가 되려면 다음 리포지토리 중 하나에 끌어오기 요청을 제출합니다.
끌어오기 요청을 제출하는 자세한 과정은 리포지토리별로 다릅니다.
사용자는 패키지 소비자 및/또는 작성자로서 NuGet이 필요하고 이를 사용하는 커뮤니티 구성원입니다. 사용자는 커뮤니티에서 가장 중요한 구성원이며, 이들이 없으면 프로젝트에는 아무런 목적이 없을 것입니다. 누구나 사용자가 될 수 있으며, 특별한 요구 사항은 없습니다.
사용자는 NuGet과 커뮤니티의 세계에 가능한 한 많이 참여하도록 장려되어야 합니다. 사용자 참여는 프로젝트에서 해당 사용자의 요구 사항이 충족될 수 있도록 합니다. 일반적인 사용자 활동에는 다음이 포함되지만 제한되지는 않습니다.
- 프로젝트 사용에 대한 지지
- 개발자에게 새 사용자의 관점에 기반한 프로젝트 장단점 통지
- 도덕적 지원 제공(힘든 작업에 감사드립니다!)
- 설명서 및 자습서 작성
- 버그 보고 및 기능 요청 제출
- 커뮤니티 이벤트(예: 버그 사냥) 참여
- 토론 게시판 또는 포럼 참여
프로젝트와 해당 커뮤니티에 계속 참여하는 사용자는 종종 점점 더 많이 참여하고 있는 자신을 깨닫게 됩니다. 이러한 사용자는 위에서 설명한 대로 참가자가 될 수 있습니다.
NuGet 계정 보유자가 자격이 상실되거나 희생된 불행한 상황에서는 Microsoft에서 커뮤니티와 협력하여 명시된 해당 계정에 단독 소유권이 있는 패키지에 적절한 소유자를 추가할 것이며, 해당 패키지는 OSI 승인 라이선스에 따라 게시됩니다. 소유권을 요청하려면 다음 문서를 보내야 합니다.
- 정부에서 발급한 사진이 부착된 신분증 사본
- 이전 계정 소유자의 상태 증명하는 다음 문서 중 하나입니다.
- 이전 계정 보유자가 사망한 경우 정부에서 발급한 공식 사망 인증서 또는
- 인증된 문서(예: 자격이 상실된 계정 보유자를 담당하는 의료 전문가가 서명한 인증서)
- 소유권을 증명하는 다음 문서 중 하나입니다.
- 계정 보유자의 생존 배우자임을 증명하는 결혼 증명서
- 서명된 위임장
- 유언 집행자 또는 수혜자로 지명한 유서 또는 위임장 사본
- 계정 보유자의 부모인 경우 계정 보유자의 출생 증명서 또는
- 계정 보유자의 법정 후견인인 경우 후견인 증명 서류
이 정책을 행사해야 하는 경우 패키지의 ID와 버전이 포함된 전자 메일을 support@nuget.org로 보내주세요.
오픈 소스 프로젝트의 거버넌스에 대해 커뮤니티의 신뢰를 쌓는 것이 성공에 필수적입니다. 이를 위해 의사 결정은 투명하고 공개적인 방식으로 수행되어야 합니다. 프로젝트의 방향에 대한 논의는 공개적으로 수행되어야 합니다. 선한 독재자의 결정으로 커뮤니티를 부당하게 보호하면 안됩니다. 또한 커뮤니티 구성원이 의사 결정 및 해당 상황에 대한 전체 기록을 이해할 수 있도록 프로젝트 결정에 대한 토론을 보관해야 합니다.