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é.
L’équipe principale de Django prend les décisions, nomme ses nouveaux membres et élit son comité technique. Même si en théorie elle détient le pouvoir de décision, elle vise à ne l’utiliser qu’en dernier recours si possible. Le consensus global devrait être la norme et le vote formel une exception.
Équipe principale¶
Rôle¶
L’équipe principale est le groupe de volontaires auquel est confié la gestion du projet Django. Ils prennent en charge plusieurs rôles nécessaires à la poursuite des buts du projet, particulièrement ceux qui nécessitent un niveau de confiance élevé. Ils prennent les décisions qui délimitent le futur du projet.
On attend des membres de l’équipe principale qu’ils agissent comme des modèles dans la communauté et comme des gardiens du projet, au nom de la communauté et des toutes celles et ceux qui dépendent de Django.
Ils peuvent intervenir au besoin dans les discussions en ligne ou dans les événements officiels de Django dans les rares cas où une situation nécessite une intervention particulière.
Ils possèdent l’autorité sur l’infrastructure du projet Django, y compris le site Web lui-même de Django, l’organisation et les dépôts de code Github de Django, le système de suivi des tickets Trac, les listes de diffusion, les canaux IRC, etc.
Prérogatives¶
Les membres de l’équipe principale peuvent participer à des votes formels, typiquement pour nommer des nouveaux membres de l’équipe et pour élire le comité technique.
Certaines contributions ne demandent pas de permission de commit. En fonction des raisons motivant l’appartenance d’un contributeur à l’équipe, celui-ci reçoit ou non la permission de commit pour le dépôt de code de Django.
Cependant, en cas de besoin, tout membre de l’équipe peut demander l’accès au commit en écrivant à la liste de diffusion de l’équipe principale. Cet accès sera accordé sauf si la personne retire sa demande ou si le comité technique oppose son véto à la proposition.
Les membres de l’équipe principal qui ont droit de commit sont désignés comme « commiteurs » ou « développeurs principaux » (core developers).
D’autres permissions, comme l’accès aux serveurs, sont accordées à ceux qui en ont besoin selon le même processus.
Composition¶
Les membres de l’équipe Django <https://www.djangoproject.com/foundation/teams/>`_ ont démontré :
- une bonne compréhension de la philosophie du projet Django ;
- une démonstration durable d’attitude constructive et serviable ;
- des contributions significatives aux buts du projet, quelle qu’en soit la forme ;
- la volonté de consacrer du temps à l’amélioration de Django ;
Avec la croissance du projet, les contributions possibles dépassent la simple écriture de code. Voici une liste partielle de domaines dans lesquelles les contributions sont prises en compte pour l’appartenance à l’équipe principale, sans importance d’ordre :
- Travail dans la gestion et l’extension de la communauté
- Disponibilité pour du soutien sur les listes de diffusions et sur les canaux IRC
- Tri des tickets
- Écriture de correctifs (code, documentation et tests)
- Relecture de correctifs (code, documentation et tests)
- Participation au décisions conceptuelles
- Fourniture d’expertise dans un domaine particulier (sécurité, i18n, etc.)
- Gestion de l’infrastructure de tests continus
- Gestion des serveurs (site Web, suivi des tickets, documentation, etc.)
- Maintenance de projets liés (site djangoproject.com, anciennes applications contribuées, etc.)
- Création de conceptions visuelles
Très peu de domaines sont réservés aux membres de l’équipe principale :
- Analyse des signalements de problèmes de sécurité
- Intégration des correctifs (code, documentation et tests)
- Mise en paquet des publications
L’appartenance à l’équipe principale est une reconnaissance d’efforts précieux et continus qui entrent dans le cadre de la philosophie et des buts du projet Django.
Elle requiert une approbation à la majorité de 80 % des votes des membres de l’équipe principale et aucun véto de la part du comité technique.
Les membres de l’équipe principale sont toujours à la recherche de contributeurs potentiels, leur apprenant comment le projet est géré et proposant leur nom pour un vote sur leur intégration à l’équipe quand ils sont prêts. Si vous souhaitez rejoindre l’équipe principale, vous pouvez contacter un de ses membres en privé ou demander des informations sur la liste de diffusion Django Core Mentorship.
Il n’y a pas de limite de temps à la participation à l’équipe principale. Cependant, afin de pouvoir donner une idée raisonnable du nombre de personnes qui maintiennent Django, les membres de l’équipe qui ont arrêté de contribuer sont encouragés à se déclarer eux-mêmes « ancien membre de l’équipe ». Ceux qui qui n’ont plus contribué de manière significative durant les deux dernières années seront poussés à se mettre eux-mêmes dans cette catégorie, et ils y seront mis s’ils ne répondent pas. Les anciens membres de l’équipe perdent leurs privilèges tels que le droit de vote et l’accès de commit.
Comité technique¶
Rôle¶
Le comité technique est un groupe de commiteurs expérimentés et actifs qui pilote les décisions techniques. Leur préoccupation principale est de maintenir la qualité et la stabilité du cadriciel Web Django.
Prérogatives¶
Le comité technique possède deux prérogatives :
- Prise de décision sur des éléments techniques majeurs lorsqu’aucun consensus n’est trouvé d’une autre manière. Cela se passe sur la liste de diffusion django-developers.
- Opposer un veto sur un droit de commit ou supprimer un droit de commit. Cela se passe sur la liste de diffusion
django-core
.
Dans les deux cas, le comité technique est un dernier recours. Dans ces domaines, il joue le même rôle que l’ancien Bienveillant dictateur à vie (BDFL).
Lorsque le comité souhaite exercer l’une de ses prérogatives, il doit organiser un vote privé à majorité simple sur la résolution. Le quorum est formé par tout le comité ; chaque membre doit voter ou s’abstenir explicitement. Ensuite, le comité communique le résultat et si possible les raisons sur la liste de diffusion adéquate. Il n’existe pas d’instance d’appel pour ces décisions.
En plus, selon son bon vouloir, le comité technique peut intervenir à titre consultatif sur des décisions non techniques.
Composition¶
Le comité technique est un groupe élu de cinq commiteurs. Ils sont censés être expérimentés, mais il n’existe pas d’exigence formelle au niveau de l’ancienneté.
Un nouveau comité est élu après chaque publication majeure de Django. Le procédé électoral est géré par un scrutateur nommé par le comité technique sortant. Le procédé électoral fonctionne comme suit :
Les candidats manifestent leur intérêt à participer au comité technique à l’équipe principale.
Ils doivent déjà être commiteurs. Il n’y a pas de limite de mandat pour les membres du comité technique.
Chaque membre de l’équipe peut voter pour 0 - 5 personnes parmi les candidats. Ceux-ci sont classés selon le nombre total de votes qu’ils ont reçus.
En cas d’égalité, la personne qui a rejoint l’équipe principale en premier gagne.
Les manifestations d’intérêt ainsi que la période de vote durent entre une et deux semaines, selon la volonté du comité sortant.
Changement d’organisation¶
Les modifications au présent document requièrent une approbation à la majorité de 80 % des votes des membres de l’équipe principale et aucun véto de la part du comité technique.