|
30 | 30 | ----
|
31 | 31 |
|
32 | 32 | Mergers_ are a small set of people who merge pull requests to the `Django Git
|
33 |
| -repository <https://github.com/django/django>`_. |
| 33 | +repository`_. |
34 | 34 |
|
35 | 35 | Prerogatives
|
36 | 36 | ------------
|
@@ -166,63 +166,135 @@ Technical board
|
166 | 166 | Role
|
167 | 167 | ----
|
168 | 168 |
|
169 |
| -The technical board is a group of experienced and active committers who steer |
170 |
| -technical choices. Their main concern is to maintain the quality and stability |
171 |
| -of the Django web framework. |
| 169 | +The technical board is a group of experienced contributors who: |
172 | 170 |
|
173 |
| -Prerogatives |
174 |
| ------------- |
175 |
| - |
176 |
| -The technical board holds two prerogatives: |
177 |
| - |
178 |
| -- Making major technical decisions when no consensus is found otherwise. This |
179 |
| - happens on the |django-developers| mailing-list. |
180 |
| -- Veto a grant of commit access or remove commit access. This happens on the |
181 |
| - ``django-core`` mailing-list. |
| 171 | +- provide oversight of Django's development and release process, |
| 172 | +- assist in setting the direction of feature development and releases, |
| 173 | +- take part in filling certain roles, and |
| 174 | +- have a tie-breaking vote when other decision-making processes fail. |
182 | 175 |
|
183 |
| -In both cases, the technical board is a last resort. In these matters, it |
184 |
| -fulfills a similar function to the former Benevolent Dictators For Life. |
| 176 | +Their main concern is to maintain the quality and stability of the Django Web |
| 177 | +Framework. |
185 | 178 |
|
186 |
| -When the board wants to exercise one of these prerogatives, it must hold a |
187 |
| -private, simple majority vote on the resolution. The quorum is the full |
188 |
| -committee — each member must cast a vote or abstain explicitly. Then the board |
189 |
| -communicates the result, and if possible the reasons, on the appropriate |
190 |
| -mailing-list. There's no appeal for such decisions. |
| 179 | +Prerogatives |
| 180 | +------------ |
191 | 181 |
|
192 |
| -In addition, at its discretion, the technical board may act in an advisory |
193 |
| -capacity on non-technical decisions. |
| 182 | +The technical board holds the following prerogatives: |
| 183 | + |
| 184 | +- Making a binding decision regarding any question of a technical change to |
| 185 | + Django. |
| 186 | +- Vetoing the merging of any particular piece of code into Django or ordering |
| 187 | + the reversion of any particular merge or commit. |
| 188 | +- Announcing calls for proposals and ideas for the future technical direction |
| 189 | + of Django. |
| 190 | +- Setting and adjusting the schedule of releases of Django. |
| 191 | +- Selecting and removing mergers and releasers. |
| 192 | +- Participating in the removal of members of the technical board, when deemed |
| 193 | + appropriate. |
| 194 | +- Calling elections of the technical board outside of those which are |
| 195 | + automatically triggered, at times when the technical board deems an election |
| 196 | + is appropriate. |
| 197 | +- Participating in modifying Django's governance (see |
| 198 | + :ref:`organization-change`). |
| 199 | +- Declining to vote on a matter the technical board feels is unripe for a |
| 200 | + binding decision, or which the technical board feels is outside the scope of |
| 201 | + its powers. |
| 202 | +- Taking charge of the governance of other technical teams within the Django |
| 203 | + open-source project, and governing those teams accordingly. |
194 | 204 |
|
195 | 205 | Membership
|
196 | 206 | ----------
|
197 | 207 |
|
198 |
| -`The technical board`_ is an elected group of five committers. They're expected |
199 |
| -to be experienced but there's no formal seniority requirement. |
200 |
| - |
201 |
| -A new board is elected after each feature release of Django. The election |
202 |
| -process is managed by a returns officer nominated by the outgoing technical |
203 |
| -board. The election process works as follows: |
204 |
| - |
205 |
| -#. Candidates advertise their application for the technical board to the team. |
206 |
| - |
207 |
| - They must be committers already. There's no term limit for technical board |
208 |
| - members. |
209 |
| - |
210 |
| -#. Each team member can vote for zero to five people among the candidates. |
211 |
| - Candidates are ranked by the total number of votes they received. |
212 |
| - |
213 |
| - In case of a tie, the person who joined the core team earlier wins. |
214 |
| - |
215 |
| -Both the application and the voting period last between one and two weeks, at |
216 |
| -the outgoing board's discretion. |
| 208 | +`The technical board`_ is an elected group of five experienced contributors |
| 209 | +who demonstrate: |
| 210 | + |
| 211 | +- A history of technical contributions to Django or the Django ecosystem. This |
| 212 | + history must begin at least 18 months prior to the individual's candidacy for |
| 213 | + the technical board. |
| 214 | +- A history of participation in Django's development outside of contributions |
| 215 | + merged to the `Django Git repository`_. This may include, but is not |
| 216 | + restricted to: |
| 217 | + |
| 218 | + - Participation in discussions on the |django-developers| mailing list or |
| 219 | + the `Django forum`_. |
| 220 | + - Reviewing and offering feedback on pull requests in the Django source-code |
| 221 | + repository. |
| 222 | + - Assisting in triage and management of the Django bug tracker. |
| 223 | + |
| 224 | +- A history of recent engagement with the direction and development of Django. |
| 225 | + Such engagement must have occurred within a period of no more than two years |
| 226 | + prior to the individual's candidacy for the technical board. |
| 227 | + |
| 228 | +A new board is elected after each release cycle of Django. The election process |
| 229 | +works as follows: |
| 230 | + |
| 231 | +#. The technical board direct one of its members to notify the Secretary of the |
| 232 | + Django Software Foundation, in writing, of the triggering of the election, |
| 233 | + and the condition which triggered it. The Secretary post to the appropriate |
| 234 | + venue -- the |django-developers| mailing list and the `Django forum`_ to |
| 235 | + announce the election and its timeline. |
| 236 | +#. As soon as the election is announced, the `DSF Board`_ begin a period of |
| 237 | + voter registration. All `individual members of the DSF`_ are automatically |
| 238 | + registered and need not explicitly register. All other persons who believe |
| 239 | + themselves eligible to vote, but who have not yet registered to vote, may |
| 240 | + make an application to the DSF Board for voting privileges. The voter |
| 241 | + registration form and roll of voters is maintained by the DSF Board. The DSF |
| 242 | + Board may challenge and reject the registration of voters it believes are |
| 243 | + registering in bad faith or who it believes have falsified their |
| 244 | + qualifications or are otherwise unqualified. |
| 245 | +#. Registration of voters close one week after the announcement of the |
| 246 | + election. At that point, registration of candidates begin. Any qualified |
| 247 | + person may register as a candidate. The candidate registration form and |
| 248 | + roster of candidates are maintained by the DSF Board, and candidates must |
| 249 | + provide evidence of their qualifications as part of registration. The DSF |
| 250 | + Board may challenge and reject the registration of candidates it believes do |
| 251 | + not meet the qualifications of members of the Technical Board, or who it |
| 252 | + believes are registering in bad faith. |
| 253 | +#. Registration of candidates close one week after it has opened. One week |
| 254 | + after registration of candidates closes, the Secretary of the DSF publish |
| 255 | + the roster of candidates to the |django-developers| mailing list and the |
| 256 | + `Django forum`_, and the election begin. The DSF Board provide a voting form |
| 257 | + accessible to registered voters, and is the custodian of the votes. |
| 258 | +#. Voting is by secret ballot containing the roster of candidates, and any |
| 259 | + relevant materials regarding the candidates, in a randomized order. Each |
| 260 | + voter may vote for up to five candidates on the ballot. |
| 261 | +#. The election conclude one week after it begins. The DSF Board then tally the |
| 262 | + votes and produce a summary, including the total number of votes cast and |
| 263 | + the number received by each candidate. This summary is ratified by a |
| 264 | + majority vote of the DSF Board, then posted by the Secretary of the DSF to |
| 265 | + the |django-developers| mailing list and the Django Forum. The five |
| 266 | + candidates with the highest vote totals are immediately become the new |
| 267 | + technical board. |
| 268 | + |
| 269 | +A member of the technical board may be removed by: |
217 | 270 |
|
| 271 | +- Becoming disqualified due to actions taken by the Code of Conduct committee |
| 272 | + of the Django Software Foundation. |
| 273 | +- Determining that they did not possess the qualifications of a member of the |
| 274 | + technical board. This determination must be made jointly by the other members |
| 275 | + of the technical board, and the `DSF Board`_. A valid determination of |
| 276 | + ineligibility requires that all other members of the technical board and all |
| 277 | + members of the DSF Board vote who can vote on the issue (the affected person, |
| 278 | + if a DSF Board member, must not vote) vote "yes" on a motion that the person |
| 279 | + in question is ineligible. |
| 280 | + |
| 281 | +.. _`Django forum`: https://forum.djangoproject.com/ |
| 282 | +.. _`Django Git repository`: https://github.com/django/django/ |
| 283 | +.. _`DSF Board`: https://www.djangoproject.com/foundation/#board |
| 284 | +.. _`individual members of the DSF`: https://www.djangoproject.com/foundation/individual-members/ |
218 | 285 | .. _mergers: https://www.djangoproject.com/foundation/teams/#mergers-team
|
219 | 286 | .. _releasers: https://www.djangoproject.com/foundation/teams/#releasers-team
|
220 | 287 | .. _`security team`: https://www.djangoproject.com/foundation/teams/#security-team
|
221 | 288 | .. _`the technical board`: https://www.djangoproject.com/foundation/teams/#technical-board-team
|
222 | 289 | .. _`triage & review team`: https://www.djangoproject.com/foundation/teams/#triage-review-team
|
223 | 290 |
|
| 291 | +.. _organization-change: |
| 292 | + |
224 | 293 | Changing the organization
|
225 | 294 | =========================
|
226 | 295 |
|
227 |
| -Changes to this document require a four fifths majority of votes cast in a |
228 |
| -core team vote and no veto by the technical board. |
| 296 | +Changes to this document require the use of the `DEP process`_, with |
| 297 | +modifications described in `DEP 0010`_. |
| 298 | + |
| 299 | +.. _`DEP process`: https://github.com/django/deps/blob/main/final/0001-dep-process.rst |
| 300 | +.. _`DEP 0010`: https://github.com/django/deps/blob/main/accepted/0010-new-governance.rst#changing-this-governance-process |
0 commit comments