From d009e424f46d533d055cd0f997a1c1aa12cce821 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 23 Nov 2016 17:05:02 +0100 Subject: [PATCH 1/7] Inactifs dans les groupes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Comme soulevé ici https://github.com/YunoHost/yunohost-project-organization/pull/1#issuecomment-259308484 et ici https://github.com/YunoHost/yunohost-project-organization/issues/21#issuecomment-260146399 Pour éviter des paralysies sur les prises de décisions, je propose une gestion des inactifs sur les groupes. Mais étant donné qu'un inactif ne peux pas se signaler (de fait), je donne cette "responsabilité" aux coordinateur et suppléant. --- 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 1d91a7a2..65ab0bb3 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -139,6 +139,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) - 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. + - Le quota de réponse correspond aux avis nécessaires, détaillé ci-après dans les types de décisions. Le pourcentage est rapporté au nombre d'actifs dans le groupe concerné. La gestion des actif et inactif dans le groupe est à la charge du coordinateur et du suppléant qui doivent maintenir à jour la liste des membres au minimum à chaque décision du groupe. (Un inactif qui se manifeste lors d'une décision redevient automatiquement actif.) - 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. ###### Micro décision: From 0506c15998921e2e0353e6ae6f63426d275c6792 Mon Sep 17 00:00:00 2001 From: Jeff Date: Tue, 29 Nov 2016 17:37:53 +0100 Subject: [PATCH 2/7] =?UTF-8?q?R=C3=A9duction=20bus=20factor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajouts pour https://github.com/YunoHost/yunohost-project-organization/issues/34 --- 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 1d91a7a2..7ba9a171 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -1,9 +1,9 @@ # Organisation du projet YunoHost ## 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 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. +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. Il vise également à renforcer le projet en le structurant autour de groupes de travail autonomes pouvant résister au départ ou à l'absence de certains contributeurs. +Le projet étant communautaire, les décisions prises hâtivement et discrètement 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, qu’elles soient suffisamment réfléchies, et qu'elles soient documentées ou rendues publiques. 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 @@ -71,7 +71,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 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. Il est recommandé aux contributeurs de documenter au maximum leurs décisions et leurs contributions. Ceci permet de renforcer l'autonomie des groupes en cas de départs ou d'absences de certains de leurs membres. 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 49bdb8a47ccc7b9706e9272ff58b8984603d4e19 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Date: Wed, 1 Feb 2017 22:58:19 +0100 Subject: [PATCH 3/7] add english translation --- yunohost_project_organization.md | 272 +++++++++++++++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 yunohost_project_organization.md diff --git a/yunohost_project_organization.md b/yunohost_project_organization.md new file mode 100644 index 00000000..173e3195 --- /dev/null +++ b/yunohost_project_organization.md @@ -0,0 +1,272 @@ +# YunoHost project organisation + +## Document objective + +This document aims at allowing contributors to feel legitimate in contributing to the YunoHost project together with collective feedback. +The project is community-based and hasty decisions made by a restricted group of contributors can generate frustrations at a later stage. +To address this issue, the proposed solution here is to ensure that decisions are taken collectively and that they are sufficiently thought out. +An advisory board provides orientations for the evolution of the YunoHost project and special interest groups allow more efficient contribution in relation to each specific topic. + +## Definition of YunoHost + +###Objectives + +The goal of YunoHost is to make accessible to the largest number of people, the installation and administration of a server, without prejudice to the quality and reliability of the software. + +### Values + +#### A free and community-based software + +YunoHost is a software under free licence, fully community-based and based on applications which are themselves community-based and often free (roundcube, baikal, etc.) + +#### That everyone can appropriate + +Historically, the project has been very close to initiatives which aim at creating a neutral and decentralised Internet. This proximity especially with the [FFDN](https://www.ffdn.org/), has materialised by having some contributors to create the InternetCu.be whose mission is to facilitate self-hosting by providing a complete solution including a service (via a VPN) and a device. This militant aspect does not inhibit commercial software initiatives hereby companies could propose support or hosting. + +## YunoHost organisation + +### A theme-based, open structure + +The objective of the the YunoHost organisation is to allow the largest number of people to contribute to software improvement, whether from a technical point of view (development, application packaging) or otherwise (communication, end-user assistance, documentation, etc.). Inspired by the projects which were reviewed at a recent event (Kodi, Debian, Django, Fedora, Wikipedia, etc.) and by ideas stemming from YunoHost contributors (Jérôme, Bram, opi, scith, ju), a decision was made to organise work by special interest groups, federated thanks to a board to key contributors. + +YunoHost project organisation schema + + + +#### Definition and structure of groups + +Groups are structured as a result of the fact that YunoHost counts many sub-projects (a total of 13), but without always knowing who is in charge or who is competent. It has therefore been decided to simplify the organisation into sub-projects according to theme-based groups: + +- ##### Core Dev Group + - YunoHost Core + - Moulinette + - Web admin + - SSOwat + - Dynette + - YNH-Dev + +- ##### Distribution Group + - Creation and maintenance of installation images on various architectures + - Distribution of images + - Management of Debian packages distribution + +- ##### Infra/Sysadmin Group + - Infrastructure + - Website (wiki, forum, chat room, redmine, mumble) + - Demo + - Services + - [ip.yunohost.org](https://ip.yunohost.org/) and ip6.yunohost.org + - [yunoports](http://ports.yunohost.org/) + - nohost.me and noho.st + - [yunodash](https://dash.yunohost.org/) + - [yunopaste](http://paste.yunohost.org/) + +- ##### Apps Group + - Official apps + - Community-based apps + - App development tools (package_checker, package linter) + +- ##### Communication Group + - Documentation + - Communication (announcement of project evolutions on the forum, social networks) + - Translation + - Mutual assistance (support) + +Groups are open to all contributors willing to participate to the development of YunoHost. Everyone can register with the communication channels associated with the group they want to get involved with. Everyone is free to exchange with the rest of the group and to submit a decision point which will follow a prior stage of exchange and improvement of the proposal. +In order to facilitate its management, each group names a coordinator (and a deputy) whose role is: + +- to welcome and to federate new regular contributors to the group +- to keep the Board informed of decisions taken within the group (see next point) + +The choice of a communication tool is left to each group depending on its relevance (forum, chat, email, etc.) + +#### Definition and structure of the Board + +YunoHost is growing and it's important to maintain a coherence among all the groups. However, it is impossible to impose on every member within every group to take interest or to get involved in all aspects of the project (due to time and competency constraints). To address this, it has been suggested that a meta-group be created where every group has at least one representative: hence the Board. +The Board is independent of groups and brings together contributors wishing to get involved in the project to the maximum extent. It's role is to: + +- take important decisions affecting YunoHost which are dependent on one single group (for instance, changing the wiki engine) +- regularly follow up on the overall aspect of the project to ensure its cohesion (Mumble meeting) +- call on the whole community of contributors (or even end-users) when a decision appears divisive between groups or within the Board + +To take part at Board-level votes, you must have contributed to the project and have obtained a right to vote (or right of entry) at the Board. This right is delivered by the Board (and may be upon request). The Board is free at any moment to change its decision process. +To be a member of the Board does not imply that you have access to all resources (infrastructure, deposit, etc.). + +### A decision process based on soft consensus + +Decisions to be taken can be of 2 kinds: + +1. for a group (for example, "to merge a PR" would be assumed by the Apps Group whereas to "post a tweet" would fall under the responsibility of the Communication Group) +2. for the overall project (for instance, to decide on a release with new features) + +If a consensus is not reached over a decision within a particular group, they must refer to the Board for further discussions. If no consensus has been reached, the proposal will be submitted to a vote by all contributors. + +#### The decision process in detail + +##### 1) Initiating a decision +- can be initiated by anyone following predefined media within each group (e.g. to open a PR automatically triggers this process) +- necessarily public with the exception of well-defined situations (bug related to a critical security issue or vote relative to individuals) +- an end-date is automatically set for every type of proposition. This date is used for various reasons: + - to leave enough time for everyone to express themselves and to avoid hasty decisions + - to maintain a certain rhythm otherwise if the quota of responses is reached then there's no need to wait for everyone's views within a group + - the quota is evaluated according to people registered in a group (or the Board, depending on the situation) who have expressed their desire to be considered as a regular voter => for instance kload could wish to give their opinion at a particular occasion, but with no intention of applying as a active voting member at the Board + - so it can be postponed upon simple request by any one member of the group—and only the group, not all contributors. + +##### 2) Opening a discussion with several possible responses: +Anyone can change their position at any moment, but it's expected to let the group react if necessary (e.g. avoid going from positive to negative to reject a proposal altogether after just 3 minutes). + +- "simple" replies + - "I agree" -> counts as a positive view + - "It seems good to me, but I'd rather abide by others' opinion" -> if there are only such views (or like the next one) and at least one positive view and the due date is past, then the proposal is accepted + - "no views" / "I'm not in a position to express a helpful view (e.g. I can't code in X)" + - delayed reponse + - request for clarification, in which case the decision is suspended + - refusal: any refusal should be argued and justified + +##### 3) Suspension/Postponement +- while there is no response, a decision is considered suspended; at the moment of a response, the end date is automatically postponed (if needed) (for a duration to be determined, which is shorter than the initial time) +- in a situation where there are positive and negative views, or where there is a choice between several proposals + +##### 4) Request for modifications +- however, it may happen that discussions take place around these modifications; if such is the case, there is a new decision to be added to the list of existing decisions, and the process applies again (with a postponement of the date) +- if there aren't enough people agreeing, the date is postponed and a recall must be sent +- if the result is very close, the group is invited to rediscuss the matter if it is important, otherwise this could turn into a divisive issue and of tensions in the future + +##### 5) Closure +- if the group is unanimous in its decision + - with agreements only + - with refusals only + - no opinions (relying on others' views) +- For a minor or standard decision, if the quota of responses is reached by the minimal deadline and there's a consensus. +- The quota of responses means necessary views as detailed below according to different types of decisions. The percentage is based on the number of active members in the group. The coordinator and its deputy are in charge of managing active and inactive members in a group, as they maintain an up-to-date list of members at least at every decision point within the group. (An inactive member who shows up for a decision automatically becomes active). +- If it isn't possible to have enough people (vacations, not enough members in a group to provide their views), a group can request closing a vote before the voting quota is reached; there's then a new postponement and if the new postponed date is reached, then the proposal is closed according to recorded views. + +###### Micro-decision: +- A decision taken and immediately applied by a single member. This kind of decision must necessarily be reversible, and can be questioned by anyone from any group. + +###### Minor decision +- Initial duration: 1 week. +- Minimal duration: 3 days. +- Postponement, if necessary: 3 days. +- Necessary views: 2 members of a group (the person who initiated the decision can express their view); in an anticipated format, 3 of which 2 members of the group. + +###### Standard decision: +- Initial duration: 2 weeks. +- Minimal duration: 1 week. +- Postponement, if necessary: 1 week. +- Necessary views: 50% of members of a group (the person who initiated the decision can express their view); in an anticipated format, 66% of members. +- Validation by voting (when applicable): 75% of positive votes. + +###### Major decision: +- Initial duration: 1 month. +- Postponement, if necessary: 2 weeks. +- Necessary views: 75% of members of a group (the person who initiated the decision can express their view). +- Validation by voting (when applicable): 90% of positive votes. + +##### 6) Application +Then a member of a group can announce their decision as effective (and proceed with necessary actions such as releasing, merging, announcing, etc.). If certain actions are required, it's important that people commit themselves to performing them, since a decision without designated people is of little use + +## Composition of groups + +- Distribution : Heyyounow +- Board : 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 + - Trans : Jean-Baptiste +- Distribution : Heyyounow + +## Summary table of the number of views required for a decision + +_Values are rounded (e.g. 5.4 => 5 and 5.5 => 6)._ + + +| | **Minor** | **Standard** | **Major** | +|----------------------|---------|----------|---------| +| **Board** | +| Standard closure | 2 | 4 | 5 | +| Anticipated closure | 3* | 5 | +| Closure by voting | 5 | 5 | 6 | +| **Core Dev** | +| Standard closure | 2 | 3 | 5 | +| Anticipated closure | 3* | 4 | +| Closure by voting | 4 | 5 | 5 | +| **Apps** | +| Standard closure | 2 | 4 | 5 | +| Anticipated closure | 3* | 5 | +| Closure by voting | 5 | 5 | 6 | +| **Infra** | +| Standard closure | 2 | 3 | 4 | +| Anticipated closure | 3* | 3 | +| Closure by voting | 3 | 4 | 5 | +| **Communication -> Com** | +| Standard closure | 2 | 2 | 3 | +| Anticipated closure | 3* | 3 | +| Closure by voting | 3 | 3 | 4 | +| **Communication -> Doc** | +| Standard closure | 1 | 1 | Board | +| Anticipated closure | 2* | 2* | +| Closure by voting | Board | Board | Board | +| **Distribution** | +| Standard closure | 1 | Board | Board | +| Anticipated closure | 1 | Board | +| Closure by voting | 1 | Board | Board | + +\* of which 1 view can be external to the group + +For the translation group, the process needs to be adapted. + +For the documentation group, the number of views for an anticipated closure of a minor decision eat for the moment limited (there are only 2 people in the group). The other types of decision are taken by the Board. + +For the distribution group, since there's only Heyyounow at the moment, the Board will have the task of making Standard and Major decisions. + +### Pending decisions for the groups + +#### Board +- Should we elect Board members rather than co-opt them? There's a risk of it becoming a "political campaign"! +- Should special interest group membership be restricted to cooptation like for the Board? +- Proposal to change Board to Collegiate +- Migrate the project infrastructure server under YunoHost (with prepackaged apps like pad, dogs and mumble?) +- Let's Encrypt +- New system for documentation +- Improvement of documentation +- XMPP server migration +- Hosting of our Git forge +- Review the build system: stable <— testing <— branches +- Freeze cohost.me and abandoning services + +#### Core Dev Group +- How to manage pull requests? + - Each ticket gives rise to a branch and a ticket; you make a pull/merge request, the community verifies that it works, a decision is taken to integrate. + +#### Apps Group +- For community-based apps, issues are on Github as they should be, but discussions are on the forum + +#### Communication Group +- Bug report from the forum +- Cleanup of the forum to avoid noise +- Proposal to delete support chat +- How to make the forum a more active and central hub +- How to organise rights on the forum (if groups want to vote on the forum) + +#### Miscellaneous +- Request on the forum with notification to the Board members and to representatives of relevant special interest groups +- Vote over 2 weeks with a post on the forum +- Create 4 channels for Core Dev, Apps, Communication and Infrastructure +- A release should be validated by all 4 (or 5) interest groups +- Communication in French and English +- Directory or group contact for new people. Maybe just a directory to know who's who. https://yunohost.org/#/contribs to be completed. And to be highlighted. +- Proposal to leave YunoHost members auto-determine themselves -> How to manage access rights? + +## Current means of communication + +- Get-togethers at events +- Weekly Mumble meetings +- [Forum](https://forum.yunohost.org). +- Mailing lists: [contrib](https://list.yunohost.org/cgi-bin/mailman/listinfo/contrib) and [apps](https://list.yunohost.org/cgi-bin/mailman/listinfo/apps) +- [Bugtracker Redmine](https://dev.yunohost.org). +- Git Forge for code reviews: [YunoHost](https://github.com/YunoHost) [YunoHost-Apps](https://github.com/YunoHost-Apps). +- [XMPP chat rooms](https://yunohost.org/#/chat_rooms) From 576231b3ccc5673ef399fbbcf7d1ffa009cf14e9 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Date: Wed, 1 Feb 2017 23:01:13 +0100 Subject: [PATCH 4/7] minor corrections --- 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 c8da7379..d5974c23 100644 --- a/yunohost_project_organization_fr.md +++ b/yunohost_project_organization_fr.md @@ -124,11 +124,11 @@ Tout le monde peut changer de positions à n'importe quel moment, mais il est de - 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) + - 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ée (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) + - mais il se peut qu'il y ait 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 @@ -138,7 +138,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) - - 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. + - Pour une décision 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. ###### Micro décision: @@ -148,7 +148,7 @@ 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é cette prise de décision peux donner son avis). 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 peut 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: From dab0e989bc2a9f350465921f55a8eb4034211f67 Mon Sep 17 00:00:00 2001 From: Moul Date: Thu, 2 Feb 2017 08:05:28 +0100 Subject: [PATCH 5/7] [fix] surplus word. fix group name. --- yunohost_project_organization.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yunohost_project_organization.md b/yunohost_project_organization.md index 173e3195..ec280548 100644 --- a/yunohost_project_organization.md +++ b/yunohost_project_organization.md @@ -27,7 +27,7 @@ Historically, the project has been very close to initiatives which aim at creati ### A theme-based, open structure -The objective of the the YunoHost organisation is to allow the largest number of people to contribute to software improvement, whether from a technical point of view (development, application packaging) or otherwise (communication, end-user assistance, documentation, etc.). Inspired by the projects which were reviewed at a recent event (Kodi, Debian, Django, Fedora, Wikipedia, etc.) and by ideas stemming from YunoHost contributors (Jérôme, Bram, opi, scith, ju), a decision was made to organise work by special interest groups, federated thanks to a board to key contributors. +The objective of the YunoHost organisation is to allow the largest number of people to contribute to software improvement, whether from a technical point of view (development, application packaging) or otherwise (communication, end-user assistance, documentation, etc.). Inspired by the projects which were reviewed at a recent event (Kodi, Debian, Django, Fedora, Wikipedia, etc.) and by ideas stemming from YunoHost contributors (Jérôme, Bram, opi, scith, ju), a decision was made to organise work by special interest groups, federated thanks to a board to key contributors. YunoHost project organisation schema @@ -96,7 +96,7 @@ To be a member of the Board does not imply that you have access to all resources Decisions to be taken can be of 2 kinds: -1. for a group (for example, "to merge a PR" would be assumed by the Apps Group whereas to "post a tweet" would fall under the responsibility of the Communication Group) +1. for a group (for example, "to merge a PR" would be assumed by the Dev Group whereas to "post a tweet" would fall under the responsibility of the Communication Group) 2. for the overall project (for instance, to decide on a release with new features) If a consensus is not reached over a decision within a particular group, they must refer to the Board for further discussions. If no consensus has been reached, the proposal will be submitted to a vote by all contributors. From 1a7cf899ac2e38713bd6482be4c9c10e8586ea65 Mon Sep 17 00:00:00 2001 From: Moul Date: Thu, 2 Feb 2017 08:18:02 +0100 Subject: [PATCH 6/7] [fix] proofreading. --- yunohost_project_organization.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/yunohost_project_organization.md b/yunohost_project_organization.md index ec280548..f592faca 100644 --- a/yunohost_project_organization.md +++ b/yunohost_project_organization.md @@ -90,7 +90,7 @@ The Board is independent of groups and brings together contributors wishing to g - call on the whole community of contributors (or even end-users) when a decision appears divisive between groups or within the Board To take part at Board-level votes, you must have contributed to the project and have obtained a right to vote (or right of entry) at the Board. This right is delivered by the Board (and may be upon request). The Board is free at any moment to change its decision process. -To be a member of the Board does not imply that you have access to all resources (infrastructure, deposit, etc.). +To be a member of the Board does not imply that you have access to all resources (infrastructure, repositories, etc.). ### A decision process based on soft consensus @@ -116,8 +116,8 @@ If a consensus is not reached over a decision within a particular group, they mu Anyone can change their position at any moment, but it's expected to let the group react if necessary (e.g. avoid going from positive to negative to reject a proposal altogether after just 3 minutes). - "simple" replies - - "I agree" -> counts as a positive view - - "It seems good to me, but I'd rather abide by others' opinion" -> if there are only such views (or like the next one) and at least one positive view and the due date is past, then the proposal is accepted + - "I agree" –> counts as a positive view + - "It seems good to me, but I'd rather abide by others' opinion" –> if there are only such views (or like the next one) and at least one positive view and the due date is past, then the proposal is accepted - "no views" / "I'm not in a position to express a helpful view (e.g. I can't code in X)" - delayed reponse - request for clarification, in which case the decision is suspended @@ -236,14 +236,14 @@ For the distribution group, since there's only Heyyounow at the moment, the Boar - XMPP server migration - Hosting of our Git forge - Review the build system: stable <— testing <— branches -- Freeze cohost.me and abandoning services +- Freeze nohost.me and abandoning services #### Core Dev Group - How to manage pull requests? - Each ticket gives rise to a branch and a ticket; you make a pull/merge request, the community verifies that it works, a decision is taken to integrate. #### Apps Group -- For community-based apps, issues are on Github as they should be, but discussions are on the forum +- For community-based apps, issues are on GitHub as they should be, but discussions are on the forum #### Communication Group - Bug report from the forum From 6fb76b878fe3a5216515eacc194eec05bc568022 Mon Sep 17 00:00:00 2001 From: Moul Date: Thu, 2 Feb 2017 21:30:08 +0100 Subject: [PATCH 7/7] =?UTF-8?q?[mod]=20use=20=E2=80=9Ccouncil=E2=80=9D=20i?= =?UTF-8?q?nstead=20of=20=E2=80=9Cboard=E2=80=9D.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yunohost_project_organization.md | 50 ++++++++++++++++---------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/yunohost_project_organization.md b/yunohost_project_organization.md index f592faca..2a925c6d 100644 --- a/yunohost_project_organization.md +++ b/yunohost_project_organization.md @@ -5,7 +5,7 @@ This document aims at allowing contributors to feel legitimate in contributing to the YunoHost project together with collective feedback. The project is community-based and hasty decisions made by a restricted group of contributors can generate frustrations at a later stage. To address this issue, the proposed solution here is to ensure that decisions are taken collectively and that they are sufficiently thought out. -An advisory board provides orientations for the evolution of the YunoHost project and special interest groups allow more efficient contribution in relation to each specific topic. +An advisory council provides orientations for the evolution of the YunoHost project and special interest groups allow more efficient contribution in relation to each specific topic. ## Definition of YunoHost @@ -27,7 +27,7 @@ Historically, the project has been very close to initiatives which aim at creati ### A theme-based, open structure -The objective of the YunoHost organisation is to allow the largest number of people to contribute to software improvement, whether from a technical point of view (development, application packaging) or otherwise (communication, end-user assistance, documentation, etc.). Inspired by the projects which were reviewed at a recent event (Kodi, Debian, Django, Fedora, Wikipedia, etc.) and by ideas stemming from YunoHost contributors (Jérôme, Bram, opi, scith, ju), a decision was made to organise work by special interest groups, federated thanks to a board to key contributors. +The objective of the YunoHost organisation is to allow the largest number of people to contribute to software improvement, whether from a technical point of view (development, application packaging) or otherwise (communication, end-user assistance, documentation, etc.). Inspired by the projects which were reviewed at a recent event (Kodi, Debian, Django, Fedora, Wikipedia, etc.) and by ideas stemming from YunoHost contributors (Jérôme, Bram, opi, scith, ju), a decision was made to organise work by special interest groups, federated thanks to a council to key contributors. YunoHost project organisation schema @@ -76,21 +76,21 @@ Groups are open to all contributors willing to participate to the development of In order to facilitate its management, each group names a coordinator (and a deputy) whose role is: - to welcome and to federate new regular contributors to the group -- to keep the Board informed of decisions taken within the group (see next point) +- to keep the Council informed of decisions taken within the group (see next point) The choice of a communication tool is left to each group depending on its relevance (forum, chat, email, etc.) -#### Definition and structure of the Board +#### Definition and structure of the Council -YunoHost is growing and it's important to maintain a coherence among all the groups. However, it is impossible to impose on every member within every group to take interest or to get involved in all aspects of the project (due to time and competency constraints). To address this, it has been suggested that a meta-group be created where every group has at least one representative: hence the Board. -The Board is independent of groups and brings together contributors wishing to get involved in the project to the maximum extent. It's role is to: +YunoHost is growing and it's important to maintain a coherence among all the groups. However, it is impossible to impose on every member within every group to take interest or to get involved in all aspects of the project (due to time and competency constraints). To address this, it has been suggested that a meta-group be created where every group has at least one representative: hence the Council. +The Council is independent of groups and brings together contributors wishing to get involved in the project to the maximum extent. It's role is to: - take important decisions affecting YunoHost which are dependent on one single group (for instance, changing the wiki engine) - regularly follow up on the overall aspect of the project to ensure its cohesion (Mumble meeting) -- call on the whole community of contributors (or even end-users) when a decision appears divisive between groups or within the Board +- call on the whole community of contributors (or even end-users) when a decision appears divisive between groups or within the Council -To take part at Board-level votes, you must have contributed to the project and have obtained a right to vote (or right of entry) at the Board. This right is delivered by the Board (and may be upon request). The Board is free at any moment to change its decision process. -To be a member of the Board does not imply that you have access to all resources (infrastructure, repositories, etc.). +To take part at Council-level votes, you must have contributed to the project and have obtained a right to vote (or right of entry) at the Council. This right is delivered by the Council (and may be upon request). The Council is free at any moment to change its decision process. +To be a member of the Council does not imply that you have access to all resources (infrastructure, repositories, etc.). ### A decision process based on soft consensus @@ -99,7 +99,7 @@ Decisions to be taken can be of 2 kinds: 1. for a group (for example, "to merge a PR" would be assumed by the Dev Group whereas to "post a tweet" would fall under the responsibility of the Communication Group) 2. for the overall project (for instance, to decide on a release with new features) -If a consensus is not reached over a decision within a particular group, they must refer to the Board for further discussions. If no consensus has been reached, the proposal will be submitted to a vote by all contributors. +If a consensus is not reached over a decision within a particular group, they must refer to the Council for further discussions. If no consensus has been reached, the proposal will be submitted to a vote by all contributors. #### The decision process in detail @@ -109,7 +109,7 @@ If a consensus is not reached over a decision within a particular group, they mu - an end-date is automatically set for every type of proposition. This date is used for various reasons: - to leave enough time for everyone to express themselves and to avoid hasty decisions - to maintain a certain rhythm otherwise if the quota of responses is reached then there's no need to wait for everyone's views within a group - - the quota is evaluated according to people registered in a group (or the Board, depending on the situation) who have expressed their desire to be considered as a regular voter => for instance kload could wish to give their opinion at a particular occasion, but with no intention of applying as a active voting member at the Board + - the quota is evaluated according to people registered in a group (or the Council, depending on the situation) who have expressed their desire to be considered as a regular voter => for instance kload could wish to give their opinion at a particular occasion, but with no intention of applying as a active voting member at the Council - so it can be postponed upon simple request by any one member of the group—and only the group, not all contributors. ##### 2) Opening a discussion with several possible responses: @@ -169,7 +169,7 @@ Then a member of a group can announce their decision as effective (and proceed w ## Composition of groups - Distribution : Heyyounow -- Board : Bram, ju, ljf, Maniack, Moul, opi, theodore +- Council : 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 @@ -186,7 +186,7 @@ _Values are rounded (e.g. 5.4 => 5 and 5.5 => 6)._ | | **Minor** | **Standard** | **Major** | |----------------------|---------|----------|---------| -| **Board** | +| **Council** | | Standard closure | 2 | 4 | 5 | | Anticipated closure | 3* | 5 | | Closure by voting | 5 | 5 | 6 | @@ -207,28 +207,28 @@ _Values are rounded (e.g. 5.4 => 5 and 5.5 => 6)._ | Anticipated closure | 3* | 3 | | Closure by voting | 3 | 3 | 4 | | **Communication -> Doc** | -| Standard closure | 1 | 1 | Board | +| Standard closure | 1 | 1 | Council | | Anticipated closure | 2* | 2* | -| Closure by voting | Board | Board | Board | +| Closure by voting | Council | Council | Council | | **Distribution** | -| Standard closure | 1 | Board | Board | -| Anticipated closure | 1 | Board | -| Closure by voting | 1 | Board | Board | +| Standard closure | 1 | Council | Council | +| Anticipated closure | 1 | Council | +| Closure by voting | 1 | Council | Council | \* of which 1 view can be external to the group For the translation group, the process needs to be adapted. -For the documentation group, the number of views for an anticipated closure of a minor decision eat for the moment limited (there are only 2 people in the group). The other types of decision are taken by the Board. +For the documentation group, the number of views for an anticipated closure of a minor decision eat for the moment limited (there are only 2 people in the group). The other types of decision are taken by the Council. -For the distribution group, since there's only Heyyounow at the moment, the Board will have the task of making Standard and Major decisions. +For the distribution group, since there's only Heyyounow at the moment, the Council will have the task of making Standard and Major decisions. ### Pending decisions for the groups -#### Board -- Should we elect Board members rather than co-opt them? There's a risk of it becoming a "political campaign"! -- Should special interest group membership be restricted to cooptation like for the Board? -- Proposal to change Board to Collegiate +#### Council +- Should we elect Council members rather than co-opt them? There's a risk of it becoming a "political campaign"! +- Should special interest group membership be restricted to cooptation like for the Council? +- Proposal to change Council to Collegiate - Migrate the project infrastructure server under YunoHost (with prepackaged apps like pad, dogs and mumble?) - Let's Encrypt - New system for documentation @@ -253,7 +253,7 @@ For the distribution group, since there's only Heyyounow at the moment, the Boar - How to organise rights on the forum (if groups want to vote on the forum) #### Miscellaneous -- Request on the forum with notification to the Board members and to representatives of relevant special interest groups +- Request on the forum with notification to the Council members and to representatives of relevant special interest groups - Vote over 2 weeks with a post on the forum - Create 4 channels for Core Dev, Apps, Communication and Infrastructure - A release should be validated by all 4 (or 5) interest groups