organization.txt 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. ==================================
  2. Organization of the Django Project
  3. ==================================
  4. Principles
  5. ==========
  6. The Django Project is managed by a team of volunteers pursuing three goals:
  7. - Driving the development of the Django web framework,
  8. - Fostering the ecosystem of Django-related software,
  9. - Leading the Django community in accordance with the values described in the
  10. `Django Code of Conduct`_.
  11. The Django Project isn't a legal entity. The `Django Software Foundation`_, a
  12. non-profit organization, handles financial and legal matters related to the
  13. Django Project. Other than that, the Django Software Foundation lets the
  14. Django Project manage the development of the Django framework, its ecosystem
  15. and its community.
  16. .. _Django Code of Conduct: https://www.djangoproject.com/conduct/
  17. .. _Django Software Foundation: https://www.djangoproject.com/foundation/
  18. .. _mergers-team:
  19. Mergers
  20. =======
  21. Role
  22. ----
  23. Mergers_ are a small set of people who merge pull requests to the `Django Git
  24. repository <https://github.com/django/django>`_.
  25. Prerogatives
  26. ------------
  27. Mergers hold the following prerogatives:
  28. - Merging any pull request which constitutes a `minor change`_ (small enough
  29. not to require the use of the `DEP process`_). A Merger must not merge a
  30. change primarily authored by that Merger, unless the pull request has been
  31. approved by:
  32. - another Merger,
  33. - a technical board member,
  34. - a member of the `triage & review team`_, or
  35. - a member of the `security team`_.
  36. - Initiating discussion of a minor change in the appropriate venue, and request
  37. that other Mergers refrain from merging it while discussion proceeds.
  38. - Requesting a vote of the technical board regarding any minor change if, in
  39. the Merger's opinion, discussion has failed to reach a consensus.
  40. - Requesting a vote of the technical board when a `major change`_ (significant
  41. enough to require the use of the `DEP process`_) reaches one of its
  42. implementation milestones and is intended to merge.
  43. .. _`minor change`: https://github.com/django/deps/blob/main/accepted/0010-new-governance.rst#terminology
  44. .. _`major change`: https://github.com/django/deps/blob/main/accepted/0010-new-governance.rst#terminology
  45. Membership
  46. ----------
  47. `The technical board`_ selects Mergers_ as necessary to maintain their number
  48. at a minimum of three, in order to spread the workload and avoid over-burdening
  49. or burning out any individual Merger. There is no upper limit to the number of
  50. Mergers.
  51. It's not a requirement that a Merger is also a Django Fellow, but the Django
  52. Software Foundation has the power to use funding of Fellow positions as a way
  53. to make the role of Merger sustainable.
  54. The following restrictions apply to the role of Merger:
  55. - A person must not simultaneously serve as a member of the technical board. If
  56. a Merger is elected to the technical board, they shall cease to be a Merger
  57. immediately upon taking up membership in the technical board.
  58. - A person may serve in the roles of Releaser and Merger simultaneously.
  59. The selection process, when a vacancy occurs or when the technical board deems
  60. it necessary to select additional persons for such a role, occur as follows:
  61. - Any member in good standing of an appropriate discussion venue, or the Django
  62. Software Foundation board acting with the input of the DSF's Fellowship
  63. committee, may suggest a person for consideration.
  64. - The technical board considers the suggestions put forth, and then any member
  65. of the technical board formally nominates a candidate for the role.
  66. - The technical board votes on nominees.
  67. Mergers may resign their role at any time, but should endeavor to provide some
  68. advance notice in order to allow the selection of a replacement. Termination of
  69. the contract of a Django Fellow by the Django Software Foundation temporarily
  70. suspends that person's Merger role until such time as the technical board can
  71. vote on their nomination.
  72. Otherwise, a Merger may be removed by:
  73. - Becoming disqualified due to election to the technical board.
  74. - Becoming disqualified due to actions taken by the Code of Conduct committee
  75. of the Django Software Foundation.
  76. - A vote of the technical board.
  77. .. _releasers-team:
  78. Releasers
  79. =========
  80. Role
  81. ----
  82. Releasers_ are a small set of people who have the authority to upload packaged
  83. releases of Django to the `Python Package Index`_, and to the
  84. `djangoproject.com`_ website.
  85. Prerogatives
  86. ------------
  87. Releasers_ :doc:`build Django releases </internals/howto-release-django>` and
  88. upload them to the `Python Package Index`_, and to the `djangoproject.com`_
  89. website.
  90. Membership
  91. ----------
  92. `The technical board`_ selects Releasers_ as necessary to maintain their number
  93. at a minimum of three, in order to spread the workload and avoid over-burdening
  94. or burning out any individual Releaser. There is no upper limit to the number
  95. of Releasers.
  96. It's not a requirement that a Releaser is also a Django Fellow, but the Django
  97. Software Foundation has the power to use funding of Fellow positions as a way
  98. to make the role of Releaser sustainable.
  99. A person may serve in the roles of Releaser and Merger simultaneously.
  100. The selection process, when a vacancy occurs or when the technical board deems
  101. it necessary to select additional persons for such a role, occur as follows:
  102. - Any member in good standing of an appropriate discussion venue, or the Django
  103. Software Foundation board acting with the input of the DSF's Fellowship
  104. committee, may suggest a person for consideration.
  105. - The technical board considers the suggestions put forth, and then any member
  106. of the technical board formally nominates a candidate for the role.
  107. - The technical board votes on nominees.
  108. Releasers may resign their role at any time, but should endeavor to provide
  109. some advance notice in order to allow the selection of a replacement.
  110. Termination of the contract of a Django Fellow by the Django Software
  111. Foundation temporarily suspends that person's Releaser role until such time as
  112. the technical board can vote on their nomination.
  113. Otherwise, a Releaser may be removed by:
  114. - Becoming disqualified due to actions taken by the Code of Conduct committee
  115. of the Django Software Foundation.
  116. - A vote of the technical board.
  117. .. _`Python Package Index`: https://pypi.org/project/Django/
  118. .. _djangoproject.com: https://www.djangoproject.com/download/
  119. .. _technical-board:
  120. Technical board
  121. ===============
  122. Role
  123. ----
  124. The technical board is a group of experienced and active committers who steer
  125. technical choices. Their main concern is to maintain the quality and stability
  126. of the Django web framework.
  127. Prerogatives
  128. ------------
  129. The technical board holds two prerogatives:
  130. - Making major technical decisions when no consensus is found otherwise. This
  131. happens on the |django-developers| mailing-list.
  132. - Veto a grant of commit access or remove commit access. This happens on the
  133. ``django-core`` mailing-list.
  134. In both cases, the technical board is a last resort. In these matters, it
  135. fulfills a similar function to the former Benevolent Dictators For Life.
  136. When the board wants to exercise one of these prerogatives, it must hold a
  137. private, simple majority vote on the resolution. The quorum is the full
  138. committee — each member must cast a vote or abstain explicitly. Then the board
  139. communicates the result, and if possible the reasons, on the appropriate
  140. mailing-list. There's no appeal for such decisions.
  141. In addition, at its discretion, the technical board may act in an advisory
  142. capacity on non-technical decisions.
  143. Membership
  144. ----------
  145. `The technical board`_ is an elected group of five committers. They're expected
  146. to be experienced but there's no formal seniority requirement.
  147. A new board is elected after each feature release of Django. The election
  148. process is managed by a returns officer nominated by the outgoing technical
  149. board. The election process works as follows:
  150. #. Candidates advertise their application for the technical board to the team.
  151. They must be committers already. There's no term limit for technical board
  152. members.
  153. #. Each team member can vote for zero to five people among the candidates.
  154. Candidates are ranked by the total number of votes they received.
  155. In case of a tie, the person who joined the core team earlier wins.
  156. Both the application and the voting period last between one and two weeks, at
  157. the outgoing board's discretion.
  158. .. _mergers: https://www.djangoproject.com/foundation/teams/#mergers-team
  159. .. _releasers: https://www.djangoproject.com/foundation/teams/#releasers-team
  160. .. _`security team`: https://www.djangoproject.com/foundation/teams/#security-team
  161. .. _`the technical board`: https://www.djangoproject.com/foundation/teams/#technical-board-team
  162. .. _`triage & review team`: https://www.djangoproject.com/foundation/teams/#triage-review-team
  163. Changing the organization
  164. =========================
  165. Changes to this document require a four fifths majority of votes cast in a
  166. core team vote and no veto by the technical board.