-
Notifications
You must be signed in to change notification settings - Fork 23
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
WIP: Add first draft of governance and contributor ladder documentation. #72
base: main
Are you sure you want to change the base?
Conversation
Very WIP. Signed-off-by: Josh Berkus <josh@agliodbs.com>
GOVERNANCE.md
Outdated
The overall Open Cluster Management umbrella project is governed by a Steering | ||
Committee, which is selected as follows: | ||
|
||
* Two Maintainer representatives from each member Subproject |
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.
should we have a total number of Steering Committee? Currently there are 17 repos, which I think belongs to 4 sub projects.
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.
Oh, I thought there were only two subprojects. In that case, does it make more sense to have one rep per subproject?
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.
create a PR #75 to define the subproject clearer
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.
|
||
Each of the contributor roles below is organized into lists of three types of things. "Responsibilities" are things that contributor is expected to do. "Requirements" are qualifications a person needs to meet to be in that role, and "Privileges" are things contributors on that level are entitled to. | ||
|
||
Open Cluster Management is a project made up of several Subprojects, such as Foundation and Policy. This contributor ladder applies to each Subproject. As such, a contributor advances in each Subproject separately, and may be a Member in one Subproject while being a Maintainer in another. For the Open Cluster Management project overall, the contributor is considered to be the highest level they have reached in any Subproject. Thus, someone who is a Project Member in one Subproject is a Project Member of OCM overall. |
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.
Not quite sure what this sentence is trying to say: "For the Open Cluster Management project overall, the contributor is considered to be the highest level they have reached in any Subproject."?
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.
So, if you're a Maintainer in Policy Manager, then you're considered a Maintainer in Open Cluster Management, even if you don't contribute to API at all.
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 probably good to use the example in the comment instead of the one now to illustrate this idea.
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.
Agreed. Can you suggest two appropriate subprojects for the example?
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.
CONTRIBUTOR_LADDER.md
Outdated
* May give commands to CI/CD automation | ||
* Entitled to vote in the [TODO: appropriate election] | ||
* Can be added to GitHub teams in the Open Cluster Management org | ||
* Can recommend other contributors to become Org Member |
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.
typo: an Org member
* Responsibilities include: | ||
* Continues to contribute regularly, as demonstrated by having at least 25 contributions a year, as demonstrated by Devstats project metrics. | ||
* Requirements: | ||
* Must have successful contributions to the project, including at least one of the following: |
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.
Is there a script showing the current potential pool of members that match the explicit criteria, versus equivalent combination?
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.
not yet. This is annoyingly one of the things that will be easier to answer if we get accepted to CNCF and gain access to devstats.
* Commits to being responsible for that specific area | ||
* Is supportive of new and occasional contributors and helps get useful PRs in shape to commit | ||
* Additional privileges: | ||
* Has GitHub or CI/CD rights to approve pull requests in specific directories |
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.
At least some of the open-cluster-management repos have separate lgtm and approve. Is it intentional that this Reviewer role holds approving power?
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.
Yes. Org members have the right to LGTM. Note the "in specific directories" they idea is that Reviewer is an expert on one particularly piece of code/docs, as opposed to having root approval.
CONTRIBUTOR_LADDER.md
Outdated
It is important for contributors to be and stay active to set an example and show commitment to the project. Inactivity is harmful to the project as it may lead to unexpected delays, contributor attrition, and a loss of trust in the project. | ||
|
||
* Inactivity is measured by: | ||
* Periods of no contributions for longer than 12 months |
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.
If memory serves, kube uses a longer period to account for parental leave policies in some countries.
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.
Oh! Good point, change to 18months?
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.
18 months sounds good based on what k8s community has.
|
||
Each of the contributor roles below is organized into lists of three types of things. "Responsibilities" are things that contributor is expected to do. "Requirements" are qualifications a person needs to meet to be in that role, and "Privileges" are things contributors on that level are entitled to. | ||
|
||
Open Cluster Management is a project made up of several Subprojects, such as Foundation and Policy. This contributor ladder applies to each Subproject. As such, a contributor advances in each Subproject separately, and may be a Member in one Subproject while being a Maintainer in another. For the Open Cluster Management project overall, the contributor is considered to be the highest level they have reached in any Subproject. Thus, someone who is a Project Member in one Subproject is a Project Member of OCM overall. |
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 probably good to use the example in the comment instead of the one now to illustrate this idea.
The process of becoming a Reviewer is: | ||
<!-- TODO: define your exact process here. What's below is given as an example process for a project that uses Owners files and has defined teams for each project area --> | ||
1. The contributor is nominated by opening a PR against the appropriate repository, which adds their GitHub username to the OWNERS file for one or more directories. | ||
2. At least two members of the team that owns that repository or main directory, who are already Approvers, approve the PR. |
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.
what about a new repository that has no contributors/members yet?
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 could you have repository with no contributors? Someone had to write the code.
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.
... does suggest that having a "bootstrapping" para for new projects might be a good idea, though.
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 could you have repository with no contributors? Someone had to write the code.
"Member" status takes 3 months and the team that owns that repository may not have any approvers.
* Must have been contributing for at least 3 months
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.
yeah, this comes down to Bootstrapping again.
* Determining strategy and policy for the project | ||
* Participating in, and leading, community meetings | ||
* Requirements | ||
* Experience as a Reviewer for at least 3 months |
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.
What about a new repository that is less than 3 months old?
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.
My suggestion would be that any project less than 3 months old is unlikely to be promoting folks aside from the original founding team.
* Reviewing at least 10 PRs per year | ||
* Helping other contributors become reviewers | ||
* Requirements: | ||
* Experience as a Contributor for at least 3 months |
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.
What about a new repository that is less than 3 months old?
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 likely is it that a new subproject would want to elevate people to Organization Member or Reviewer based on their contributions solely to that subproject in its first three months of existence, but after bootstrapping?
The reason for the time requirement, btw, is to avoid a lot of assignment of higher-level permissions based on "X has just been hired". In other projects, the assignment of community permissions on hiring to people who have not yet contributed anything at all has resulted in huge bloated lists of users with privileges that someone else then needs to audit and purge. A time requirement also makes things fairer to freelance contributors.
Committee, which is selected as follows: | ||
|
||
* Two Maintainer representatives from each member Subproject | ||
* Two general "Community Representatives" |
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.
Is there any guidance on the TOC organization distribution? I think CNCF has some bar on the number of organizations on the maintainer/TOC list
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 doesn't. Nor does it have a limit on the number of maintainers per project; grpc has 40+ because of their system.
GOVERNANCE.md
Outdated
|
||
Open Cluster Management and its leadership embrace the following values: | ||
|
||
* [TODO: List of Values] |
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.
Openness: Open Cluster Management is an open source community driven project.
Distributed design: Distributed asynchronous ownership, collaboration, communication and decision making are the cornerstones of our world-wide community.
Fairness: Ideas and contributions are accepted according to their technical merit and alignment with project objectives, scope, and design principles.
Diversity and inclusion: Everyone are welcome to participate in the Open Cluster Management project regardless of gender, gender identity, sexual orientation, disability, race, ethnicity, age, religion or economic status.
CC @juliana-hsu
### Maintainer | ||
Description: Maintainers are very established contributors who are responsible for one or more Subprojects. As such, they have the ability to approve PRs against any area of that Subproject, and are expected to participate in making decisions about the strategy and priorities of that Subproject and Open Cluster Management as a whole. | ||
|
||
A Maintainer must meet the responsibilities and requirements of a Reviewer, plus: |
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.
Our community is still very small and super concentrated. I wonder if we can have some exceptions such as 2 TOC members can nominate a new member to be a reviewer?
GOVERNANCE.md
Outdated
The overall Open Cluster Management umbrella project is governed by a Steering | ||
Committee, which is selected as follows: | ||
|
||
* Two Maintainer representatives from each member Subproject |
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.
As we discussed in the meeting, does it make sense to have a bootstrap TOC?
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.
Yes. Do we need to spell that out in this charter?
from #72 (comment) I think this is a good point. While I'm in favor of having some manner of sustained effort over time as a requirement to avoid drive-by contributions and ensure familiarity with organization standards, in a new organization this can place a person in the position of starting a new project and not having direct control over how it evolves. Could we consider a different mechanism as we get started? Perhaps instead of a duration requirement for the first year, we work based on a strict referral/approval system where existing members (we'll have enough to at least get started) make the decision. This is how I remember the early days of kube when the community was very small and we mostly knew each other: when you thought you had the credibility and experience, you asked for rights and you got them (or didn't). While the project is small, it's less likely to have disruptive actors and a request could be paired with, "show me what you've done here". And since most concerns are likely concerns about a company losing control of its own technology, perhaps waiving the contribution duration could always require multiple member company "+1" votes from the beginning to avoid spamming. After a year, we could require the contribution duration without less concern about excluding the early projects we need to foster. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: jberkus The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@deads2k this all sounds like optimizing around a problem that is highly unlikely to every actually occur. The originators of any new subproject would be "grandfathered" into their roles for that subproject, and I wouldn't expect additional promotion activity around new contributors in the 90 days after a new subproject is accepted. |
- added Values section per Mike Ng - added bootstrap section for new subprojects - changed no contribution period Signed-off-by: Josh Berkus <josh@agliodbs.com>
New version. Changes made:
Please review! |
@jberkus: PR needs rebase. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Draft of Contributor Ladder and Governance docs for the community repo based on the federated subproject structure written for Konveyor and adopted as a template by the CNCF.
Note that there's some new process involved in adopting this structure, but it's what we'll eventually need if we're successful in recruiting new contributors and sponsors. Worth discussing if we want to phase in some parts like the elections.
Please discuss. Open questions:
Contributor Ladder
Governance
Please mark this up so we can get to the set of rules we all want!
@mdelder @qiujian16 @juliana-hsu
Signed-off-by: Josh Berkus josh@agliodbs.com