-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GOVERNANCE.md: remove “Community Processes” in favor of “GOVERNANCE.md” #21067
base: master
Are you sure you want to change the base?
Conversation
297d500
to
d41bbdf
Compare
2b2819b
to
028d7b9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your work on this! Mostly editorial comments below from reading through the preview (deep link).
They are one or more maintainers which were appointed for a specific release by the Virtual Maintainer Assembly (VMA). | ||
Their duties include setting the dates for feature freeze for the release, enforcing the feature freeze, coordinating the (mostly automated) tests of a release, writing the release notes and creating the tags defining the release and its release candidates. | ||
The full set of tasks can be found in the document [Managing a Release]. | ||
Their duties end once the release is out or if all bug-fixing point releases are out. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quoting from #21067 (comment) as this is somewhat lost in truncation.
also, this is a bit unclear. How do we know that "all bug-fixing point releases are out"? Just before starting a new (soft/hard) feature freeze for the next release ?
I think that is something we need to decide on. Because I don't know an answer to your questions.
GOVERNANCE.md
Outdated
Release managers might need to contact GitHub admins to configure the branch protection rules for the release branch. | ||
Beyond those technical duties and access rights, they do not have any special rights among maintainers. | ||
They are picked by the maintainers, usually based on seniority. | ||
The maintainers try to take care to spread the admin responsibility over several organizations within the maintainer body. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion: organizations => entities/institutions ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I used "organizations" throughout the text. Intuitively, I would not know what is meant with “entities” and “institutions”, in my opinion, would exclude, e.g., independent people who just work on third-party funding.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see what you mean, but "organization" also exclude non-affiliated people? What's an organization of 1 ;)
The "balance of power" subtly hinted at here seems fuzzy. How about something like "spread admin responsibilities over the different stakeholders" ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am fine with stakeholders. See 15934ea.
PS: It's not just “balance of power” in the ephemeral sense, but also to reduce bus factors.
0041e06
to
3887f46
Compare
Squashed but kept co-authorship of all whose suggestions so far have been included. |
### Moderators | ||
|
||
Moderators are responsible to enforce the values of the RIOT community within its discussion platforms. Each platform usually has its own set of moderators, a list of which can be found there. | ||
The forum moderators, e.g., can be found [here](https://forum.riot-os.org/g/moderators) (link requires you to be logged into the forum). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also lost in trunctation #21067 (comment):
We currently don't have any appointed moderators for other communication channels, do we? This text makes it sound as if we had (or at least would like to have) them, but doesn't give a hint on what those are.
[…] No, we don't have.
With the chats it usually goes the “IRC way”. People are appointed somewhat on merrit and on how active they are. Since the moderation roles in the chats is, however, a little bit different than on the forum, I don't think there needs to be a moderator appointment procedure for that.
With the few mailing lists remaining, the moderators are mostly sorting out spam, so while similar to forum moderation, I also don't think appointment procedures are necessary here.
A forum moderator, on the other hand, actually can moderate a discussion on the forum, in the traditional sense of the word. They can edit posts, they can split out conversations in new topics and make forum topics a “wiki post” (so something everyone can edit). In that regard, they have much more power and require a certain level of trust from the community.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work @miri64, good setup!
Some general remarks:
Nice that the roles within the community are described. Some descriptions of how one can get into or out of a role are described very general, not specific. On that I would suggest:
- Keep it general if this works/has worked in the past and there were no issues or ambiguities that caused trouble. That gives flexibility to react appropriately when something would arise in the future - and prevents too much bureaucracy ;).
- Make it specific if there were difficulties in the past or if that can be expected in the future on deciding who gets into or out of a certain role. This gives guidance of what procedure to follow so that everyone has a level playing field.
- I've added this in the text when relevant; please add on where you think more or less specific description would be handy.
Do we want to add a contributor ladder?
- This would make the 'career path' of roles within the project clear, including what responsibilies and requirements are given/needed.
- If so, the description of roles in this governance document can be much shorter and there can be a reference to the contributor ladder.
- It is nice to have from an an-boarding perspective, but can also be done/added at a later moment
And last suggestion:
- add a reference to the governance doc in the readme.
|
||
#### Becoming a Maintainer | ||
|
||
Maintainers can propose to give maintainer status to contributors that have been noticed as particularly active in some domain of RIOT. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Question from my side: can a contributor also actively ask for becoming maintainer? This would make it less of a 'waiting until someone may ask me' and gives some responsibility to a contributor too.
If yes: can there be an addition to the text, stating this possibility and a description of how to do that (how to reach out, to whom etc)?
If no: than don't add :).
(I would advice to describe here how the procedure currently is, so if the procedure is someone is being asked only, than keep it this way. If it has happened before that people reach out by themselves and that is desirable, than change it)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the past it was very obvious in their behavior if a contributor intended to be a maintainer (reviewing PRs even without the rights to merge and writing issues), but in general there is no precedence of a would-be maintainer outright asking. So I'd say let's keep it as is, but I will put this in my forum summary of the current state of discussion.
continue fulfilling their project duties. | ||
|
||
Maintainers may also be removed after being inactive, upon failure to fulfill their | ||
Maintainer responsibilities, because of violating the Code of Conduct, or for other reasons. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How is decided what 'failure to fulfill their Maintainer responsibilities' or 'for other reasons' is and thus when someone should be removed as maintainer?
Answering this question (and adding something in this text) is relevant if this is a point where a healthy working process can get stuck (e.g., not getting to an agreement whether a maintainer should be removed or not, resulting in nothing happening and more of these situations can occur in the future).
If this is not expected to become an issue, no additions to this text are needed. (referencing to my general 'describe the process steps when it prevents big problems, otherwise a general description is ok').
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't expect this to become an issue. But maybe others do?
Release managers might need to contact GitHub admins to configure the branch protection rules for the release branch. | ||
Beyond those technical duties and access rights, they do not have any special rights among maintainers. | ||
They are picked by the maintainers, usually based on seniority. | ||
The maintainers try to take care to spread the admin responsibility over several project stakeholders within the maintainer body. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is not directly clear to me what is meant here with stakeholders. I saw the earlier discussion on it, and therefore understand the choosing of this word. This may not be clear to someone fresh reading the text.
Maybe there can be added a word overview to the document, explaining what is meant with 'stakeholders' in this document? Something showing that within the RIOT community there are many people who are part of an organization/institute and work from that institute on RIOT, but we also have individuals not belonging to an organization and want to address them all alike.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Something like 30a2f85?
> objection notwithstanding. | ||
|
||
Within the RIOT community, the duties of an IETF working group chair fall to maintainers knowledgeable in the area of expertise. | ||
This knowledgability is determined by their own contributions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice to have a person who can act as tiebreaker!
How exactly is decided who this is? As in: if there is disagreement on a topic, how is decided who the maintainers knowledgeable the area of expertise is, exactly? Can that be described here?
If there is disagreement on who this person is, what can be used as tiebreaker to decide?
(to answer this question it helps to ask yourselves: what did successfully work in the past?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How exactly is decided who this is? As in: if there is disagreement on a topic, how is decided who the maintainers knowledgeable the area of expertise is, exactly? Can that be described here?
Within the IETF there working groups with one chair are uncommon. So why can't multiple maintainers be the deciders here as well? Rough consensus means that the opinions of experts also should not be disregarded, so this describes exactly this case.
If there is disagreement on who this person is, what can be used as tiebreaker to decide?
(to answer this question it helps to ask yourselves: what did successfully work in the past?)
So far a tiebreaker was not needed, if I remember correctly.
Within the RIOT community, the duties of an IETF working group chair fall to maintainers knowledgeable in the area of expertise. | ||
This knowledgability is determined by their own contributions. | ||
On decisions regarding a release, the release manager(s) take this position. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How does this work with decision regarding documentation?
And regarding strategy setting/vision/goals?
Here too: what has worked successfully on (controversial) decisions in documentation in the past, and what procedures lie behind it that can be used for future decision making? And what was successful for taking strategy decisions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How does this work with decision regarding documentation?
Documentation is typically about something code related, so I'd say the maintainer responsible for the code (after all, they could e.g. also see immediately that the doc is factually incorrect).
And regarding strategy setting/vision/goals?
We have our maintainers / experts there as well (see #21067 (comment) ff). :-)
And a general comment relevant to the underlying governance structure (but not needed to add in the text), is the influence of organizational hierarchy. The RIOT community consists of many people who are working at organizations/companies/institutes with formal hierarchy, which means there are managers/employers/professors and subordinates/employees/students with a dependency relationship. This may effect the level of freedom an individual community member experiences when sharing an opinion and/or the tacit weighting of an individual's opinion. These sometimes double roles (hierarchical on organizational level, equal on community level) are handy to keep in mind with decision making processes. It is something we may remind each other of every now and then, so that indeed, as described in this document, no individual dictates decisions and all participants feel equal able to take part and be heard in discussions :). |
Thanks for your review @jkarinkl! Some remarks on the non-inline comments: From #21067 (review)
(also somewhat in response to @emmanuelsearch's #21067 (comment)) I somewhat had it intentionally somewhat general/fuzzy, since I don't think we currently have very specific rules for these things in place and currently the document describes the status quo. Should we be more specific? If yes, what are the specifics? This is something, I guess we need to decide as a community not just arbitrarily by me. If someone has specific problems that we had in the past that are currently not covered by the document, please point them out and give proposals how to solve them.
I would leave that to a follow-up PR.
See 2a3a4fe. From #21067 (comment)
So do you think this should be explicitly mentioned in the GOVERNANCE.md? |
For those who missed it: I posted a digest of the current state of discussion and open questions to the forum: https://forum.riot-os.org/t/moving-from-community-processes-to-governance-md/4433/2 |
02f6623
to
5909daa
Compare
Rebased and squashed to resolve merge conflicts. |
Co-Authored-By: Matthias Waehlisch <[email protected]> Co-Authored-By: mguetschow <[email protected]> Co-Authored-By: Emmanuel Baccelli <[email protected]> Co-authored-by: jkarinkl <[email protected]>
5909daa
to
4f6d46d
Compare
Another rebase due to the fix in #21090. |
Contribution description
As discussed during the RIOT summit (see @jkarinkl's excellent talk), we need a GOVERNANCE.md document. After we discussed this among maintainers for the past week, we came to the conclusion that it's best to move what is still relevant from our old Community Processes and update it to our current understanding on how the community works. The result is the document introduced here.
Digest week 1: https://forum.riot-os.org/t/moving-from-community-processes-to-governance-md/4433/2
Testing procedure
Read it and if you do not agree with something, voice your opinion.
Issues/PRs references
Requires at least #21066 to be merged for the links to the list of maintainers to work properly.(merged)#21062 would be better, but this still needs some (technical issues solving) love.(now merged as https://www.riot-os.org/maintainers.html)