-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Document how maintainers are added/removed (e.g., GOVERNANCE.md) #7149
Comments
Ok ready to start working on this, I'd like to PR a draft of what a governance.md would look like, however we should come to a consensus on what we want the process to look like, so taking at a stab at it with some ideas off the bat and then we can adjust over time. Looking at the existing OWNERS it's clear that there is a separation of roles as far as provider maintainers and a lead. In our quest to un-busfactor ourselves I think it's reasonable to keep this existing structure, but just ensure that we are adding people to it. Here are some examples of fleshed out member roles, I think these are too big city for us and we don't need most of it, but they do try to define what the role should look like, specifically the requirements of what each role could be:
So off the bat I'm thinking:
We could do something like "reviewed at least 10 PRs", "been around for 3 months", and all of those, which would give us an idea of the amount of work/responsibility that is expected of each role, but we also know that metrics like this can be misleading, so a method of peer nomination would be a great supplement to this. We should also think about codifying what the responsibilities are for both groups. Currently we have an informal process of submitting an issue or bringing up an idea at the community meeting, and I'm leaning towards also landing an enhancement process concurrently with this (maybe even as a prereq). Our last status for an enhancement process was to add a template so that we can start writing specs. Also not sure what the relationship is with having people in the github org would entail, but we should probably have ideas around what to do there. Thoughts/additions? |
Here is a draft, I'd like to discuss this at the next community meeting, hash out the gist, and then I'll PR it: This document describes the set of roles individuals might have within the Cloud Custodian (c7n) community, the requirements of each role, and the privileges that each role grants. Note that most contributions to Cloud Custodian are by drive-by or casual contributions. These general contributions are not listed as a specific role, this document defines contributors that endeavor for more responsibility and maintainership of the project. Role SummaryThe following table lists the roles we use within the Cloud Custodian community. The table describes:
Note that the GitHub structure is a reflection of the MAINTAINERS. These leads are free to use their judgement to set the bar for what is required to become an approver and/or owner for repos they are responsible for. MembersEstablished community members are expected to demonstrate their adherence to the principles in this document, familiarity with project organization, roles, policies, procedures, conventions, etc., and technical and/or writing ability. Members are continuously active contributors in the community. They can have issues and PRs assigned to them, participate in working group meetings, and pre-submit tests are automatically run for their PRs. Members are expected to remain active contributors to the community. All members are encouraged to help with the code review burden, although each PR must be reviewed by an official Maintainer. When reviewing, contributors should focus on code quality and correctness, including testing and factoring. Members might also review for more holistic issues, but this is not a requirement. Requirements
Responsibilities and privileges
Members who frequently contribute code are expected to proactively perform code reviews and work towards becoming an approver for the area that they are active in. MaintainerCode maintainers are able to both review and approve code contributions. While code review is focused on code quality and correctness, approval is focused on holistic acceptance of a contribution including: backward / forward compatibility, adhering to API and flag conventions, subtle performance and correctness issues, interactions with other parts of the system, etc. Maintainership status is scoped to a part of the codebase. Requirements
Responsibilities and privileges
Lead maintainerRequirements
Responsibilities and Privileges
Conflict resolution and votingIn general, we prefer that technical issues and maintainer membership are amicably worked out between the persons involved. If a dispute cannot be decided independently, the maintainers can be called in to decide an issue. If the maintainers themselves cannot decide an issue, the issue will be resolved by voting. The voting process is a simple majority in which each lead maintainer receives two votes and each normal maintainer receives one vote. Applying for membership
Inactive membersMembers are continuously active contributors in the community. A core principle in maintaining a healthy community is encouraging active participation. It is inevitable that people's focuses will change over time and Members/Maintainers with an extended period away from the project with no activity in the past year (12 months) will be placed in "Emeritus" status in the OWNERS.md and will be required to go through the membership process again after re-familiarizing themselves with the current state. How inactivity is measuredInactive members are defined as maintainers in the OWNERS.md file with no contributions to the project within 12 months. This is measured by the CNCF DevStats project. Devstats does not take into account non-code contributions, however since placing a maintainer into "Emeritus" is not automated, it is up to the discretion of the existing maintainers to determine if a person's non-code contributions are significant enough for the person to be considered a maintainer/member. Become active againIf an "Emeritus" member wishes to become active they may reapply through the process. Existing maintainers may waive some (or all) requirements for reactivation based on consensus and needs of the project. Except as otherwise noted, the content of this page is licensed under the |
Notes from community meeting from 24 May TODO: Define a emeritus process (a yearish) |
Ok, some updates:
|
Describe the feature
CNCF requires a project to document its governance process, e.g.,
https://github.com/envoyproxy/envoy/blob/main/GOVERNANCE.md
https://github.com/containernetworking/cni/blob/master/GOVERNANCE.md
This will be required for graduation
Extra information or context
No response
The text was updated successfully, but these errors were encountered: