From cb4cb1dc4a8989339aa517fd4dd4fa5db821099c Mon Sep 17 00:00:00 2001 From: Moul Date: Wed, 2 Nov 2016 11:22:27 +0100 Subject: [PATCH 01/48] Initial commit: - exact copy from: https://forum.yunohost.org/t/compte-rendu-de-la-reunion-de-gouvernance-du-projet-yunohost/2026 --- yunohost_project_organization_fr.md | 225 ++++++++++++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 yunohost_project_organization_fr.md diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md new file mode 100644 index 00000000..d9e08819 --- /dev/null +++ b/yunohost_project_organization_fr.md @@ -0,0 +1,225 @@ +# Réunion YunoHost 22 et 23 octobre 2016 à Paris + +L'objectif de cette réunion était de définir le positionnement de YunoHost et d'organiser la prise de décision au sein de l'équipe de contributeurs de YunoHost. Ce document est le bilan du week end, il sera sans doute amélioré dans les jours et semaines à venir. + +Présents : @ljf, @Maniack_Crudelis, @Moul, @theodore + +## Définition de YunoHost + +### Objectifs +Selon le site web : « Le but de YunoHost est de rendre accessibles au plus grand nombre l’installation et l’administration d’un serveur, sans délaisser la qualité et la fiabilité du logiciel. » + +Nous proposons de limiter YunoHost au simple logiciel et de ne traiter aucun service auxiliaire estampillé sous le même nom (support payant, dns, hébergement). La fourniture de services devrait être laissée à d'autres structures gravitant autour du logiciel, qu'elles soient des entreprises ou des associations. Cela afin de concentrer l'activité de Yunohost sur la qualité du logiciel. +Ce postulat pose la question des services comme nohost.me, qui devra être débattue. + +### Valeurs + +Un logiciel libre et communautaire +Par rapport à d'autres initiatives, (InternetCube, Sandstorm, Freedombox, cozy, ArkOS, serveur NAS (synology), kodi) YunoHost se distingue en étant : + +- un logiciel sous licence libre +- entièrement communautaire +- reposant sur des applications libres existantes (roundcube, baikal, etc.) + + +Que chacun peut s'approprier +Historiquement, le projet est très proche des initiatives visant à la création d'un internet neutre et décentralisé. Cette proximité, notamment avec la FFDN, a amené une partie des contributeurs de YunoHost à créer la Brique Internet dont la mission est de faciliter l'auto-hébergement en fournissant une solution complète incluant service (via un VPN) et matériel. Cet aspect militant n'entrave pas des initiatives commerciales du logiciel pour lequel des entreprises pourraient proposer du support ou de l'hébergement. + + +## Organisation de YunoHost + +### Une structure ouverte, organisée par thèmes +L'objectif de l'organisation de YunoHost est de permettre au plus grand nombre de contribuer à l'amélioration du logiciel, que ce soit d'un point de vue technique (développement, packaging d'application) ou non (communication, assistance aux utilisateurs, documentation, etc.). Inspiré par différents projets passés en revue lors de l'événement (Kodi, Debian, Django, Fedora, Wikipédia, etc.) et des idées des contributeurs de YunoHost (Jérôme, Bram, opi, scith, ju), il a été décidé d'une organisation en groupes spécialisés, fédérés par un conseil de contributeurs clés. + +Schéma d’organisation du projet YunoHost : + + +#### Définition et constitution des groupes +La constitution de groupes part du constat que YunoHost compte beaucoup de sous-projets (treize au total), mais que l'on sait pas toujours qui en est en charge ou qui y est compétent. Il est donc proposé une simplification de l'organisation des sous-projet en groupes thématiques : + +- Groupe Core Dev + - Core YunoHost + - Moulinette + - Admin web + - SSOwat + - Dynette + - YNH-Dev + +- Groupe Apps + - Apps Officielles + - Apps Communautaires + - outils de développements d'app (package_checker, package linter) + +- Groupe Communication + - Documentation + - Communication (annonce évolutions du projet sur le forum, réseaux sociaux) + - Traduction + +- Groupe Infra/Adminsys + - Infrastructure + - Site web (wiki, forum, salon de discussion, redmine, mumble) + - Démo + - Services + - ip.yunohost.org + - yunoport + - nohost.me + - yunodash + - yunopaste + +- Groupe Support + +Les groupes sont ouverts à tous les contributeurs souhaitant participer au développement de YunoHost. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe, de voter et de proposer au vote une décision à la suite d'une étape d'échange et d'amélioration de la proposition. +Afin de faciliter sa gestion, chaque groupe nomme donc un coordinateur (et un remplaçant) dont le rôle est : + +- d'accueillir et fédérer les nouveaux contributeurs réguliers de son groupe +- de tenir informé le conseil des décisions prises au sein du groupe (cf. point suivant) + +Le choix d'un outil de communication est laissé à chaque groupe en fonction de sa pertinence (forum, chat, ML, etc.). + +#### Définition et constitution du Conseil + +YunoHost grandissant, il est important de maintenir une cohérence entre tous les groupes, néanmoins il est impossible d'imposer à chacun des membres des groupes de s'intéresser ou de s'impliquer sur tous les aspects du projet (pour des raisons de temps et de compétence). Pour pallier à cela, il est proposé de créer un meta-groupe, où chaque groupe sera représenté par au moins un de ses membres : le Conseil. +Le Conseil est indépendant des groupes et réuni les contributeurs souhaitant s'impliquer le plus dans le projet, son rôle est de : + +- prendre les décisions importantes sur YunoHost qui ne dépendent pas d'un seul groupe (par exemple changer le moteur du wiki) +- faire des points réguliers sur l'ensemble du projet pour assurer sa cohésion. (réunion Mumble) +- solliciter l'ensemble de la communauté des contributeurs (ou même des utilisateurs) quand une décision divise les groupes et/ou le conseil + +Le choix d'un outil de communication est laissé au conseil, ses décisions doivent néanmoins être consultable par l'ensemble de la communauté de contributeur. +Pour participer aux votes du conseil, il faut avoir contribué au projet et avoir obtenu un droit de vote (ou d'entrée) au sein du conseil. Ce droit est délivré par le conseil (éventuellement sur demande). Le conseil est libre à tout moment de modifier le processus de décision. +Être membre du conseil n'implique pas forcément d'avoir l'ensemble des accès (infra, dépôt etc...). + +### Un processus de prises de décision basé sur un consensus mou + +Les décisions à prendre peuvent être de deux ordres : +1) pour un groupe (par "exemple merger une PR" serait affecté au groupe Dev tandis que "poster un tweet" serait de la responsabilité du groupe Communication) +2) pour l'ensemble du projet (par exemple décider d'une release avec des nouvelles fonctionnalités) + +Si un consensus sur une décision à prendre n'est pas trouvée au sein d'un groupe, ce dernier devra se tourner vers le conseil pour en débattre. Si aucun consensus n'est trouvé, la proposition sera soumise au vote de tous les contributeurs. + +#### Le processus de prise de décision en détail + +##### 1) Initiation d'une décision à prendre + - peut-être initiée par n'importe qui suivant les mediums définis au sein de chacun des groupes (exemple : ouvrir une PR déclenche automatiquement ce processus) + - forcément publique à l'exception de situations bien définies (bug relatif à la sécurité critique ou vote sur les personnes) + - une date de clôture est automatiquement définie par type de proposition. La définition de la date remplie plusieurs fonctions : + - pouvoir laisser le temps à tout le monde de s'exprimer et ne pas prendre la décision trop vite + - maintenir un rythme car si le quota des réponses est rempli avant le temps imparti, il n'y a pas besoin d'attendre l'avis de tout les membres du groupe + - le quota est à évaluer en fonction des personnes inscrites au groupe (ou au conseil selon la situation) qui ont manifesté leurs souhaits d'être considéré comme votant régulier => exemple kload peut vouloir donner son avis ponctuellement, mais à priori il ne souhaitera pas être considéré comme membre votant actif du conseil + - pouvoir être repoussable sur simple demande d'une des personnes du groupe. Et seulement du groupe, pas tous les contrib. +##### 2) Ouverture de la discussion, plusieurs réponses possibles : +Tout le monde peut changer de positions à n'importe quel moment, mais il est de bon ton de laisser au groupe le temps de réagir si cela est nécessaire (pas passer de positif à négatif puis rejeter la proposition 3 min après par exemple.) + +- réponses dites "simple" + - "je suis d'accord" -> vaut pour un avis positif + - "ça me semble bon, mais je préfère m'en remettre aux autres" -> si jamais il n'y a que des avis comme cela (ou le suivant) et au moins un avis positif et que la date est passé, la proposition est acceptée + - "pas d'avis" / "je ne suis pas en position de donner un avis pertinent (exemple: je sais pas coder en X)" +- réponses délayantes/différées + - demande de précisions, dans ce cas la décision est suspendue +- refus + - il y a deux types de refus + - "cela doit être fait autrement" + - "on ne doit pas faire ça" + - tout refus doit être argumenté et justifié +##### 3) Suspension/Repoussement + - tant qu'il n'y a pas de réponse, la décision est suspendue, au moment de la réponse, la date de clôture est automatiquement repoussé (si besoin) (pour une durée, à définir, moins longue que la première fois) + - situation où il y a des avis positifs et négatifs ou situation où il y a un choix à faire entre plusieurs propositions +##### 4) Demande de modifications + - mais il se peut qu'il y ai discussion autour de ces modifications, si c'est le cas, cela devient une nouvelle décision à adjoindre à la liste des décisions à prendre et le processus s'y applique alors (et cela repousse la date) + - dans le cas contraire, un membre du groupe peut demander à ce que l'on fasse un vote qui portera sur la liste des possibilités qui font conflits + "ce vote est mal formulé, reformulons le" + - s'il n'y a pas assez de monde d'accord, la date est repoussée et un rappel doit être envoyé + - si le résultat est vraiment serré, le groupe est invité à rediscuter de la question si elle est importante, car cela pourrait être source de division et de tension à l'avenir +##### 5) Clôture + - si le groupe est unanime dans sa décision + - que des avis positifs + - que des refus + - sans avis (s'en remet aux autres) + - si le quota de réponse est atteint et que la date est atteinte + - s'il n'est pas possible d'avoir assez de monde (vacances, plus assez de membres du groupe pouvant avoir un avis) il est possible pour le groupe de demander la clôture quand même, il y a alors un nouveau décalage de la date et si cette nouvelle date est franchie, la proposition est clôturée + - si 1/3 arrondi au supérieur (exemple: 1/3 de 4 == "1.33.." -> 2) [à débattre pour ce %] des participant·e·s s'étant exprimé·e·s sur cette question sont favorables au vote, alors le vote est ouvert et prend fin lorsque tout le monde a répondu (ou si nécessaire, après une date de clôture) + - pourcentage d’avis positifs différents suivant l’importance de la prise de décisions : 50 %, 66 %, 80 %. + +##### 6) Application +Alors un membre du groupe peut annoncer la décision comme effective (et procéder aux actions nécessaires comme releaser, merger, annonce, autre ...). Il est important que s'il y a besoin de certaines actions, des personnes se soient engagées à les faire, une décision sans désigner est moyennement utile + +## Plan d’action + +Différentes idées ont été relevées au cours de la réunion par les personnes présentes. Les décisions du week-end devraient être publiée sur le forum (ou autre) pour être détaillées et discutées, en vue d'être acceptées. + +### Plan de migration +Il est proposé d'appliquer dés à présent ce processus décisionnel, toutefois vu que ce n'est qu'un brouillon, chaque personne est invitée à publier des propositions de modifications/améliorations/précisions et à les soumettre. Les décisions se prendront sur le forum étant donné que Maniack et Moul ont des problèmes techniques de réception ou d'écriture sur la liste de discussion mail. Rappel il est possible de s'abonner par mail au forum, par contre la fonctionnalité de réponse par mail semble ne pas fonctionner. + +Mise en place d’un [système de vote via Discourse](https://blog.discourse.org/2015/08/improved-polls-in-discourse) plus intéressant que par mailling list. + +Conseil : Bram, ju, ljf, Maniack C, Moul, opi, (scith, tostak, theodore) (à élire ? auto-promotion par méritocratie ? renouvellement au lieu de demander un retrait par d’autres membres (processus négatif)) + + - Representants des groupes d’intérêts (élus ou auto-proclamés) : + - Dev : opi, Bram, ju, ljf + - Apps : Maniack, tostaki, Moul, ljf + - Infra : opi, Bram, ju, Moul + - Com + - Com : Bram, Moul + - Doc : Moul, theodore + - Trad : Jean-Batiste + +### Décisions à venir pour les groupes +#### Conseil +- Faut-il élire les membres du conseil plutôt que de les coopter ? Risque de se transformer en "campagne politique"! +- Faut-il limiter l'ouverture des groupes d'intérêts par cooptation comme pour le conseil ? +- Proposition de changer Conseil en Collégiale +- Migrer le serveur d’infrastructure du projet sous YunoHost. (avec apps déjà packagées pad, gogs, mumble?) +- Let's Encrypt +- Nouveau système pour la documentation +- Amélioration de la documentation +- Migration du serveur XMPP +- Hébergement de notre forge git +- Revoir système de build : stable <— testing <— branches +- Gel de nohost.me et question de l'abandon des services + +#### Groupes Dev + - Comment gérer les pull request ? + - Chaque ticket fait l'objet d'une branche et d'un ticket, tu fais une pull/merge request, la communauté vérifie que ça fonctionne, une décision est prise d'intégrer. + + +#### Groupes Apps + - Pour les apps communautaires, les issues sont bien sur Github, les discussions sur le forum + +#### Support +- Rapport de bug à partir du forum +- Faire en sorte de nettoyer le forum pour éviter le bruit +- Proposition de supprimer le salon de support + +#### Autres +- Demande sur le forum avec notification des membres du conseil et des représentants des groupes d’intérêts concernés. +- Vote sur deux semaines par un post sur le forum +- Créer quatre canaux pour le Dev, les Apps, la Communication et l'Infrastructure +- La release devrait être validée par l'ensemble des 4 (ou 5) groupes d’intérêts +- Communication en français et en anglais +- Annuaire ou contact des groupes pour les nouveaux arrivants. Voir peut-être annuaire tout court pour savoir qui fait quoi. https://yunohost.org/#/contribs_fr à compléter. Et à mettre en avant. +- Proposition de laisser les membres YunoHost s'auto déterminer -> Comment gérer les accès ? + + +## Notes +Moyens de communication actuel : + +- IRL +- Réunion Mumble +- Forum +- Listes de diffusion : contrib et app +- Bugtracker Redmine +- Forge git pour les review de code sur les PR +- Salon de discussions XMPP + + +## F.A.Q ? +### Quelle différence avec d'autres projets (ArkOS, Cozy, Sandstorm, etc.) +- Cozy : gouverné par une entreprise qui développe toutes les applications pour une meilleure intégration entre-elles. Basé sur Debian. +- Sandstorm : distribution proche de la distribution YunoHost. +- ArkOS : en développement, basé sur Arch GNU/Linux. + +### Pourquoi continuer YunoHost ? +La communauté de YunoHost est grandissante et beaucoup de gens comptent dessus, son architecture technique basée sur des logiciels existants et sa gestion entièrement communautaire en font un projet unique. Enfin parce que c'est amusant et que l'aventure est belle :) + +## Références +- [Gouvernance du projet Fedora](https://fr.wikipedia.org/wiki/Fedora_(GNU/Linux)#Gouvernance_du_projet_Fedora) +- [Conditions de promotion d’un article Wikipédia au label “Bon article”](https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Bons_contenus/R%C3%A8gles#R.C3.A8gles) From 052f1870939073741901917816e57994a189e8d8 Mon Sep 17 00:00:00 2001 From: Moul Date: Wed, 2 Nov 2016 11:33:56 +0100 Subject: [PATCH 02/48] [enh] remove meeting details, add image in repo. --- organization_schema.jpg | Bin 0 -> 40237 bytes yunohost_project_organization_fr.md | 10 ++++------ 2 files changed, 4 insertions(+), 6 deletions(-) create mode 100644 organization_schema.jpg diff --git a/organization_schema.jpg b/organization_schema.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a90d0b19bbc0ee99189a6a515ebd0d101ad1c4ac GIT binary patch literal 40237 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

!$T9NB|K{mp%LHFvJJuXF#lcb)4nsd3GhXK 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 literal 0 HcmV?d00001 diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index d9e08819..16333bc2 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -1,8 +1,4 @@ -# Réunion YunoHost 22 et 23 octobre 2016 à Paris - -L'objectif de cette réunion était de définir le positionnement de YunoHost et d'organiser la prise de décision au sein de l'équipe de contributeurs de YunoHost. Ce document est le bilan du week end, il sera sans doute amélioré dans les jours et semaines à venir. - -Présents : @ljf, @Maniack_Crudelis, @Moul, @theodore +# Organisation du projet YunoHost ## Définition de YunoHost @@ -31,7 +27,9 @@ Historiquement, le projet est très proche des initiatives visant à la créatio ### Une structure ouverte, organisée par thèmes L'objectif de l'organisation de YunoHost est de permettre au plus grand nombre de contribuer à l'amélioration du logiciel, que ce soit d'un point de vue technique (développement, packaging d'application) ou non (communication, assistance aux utilisateurs, documentation, etc.). Inspiré par différents projets passés en revue lors de l'événement (Kodi, Debian, Django, Fedora, Wikipédia, etc.) et des idées des contributeurs de YunoHost (Jérôme, Bram, opi, scith, ju), il a été décidé d'une organisation en groupes spécialisés, fédérés par un conseil de contributeurs clés. -Schéma d’organisation du projet YunoHost : +Schéma d’organisation du projet YunoHost : + +![Schéma d’organisation du projet YunoHost](organization_schema.jpg?raw=true "Schéma d’organisation du projet YunoHost") #### Définition et constitution des groupes From 6a52f98fc364e8a089d9ff585881aa8a83f62bc2 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 2 Nov 2016 13:04:08 +0100 Subject: [PATCH 03/48] =?UTF-8?q?Acc=C3=A8s=20aux=20groupes=20par=20coopta?= =?UTF-8?q?tion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La question de l'accès libre ou pas aux groupes. Afin de limiter (si nécessaire) la taille des groupes et afin de s'assurer de n'intégrer que des contributeurs qui partagent les valeurs de Yunohost. Il me semble préférable que l'accès aux groupes se fasse par cooptation, avec éventuellement le même process de décision que d'habitude. --- yunohost_project_organization_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 16333bc2..c8b5b8fc 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -66,7 +66,7 @@ La constitution de groupes part du constat que YunoHost compte beaucoup de sous- - Groupe Support -Les groupes sont ouverts à tous les contributeurs souhaitant participer au développement de YunoHost. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe, de voter et de proposer au vote une décision à la suite d'une étape d'échange et d'amélioration de la proposition. +Les groupes sont accessible à tous les contributeurs souhaitant participer au développement de YunoHost, sur simple demande et après accord du groupe. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe, de voter et de proposer au vote une décision à la suite d'une étape d'échange et d'amélioration de la proposition. Afin de faciliter sa gestion, chaque groupe nomme donc un coordinateur (et un remplaçant) dont le rôle est : - d'accueillir et fédérer les nouveaux contributeurs réguliers de son groupe From 00667ad7bfbc0e3ee27e0e1ca4316d5e7c331a4c Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 2 Nov 2016 13:07:41 +0100 Subject: [PATCH 04/48] Vote uniquement par les membres du groupe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vote ouvert à tous ou limité seulement au membre du groupe. J'ai avis mitigé sur la question. Mais c'est une question qui a été soulevée et qui nécessite donc qu'on lui donne une réponse. --- yunohost_project_organization_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 16333bc2..138e12cf 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -66,7 +66,7 @@ La constitution de groupes part du constat que YunoHost compte beaucoup de sous- - Groupe Support -Les groupes sont ouverts à tous les contributeurs souhaitant participer au développement de YunoHost. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe, de voter et de proposer au vote une décision à la suite d'une étape d'échange et d'amélioration de la proposition. +Les groupes sont ouverts à tous les contributeurs souhaitant participer au développement de YunoHost. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe et de proposer au vote une décision à la suite d'une étape d'échange et d'amélioration de la proposition. Afin de faciliter sa gestion, chaque groupe nomme donc un coordinateur (et un remplaçant) dont le rôle est : - d'accueillir et fédérer les nouveaux contributeurs réguliers de son groupe From c2c18816df4fcec967c89ee832a64a9a385ff93b Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 2 Nov 2016 13:20:22 +0100 Subject: [PATCH 05/48] =?UTF-8?q?Clot=C3=BBre=20des=20votes=20anticip?= =?UTF-8?q?=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit En conflit avec la ligne 105. Pour maintenir le rythme, les votes peuvent être clos avant la date limite si les réponses nécessaires sont déjà données. Il faudrait toutefois une durée minimale pour éviter des décisions prises trop vite ou un effet assemblée nationale en plein été. --- yunohost_project_organization_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 16333bc2..c5738b3e 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -132,7 +132,7 @@ Tout le monde peut changer de positions à n'importe quel moment, mais il est de - que des avis positifs - que des refus - sans avis (s'en remet aux autres) - - si le quota de réponse est atteint et que la date est atteinte + - si le quota de réponse est atteint avant que la date ne soit atteinte - s'il n'est pas possible d'avoir assez de monde (vacances, plus assez de membres du groupe pouvant avoir un avis) il est possible pour le groupe de demander la clôture quand même, il y a alors un nouveau décalage de la date et si cette nouvelle date est franchie, la proposition est clôturée - si 1/3 arrondi au supérieur (exemple: 1/3 de 4 == "1.33.." -> 2) [à débattre pour ce %] des participant·e·s s'étant exprimé·e·s sur cette question sont favorables au vote, alors le vote est ouvert et prend fin lorsque tout le monde a répondu (ou si nécessaire, après une date de clôture) - pourcentage d’avis positifs différents suivant l’importance de la prise de décisions : 50 %, 66 %, 80 %. From 978bd90ffe459557ef6fdf8023efd2fd50f5fb41 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 2 Nov 2016 13:24:59 +0100 Subject: [PATCH 06/48] Ajout groupe distribution MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Comme soulevé par heyyounow sur le forum https://forum.yunohost.org/t/compte-rendu-de-la-reunion-de-gouvernance-du-projet-yunohost/2026/7 On a pas d'image 2.4, si certains contributeurs sont à l'aise avec ça, c'est une bonne idée. --- yunohost_project_organization_fr.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 16333bc2..5bc26f21 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -66,6 +66,10 @@ La constitution de groupes part du constat que YunoHost compte beaucoup de sous- - Groupe Support +- Groupe distribution + - Création et maintenance des images d'installation sur diverses architectures + - Distribution des images + Les groupes sont ouverts à tous les contributeurs souhaitant participer au développement de YunoHost. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe, de voter et de proposer au vote une décision à la suite d'une étape d'échange et d'amélioration de la proposition. Afin de faciliter sa gestion, chaque groupe nomme donc un coordinateur (et un remplaçant) dont le rôle est : From 418b60eedf5fc2d208d929d00613620e4840b0b3 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 2 Nov 2016 13:37:28 +0100 Subject: [PATCH 07/48] Update yunohost_project_organization_fr.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La proposition qui avait été faite sur le forum. A laquelle j'ai ajouté une durée minimale en cas d'anticipation de la clôture. Les avis nécessaires devrait, pour moi, être liés à des membres du groupe concerné ou du conseil uniquement. --- yunohost_project_organization_fr.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 16333bc2..cebae025 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -137,6 +137,24 @@ Tout le monde peut changer de positions à n'importe quel moment, mais il est de - si 1/3 arrondi au supérieur (exemple: 1/3 de 4 == "1.33.." -> 2) [à débattre pour ce %] des participant·e·s s'étant exprimé·e·s sur cette question sont favorables au vote, alors le vote est ouvert et prend fin lorsque tout le monde a répondu (ou si nécessaire, après une date de clôture) - pourcentage d’avis positifs différents suivant l’importance de la prise de décisions : 50 %, 66 %, 80 %. +###### Vote Mineur: +Durée initiale: 1 semaine. +Durée minimale: 3 jours. +Décalage, si nécessaire: 3 jours. +Avis nécessaires: 3 dont au moins 2 membres du conseil faisant partie du groupe (celui qui a initié le vote peut voter). + +###### Vote Standard/Moyen: +Durée initiale: 2 semaines. +Durée minimale: 1 semaine. +Décalage, si nécessaire: 1 semaine. +Avis nécessaires: 4 dont au moins 2 membres du conseil faisant partie du groupe (celui qui a initié le vote peut voter). + +###### Vote Majeur : +Durée initiale: 1 mois. +Durée minimale: 2 semaines. +Décalage, si nécessaire: 2 semaines. +Avis nécessaires: 5 et au moins la moitié des membres du conseil actifs faisant partie du groupe (celui qui a initié le vote peut voter). + ##### 6) Application Alors un membre du groupe peut annoncer la décision comme effective (et procéder aux actions nécessaires comme releaser, merger, annonce, autre ...). Il est important que s'il y a besoin de certaines actions, des personnes se soient engagées à les faire, une décision sans désigner est moyennement utile From be123685b576c767a46ebe361d2ae4a7d5388f33 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 2 Nov 2016 13:38:39 +0100 Subject: [PATCH 08/48] Fix typo --- yunohost_project_organization_fr.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 16333bc2..ce1aa494 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -105,6 +105,7 @@ Si un consensus sur une décision à prendre n'est pas trouvée au sein d'un gro - maintenir un rythme car si le quota des réponses est rempli avant le temps imparti, il n'y a pas besoin d'attendre l'avis de tout les membres du groupe - le quota est à évaluer en fonction des personnes inscrites au groupe (ou au conseil selon la situation) qui ont manifesté leurs souhaits d'être considéré comme votant régulier => exemple kload peut vouloir donner son avis ponctuellement, mais à priori il ne souhaitera pas être considéré comme membre votant actif du conseil - pouvoir être repoussable sur simple demande d'une des personnes du groupe. Et seulement du groupe, pas tous les contrib. + ##### 2) Ouverture de la discussion, plusieurs réponses possibles : Tout le monde peut changer de positions à n'importe quel moment, mais il est de bon ton de laisser au groupe le temps de réagir si cela est nécessaire (pas passer de positif à négatif puis rejeter la proposition 3 min après par exemple.) @@ -119,14 +120,17 @@ Tout le monde peut changer de positions à n'importe quel moment, mais il est de - "cela doit être fait autrement" - "on ne doit pas faire ça" - tout refus doit être argumenté et justifié + ##### 3) Suspension/Repoussement - tant qu'il n'y a pas de réponse, la décision est suspendue, au moment de la réponse, la date de clôture est automatiquement repoussé (si besoin) (pour une durée, à définir, moins longue que la première fois) - situation où il y a des avis positifs et négatifs ou situation où il y a un choix à faire entre plusieurs propositions + ##### 4) Demande de modifications - mais il se peut qu'il y ai discussion autour de ces modifications, si c'est le cas, cela devient une nouvelle décision à adjoindre à la liste des décisions à prendre et le processus s'y applique alors (et cela repousse la date) - dans le cas contraire, un membre du groupe peut demander à ce que l'on fasse un vote qui portera sur la liste des possibilités qui font conflits + "ce vote est mal formulé, reformulons le" - s'il n'y a pas assez de monde d'accord, la date est repoussée et un rappel doit être envoyé - si le résultat est vraiment serré, le groupe est invité à rediscuter de la question si elle est importante, car cela pourrait être source de division et de tension à l'avenir + ##### 5) Clôture - si le groupe est unanime dans sa décision - que des avis positifs From 046db17af0dcb4331fdbc27e4160c693e4c15aa3 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Thu, 3 Nov 2016 12:08:01 +0100 Subject: [PATCH 09/48] =?UTF-8?q?Fix=209.=20Cl=C3=B4ture=20de=20d=C3=A9cis?= =?UTF-8?q?ion=20avec=20moins=20de=20membres?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Voir l'issue 9 https://github.com/YunoHost/yunohost-project-organization/issues/9 C'est avant tout un éclaircissement du texte, mais ce point peut porter à débat. --- yunohost_project_organization_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index ce1aa494..3fffb483 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -137,7 +137,7 @@ Tout le monde peut changer de positions à n'importe quel moment, mais il est de - que des refus - sans avis (s'en remet aux autres) - si le quota de réponse est atteint et que la date est atteinte - - s'il n'est pas possible d'avoir assez de monde (vacances, plus assez de membres du groupe pouvant avoir un avis) il est possible pour le groupe de demander la clôture quand même, il y a alors un nouveau décalage de la date et si cette nouvelle date est franchie, la proposition est clôturée + - s'il n'est pas possible d'avoir assez de monde (vacances, plus assez de membres du groupe pouvant avoir un avis) il est possible pour le groupe de demander la clôture même si le quota d'avis n'est pas atteint, il y a alors un nouveau décalage de la date et si cette nouvelle date est franchie, la proposition est clôturée selon les avis donnés. - si 1/3 arrondi au supérieur (exemple: 1/3 de 4 == "1.33.." -> 2) [à débattre pour ce %] des participant·e·s s'étant exprimé·e·s sur cette question sont favorables au vote, alors le vote est ouvert et prend fin lorsque tout le monde a répondu (ou si nécessaire, après une date de clôture) - pourcentage d’avis positifs différents suivant l’importance de la prise de décisions : 50 %, 66 %, 80 %. From 89d7793d4bc9fa7412ebf87467d20feb499e4c09 Mon Sep 17 00:00:00 2001 From: Moul Date: Thu, 3 Nov 2016 17:24:39 +0100 Subject: [PATCH 10/48] [enh] add document introduction. --- yunohost_project_organization_fr.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index ce1aa494..045b463c 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -1,5 +1,11 @@ # Organisation du projet YunoHost +## Objectif du document +Ce document a pour objectif d’empêcher une prise de pouvoir trop centralisée au sein du projet YunoHost. +Le projet étant communautaire, les prises de décisions ne doivent pas être prises hâtivement par un seul contributeur. +Pour palier à ce problème, les décisions doivent êtres collectives et réfléchies sur un temps minimum. +Un conseil chapeaute le projet et des groupes d’intérêts permettent de représenter des sous projets du projet YunoHost. + ## Définition de YunoHost ### Objectifs From da27e3daedf36485de089066c5fc72234936fdb7 Mon Sep 17 00:00:00 2001 From: Moul Date: Fri, 4 Nov 2016 09:00:23 +0100 Subject: [PATCH 11/48] [enh] introduction: review signification, adjustments. --- yunohost_project_organization_fr.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 045b463c..5c9b8e6e 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -1,10 +1,10 @@ # Organisation du projet YunoHost ## Objectif du document -Ce document a pour objectif d’empêcher une prise de pouvoir trop centralisée au sein du projet YunoHost. -Le projet étant communautaire, les prises de décisions ne doivent pas être prises hâtivement par un seul contributeur. -Pour palier à ce problème, les décisions doivent êtres collectives et réfléchies sur un temps minimum. -Un conseil chapeaute le projet et des groupes d’intérêts permettent de représenter des sous projets du projet YunoHost. +Ce document a pour objectif de permettre aux contributeurs de se sentir légitimes d’effectuer une contribution dans le projet YunoHost avec un avis collectif. +Le projet étant communautaire, les prises de décisions prises hâtivement par un groupe restreins de contributeurs peuvent entraîner des frustrations postérieures. +Pour palier à ce problème, la solution proposée ici est de faire en sorte que les décisions soient prises collectivement et qu’elles soient suffisamment réfléchies. +Un conseil oriente l’évolution du projet YunoHost, et des groupes d’intérêts permettent de contribuer plus efficacement en fonction des domaines de prédilection de chacun. ## Définition de YunoHost From ef95ad96bae8c128322c59c2d470eb6dd7d33ad3 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Fri, 4 Nov 2016 21:31:01 +0100 Subject: [PATCH 12/48] =?UTF-8?q?Clot=C3=BBre=20des=20d=C3=A9cisions=20ant?= =?UTF-8?q?icip=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Corrections pour faire suite au débat --- yunohost_project_organization_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index c5738b3e..3093802f 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -132,7 +132,7 @@ Tout le monde peut changer de positions à n'importe quel moment, mais il est de - que des avis positifs - que des refus - sans avis (s'en remet aux autres) - - si le quota de réponse est atteint avant que la date ne soit atteinte + - Pour une décison mineure ou moyenne/standard, si le quota de réponse est atteint à la durée minimale et que le consensus est obtenu. - s'il n'est pas possible d'avoir assez de monde (vacances, plus assez de membres du groupe pouvant avoir un avis) il est possible pour le groupe de demander la clôture quand même, il y a alors un nouveau décalage de la date et si cette nouvelle date est franchie, la proposition est clôturée - si 1/3 arrondi au supérieur (exemple: 1/3 de 4 == "1.33.." -> 2) [à débattre pour ce %] des participant·e·s s'étant exprimé·e·s sur cette question sont favorables au vote, alors le vote est ouvert et prend fin lorsque tout le monde a répondu (ou si nécessaire, après une date de clôture) - pourcentage d’avis positifs différents suivant l’importance de la prise de décisions : 50 %, 66 %, 80 %. From 9da1ceb513397b6838c3f8fe95cdeb1efb3528d0 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Fri, 4 Nov 2016 21:35:29 +0100 Subject: [PATCH 13/48] Ajout des paquets Debian --- yunohost_project_organization_fr.md | 1 + 1 file changed, 1 insertion(+) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 5bc26f21..9bc082e5 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -69,6 +69,7 @@ La constitution de groupes part du constat que YunoHost compte beaucoup de sous- - Groupe distribution - Création et maintenance des images d'installation sur diverses architectures - Distribution des images + - Gestion de la distribution des paquets Debian. Les groupes sont ouverts à tous les contributeurs souhaitant participer au développement de YunoHost. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe, de voter et de proposer au vote une décision à la suite d'une étape d'échange et d'amélioration de la proposition. Afin de faciliter sa gestion, chaque groupe nomme donc un coordinateur (et un remplaçant) dont le rôle est : From 43469cbb78f4e0acad5032768ce7e2ec6de722df Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Fri, 4 Nov 2016 21:58:34 +0100 Subject: [PATCH 14/48] =?UTF-8?q?Mise=20=C3=A0=20jour=20des=20types=20de?= =?UTF-8?q?=20d=C3=A9cision?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yunohost_project_organization_fr.md | 35 ++++++++++++++++------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index cebae025..1d3d7cfc 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -137,23 +137,28 @@ Tout le monde peut changer de positions à n'importe quel moment, mais il est de - si 1/3 arrondi au supérieur (exemple: 1/3 de 4 == "1.33.." -> 2) [à débattre pour ce %] des participant·e·s s'étant exprimé·e·s sur cette question sont favorables au vote, alors le vote est ouvert et prend fin lorsque tout le monde a répondu (ou si nécessaire, après une date de clôture) - pourcentage d’avis positifs différents suivant l’importance de la prise de décisions : 50 %, 66 %, 80 %. -###### Vote Mineur: -Durée initiale: 1 semaine. -Durée minimale: 3 jours. -Décalage, si nécessaire: 3 jours. -Avis nécessaires: 3 dont au moins 2 membres du conseil faisant partie du groupe (celui qui a initié le vote peut voter). +###### Micro décision: +- Décision prise et appliquée par un seul membre sans délai. Ce type de décision doit impérativement pouvoir être réversible, et peut être remise en question par n'importe quel membre du groupe. -###### Vote Standard/Moyen: -Durée initiale: 2 semaines. -Durée minimale: 1 semaine. -Décalage, si nécessaire: 1 semaine. -Avis nécessaires: 4 dont au moins 2 membres du conseil faisant partie du groupe (celui qui a initié le vote peut voter). +###### Décision Mineure: +- Durée initiale: 1 semaine. +- Durée minimale: 3 jours. +- Décalage, si nécessaire: 3 jours. +- Avis nécessaires: 3 dont au moins 2 membres du groupe (celui qui a initié le vote peut voter). 4, dont 3 membres du groupe pour anticiper. +- Validation par vote (le cas échéant): 66% de votes positifs. -###### Vote Majeur : -Durée initiale: 1 mois. -Durée minimale: 2 semaines. -Décalage, si nécessaire: 2 semaines. -Avis nécessaires: 5 et au moins la moitié des membres du conseil actifs faisant partie du groupe (celui qui a initié le vote peut voter). +###### Décision Standard/Moyenne: +- Durée initiale: 2 semaines. +- Durée minimale: 1 semaine. +- Décalage, si nécessaire: 1 semaine. +- Avis nécessaires: 50% des membres du groupe (celui qui a initié le vote peut voter). 66% des membres du groupe pour anticiper. +- Validation par vote (le cas échéant): 75% de votes positifs. + +###### Décision Majeure : +- Durée initiale: 1 mois. +- Décalage, si nécessaire: 2 semaines. +- Avis nécessaires: 75% des membres du groupe (celui qui a initié le vote peut voter). +- Validation par vote (le cas échéant): 90% de votes positifs. ##### 6) Application Alors un membre du groupe peut annoncer la décision comme effective (et procéder aux actions nécessaires comme releaser, merger, annonce, autre ...). Il est important que s'il y a besoin de certaines actions, des personnes se soient engagées à les faire, une décision sans désigner est moyennement utile From 8c13bdb2dba30ec800cc3f53878d2380fae1db87 Mon Sep 17 00:00:00 2001 From: Moul Date: Tue, 8 Nov 2016 11:01:55 +0100 Subject: [PATCH 15/48] [enh] add readme as a symbolic link toward the document. --- README.md | 1 + 1 file changed, 1 insertion(+) create mode 120000 README.md diff --git a/README.md b/README.md new file mode 120000 index 00000000..aa9ff0cb --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +yunohost_project_organization_fr.md \ No newline at end of file From e30d51c0bfabf4d0e0770a02cdb762a90abeabfe Mon Sep 17 00:00:00 2001 From: Moul Date: Tue, 8 Nov 2016 11:09:36 +0100 Subject: [PATCH 16/48] [mod] sort groups by kinds. Fix md syntax --- yunohost_project_organization_fr.md | 32 ++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 0ac23df5..6ef53145 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -49,33 +49,33 @@ La constitution de groupes part du constat que YunoHost compte beaucoup de sous- - Dynette - YNH-Dev -- Groupe Apps - - Apps Officielles - - Apps Communautaires - - outils de développements d'app (package_checker, package linter) - -- Groupe Communication - - Documentation - - Communication (annonce évolutions du projet sur le forum, réseaux sociaux) - - Traduction +- Groupe distribution + - Création et maintenance des images d'installation sur diverses architectures + - Distribution des images + - Gestion de la distribution des paquets Debian. - Groupe Infra/Adminsys - Infrastructure - Site web (wiki, forum, salon de discussion, redmine, mumble) - Démo - Services - - ip.yunohost.org - - yunoport + - ip.yunohost.org + - yunoport - nohost.me - yunodash - yunopaste -- Groupe Support +- Groupe Apps + - Apps Officielles + - Apps Communautaires + - outils de développements d'app (package_checker, package linter) -- Groupe distribution - - Création et maintenance des images d'installation sur diverses architectures - - Distribution des images - - Gestion de la distribution des paquets Debian. +- Groupe Communication + - Documentation + - Communication (annonce évolutions du projet sur le forum, réseaux sociaux) + - Traduction + +- Groupe Support Les groupes sont ouverts à tous les contributeurs souhaitant participer au développement de YunoHost. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe, de voter et de proposer au vote une décision à la suite d'une étape d'échange et d'amélioration de la proposition. Afin de faciliter sa gestion, chaque groupe nomme donc un coordinateur (et un remplaçant) dont le rôle est : From c56a20beff798e56f8394710908b62dd776f96de Mon Sep 17 00:00:00 2001 From: Moul Date: Tue, 8 Nov 2016 11:13:44 +0100 Subject: [PATCH 17/48] [mod] fix markdown syntax. --- yunohost_project_organization_fr.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 6ef53145..781550c1 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -42,12 +42,12 @@ Schéma d’organisation du projet YunoHost : La constitution de groupes part du constat que YunoHost compte beaucoup de sous-projets (treize au total), mais que l'on sait pas toujours qui en est en charge ou qui y est compétent. Il est donc proposé une simplification de l'organisation des sous-projet en groupes thématiques : - Groupe Core Dev - - Core YunoHost - - Moulinette - - Admin web - - SSOwat - - Dynette - - YNH-Dev + - Core YunoHost + - Moulinette + - Admin web + - SSOwat + - Dynette + - YNH-Dev - Groupe distribution - Création et maintenance des images d'installation sur diverses architectures From 351fddcbe44525798fccca827aac28e3993e9c6c Mon Sep 17 00:00:00 2001 From: Moul Date: Tue, 8 Nov 2016 11:15:22 +0100 Subject: [PATCH 18/48] [mod] #8: move 'Entraide' group inside 'Communication' group --- yunohost_project_organization_fr.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 781550c1..07d92a87 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -74,8 +74,7 @@ La constitution de groupes part du constat que YunoHost compte beaucoup de sous- - Documentation - Communication (annonce évolutions du projet sur le forum, réseaux sociaux) - Traduction - -- Groupe Support + - Entraide (support) Les groupes sont ouverts à tous les contributeurs souhaitant participer au développement de YunoHost. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe, de voter et de proposer au vote une décision à la suite d'une étape d'échange et d'amélioration de la proposition. Afin de faciliter sa gestion, chaque groupe nomme donc un coordinateur (et un remplaçant) dont le rôle est : From 80fc862d368158d194aa9c8dac1a47f014673aff Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Thu, 10 Nov 2016 01:07:41 +0100 Subject: [PATCH 19/48] =?UTF-8?q?Prise=20de=20d=C3=A9cision=20au=20lieu=20?= =?UTF-8?q?de=20vote?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yunohost_project_organization_fr.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 1d3d7cfc..db223b5f 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -144,20 +144,20 @@ Tout le monde peut changer de positions à n'importe quel moment, mais il est de - Durée initiale: 1 semaine. - Durée minimale: 3 jours. - Décalage, si nécessaire: 3 jours. -- Avis nécessaires: 3 dont au moins 2 membres du groupe (celui qui a initié le vote peut voter). 4, dont 3 membres du groupe pour anticiper. +- Avis nécessaires: 3 dont au moins 2 membres du groupe (celui qui a initié cette prise de décision peux donner son avis). 4, dont 3 membres du groupe pour anticiper. - Validation par vote (le cas échéant): 66% de votes positifs. ###### Décision Standard/Moyenne: - Durée initiale: 2 semaines. - Durée minimale: 1 semaine. - Décalage, si nécessaire: 1 semaine. -- Avis nécessaires: 50% des membres du groupe (celui qui a initié le vote peut voter). 66% des membres du groupe pour anticiper. +- Avis nécessaires: 50% des membres du groupe (celui qui a initié cette prise de décision peux donner son avis). 66% des membres du groupe pour anticiper. - Validation par vote (le cas échéant): 75% de votes positifs. ###### Décision Majeure : - Durée initiale: 1 mois. - Décalage, si nécessaire: 2 semaines. -- Avis nécessaires: 75% des membres du groupe (celui qui a initié le vote peut voter). +- Avis nécessaires: 75% des membres du groupe (celui qui a initié cette prise de décision peux donner son avis). - Validation par vote (le cas échéant): 90% de votes positifs. ##### 6) Application From a2f08679be7ab4de5277b3fe96c997c33d5ce5bd Mon Sep 17 00:00:00 2001 From: julienmalik Date: Fri, 11 Nov 2016 23:35:55 +0100 Subject: [PATCH 20/48] typo --- yunohost_project_organization_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index fb06b576..6547f7fb 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -2,7 +2,7 @@ ## Objectif du document Ce document a pour objectif de permettre aux contributeurs de se sentir légitimes d’effectuer une contribution dans le projet YunoHost avec un avis collectif. -Le projet étant communautaire, les prises de décisions prises hâtivement par un groupe restreins de contributeurs peuvent entraîner des frustrations postérieures. +Le projet étant communautaire, les décisions prises hâtivement par un groupe restreins de contributeurs peuvent entraîner des frustrations postérieures. Pour palier à ce problème, la solution proposée ici est de faire en sorte que les décisions soient prises collectivement et qu’elles soient suffisamment réfléchies. Un conseil oriente l’évolution du projet YunoHost, et des groupes d’intérêts permettent de contribuer plus efficacement en fonction des domaines de prédilection de chacun. From e9781c315714d68c9776658d5dd6b05e2c5f65ae Mon Sep 17 00:00:00 2001 From: julienmalik Date: Fri, 11 Nov 2016 23:36:57 +0100 Subject: [PATCH 21/48] typo --- yunohost_project_organization_fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 6547f7fb..9d87e2f0 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -2,8 +2,8 @@ ## Objectif du document Ce document a pour objectif de permettre aux contributeurs de se sentir légitimes d’effectuer une contribution dans le projet YunoHost avec un avis collectif. -Le projet étant communautaire, les décisions prises hâtivement par un groupe restreins de contributeurs peuvent entraîner des frustrations postérieures. -Pour palier à ce problème, la solution proposée ici est de faire en sorte que les décisions soient prises collectivement et qu’elles soient suffisamment réfléchies. +Le projet étant communautaire, les décisions prises hâtivement par un groupe restreint de contributeurs peuvent entraîner des frustrations postérieures. +Pour pallier à ce problème, la solution proposée ici est de faire en sorte que les décisions soient prises collectivement et qu’elles soient suffisamment réfléchies. Un conseil oriente l’évolution du projet YunoHost, et des groupes d’intérêts permettent de contribuer plus efficacement en fonction des domaines de prédilection de chacun. ## Définition de YunoHost From 7309f3b6ef8e4a367a40eb0b1aca514e9778523b Mon Sep 17 00:00:00 2001 From: julienmalik Date: Fri, 11 Nov 2016 23:39:16 +0100 Subject: [PATCH 22/48] style --- yunohost_project_organization_fr.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 9d87e2f0..df16c904 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -16,7 +16,8 @@ Ce postulat pose la question des services comme nohost.me, qui devra être déba ### Valeurs -Un logiciel libre et communautaire +#### Un logiciel libre et communautaire + Par rapport à d'autres initiatives, (InternetCube, Sandstorm, Freedombox, cozy, ArkOS, serveur NAS (synology), kodi) YunoHost se distingue en étant : - un logiciel sous licence libre @@ -24,7 +25,8 @@ Par rapport à d'autres initiatives, (InternetCube, Sandstorm, Freedombox, cozy, - reposant sur des applications libres existantes (roundcube, baikal, etc.) -Que chacun peut s'approprier +#### Que chacun peut s'approprier + Historiquement, le projet est très proche des initiatives visant à la création d'un internet neutre et décentralisé. Cette proximité, notamment avec la FFDN, a amené une partie des contributeurs de YunoHost à créer la Brique Internet dont la mission est de faciliter l'auto-hébergement en fournissant une solution complète incluant service (via un VPN) et matériel. Cet aspect militant n'entrave pas des initiatives commerciales du logiciel pour lequel des entreprises pourraient proposer du support ou de l'hébergement. From d1b38b96a352b4445e32e7b0aaff9d25d1d9d82a Mon Sep 17 00:00:00 2001 From: julienmalik Date: Fri, 11 Nov 2016 23:41:13 +0100 Subject: [PATCH 23/48] typo --- yunohost_project_organization_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index df16c904..1ce5a459 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -41,7 +41,7 @@ Schéma d’organisation du projet YunoHost : #### Définition et constitution des groupes -La constitution de groupes part du constat que YunoHost compte beaucoup de sous-projets (treize au total), mais que l'on sait pas toujours qui en est en charge ou qui y est compétent. Il est donc proposé une simplification de l'organisation des sous-projet en groupes thématiques : +La constitution de groupes part du constat que YunoHost compte beaucoup de sous-projets (treize au total), mais que l'on ne sait pas toujours qui en est en charge ou qui y est compétent. Il est donc proposé une simplification de l'organisation des sous-projet en groupes thématiques : - Groupe Core Dev - Core YunoHost From 25082cd745d0258c9bdd4bb3e2e632d05cd8e531 Mon Sep 17 00:00:00 2001 From: julienmalik Date: Fri, 11 Nov 2016 23:43:11 +0100 Subject: [PATCH 24/48] Majuscule comme tout le monde --- yunohost_project_organization_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 1ce5a459..81a03012 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -51,7 +51,7 @@ La constitution de groupes part du constat que YunoHost compte beaucoup de sous- - Dynette - YNH-Dev -- Groupe distribution +- Groupe Distribution - Création et maintenance des images d'installation sur diverses architectures - Distribution des images - Gestion de la distribution des paquets Debian. From ec786afaf7d2d91df8c16099fab98163ef11e5c0 Mon Sep 17 00:00:00 2001 From: Zamentur aka ljf Date: Sat, 12 Nov 2016 00:28:07 +0100 Subject: [PATCH 25/48] Mise en forme --- yunohost_project_organization_fr.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 81a03012..9c0ba487 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -102,8 +102,9 @@ Pour participer aux votes du conseil, il faut avoir contribué au projet et avoi ### Un processus de prises de décision basé sur un consensus mou Les décisions à prendre peuvent être de deux ordres : -1) pour un groupe (par "exemple merger une PR" serait affecté au groupe Dev tandis que "poster un tweet" serait de la responsabilité du groupe Communication) -2) pour l'ensemble du projet (par exemple décider d'une release avec des nouvelles fonctionnalités) + +1. pour un groupe (par "exemple merger une PR" serait affecté au groupe Dev tandis que "poster un tweet" serait de la responsabilité du groupe Communication) +2. pour l'ensemble du projet (par exemple décider d'une release avec des nouvelles fonctionnalités) Si un consensus sur une décision à prendre n'est pas trouvée au sein d'un groupe, ce dernier devra se tourner vers le conseil pour en débattre. Si aucun consensus n'est trouvé, la proposition sera soumise au vote de tous les contributeurs. From 93d3cbebcc2b51892068793d248ded81d01060d6 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Sat, 12 Nov 2016 00:36:42 +0100 Subject: [PATCH 26/48] remove duplicated lines --- yunohost_project_organization_fr.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 9c0ba487..11a213be 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -151,8 +151,6 @@ Tout le monde peut changer de positions à n'importe quel moment, mais il est de - sans avis (s'en remet aux autres) - Pour une décison mineure ou moyenne/standard, si le quota de réponse est atteint à la durée minimale et que le consensus est obtenu. - s'il n'est pas possible d'avoir assez de monde (vacances, plus assez de membres du groupe pouvant avoir un avis) il est possible pour le groupe de demander la clôture même si le quota d'avis n'est pas atteint, il y a alors un nouveau décalage de la date et si cette nouvelle date est franchie, la proposition est clôturée selon les avis donnés. - - si 1/3 arrondi au supérieur (exemple: 1/3 de 4 == "1.33.." -> 2) [à débattre pour ce %] des participant·e·s s'étant exprimé·e·s sur cette question sont favorables au vote, alors le vote est ouvert et prend fin lorsque tout le monde a répondu (ou si nécessaire, après une date de clôture) - - pourcentage d’avis positifs différents suivant l’importance de la prise de décisions : 50 %, 66 %, 80 %. ###### Micro décision: - Décision prise et appliquée par un seul membre sans délai. Ce type de décision doit impérativement pouvoir être réversible, et peut être remise en question par n'importe quel membre du groupe. From 27c6e9025d5beea15f323b2a75ef80db36a2e81e Mon Sep 17 00:00:00 2001 From: Zamentur aka ljf Date: Sat, 12 Nov 2016 14:01:50 +0100 Subject: [PATCH 27/48] =?UTF-8?q?Supprime=20l'ambiguit=C3=A9=20qui=20pourr?= =?UTF-8?q?ait=20laisser=20penser=20qu'il=20n'y=20a=20que=205=20contribute?= =?UTF-8?q?urs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yunohost_project_organization_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 11a213be..899914e7 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -33,7 +33,7 @@ Historiquement, le projet est très proche des initiatives visant à la créatio ## Organisation de YunoHost ### Une structure ouverte, organisée par thèmes -L'objectif de l'organisation de YunoHost est de permettre au plus grand nombre de contribuer à l'amélioration du logiciel, que ce soit d'un point de vue technique (développement, packaging d'application) ou non (communication, assistance aux utilisateurs, documentation, etc.). Inspiré par différents projets passés en revue lors de l'événement (Kodi, Debian, Django, Fedora, Wikipédia, etc.) et des idées des contributeurs de YunoHost (Jérôme, Bram, opi, scith, ju), il a été décidé d'une organisation en groupes spécialisés, fédérés par un conseil de contributeurs clés. +L'objectif de l'organisation de YunoHost est de permettre au plus grand nombre de contribuer à l'amélioration du logiciel, que ce soit d'un point de vue technique (développement, packaging d'application) ou non (communication, assistance aux utilisateurs, documentation, etc.). Inspiré par différents projets passés en revue lors de l'événement (Kodi, Debian, Django, Fedora, Wikipédia, etc.) et des idées de contributeur de YunoHost (Jérôme, Bram, opi, scith, ju), il a été décidé d'une organisation en groupes spécialisés, fédérés par un conseil de contributeurs clés. Schéma d’organisation du projet YunoHost : From 627ac991c1724000db9886cbb1c72bb5ccc1855b Mon Sep 17 00:00:00 2001 From: Jeff Date: Sat, 12 Nov 2016 17:58:15 +0100 Subject: [PATCH 28/48] Retrait comparaison Le comparatif avec d'autres projets devrait selon moi faire l'objet d'une autre page. Qui plus est certains de ces projets sont aussi libres et communautaires ... Qu'en dites-vous ? --- yunohost_project_organization_fr.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 11a213be..86b391af 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -18,11 +18,7 @@ Ce postulat pose la question des services comme nohost.me, qui devra être déba #### Un logiciel libre et communautaire -Par rapport à d'autres initiatives, (InternetCube, Sandstorm, Freedombox, cozy, ArkOS, serveur NAS (synology), kodi) YunoHost se distingue en étant : - -- un logiciel sous licence libre -- entièrement communautaire -- reposant sur des applications libres existantes (roundcube, baikal, etc.) +YunoHost est un logiciel sous licence libre, entièrement communautaire, et reposant sur des applications elles-mêmes communautaires et souvent libres (roundcube, baikal, etc...). #### Que chacun peut s'approprier From a2375c19f5e00ddab27ca2940a5ba9f630f2cf4c Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Sat, 12 Nov 2016 18:10:17 +0100 Subject: [PATCH 29/48] [mod] we don't talk about vote for decisions anymore --- yunohost_project_organization_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 11a213be..f69f75d7 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -78,7 +78,7 @@ La constitution de groupes part du constat que YunoHost compte beaucoup de sous- - Traduction - Entraide (support) -Les groupes sont ouverts à tous les contributeurs souhaitant participer au développement de YunoHost. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe et de proposer au vote une décision à la suite d'une étape d'échange et d'amélioration de la proposition. +Les groupes sont ouverts à tous les contributeurs souhaitant participer au développement de YunoHost. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe et de proposer une prise de décision à la suite d'une étape d'échange et d'amélioration de la proposition. Afin de faciliter sa gestion, chaque groupe nomme donc un coordinateur (et un remplaçant) dont le rôle est : - d'accueillir et fédérer les nouveaux contributeurs réguliers de son groupe From 4edb50c50a815a8155a03ec197855c465b3f9a00 Mon Sep 17 00:00:00 2001 From: Jeff Date: Sat, 12 Nov 2016 18:13:56 +0100 Subject: [PATCH 30/48] Retrait renvoi site web et YunoHost comme logiciel uniquement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pas besoin de faire référence au site web, ce document faisant référence (boucle infinie XD) Concernant l'absence de consensus sur "YunoHost comme logiciel uniquement" et l'absence de vision sur le devenir des services (nohost), autant carrément enlever ce paragraphe et le remettre quand ce sera plus clair. --- yunohost_project_organization_fr.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 11a213be..533e3a2c 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -9,10 +9,7 @@ Un conseil oriente l’évolution du projet YunoHost, et des groupes d’intér ## Définition de YunoHost ### Objectifs -Selon le site web : « Le but de YunoHost est de rendre accessibles au plus grand nombre l’installation et l’administration d’un serveur, sans délaisser la qualité et la fiabilité du logiciel. » - -Nous proposons de limiter YunoHost au simple logiciel et de ne traiter aucun service auxiliaire estampillé sous le même nom (support payant, dns, hébergement). La fourniture de services devrait être laissée à d'autres structures gravitant autour du logiciel, qu'elles soient des entreprises ou des associations. Cela afin de concentrer l'activité de Yunohost sur la qualité du logiciel. -Ce postulat pose la question des services comme nohost.me, qui devra être débattue. +Le but de YunoHost est de rendre accessibles au plus grand nombre l’installation et l’administration d’un serveur, sans délaisser la qualité et la fiabilité du logiciel. ### Valeurs From c102eb3d24ce27c30c95002ba67dc2b2e41b98c6 Mon Sep 17 00:00:00 2001 From: Jeff Date: Sat, 12 Nov 2016 21:24:48 +0100 Subject: [PATCH 31/48] Simplification du refus MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Les "2 types de refus" proposés sont à mon sens trop vastes et peuvent tout contenir. Par exemple "j'aime pas ta gueule" peut être inclus dans "on ne doit pas faire ça" (parce que j'aime pas ta gueule) ... Du coup inutile je trouve. D'ou ma proposition --- yunohost_project_organization_fr.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 11a213be..ddf49a58 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -128,11 +128,7 @@ Tout le monde peut changer de positions à n'importe quel moment, mais il est de - "pas d'avis" / "je ne suis pas en position de donner un avis pertinent (exemple: je sais pas coder en X)" - réponses délayantes/différées - demande de précisions, dans ce cas la décision est suspendue -- refus - - il y a deux types de refus - - "cela doit être fait autrement" - - "on ne doit pas faire ça" - - tout refus doit être argumenté et justifié +- refus: tout refus doit être argumenté et justifié ##### 3) Suspension/Repoussement - tant qu'il n'y a pas de réponse, la décision est suspendue, au moment de la réponse, la date de clôture est automatiquement repoussé (si besoin) (pour une durée, à définir, moins longue que la première fois) From 32c63f16d6b57fba61fa3c3452625fc18f17c476 Mon Sep 17 00:00:00 2001 From: Jeff Date: Sat, 12 Nov 2016 21:33:26 +0100 Subject: [PATCH 32/48] Enlever "plan d'action" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Je ne vois pas trop l'intérêt de cette section ? Si vous êtes d'accord, on peut l'enlever pour simplifier Je propose aussi une simplification du plan de migration (on peut se débrouiller pour diffuser les infos, vu que pour l'instant les gens d'impliqués sur ce process sont déjà ici). L'idée étant d'avoir un document propre et efficace. La partie plan de migration a d'ailleurs vocation à disparaitre je suppose ... --- yunohost_project_organization_fr.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 11a213be..f1c5b651 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -178,14 +178,8 @@ Tout le monde peut changer de positions à n'importe quel moment, mais il est de ##### 6) Application Alors un membre du groupe peut annoncer la décision comme effective (et procéder aux actions nécessaires comme releaser, merger, annonce, autre ...). Il est important que s'il y a besoin de certaines actions, des personnes se soient engagées à les faire, une décision sans désigner est moyennement utile -## Plan d’action - -Différentes idées ont été relevées au cours de la réunion par les personnes présentes. Les décisions du week-end devraient être publiée sur le forum (ou autre) pour être détaillées et discutées, en vue d'être acceptées. - ### Plan de migration -Il est proposé d'appliquer dés à présent ce processus décisionnel, toutefois vu que ce n'est qu'un brouillon, chaque personne est invitée à publier des propositions de modifications/améliorations/précisions et à les soumettre. Les décisions se prendront sur le forum étant donné que Maniack et Moul ont des problèmes techniques de réception ou d'écriture sur la liste de discussion mail. Rappel il est possible de s'abonner par mail au forum, par contre la fonctionnalité de réponse par mail semble ne pas fonctionner. - -Mise en place d’un [système de vote via Discourse](https://blog.discourse.org/2015/08/improved-polls-in-discourse) plus intéressant que par mailling list. +Il est proposé d'appliquer dés à présent ce processus décisionnel, toutefois vu que ce n'est qu'un brouillon, chaque personne est invitée à publier des propositions de modifications/améliorations/précisions et à les soumettre. Les décisions pourront s'appuyer sur le [système de vote via Discourse](https://blog.discourse.org/2015/08/improved-polls-in-discourse). Conseil : Bram, ju, ljf, Maniack C, Moul, opi, (scith, tostak, theodore) (à élire ? auto-promotion par méritocratie ? renouvellement au lieu de demander un retrait par d’autres membres (processus négatif)) From df38ff7ab4aeebe1258e0d3a7bda8fb2a1b42856 Mon Sep 17 00:00:00 2001 From: Jeff Date: Sat, 12 Nov 2016 21:36:13 +0100 Subject: [PATCH 33/48] =?UTF-8?q?Ajouts=20d=C3=A9cisions=20=C3=A0=20venir?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yunohost_project_organization_fr.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 11a213be..526b5cd4 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -212,18 +212,20 @@ Conseil : Bram, ju, ljf, Maniack C, Moul, opi, (scith, tostak, theodore) (à él - Revoir système de build : stable <— testing <— branches - Gel de nohost.me et question de l'abandon des services -#### Groupes Dev +#### Groupe Dev - Comment gérer les pull request ? - Chaque ticket fait l'objet d'une branche et d'un ticket, tu fais une pull/merge request, la communauté vérifie que ça fonctionne, une décision est prise d'intégrer. -#### Groupes Apps +#### Groupe Apps - Pour les apps communautaires, les issues sont bien sur Github, les discussions sur le forum -#### Support +#### Groupe Communication - Rapport de bug à partir du forum - Faire en sorte de nettoyer le forum pour éviter le bruit - Proposition de supprimer le salon de support +- Comment rendre le forum plus actif et central +- Comment s'organiser pour les privilèges sur le forum (si les groupes veulent voter sur le forum) #### Autres - Demande sur le forum avec notification des membres du conseil et des représentants des groupes d’intérêts concernés. From cc2ad9d8027f930defa54e72866c1ce0f5c9745b Mon Sep 17 00:00:00 2001 From: Jeff Date: Sat, 12 Nov 2016 21:38:10 +0100 Subject: [PATCH 34/48] Retrait FAQ? MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La FAQ est-elle utile dans l'état ? Surtout que vu la jeunesse du document il n'y a pas encore de "questions fréquemment posées" ... - La comparaison avec d'autres devrait avoir une page dédiée selon moi - Pourquoi continuer YunoHost : redondant avec la partie valeur et description (qu'on pourrait rendre plus fun éventuellement) - Références pas très utile dans ce document qui est sensé se suffir à lui même Qu'en dites-vous ? --- yunohost_project_organization_fr.md | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 11a213be..325a6e62 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -245,17 +245,3 @@ Moyens de communication actuel : - Bugtracker Redmine - Forge git pour les review de code sur les PR - Salon de discussions XMPP - - -## F.A.Q ? -### Quelle différence avec d'autres projets (ArkOS, Cozy, Sandstorm, etc.) -- Cozy : gouverné par une entreprise qui développe toutes les applications pour une meilleure intégration entre-elles. Basé sur Debian. -- Sandstorm : distribution proche de la distribution YunoHost. -- ArkOS : en développement, basé sur Arch GNU/Linux. - -### Pourquoi continuer YunoHost ? -La communauté de YunoHost est grandissante et beaucoup de gens comptent dessus, son architecture technique basée sur des logiciels existants et sa gestion entièrement communautaire en font un projet unique. Enfin parce que c'est amusant et que l'aventure est belle :) - -## Références -- [Gouvernance du projet Fedora](https://fr.wikipedia.org/wiki/Fedora_(GNU/Linux)#Gouvernance_du_projet_Fedora) -- [Conditions de promotion d’un article Wikipédia au label “Bon article”](https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Bons_contenus/R%C3%A8gles#R.C3.A8gles) From c83294c1bcc6e22400bfde97d547f184726e2624 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Sun, 13 Nov 2016 04:19:36 +0100 Subject: [PATCH 35/48] Style : keep consistent titles --- yunohost_project_organization_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index f1c5b651..89d67fce 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -178,7 +178,7 @@ Tout le monde peut changer de positions à n'importe quel moment, mais il est de ##### 6) Application Alors un membre du groupe peut annoncer la décision comme effective (et procéder aux actions nécessaires comme releaser, merger, annonce, autre ...). Il est important que s'il y a besoin de certaines actions, des personnes se soient engagées à les faire, une décision sans désigner est moyennement utile -### Plan de migration +## Plan de migration Il est proposé d'appliquer dés à présent ce processus décisionnel, toutefois vu que ce n'est qu'un brouillon, chaque personne est invitée à publier des propositions de modifications/améliorations/précisions et à les soumettre. Les décisions pourront s'appuyer sur le [système de vote via Discourse](https://blog.discourse.org/2015/08/improved-polls-in-discourse). Conseil : Bram, ju, ljf, Maniack C, Moul, opi, (scith, tostak, theodore) (à élire ? auto-promotion par méritocratie ? renouvellement au lieu de demander un retrait par d’autres membres (processus négatif)) From bb940c5333156b9b9c2546859b077d18ea37c978 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Mon, 14 Nov 2016 12:48:05 +0100 Subject: [PATCH 36/48] Membres du conseil MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La question du renouvellement est tout de même à traiter je pense. Et c'est là le conseil après les premières délibérations, il peut encore s'agrandir. --- yunohost_project_organization_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 11a213be..7f81c48c 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -187,7 +187,7 @@ Il est proposé d'appliquer dés à présent ce processus décisionnel, toutefoi Mise en place d’un [système de vote via Discourse](https://blog.discourse.org/2015/08/improved-polls-in-discourse) plus intéressant que par mailling list. -Conseil : Bram, ju, ljf, Maniack C, Moul, opi, (scith, tostak, theodore) (à élire ? auto-promotion par méritocratie ? renouvellement au lieu de demander un retrait par d’autres membres (processus négatif)) +Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. - Representants des groupes d’intérêts (élus ou auto-proclamés) : - Dev : opi, Bram, ju, ljf From 3f6917d0eb174412886f082b9684d00d597ade9a Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Date: Tue, 15 Nov 2016 08:18:07 +0100 Subject: [PATCH 37/48] corrected my name and remove some useless spaces --- yunohost_project_organization_fr.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index c8da7379..9c268e70 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -179,7 +179,7 @@ Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. - Com - Com : Bram, Moul - Doc : Moul, theodore - - Trad : Jean-Batiste + - Trad : Jean-Baptiste ### Décisions à venir pour les groupes #### Conseil @@ -217,16 +217,16 @@ Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. - La release devrait être validée par l'ensemble des 4 (ou 5) groupes d’intérêts - Communication en français et en anglais - Annuaire ou contact des groupes pour les nouveaux arrivants. Voir peut-être annuaire tout court pour savoir qui fait quoi. https://yunohost.org/#/contribs_fr à compléter. Et à mettre en avant. -- Proposition de laisser les membres YunoHost s'auto déterminer -> Comment gérer les accès ? +- Proposition de laisser les membres YunoHost s'auto déterminer -> Comment gérer les accès ? ## Notes Moyens de communication actuel : -- IRL -- Réunion Mumble -- Forum -- Listes de diffusion : contrib et app +- IRL +- Réunion Mumble +- Forum +- Listes de diffusion : contrib et app - Bugtracker Redmine - Forge git pour les review de code sur les PR - Salon de discussions XMPP From 9d87f6ecfa82355a7ca11d7d21acd46ae3220c60 Mon Sep 17 00:00:00 2001 From: opi Date: Tue, 15 Nov 2016 15:53:25 +0100 Subject: [PATCH 38/48] Add links --- yunohost_project_organization_fr.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 7e54da90..1d91a7a2 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -50,15 +50,15 @@ La constitution de groupes part du constat que YunoHost compte beaucoup de sous- - Gestion de la distribution des paquets Debian. - Groupe Infra/Adminsys - - Infrastructure + - Infrastructure - Site web (wiki, forum, salon de discussion, redmine, mumble) - Démo - Services - - ip.yunohost.org - - yunoport - - nohost.me - - yunodash - - yunopaste + - [ip.yunohost.org](https://ip.yunohost.org/) et ip6.yunohost.org + - [yunoports](http://ports.yunohost.org/) + - nohost.me et noho.st + - [yunodash](https://dash.yunohost.org/) + - [yunopaste](http://paste.yunohost.org/) - Groupe Apps - Apps Officielles @@ -225,8 +225,8 @@ Moyens de communication actuel : - IRL - Réunion Mumble -- Forum -- Listes de diffusion : contrib et app -- Bugtracker Redmine -- Forge git pour les review de code sur les PR +- [Forum](https://forum.yunohost.org) +- Listes de diffusion : [contrib](https://list.yunohost.org/cgi-bin/mailman/listinfo/contrib) et [apps](https://list.yunohost.org/cgi-bin/mailman/listinfo/apps) +- [Bugtracker Redmine](https://dev.yunohost.org) +- [Forge git](http://github.com/yunohost/) pour les review de code - Salon de discussions XMPP From 550b532d42341e4471470d1dd48469b2d23647a3 Mon Sep 17 00:00:00 2001 From: Laurent Peuch Date: Tue, 29 Nov 2016 20:55:11 +0100 Subject: [PATCH 39/48] add Alex to the dev group --- yunohost_project_organization_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 1d91a7a2..ca61bdba 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -173,7 +173,7 @@ Il est proposé d'appliquer dés à présent ce processus décisionnel, toutefoi Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. - Representants des groupes d’intérêts (élus ou auto-proclamés) : - - Dev : opi, Bram, ju, ljf + - Dev : opi, Bram, ju, ljf, AlexAubin - Apps : Maniack, tostaki, Moul, ljf - Infra : opi, Bram, ju, Moul - Com From 3286857b6679db772b316cc0b032afe5d14c98ef Mon Sep 17 00:00:00 2001 From: Theodore Faure Date: Tue, 29 Nov 2016 22:33:24 +0100 Subject: [PATCH 40/48] fixed some typos Conseil spelling, is based on these french rules : http://j.poitou.free.fr/pro/html/typ/cap-emplois.html --- yunohost_project_organization_fr.md | 48 ++++++++++++++--------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index ca61bdba..51935a1d 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -20,7 +20,7 @@ YunoHost est un logiciel sous licence libre, entièrement communautaire, et repo #### Que chacun peut s'approprier -Historiquement, le projet est très proche des initiatives visant à la création d'un internet neutre et décentralisé. Cette proximité, notamment avec la FFDN, a amené une partie des contributeurs de YunoHost à créer la Brique Internet dont la mission est de faciliter l'auto-hébergement en fournissant une solution complète incluant service (via un VPN) et matériel. Cet aspect militant n'entrave pas des initiatives commerciales du logiciel pour lequel des entreprises pourraient proposer du support ou de l'hébergement. +Historiquement, le projet est très proche des initiatives visant à la création d'un internet neutre et décentralisé. Cette proximité, notamment avec la [FFDN](https://www.ffdn.org/), a amené une partie des contributeurs de YunoHost à créer la Brique Internet dont la mission est de faciliter l'auto-hébergement en fournissant une solution complète incluant service (via un VPN) et matériel. Cet aspect militant n'entrave pas des initiatives commerciales du logiciel pour lequel des entreprises pourraient proposer du support ou de l'hébergement. ## Organisation de YunoHost @@ -34,9 +34,9 @@ Schéma d’organisation du projet YunoHost : #### Définition et constitution des groupes -La constitution de groupes part du constat que YunoHost compte beaucoup de sous-projets (treize au total), mais que l'on ne sait pas toujours qui en est en charge ou qui y est compétent. Il est donc proposé une simplification de l'organisation des sous-projet en groupes thématiques : +La constitution de groupes part du constat que YunoHost compte beaucoup de sous-projets (treize au total), mais que l'on ne sait pas toujours qui en est en charge ou qui y est compétent. Il est donc proposé une simplification de l'organisation des sous-projets en groupes thématiques : -- Groupe Core Dev +- ##### Groupe Core Dev - Core YunoHost - Moulinette - Admin web @@ -44,12 +44,12 @@ La constitution de groupes part du constat que YunoHost compte beaucoup de sous- - Dynette - YNH-Dev -- Groupe Distribution +- ##### Groupe Distribution - Création et maintenance des images d'installation sur diverses architectures - Distribution des images - Gestion de la distribution des paquets Debian. -- Groupe Infra/Adminsys +- ##### Groupe Infra/Adminsys - Infrastructure - Site web (wiki, forum, salon de discussion, redmine, mumble) - Démo @@ -60,46 +60,46 @@ La constitution de groupes part du constat que YunoHost compte beaucoup de sous- - [yunodash](https://dash.yunohost.org/) - [yunopaste](http://paste.yunohost.org/) -- Groupe Apps +- ##### Groupe Apps - Apps Officielles - Apps Communautaires - outils de développements d'app (package_checker, package linter) -- Groupe Communication +- ##### Groupe Communication - Documentation - Communication (annonce évolutions du projet sur le forum, réseaux sociaux) - Traduction - Entraide (support) -Les groupes sont ouverts à tous les contributeurs souhaitant participer au développement de YunoHost. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe et de proposer une prise de décision à la suite d'une étape d'échange et d'amélioration de la proposition. +Les groupes sont ouverts à tous les contributeurs souhaitant participer au développement de YunoHost. Chacun peut s'inscrire aux canaux de communication associés aux groupes auxquels il souhaite prendre part. Chaque inscrit est libre d'échanger avec le reste du groupe et de proposer une prise de décision à la suite d'une étape d'échange et d'amélioration de la proposition. Afin de faciliter sa gestion, chaque groupe nomme donc un coordinateur (et un remplaçant) dont le rôle est : - d'accueillir et fédérer les nouveaux contributeurs réguliers de son groupe -- de tenir informé le conseil des décisions prises au sein du groupe (cf. point suivant) +- de tenir informé le Conseil des décisions prises au sein du groupe (cf. point suivant) Le choix d'un outil de communication est laissé à chaque groupe en fonction de sa pertinence (forum, chat, ML, etc.). #### Définition et constitution du Conseil -YunoHost grandissant, il est important de maintenir une cohérence entre tous les groupes, néanmoins il est impossible d'imposer à chacun des membres des groupes de s'intéresser ou de s'impliquer sur tous les aspects du projet (pour des raisons de temps et de compétence). Pour pallier à cela, il est proposé de créer un meta-groupe, où chaque groupe sera représenté par au moins un de ses membres : le Conseil. -Le Conseil est indépendant des groupes et réuni les contributeurs souhaitant s'impliquer le plus dans le projet, son rôle est de : +YunoHost grandissant, il est important de maintenir une cohérence entre tous les groupes, néanmoins il est impossible d'imposer à chacun des membres des groupes de s'intéresser ou de s'impliquer sur tous les aspects du projet (pour des raisons de temps et de compétences). Pour pallier à cela, il est proposé de créer un meta-groupe, où chaque groupe sera représenté par au moins un de ses membres : le Conseil. +Le Conseil est indépendant des groupes et réunit les contributeurs souhaitant s'impliquer le plus dans le projet, son rôle est de : - prendre les décisions importantes sur YunoHost qui ne dépendent pas d'un seul groupe (par exemple changer le moteur du wiki) - faire des points réguliers sur l'ensemble du projet pour assurer sa cohésion. (réunion Mumble) -- solliciter l'ensemble de la communauté des contributeurs (ou même des utilisateurs) quand une décision divise les groupes et/ou le conseil +- solliciter l'ensemble de la communauté des contributeurs (ou même des utilisateurs) quand une décision divise les groupes et/ou le Conseil -Le choix d'un outil de communication est laissé au conseil, ses décisions doivent néanmoins être consultable par l'ensemble de la communauté de contributeur. -Pour participer aux votes du conseil, il faut avoir contribué au projet et avoir obtenu un droit de vote (ou d'entrée) au sein du conseil. Ce droit est délivré par le conseil (éventuellement sur demande). Le conseil est libre à tout moment de modifier le processus de décision. -Être membre du conseil n'implique pas forcément d'avoir l'ensemble des accès (infra, dépôt etc...). +Le choix d'un outil de communication est laissé au Conseil, ses décisions doivent néanmoins être consultables par l'ensemble de la communauté de contributeurs. +Pour participer aux votes du Conseil, il faut avoir contribué au projet et avoir obtenu un droit de vote (ou d'entrée) au sein du Conseil. Ce droit est délivré par le Conseil (éventuellement sur demande). Le Conseil est libre à tout moment de modifier le processus de décision. +Être membre du Conseil n'implique pas forcément d'avoir l'ensemble des accès (infrastructure, dépôt etc...). ### Un processus de prises de décision basé sur un consensus mou -Les décisions à prendre peuvent être de deux ordres : +Les décisions à prendre peuvent être de deux ordres : 1. pour un groupe (par "exemple merger une PR" serait affecté au groupe Dev tandis que "poster un tweet" serait de la responsabilité du groupe Communication) 2. pour l'ensemble du projet (par exemple décider d'une release avec des nouvelles fonctionnalités) -Si un consensus sur une décision à prendre n'est pas trouvée au sein d'un groupe, ce dernier devra se tourner vers le conseil pour en débattre. Si aucun consensus n'est trouvé, la proposition sera soumise au vote de tous les contributeurs. +Si un consensus sur une décision à prendre n'est pas trouvée au sein d'un groupe, ce dernier devra se tourner vers le Conseil pour en débattre. Si aucun consensus n'est trouvé, la proposition sera soumise au vote de tous les contributeurs. #### Le processus de prise de décision en détail @@ -108,8 +108,8 @@ Si un consensus sur une décision à prendre n'est pas trouvée au sein d'un gro - forcément publique à l'exception de situations bien définies (bug relatif à la sécurité critique ou vote sur les personnes) - une date de clôture est automatiquement définie par type de proposition. La définition de la date remplie plusieurs fonctions : - pouvoir laisser le temps à tout le monde de s'exprimer et ne pas prendre la décision trop vite - - maintenir un rythme car si le quota des réponses est rempli avant le temps imparti, il n'y a pas besoin d'attendre l'avis de tout les membres du groupe - - le quota est à évaluer en fonction des personnes inscrites au groupe (ou au conseil selon la situation) qui ont manifesté leurs souhaits d'être considéré comme votant régulier => exemple kload peut vouloir donner son avis ponctuellement, mais à priori il ne souhaitera pas être considéré comme membre votant actif du conseil + - maintenir un rythme car si le quota des réponses est rempli avant le temps imparti, il n'y a pas besoin d'attendre l'avis de tout les membres du groupe + - le quota est à évaluer en fonction des personnes inscrites au groupe (ou au Conseil selon la situation) qui ont manifesté leurs souhaits d'être considéré comme votant régulier => exemple kload peut vouloir donner son avis ponctuellement, mais à priori il ne souhaitera pas être considéré comme membre votant actif du Conseil - pouvoir être repoussable sur simple demande d'une des personnes du groupe. Et seulement du groupe, pas tous les contrib. ##### 2) Ouverture de la discussion, plusieurs réponses possibles : @@ -172,7 +172,7 @@ Il est proposé d'appliquer dés à présent ce processus décisionnel, toutefoi Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. - - Representants des groupes d’intérêts (élus ou auto-proclamés) : + - Representants des groupes d’intérêts (élus ou auto-proclamés) : - Dev : opi, Bram, ju, ljf, AlexAubin - Apps : Maniack, tostaki, Moul, ljf - Infra : opi, Bram, ju, Moul @@ -183,8 +183,8 @@ Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. ### Décisions à venir pour les groupes #### Conseil -- Faut-il élire les membres du conseil plutôt que de les coopter ? Risque de se transformer en "campagne politique"! -- Faut-il limiter l'ouverture des groupes d'intérêts par cooptation comme pour le conseil ? +- Faut-il élire les membres du Conseil plutôt que de les coopter ? Risque de se transformer en "campagne politique"! +- Faut-il limiter l'ouverture des groupes d'intérêts par cooptation comme pour le Conseil ? - Proposition de changer Conseil en Collégiale - Migrer le serveur d’infrastructure du projet sous YunoHost. (avec apps déjà packagées pad, gogs, mumble?) - Let's Encrypt @@ -211,7 +211,7 @@ Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. - Comment s'organiser pour les privilèges sur le forum (si les groupes veulent voter sur le forum) #### Autres -- Demande sur le forum avec notification des membres du conseil et des représentants des groupes d’intérêts concernés. +- Demande sur le forum avec notification des membres du Conseil et des représentants des groupes d’intérêts concernés. - Vote sur deux semaines par un post sur le forum - Créer quatre canaux pour le Dev, les Apps, la Communication et l'Infrastructure - La release devrait être validée par l'ensemble des 4 (ou 5) groupes d’intérêts @@ -221,7 +221,7 @@ Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. ## Notes -Moyens de communication actuel : +Moyens de communication actuels : - IRL - Réunion Mumble From eadc112391959a161b9e630ab7d9934057eec7b8 Mon Sep 17 00:00:00 2001 From: Moul Date: Tue, 29 Nov 2016 23:02:55 +0100 Subject: [PATCH 41/48] [mod] add 'Moul' on dev group, rm detail. alignment.. --- yunohost_project_organization_fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index ca61bdba..28f56212 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -172,8 +172,8 @@ Il est proposé d'appliquer dés à présent ce processus décisionnel, toutefoi Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. - - Representants des groupes d’intérêts (élus ou auto-proclamés) : - - Dev : opi, Bram, ju, ljf, AlexAubin + - Representants des groupes d’intérêts : + - Dev : opi, Bram, ju, ljf, AlexAubin, Moul - Apps : Maniack, tostaki, Moul, ljf - Infra : opi, Bram, ju, Moul - Com From 696ed53c9be96a1743c4530b3cc02be26587d863 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Tue, 29 Nov 2016 23:35:11 +0100 Subject: [PATCH 42/48] Update Apps group --- yunohost_project_organization_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 28f56212..a28df219 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -174,7 +174,7 @@ Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. - Representants des groupes d’intérêts : - Dev : opi, Bram, ju, ljf, AlexAubin, Moul - - Apps : Maniack, tostaki, Moul, ljf + - Apps : Bram, Ju, Ljf, Maniack C, Moul, Scith, Tostaki - Infra : opi, Bram, ju, Moul - Com - Com : Bram, Moul From 0908d9c3ae1e5230cac5d3aabc5dda67249a29d2 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 30 Nov 2016 15:12:03 +0100 Subject: [PATCH 43/48] Update groupes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit J'ai mis des majuscules à tout le monde, sauf opi. Si d'autres veulent leur nom sans majuscules, pas de problème ;) J'hésite à ajouter Théodore dans le groupe Maître du monde, on en a pas vraiment discuté... --- yunohost_project_organization_fr.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 29f7cf5c..63331e41 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -173,13 +173,14 @@ Il est proposé d'appliquer dés à présent ce processus décisionnel, toutefoi Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. - Representants des groupes d’intérêts : - - Dev : opi, Bram, ju, ljf, AlexAubin, Moul + - Core Dev : AlexAubin, Bram, Ju, Ljf, Moul, opi - Apps : Bram, Ju, Ljf, Maniack C, Moul, Scith, Tostaki - - Infra : opi, Bram, ju, Moul - - Com - - Com : Bram, Moul - - Doc : Moul, theodore + - Infra : Bram, Ju, Maniack C, Moul, opi + - Communication + - Com : Bram, Moul, Ljf, opi + - Doc : Moul, Theodore - Trad : Jean-Baptiste + - Distribution : Heyyounow ### Décisions à venir pour les groupes #### Conseil From 8c90bda49eea78d73ed84c203133776245219c5c Mon Sep 17 00:00:00 2001 From: Moul Date: Wed, 30 Nov 2016 15:12:54 +0100 Subject: [PATCH 44/48] [enh] change section name. Develop and add links. --- yunohost_project_organization_fr.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 29f7cf5c..288e0191 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -219,14 +219,12 @@ Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. - Annuaire ou contact des groupes pour les nouveaux arrivants. Voir peut-être annuaire tout court pour savoir qui fait quoi. https://yunohost.org/#/contribs_fr à compléter. Et à mettre en avant. - Proposition de laisser les membres YunoHost s'auto déterminer -> Comment gérer les accès ? +## Moyens de communication actuels -## Notes -Moyens de communication actuels : - -- IRL -- Réunion Mumble -- [Forum](https://forum.yunohost.org) +- Rencontres à des évènements. +- Réunions hébdomadaires Mumble. +- [Forum](https://forum.yunohost.org). - Listes de diffusion : [contrib](https://list.yunohost.org/cgi-bin/mailman/listinfo/contrib) et [apps](https://list.yunohost.org/cgi-bin/mailman/listinfo/apps) -- [Bugtracker Redmine](https://dev.yunohost.org) -- [Forge git](http://github.com/yunohost/) pour les review de code -- Salon de discussions XMPP +- [Bugtracker Redmine](https://dev.yunohost.org). +- Forge git pour la review de code : [YunoHost](https://github.com/YunoHost) [YunoHost-Apps](https://github.com/YunoHost-Apps). +- [Salons discussions XMPP](https://yunohost.org/#/chat_rooms_fr) From 5ca0205ac780f65148b20c105cd63f5627ceaf95 Mon Sep 17 00:00:00 2001 From: Moul Date: Wed, 30 Nov 2016 15:20:48 +0100 Subject: [PATCH 45/48] [mod] Change section name. Remove useless text. --- yunohost_project_organization_fr.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 288e0191..86d39e9a 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -167,8 +167,7 @@ Tout le monde peut changer de positions à n'importe quel moment, mais il est de ##### 6) Application Alors un membre du groupe peut annoncer la décision comme effective (et procéder aux actions nécessaires comme releaser, merger, annonce, autre ...). Il est important que s'il y a besoin de certaines actions, des personnes se soient engagées à les faire, une décision sans désigner est moyennement utile -## Plan de migration -Il est proposé d'appliquer dés à présent ce processus décisionnel, toutefois vu que ce n'est qu'un brouillon, chaque personne est invitée à publier des propositions de modifications/améliorations/précisions et à les soumettre. Les décisions pourront s'appuyer sur le [système de vote via Discourse](https://blog.discourse.org/2015/08/improved-polls-in-discourse). +## Composition des groupes Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. From 4b45ae2f25e26c81d46aa8afc9768085ecf8388c Mon Sep 17 00:00:00 2001 From: Zamentur aka ljf Date: Wed, 30 Nov 2016 18:56:06 +0100 Subject: [PATCH 46/48] [fix] Change Ljf into ljf --- yunohost_project_organization_fr.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 63331e41..46400e2a 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -173,11 +173,11 @@ Il est proposé d'appliquer dés à présent ce processus décisionnel, toutefoi Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. - Representants des groupes d’intérêts : - - Core Dev : AlexAubin, Bram, Ju, Ljf, Moul, opi - - Apps : Bram, Ju, Ljf, Maniack C, Moul, Scith, Tostaki + - Core Dev : AlexAubin, Bram, Ju, ljf, Moul, opi + - Apps : Bram, Ju, ljf, Maniack C, Moul, Scith, Tostaki - Infra : Bram, Ju, Maniack C, Moul, opi - Communication - - Com : Bram, Moul, Ljf, opi + - Com : Bram, Moul, ljf, opi - Doc : Moul, Theodore - Trad : Jean-Baptiste - Distribution : Heyyounow From d0e85171d9ec6989cd49c4fcc898db3e3c99fac1 Mon Sep 17 00:00:00 2001 From: Moul Date: Wed, 30 Nov 2016 20:19:33 +0100 Subject: [PATCH 47/48] [mod] groups composition: same alignment for all groups. --- yunohost_project_organization_fr.md | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/yunohost_project_organization_fr.md b/yunohost_project_organization_fr.md index 28e2f944..749ec4a5 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -169,17 +169,15 @@ Alors un membre du groupe peut annoncer la décision comme effective (et procéd ## Composition des groupes -Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. - - - Representants des groupes d’intérêts : - - Core Dev : AlexAubin, Bram, Ju, ljf, Moul, opi - - Apps : Bram, Ju, ljf, Maniack C, Moul, Scith, Tostaki - - Infra : Bram, Ju, Maniack C, Moul, opi - - Communication - - Com : Bram, Moul, ljf, opi - - Doc : Moul, Theodore - - Trad : Jean-Baptiste - - Distribution : Heyyounow +- Conseil : Bram, ju, ljf, Maniack, Moul, opi, theodore. +- Core Dev : AlexAubin, Bram, Ju, ljf, Moul, opi +- Apps : Bram, Ju, ljf, Maniack C, Moul, Scith, Tostaki +- Infra : Bram, Ju, Maniack C, Moul, opi +- Communication + - Com : Bram, Moul, ljf, opi + - Doc : Moul, Theodore + - Trad : Jean-Baptiste +- Distribution : Heyyounow ### Décisions à venir pour les groupes #### Conseil From ce63efe32bd8dbe67a5460284940d9121fb092f5 Mon Sep 17 00:00:00 2001 From: Moul Date: Wed, 30 Nov 2016 21:59:27 +0100 Subject: [PATCH 48/48] [enh] add symbolic link toward page of the subtree. - add new page link on sitemaps. --- project_organization_fr.md | 1 + sitemap.md | 1 + sitemap_fr.md | 1 + 3 files changed, 3 insertions(+) create mode 120000 project_organization_fr.md diff --git a/project_organization_fr.md b/project_organization_fr.md new file mode 120000 index 00000000..87648596 --- /dev/null +++ b/project_organization_fr.md @@ -0,0 +1 @@ +orga/yunohost_project_organization_fr.md \ No newline at end of file diff --git a/sitemap.md b/sitemap.md index 8e85c289..2e278c9d 100644 --- a/sitemap.md +++ b/sitemap.md @@ -107,6 +107,7 @@ * [Roadmap](/roadmap) * [Frequently asked questions](/faq_en) * [Contributors](contribs) + - [Project organization](project_organization_fr) * [Support](/support_en) * [Art Works](artworks_en) * [Blog](https://forum.yunohost.org/c/announcement) diff --git a/sitemap_fr.md b/sitemap_fr.md index d5eb2a29..70cd42bb 100644 --- a/sitemap_fr.md +++ b/sitemap_fr.md @@ -119,6 +119,7 @@ * [Journal des modifications v.2.2](/changelog_2_2_en) * [Feuille de route](/roadmap_en) * [Foire aux questions](/faq_fr) + - [Organisation du projet](project_organization_fr) * [Contributeurs](contribs_fr) * [Entraide - support](/support_fr) * [Blog](https://forum.yunohost.org/c/announcement)