student life social platform

Merge branch 'governance' into 'main'

chore: add governance

See merge request inp-net/churros!219

Changed files
+103
+103
GOVERNANCE.md
··· 1 + # Gouvernance de Churros 2 + 3 + ## Termes 4 + 5 + ### Majorité qualifiée 6 + 7 + Vote dont plus des deux tiers du corps votant est favorable 8 + 9 + ### Fonctionnalité majeure 10 + 11 + Fonctionnalité dont l'implémentation demande un travail conséquent, c'est-à-dire au moins l'un des points suivants: 12 + 13 + - Un nouveau module dans l'API GraphQL 14 + - Une modification du layout principal (`/` ou `/(app)`) de l'interface 15 + - Un changement dans le Wiki du projet sur l'architecture du code 16 + - Un bump major de la version du paquet de la base de données 17 + 18 + Exemples: 19 + 20 + - Provider OAuth2 21 + - La Frappe 22 + - UI v2 23 + - Formulaires 24 + - Shops 25 + 26 + ## Rôles 27 + 28 + ### Core Team (Owner) 29 + 30 + Possède les droits suivants: 31 + 32 + - Droit de veto sur une décision de merger ou non une MR d'un _maintainer_. 33 + - Déployer une nouvelle version en prod. 34 + - Push sur la branche déployée (par exemple `main`) directement. 35 + - Changer les tags de priorité (sur une issue / MR) choisis par un·e _maintainer_ 36 + 37 + ### Maintainers 38 + 39 + Possède les droits suivants: 40 + 41 + - Décision sur le fait d'intégrer ou pas une MR à main 42 + - Changer les tags de priorité sur une issue / MR qu'iel n'a pas ouverte 43 + 44 + ### Developers 45 + 46 + N'importe qui ayant un commit qui existe sur main et dont le droit n'a pas été explicitement révoqué par un membre de la _Core Team_ 47 + 48 + ## Obtention de rôles 49 + 50 + ### Core Team 51 + 52 + #### Bureau de net7 53 + 54 + Le bureau en fonction de net7 doit nommer 3 personnes qui assurerons le rôle de Core Team. Il y a (minimum) 2 élections par année scolaire. Le choix est voté en réunion de bureau. 55 + Au moins un membre de la Core Team doit être un membre du bureau de net7 afin d'assurer la bonne communication entre la _Core Team_ et le bureau de net7. 56 + 57 + #### Destitution 58 + 59 + - Tout _maintainer_ peut démarrer une procédure de destitution de la _Core Team_ actuel. La décision est prise par vote à _majorité qualifiée_ des _maintainers_ actuels. 60 + - Le bureau de net7 peut decider a tout moment de réélire 61 + 62 + ### Maintainers 63 + 64 + #### Candidatures 65 + 66 + Tout _developer_ peut candidater au rôle de _maintainer_. L'accès à ce rôle lui est conféré par vote à _majorité qualifiée_ des _maintainers_ actuels. 67 + 68 + #### Expiration 69 + 70 + Tout _maintainer_ n'ayant pas effectué de commit depuis plus d'un an se voit retirer son rôle de _maintainer_. Iel peut ensuite candidater de nouveau. 71 + 72 + #### Responsabilités 73 + 74 + - Garder les dépenances à jour via une MR `chore(deps): upgrade dependencies` de temps en temps (une fois par mois) 75 + - Garder à jour la documentation, autant externe (de l'API) qu'interne (wiki du projet et CONTRIBUTING.md) 76 + 77 + ## Modifications de ce fichier 78 + 79 + Toute modification de ce fichier doit être proposée puis votée à _majorité qualifiée_ des _maintainers_ actuels (avec droit de veto par la _Core Team_). 80 + 81 + La proposition de modification doit être faite sous forme d'une merge request, afin que l'ensemble des changements apportés soit clairement compréhensible. 82 + 83 + ## Fermeture de MRs 84 + 85 + Fermer une MR revient à refuser l'implémentation actuelle dans son intégralité. Si l'on souhaite signaler que la feature n'est pas prioritaire et sera merge plus tard, il vaut mieux ajouter le tag `later` à la MR et informer lea _developer_ de la raison de la décision. 86 + 87 + ## Conversation “devteam” 88 + 89 + Tout _developer_ est invité à rejoindre une conversation servant à la communication du projet. Cette conversation doit aussi être le lieu des votes. Ceci permet à tout _developer_ de participer à l'argumentation d'un vote et à observer les résultats de votes. 90 + 91 + Les comptes rendus des réunions de bureau de net7 sont également partagés dans cette conversation, si ils mentionnent Churros. Le reste des informations peut être laissé tel quel ou censuré. En particulier, les resultats de vote d'élection de la _Core Team_ doivent figurer dans les comptes rendus. 92 + 93 + ## Travail en collaboration 94 + 95 + Effectuer des réunions hebdomadaire si l'EDT le permet, afin de garder les troupes motivées et que la base de code évolue. Ces temps permettent de parler des problèmes, des priorités, de regarder les MRs et surtout de coder à plusieurs. 96 + 97 + ## Décisions majeures d'ajout ou de suppression de fonctionnalités 98 + 99 + Avant de commencer une MR sur une fonctionnalité demandant un travail conséquent, ou la suppression d'une _fonctionnalité majeure_ existante, procéder à un vote des maintainers. 100 + 101 + ## Ne jamais oublier l'objectif initial de Churros 102 + 103 + Détruire Vibly.