Organisation du projet Django¶
Principes¶
Le projet Django est géré par une équipe de volontaires poursuivant trois buts :
- l’avancement du développement du cadriciel web Django ;
- la promotion des logiciels de l’écosystème Django ;
- la conduite de la communauté Django en accord avec les valeurs décrites dans le code de conduite de Django.
Le projet Django n’est pas une entité légalement constituée. La fondation Django Software, une organisation à but non lucratif, gère les affaires financières et légales liées au projet Django. En dehors de ces domaines, la fondation laisse le projet Django gérer le développement du logiciel Django, son écosystème et sa communauté.
Fusionneurs (Mergers)¶
Rôle¶
Les Fusionneurs sont constitués par un petit groupe de gens qui fusionnent les requêtes de contribution dans le dépôt Git de Django.
Prérogatives¶
Les fusionneurs possèdent les prérogatives suivantes :
- Fusionner tout requête de contribution représentant un changement mineur (assez petit pour ne pas nécessiter l’utilisation du processus DEP). Un fusionneur ne doit pas fusionner une modification écrite principalement par lui-même, sauf dans le cas où la requête de contribution a été approuvée par :
- un autre fusionneur,
- un membre du comité de pilotage,
- un membre de l’équipe de tri et de relecture, ou
- un membre de l’équipe de sécurité.
- Initier une discussion sur un changement mineur à l’endroit approprié, et demander que d’autres fusionneurs s’abstiennent de fusionner le changement tant que la discussion est en cours.
- Demander un vote du comité de pilotage concernant toute modification mineure qui, dans l’opinion du fusionneur, n’a pas obtenu de consensus dans la discussion.
- Demander un vote du comité de pilotage concernant toute modification majeure (assez significative pour exiger l’utilisation du processus DEP) qui atteint l’un de ses jalons d’implémentation et qui est sur le point d’être fusionnée.
Composition¶
Le comité de pilotage sélectionne les fusionneurs, suffisamment pour maintenir leur nombre à un minimum de 3, afin de répartir la charge de travail et éviter de surcharger l’un des fusionneurs en place. Il n’y a pas de limite supérieure au nombre de fusionneurs.
Il n’est pas indispensable qu’un fusionneur soit aussi un compagnon Django, mais la fondation Django Software a la possibilité d’utiliser le financement des postes de compagnon dans le but de rentre le rôle de fusionneur supportable.
Le rôle du fusionneur est soumis aux restrictions suivantes :
- Une personne ne peut pas servir simultanément comme membre du comité de pilotage. Si un fusionneur est élu au comité de pilotage, il doit cesser d’être fusionneur immédiatement au moment de sa prise de fonction dans le comité de pilotage.
- Une personne peut servir à la fois dans les rôles de publicateur et de fusionneur.
Le processus de sélection, lorsqu’une place se libère ou que le comité de pilotage juge nécessaire de choisir des personnes supplémentaires pour un tel rôle, se déroule de la manière suivante :
- Any member in good standing of an appropriate discussion venue, or the Django Software Foundation board acting with the input of the DSF’s Fellowship committee, may suggest a person for consideration.
- Le comité de pilotage considère les suggestions proposées, puis chaque membre du comité de pilotage nomme formellement un candidat pour le rôle.
- Le comité de pilotage vote sur les candidats nominés.
Mergers may resign their role at any time, but should endeavor to provide some advance notice in order to allow the selection of a replacement. Termination of the contract of a Django Fellow by the Django Software Foundation temporarily suspends that person’s Merger role until such time as the steering council can vote on their nomination.
Sinon, un fusionneur peut voir son rôle retiré pour les raisons suivantes :
- Être démis de son rôle suite à son élection au comité de pilotage.
- Être démis de son rôle suite à des actions prises par le comité du code de conduite de la fondation Django Software.
- Un vote du comité de pilotage.
Publicateurs¶
Rôle¶
Les publicateurs sont un petit groupe de personnes ayant autorité d’envoyer des versions empaquetées de Django sur les sites Python Package Index et djangoproject.com.
Prérogatives¶
Les publicateurs construisent les versions de Django et les envoient sur les sites Python Package Index et djangoproject.com.
Composition¶
Le comité de pilotage sélectionne les publicateurs, suffisamment pour maintenir leur nombre à un minimum de 3, afin de répartir la charge de travail et éviter de surcharger l’un des publicateurs en place. Il n’y a pas de limite supérieure au nombre de publicateurs.
It’s not a requirement that a Releaser is also a Django Fellow, but the Django Software Foundation has the power to use funding of Fellow positions as a way to make the role of Releaser sustainable.
Une personne peut servir à la fois dans les rôles de publicateur et de fusionneur.
Le processus de sélection, lorsqu’une place se libère ou que le comité de pilotage juge nécessaire de choisir des personnes supplémentaires pour un tel rôle, se déroule de la manière suivante :
- Any member in good standing of an appropriate discussion venue, or the Django Software Foundation board acting with the input of the DSF’s Fellowship committee, may suggest a person for consideration.
- Le comité de pilotage considère les suggestions proposées, puis chaque membre du comité de pilotage nomme formellement un candidat pour le rôle.
- Le comité de pilotage vote sur les candidats nominés.
Releasers may resign their role at any time, but should endeavor to provide some advance notice in order to allow the selection of a replacement. Termination of the contract of a Django Fellow by the Django Software Foundation temporarily suspends that person’s Releaser role until such time as the steering council can vote on their nomination.
Sinon, un publicateur peut voir son rôle retiré pour les raisons suivantes :
- Être démis de son rôle suite à des actions prises par le comité du code de conduite de la fondation Django Software.
- Un vote du comité de pilotage.
Le comité de pilotage¶
Rôle¶
Le comité de pilotage est un groupe de contributeurs expérimentés qui :
- supervise le développement de Django et le processus de publication ;
- assiste dans la conduite du développement et des publications des fonctionnalités ;
- prend une part active dans certains rôles, et
- procède à des votes pour départager lorsque les autres processus de décision ont échoué.
Leur préoccupation principale est de maintenir la qualité et la stabilité du cadriciel web Django.
Prérogatives¶
Le comité de pilotage possède les prérogatives suivantes :
- Making a binding decision regarding any question of a technical change to Django.
- Vetoing the merging of any particular piece of code into Django or ordering the reversion of any particular merge or commit.
- Announcing calls for proposals and ideas for the future technical direction of Django.
- Setting and adjusting the schedule of releases of Django.
- Selecting and removing mergers and releasers.
- Participating in the removal of members of the steering council, when deemed appropriate.
- Calling elections of the steering council outside of those which are automatically triggered, at times when the steering council deems an election is appropriate.
- Participating in modifying Django’s governance (see Changement d’organisation).
- Declining to vote on a matter the steering council feels is unripe for a binding decision, or which the steering council feels is outside the scope of its powers.
- Taking charge of the governance of other technical teams within the Django open-source project, and governing those teams accordingly.
Composition¶
Le comité de pilotage est un groupe élu de cinq contributeurs expérimentés qui ont démontré :
- A history of substantive contributions to Django or the Django ecosystem. This history must begin at least 18 months prior to the individual’s candidacy for the Steering Council, and include substantive contributions in at least two of these bullet points: - Code contributions on Django projects or major third-party packages in the Django ecosystem - Reviewing pull requests and/or triaging Django project tickets - Documentation, tutorials or blog posts - Discussions about Django on the django-developers mailing list or the Django Forum - Running Django-related events or user groups
- A history of engagement with the direction and future of Django. This does not need to be recent, but candidates who have not engaged in the past three years must still demonstrate an understanding of Django’s changes and direction within those three years.
A new council is elected after each release cycle of Django. The election process works as follows:
- The steering council directs one of its members to notify the Secretary of the Django Software Foundation, in writing, of the triggering of the election, and the condition which triggered it. The Secretary post to the appropriate venue – the django-developers mailing list and the Django forum to announce the election and its timeline.
- As soon as the election is announced, the DSF Board begin a period of voter registration. All individual members of the DSF are automatically registered and need not explicitly register. All other persons who believe themselves eligible to vote, but who have not yet registered to vote, may make an application to the DSF Board for voting privileges. The voter registration form and roll of voters is maintained by the DSF Board. The DSF Board may challenge and reject the registration of voters it believes are registering in bad faith or who it believes have falsified their qualifications or are otherwise unqualified.
- Registration of voters close one week after the announcement of the election. At that point, registration of candidates begin. Any qualified person may register as a candidate. The candidate registration form and roster of candidates are maintained by the DSF Board, and candidates must provide evidence of their qualifications as part of registration. The DSF Board may challenge and reject the registration of candidates it believes do not meet the qualifications of members of the Steering Council, or who it believes are registering in bad faith.
- Registration of candidates close one week after it has opened. One week after registration of candidates closes, the Secretary of the DSF publish the roster of candidates to the django-developers mailing list and the Django forum, and the election begin. The DSF Board provide a voting form accessible to registered voters, and is the custodian of the votes.
- Voting is by secret ballot containing the roster of candidates, and any relevant materials regarding the candidates, in a randomized order. Each voter may vote for up to five candidates on the ballot.
- The election conclude one week after it begins. The DSF Board then tally the votes and produce a summary, including the total number of votes cast and the number received by each candidate. This summary is ratified by a majority vote of the DSF Board, then posted by the Secretary of the DSF to the django-developers mailing list and the Django Forum. The five candidates with the highest vote totals are immediately become the new steering council.
Un membre du comité pilotage peut être relevé de ses fonctions suite à :
- Être démis de son rôle suite à des actions prises par le comité du code de conduite de la fondation Django Software.
- Determining that they did not possess the qualifications of a member of the steering council. This determination must be made jointly by the other members of the steering council, and the DSF Board. A valid determination of ineligibility requires that all other members of the steering council and all members of the DSF Board vote who can vote on the issue (the affected person, if a DSF Board member, must not vote) vote « yes » on a motion that the person in question is ineligible.
Changement d’organisation¶
Les modifications de ce document exigent l’utilisation du processus DEP, avec les modifications décrites dans DEP 0010.