Django 프로젝트 구성¶
원칙¶
Django 프로젝트는 세 가지 목표를 추구하는 자원 봉사 팀에 의해 관리됩니다:
Django 웹 프레임워크의 개발을 주도하고,
Django 관련 소프트웨어 생태계를 육성하고,
`Django Code of Conduct`_에 명시된 가치에 따라 Django 커뮤니티를 선도합니다.
Django 프로젝트는 법인이 아닙니다. 비영리 단체인 `Django Software Foundation`_이 Django 프로젝트와 관련된 재정 및 법적 사안을 처리합니다. 그 외에는 Django Software Foundation이 Django 프로젝트가 Django 프레임워크와 그 생태계, 그리고 커뮤니티의 발전을 스스로 관리하도록 합니다.
Mergers¶
역할¶
Merger_는 pull request를 `Django Git 저장소`_에 병합하는 소수의 사람들입니다.
특혜¶
Merger는 다음과 같은 특혜를 가집니다:
`사소한 변경`_(`DEP process`_를 사용할 필요가 없을 정도로 작음)을 구성하는 모든 pull request를 병합합니다. pull request가 다음에 의해 승인되지 않은 병합자는 해당 Merger가 주로 작성한 변경 사항을 병합해서는 안됩니다.:
적절한 장소에서 사소한 변경에 대한 논의를 시작하고 논의가 진행되는 동안 다른 Merger에게 병합을 자제하도록 요청합니다.
Merger의 판단에 따라 토론이 합의에 이르지 못했다고 여겨질 경우, 운영 위원회에 사소한 변경 사항에 대한 표결을 요청합니다.
major change`_(`DEP process 사용이 필요할 만큼 중요한 변경 사항)가 구현 마일스톤 중 하나에 도달하고 병합이 예정된 경우, 운영 위원회에 표결을 요청합니다.
멤버십¶
`The steering council`_은 업무 부담을 분산하고 특정 Merger가 과도한 부담을 지거나 번아웃되는 것을 방지하기 위해, 최소 세 명을 유지할 수 있도록 필요에 따라 Mergers_를 선출합니다. Merger 수의 상한선은 없습니다.
Merger가 Django Fellow이기도 해야 한다는 요구 사항은 아니지만 Django Software Foundation은 Merger의 역할을 지속 가능하게 만드는 방법으로 Fellow 직책의 자금을 사용할 수 있는 권한이 있습니다.
Merger의 역할에는 다음과 같은 제한 사항이 적용됩니다.:
한 사람이 운영 위원회 위원을 동시에 겸임할 수는 없습니다. Merger가 운영 위원회에 선출될 경우, 운영 위원회 위원직을 맡는 즉시 Merger직에서 물러납니다.
Releaser와 Merger의 역할을 동시에 수행할 수 있습니다.
공석이 발생하거나 운영 위원회가 해당 역할에 추가 인원 선발이 필요하다고 판단하는 경우, 선발 절차는 다음과 같이 진행됩니다.
적절한 토론 장소의 양호한 상태의 회원 또는 DSF의 Fellowship 위원회의 의견을 받는 Django Sofeware Foundation 이사회는 고려할 사람을 제안할 수 있습니다.
운영 위원회는 제안된 후보들을 검토한 후, 위원 중 한 명이 해당 역할의 후보자를 공식적으로 지명합니다.
운영 위원회는 후보자들에 대해 표결합니다.
Merger는 언제든지 역할에서 사임할 수 있지만, 후임자 선발을 위해 사전에 통보하도록 노력해야 합니다. Django Software Foundation이 Django Fellow의 계약을 종료할 경우, 운영 위원회가 해당 인물의 지명에 대해 표결할 때까지 해당 인물의 Merger 역할은 일시적으로 중단됩니다.
그렇지 않으면, Merger는 다음과 같은 방법으로 자격이 박탈될 수 있습니다.:
운영 위원회 선출로 인한 자격 상실.
Django Software Foundation의 행동 강령 위원회에서 취한 조치로 인해 자격이 박탈됩니다.
운영 위원회의 표결.
Releasers¶
역할¶
Releasers_는 Django의 패키지 릴리스를 :pypi:`Python Package Index <Django>`와 `djangoproject.com`_ 웹사이트에 업로드할 권한을 가진 소수의 사람들입니다.
특혜¶
Releasers_는 :doc:`Django 릴리스 빌드 </internals/howto-release-django>`를 수행하고, 이를 :pypi:`Python Package Index <Django>`와 `djangoproject.com`_ 웹사이트에 업로드합니다.
멤버십¶
`The steering council`_은 업무 부담을 분산하고 특정 Releaser가 과도한 부담을 지거나 번아웃되는 것을 방지하기 위해, 최소 세 명을 유지할 수 있도록 필요에 따라 Releasers_를 선출합니다. Releaser 수의 상한선은 없습니다.
Releaser가 Django Fellow이기도 해야 한다는 요구 사항은 아니지만 Django Software Foundation은 Releaser의 역할을 지속 가능하게 만드는 방법으로 Fellow 직책의 자금을 사용할 수 있는 권한이 있습니다.
Releaser와 Merger의 역할을 동시에 수행할 수 있습니다.
공석이 발생하거나 운영 위원회가 해당 역할에 추가 인원 선발이 필요하다고 판단하는 경우, 선발 절차는 다음과 같이 진행됩니다.
적절한 토론 장소의 양호한 상태의 회원 또는 DSF의 Fellowship 위원회의 의견을 받는 Django Sofeware Foundation 이사회는 고려할 사람을 제안할 수 있습니다.
운영 위원회는 제안된 후보들을 검토한 후, 위원 중 한 명이 해당 역할의 후보자를 공식적으로 지명합니다.
운영 위원회는 후보자들에 대해 표결합니다.
Releaser는 언제든지 역할에서 사임할 수 있지만, 후임자 선발을 위해 사전에 통보하도록 노력해야 합니다. Django Software Foundation이 Django Fellow의 계약을 종료할 경우, 운영 위원회가 해당 인물의 지명에 대해 표결할 때까지 해당 인물의 Releaser 역할은 일시적으로 중단됩니다.
그렇지 않으면, Releaser는 다음과 같은 방법으로 자격이 박탈될 수 있습니다.:
Django Software Foundation의 행동 강령 위원회에서 취한 조치로 인해 자격이 박탈됩니다.
운영 위원회의 표결.
운영 위원회¶
역할¶
운영 위원회는 다음과 같은 경험 많은 기여자로 구성됩니다.
Django의 개발 및 릴리스 프로세스를 감독하고,
기능 개발 및 릴리스의 방향을 설정하는 데 도움을 주고,
Merger와 Releaser를 선출하고,
다른 의사 결정 프로세스가 실패할 때 최종 투표를 합니다.
주요 역할은 Django 웹 프레임워크의 품질과 안정성을 유지하는 것입니다.
특혜¶
운영 위원회는 다음과 같은 권한을 가집니다.
Django의 기술적 변경에 대한 질문에 대해 구속력 있는 결정을 내립니다.
특정 코드 조각을 Django로 병합하거나 특정 병합 또는 커밋의 되돌리기를 거부합니다.
Django의 향후 기술 방향에 대한 제안 및 아이디어 요청을 발표합니다.
merger와 releaser를 선택하고 자격을 박탈합니다.
적절하다고 판단되는 경우, 운영 위원회 위원의 해임에 참여합니다.
자동으로 실시되는 선거 외에도, 운영 위원회가 선거가 필요하다고 판단하는 경우 추가로 선거를 실시합니다.
Django의 조직 수정에 참여(조직 변경 참조).
운영 위원회가 구속력 있는 결정을 내리기에는 아직 시기상조라고 판단하거나, 그 권한 범위를 벗어난다고 판단하는 사안에 대해서는 표결을 보류합니다.
Django 오픈 소스 프로젝트 내에서 다른 기술 팀을 담당하고 그에 따라 해당 팀을 관리합니다.
멤버십¶
`The steering council`_은 다음과 같은 자질을 갖춘 경험 많은 기여자 다섯 명으로 구성된 선출 기구입니다.
Django 또는 Django 생태계에 대한 실질적인 기여 이력. 이 이력은 운영 위원회 후보 등록 시점 기준 최소 18개월 이전부터 시작되어야 하며, 아래 항목 중 최소 두 가지에서 실질적인 기여를 포함해야 합니다.
Django 프로젝트 또는 Django 생태계의 주요 서드파티 패키지에 대한 코드 기여
pull request 검토 및 Django 프로젝트 티켓 분류
문서, 튜토리얼 또는 블로그 글
Django Forum에서 Django 관련 논의
Django 관련 이벤트 개최 또는 사용자 그룹 운영
Django의 방향성과 미래에 대한 참여 이력. 반드시 최근일 필요는 없으나, 최근 3년간 참여 이력이 없는 후보자는 해당 기간 동안 Django의 변화와 방향성을 이해하고 있음을 입증해야 합니다.
새 운영 위원회는 Django의 각 릴리스 주기가 끝난 후 선출됩니다. 선거 절차는 다음과 같습니다.
운영 위원회는 위원 중 한 명을 지정하여 Django Software Foundation 사무국장에게 선거 발동 사실과 그 사유를 서면으로 통보합니다. 사무국장은 적절한 채널, 즉 `Django Forum`_에 선거와 그 일정에 대해 공고합니다.
선거가 공고되는 즉시 `DSF Board`_는 유권자 등록 기간을 시작합니다. `individual members of the DSF`_은 자동으로 등록되므로 별도로 등록할 필요가 없습니다. 투표 자격이 있다고 판단하나 아직 등록하지 않은 사람은 DSF 이사회에 투표 권한을 신청할 수 있습니다. 유권자 등록 양식과 유권자 명부는 DSF 이사회가 관리합니다. DSF 이사회는 부정한 의도로 등록하거나 자격을 허위로 기재했거나 그 밖에 자격이 없다고 판단되는 유권자의 등록을 거부할 수 있습니다.
유권자 등록은 선거 공고 후 일주일이 지나면 마감됩니다. 이후 후보자 등록이 시작됩니다. 자격을 갖춘 사람이라면 누구든 후보자로 등록할 수 있습니다. 후보자 등록 양식과 후보자 명단은 DSF 이사회가 관리하며, 후보자는 등록 시 자격 요건에 대한 증빙을 제출해야 합니다. DSF 이사회는 운영 위원회 위원의 자격 요건을 충족하지 못하거나 부정한 의도로 등록한다고 판단되는 후보자의 등록을 거부할 수 있습니다.
후보자 등록은 시작 후 일주일이 지나면 마감됩니다. 후보자 등록 마감 후 일주일이 지나면 DSF 사무국장이 `Django Forum`_에 후보자 명단을 게시하고 선거가 시작됩니다. DSF 이사회는 등록된 유권자가 접근할 수 있는 투표 양식을 제공하며, 투표를 관리합니다.
투표는 무작위 순서로 배열된 후보자 명단과 후보자 관련 자료가 포함된 비밀 투표로 진행됩니다. 각 유권자는 투표 용지에서 최대 5명의 후보자에게 투표할 수 있습니다.
선거는 시작 후 일주일이 지나면 종료됩니다. 이후 DSF 이사회는 개표를 진행하여 총 투표 수와 각 후보자가 받은 표 수를 포함한 결과 요약을 작성합니다. 이 요약은 DSF 이사회의 과반수 찬성으로 승인된 후, DSF 사무국장이 `Django Forum`_에 게시합니다. 가장 많은 표를 얻은 상위 5명의 후보자가 즉시 새로운 운영 위원회가 됩니다.
운영 위원회 위원은 다음과 같은 사유로 해임될 수 있습니다.
Django Software Foundation의 행동 강령 위원회에서 취한 조치로 인해 자격이 박탈됩니다.
운영 위원회 위원 자격을 갖추지 못한 것으로 판단되는 경우. 이 판단은 나머지 운영 위원회 위원 전원과 `DSF Board`_가 공동으로 내려야 합니다. 유효한 자격 없음 결정은 해당 사안에 대해 표결권이 있는 나머지 운영 위원회 위원 전원과 DSF 이사회 위원 전원이 해당 인물이 자격이 없다는 안건에 “찬성”으로 표결해야 성립합니다. 단, 해당 인물이 DSF 이사회 위원인 경우 표결에 참여할 수 없습니다.
조직 변경¶
이 문서를 변경하려면 `DEP process`_를 사용해야 하며, 수정 사항은 `DEP 0010`_에 설명된 절차를 따릅니다.