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 :

  • 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 :

  • Tout membre en règle d’un moyen de discussion approprié, ou le comité de la fondation Django Software agissant sous impulsion du comité Fellowship de la DSF peut suggérer une personne pour candidater.

  • 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.

Les fusionneurs peuvent démissionner de leur rôle à tout moment, mais doivent s’efforcer de l’annoncer avec un peu d’avance afin de permettre la sélection d’un remplaçant. La terminaison du contrat d’un compagnon Django par la fondation Django Software suspend temporairement le rôle de fusionneur de cette personne jusqu’à ce que le comité de pilotage puisse voter sur leur possible 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.

Il n’est pas indispensable qu’un publicateur 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 rendre le rôle de publicateur supportable.

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 :

  • Tout membre en règle d’un moyen de discussion approprié, ou le comité de la fondation Django Software agissant sous impulsion du comité Fellowship de la DSF peut suggérer une personne pour candidater.

  • 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.

Les publicateurs peuvent démissionner de leur rôle à tout moment, mais doivent s’efforcer de l’annoncer avec un peu d’avance afin de permettre la sélection d’un remplaçant. La terminaison du contrat d’un compagnon Django par la fondation Django Software suspend temporairement le rôle de publicateur de cette personne jusqu’à ce que le comité de pilotage puisse voter sur leur possible 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 ;

  • select Mergers and Releasers, and

  • 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 :

  • Prendre des décisions contraignantes concernant toute question de changement technique dans Django.

  • Opposer un veto à l’intégration de toute portion de code particulière dans Django ou ordonner l’annulation de toute fusion ou commit particulier.

  • Annoncer des appels à proposition et des idées pour la future direction technique de Django.

  • Choisir ou retirer des fusionneurs et des publicateurs.

  • Participer au retrait de membres du comité de pilotage, dans des cas appropriés.

  • Appeler à des élections du comité de pilotage en dehors de celles qui sont appelées automatiquement, au moment où le comité de pilotage juge une élection appropriée.

  • Participer à la modification de la gouvernance de Django (voir Changement d’organisation).

  • Refuser de voter sur un sujet que le comité de pilotage juge prématuré pour une décision contraignante, ou pour lequel le comité de pilotage estime qu’il se situe en dehors de ses prérogatives.

  • Prendre en charge la gouvernance d’autres équipes techniques du projet libre Django et piloter ces équipes en conséquence.

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 to 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

  • Un historique d’engagement dans la direction et le futur de Django. Cela ne doit pas forcément être récent mais les candidats qui n’ont pas montré d’engagement dans les trois dernières années doivent démontrer une compréhension des modifications et de la direction de Django dans ces trois années.

Un nouveau comité est élu après chaque cycle de publications de Django. Le processus électif se passe de la manière suivante :

  1. Le comité de pilotage demande à l’un de ses membres de notifier par écrit au secrétaire de la fondation Django Software le déclenchement de l’élection et les conditions du déclenchement. Le secrétaire écrit ensuite dans les canaux appropriés, la liste de diffusion django-developers et le Forum Django, pour annoncer l’élection et son déroulement.

  2. Dès que l’élection est annoncée, le comité DSF entame une période d’inscription d’ayant droits de vote. Tous les membres individuels de la DSF sont automatiquement inscrits et ne doivent pas s’inscrire explicitement. Toutes les autres personnes estimant être autorisés à voter, mais ne s’étant pas encore inscrit pour voter, peuvent soumettre une demande au comité DSF pour des privilèges de vote. Le formulaire d’inscription au vote et la liste des votants sont maintenues par le comité DSF. Celui-ci peut questionner et rejeter l’inscription d’une personne pour laquelle il pense que l’inscription n’est pas de bonne foi, que la personne a falsifié ses qualifications ou qu’elle ne semble pas correspondre aux critères.

  3. L’inscription des votants se termine une semaine après l’annonce de l’élection. À partir de ce moment, l’inscription des candidats commence. Toute personne qualifiée peut s’inscrire comme candidate. Le formulaire d’inscription des candidats et la liste des candidats sont maintenues par le comité DSF. Les candidats doivent démontrer la validité de leurs qualifications dans le cadre du processus d’inscription. Le comité DSF peut questionner et rejeter l’inscription des candidats qu’il estime ne pas remplir les conditions d’appartenance au comité de pilotage, ou ceux qu’il estime ne pas s’être inscrits de bonne foi.

  4. L’inscription des candidats se termine une semaine après son ouverture. Une semaine après la fin de l’inscription des candidats, le secrétaire de la DSF publie la liste des candidats sur la liste de diffusion django-developers et le forum Django, et l’élection peut démarrer. Le comité DSF fournit un formulaire de vote accessible aux votants inscrits et se constitue gardien de la votation.

  5. Le vote a lieu par bulletin secret contenant la liste des candidats et tout contenu adéquat lié aux candidats dans un ordre aléatoire. Chaque votant peut choisir au maximum cinq candidats sur son bulletin de vote.

  6. L’élection se termine une semaine après son début. Le comité DSF récolte les votes et produit un résumé comprenant le nombre total de votes et le nombre reçu par chaque candidat. Ce résumé est ratifié par un vote à la majorité du comité DSF, puis envoyé par le secrétaire de la DSF à la liste de diffusion django-developers et sur le forum Django. Les cinq candidats ayant reçu le plus grand nombre de votes constituent immédiatement le nouveau comité de pilotage.

Un membre du comité de 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.

Back to Top