organization.txt 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  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. Since 2014, the Django Project is an aristocracy_. The Django core team makes
  19. the decisions, elects its technical board, and nominates new team members.
  20. While it holds decision power in theory, it aims at using it as rarely as
  21. possible in practice. Rough consensus should be the norm and formal voting an
  22. exception.
  23. Until 2014, the Django Project was a benevolent_ dictatorship_.
  24. .. _aristocracy: http://en.wikipedia.org/wiki/Aristocracy
  25. .. _benevolent: http://www.holovaty.com/writing/bdfls-retiring/
  26. .. _dictatorship: http://jacobian.org/writing/retiring-as-bdfls/
  27. .. _core-team:
  28. Core team
  29. =========
  30. Role
  31. ----
  32. The core team is the group of trusted volunteers who manage the Django
  33. Project. They assume many roles required to achieve the project's goals,
  34. especially those that require a high level of trust. They make the decisions
  35. that shape the future of the project.
  36. Core team members are expected to act as role models for the community and
  37. custodians of the project, on behalf of the community and all those who rely
  38. on Django.
  39. They will intervene, where necessary, in online discussions or at official
  40. Django events on the rare occasions that a situation arises that requires
  41. intervention.
  42. They have authority over the Django Project infrastructure, including the
  43. Django Project website itself, the Django GitHub organization and
  44. repositories, the Trac bug tracker, the mailing lists, IRC channels, etc.
  45. Prerogatives
  46. ------------
  47. Core team members may participate in formal votes, typically to nominate new
  48. team members and to elect the technical board.
  49. Some contributions don't require commit access. Depending on the reasons why a
  50. contributor joins the team, they may or may not have commit permissions to the
  51. Django code repository.
  52. However, should the need arise, any team member may ask for commit access by
  53. writing to the core team's mailing list. Access will be granted unless the
  54. person withdraws their request or the technical board vetoes the proposal.
  55. Core team members who have commit access are referred to as "committers" or
  56. "core developers".
  57. Other permissions, such as access to the servers, are granted to those who
  58. need them through the same process.
  59. Membership
  60. ----------
  61. The core team finds its origins with the :ref:`four people
  62. <original-team-list>` who created Django. It has grown to :ref:`a few dozen
  63. people <core-team-list>` by co-opting volunteers who demonstrate:
  64. - a good grasp of the philosophy of the Django Project
  65. - a solid track record of being constructive and helpful
  66. - significant contributions to the project's goals, in any form
  67. - willingness to dedicate some time to improving Django
  68. As the project matures, contributions go way beyond code. Here's an incomplete
  69. list of areas where contributions may be considered for joining the core team,
  70. in no particular order:
  71. - Working on community management and outreach
  72. - Providing support on the mailing-lists and on IRC
  73. - Triaging tickets
  74. - Writing patches (code, docs, or tests)
  75. - Reviewing patches (code, docs, or tests)
  76. - Participating in design decisions
  77. - Providing expertise in a particular domain (security, i18n, etc.)
  78. - Managing the continuous integration infrastructure
  79. - Managing the servers (website, tracker, documentation, etc.)
  80. - Maintaining related projects (djangoproject.com site, ex-contrib apps, etc.)
  81. - Creating visual designs
  82. Very few areas are reserved to core team members:
  83. - Reviewing security reports
  84. - Merging patches (code, docs, or tests)
  85. - Packaging releases
  86. Core team membership acknowledges sustained and valuable efforts that align
  87. well with the philosophy and the goals of the Django Project.
  88. It is granted by a four fifths majority of votes cast in a core team vote and
  89. no veto by the technical board.
  90. Core team members are always looking for promising contributors, teaching them
  91. how the project is managed, and submitting their names to the core team's vote
  92. when they're ready. If you would like to join the core team, you can contact a
  93. core team member privately or ask for guidance on the :ref:`Django Core
  94. Mentorship mailing-list <django-core-mentorship-mailing-list>`.
  95. There's no time limit on core team membership. However, in order to provide
  96. the general public with a reasonable idea of how many people maintain Django,
  97. core team members who have stopped contributing are encouraged to declare
  98. themselves as "past team members". Those who haven't made any non-trivial
  99. contribution in two years may be asked to move themselves to this category,
  100. and moved there if they don't respond. Past team members lose their privileges
  101. such as voting rights and commit access.
  102. .. _technical-board:
  103. Technical board
  104. ===============
  105. Role
  106. ----
  107. The technical board is a group of experienced and active committers who steer
  108. technical choices. Their main concern is to maintain the quality and stability
  109. of the Django Web Framework.
  110. Prerogatives
  111. ------------
  112. The technical board holds two prerogatives:
  113. - Making major technical decisions when no consensus is found otherwise. This
  114. happens on the |django-developers| mailing-list.
  115. - Veto a grant of commit access or remove commit access. This happens on the
  116. django-core mailing-list.
  117. In both cases, the technical board is a last resort. In these matters, it
  118. fulfills a similar function to the former Benevolent Dictators For Life.
  119. When the board wants to exercise one of these prerogatives, it must hold a
  120. private, simple majority vote on the resolution. The quorum is the full
  121. committee — each member must cast a vote or abstain explicitly. Then the board
  122. communicates the result, and if possible the reasons, on the appropriate
  123. mailing-list. There's no appeal for such decisions.
  124. In addition, at its discretion, the technical board may act in an advisory
  125. capacity on non-technical decisions.
  126. Membership
  127. ----------
  128. The technical board is an elected group of five committers. They're expected
  129. to be experienced but there's no formal seniority requirement. Its current
  130. composition is published :ref:`here <technical-board-list>`.
  131. A new board is elected after each major release of Django. The election
  132. process is managed by the outgoing technical board. The first election is
  133. bootstrapped by the retiring BDFLs. The election process works as follows:
  134. 1. Candidates advertise their application for the technical board to the team.
  135. They must be committers already. There's no term limit for technical board
  136. members.
  137. 2. Each team member can vote for zero to five people among the candidates.
  138. Candidates are ranked by the total number of votes they received.
  139. In case of a tie, the person who joined the core team earlier wins.
  140. Both the application and the voting period last between one and two weeks, at
  141. the outgoing board's discretion.
  142. Changing the organization
  143. =========================
  144. Changes to this document require a four fifths majority of votes cast in a
  145. core team vote and no veto by the technical board.