From eb26b27471e5ba03a054a8d09e8abf24234b27f1 Mon Sep 17 00:00:00 2001 From: Andrew Burden Date: Thu, 5 Dec 2024 17:05:33 +0100 Subject: [PATCH] Adding maintainer responsibilities and mentoring sections to governance Signed-off-by: Andrew Burden --- GOVERNANCE.md | 81 ++++++++++++++++++++++++++++++-------------- MAINTAINERS.md | 11 +++++- membership_policy.md | 1 + 3 files changed, 67 insertions(+), 26 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 7c559cd7..2b9464b7 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -10,15 +10,20 @@ - [SIG Subprojects](#subprojects) - [WGs (Working Groups)](#working-groups) +## Membership Policy + +This document is primarily concerned with governance for project maintainers, as well as Special Interest Groups (SIGs), Subprojects, and Working Groups (WGs). +We have a separate [membership policy](.membership-policy.md) document that details our contributor ladder and criteria for our other roles, such as new members, reviewers, approvers, SIG and WG chairs, and Subproject leads. + ## Maintainers -KubeVirt Maintainers govern the project. Maintainers collectively manage the -project's resources and contributors, and speak for the project in public. The +KubeVirt maintainers govern the project. Maintainers collectively manage the +project's resources and contributors, and speak for the project in public. The maintainers collectively decide any questions that cannot be resolved at the individual repository level, and provide strategic guidance for the project overall. -The current maintainers can be found in [MAINTAINERS](./MAINTAINERS.md). +The current maintainers can be found in [MAINTAINERS](./MAINTAINERS.md). This privilege is granted with some expectation of responsibility: maintainers are people who care about the KubeVirt project and want to help it grow and @@ -30,6 +35,20 @@ follow through to fix issues. A maintainer is a contributor to the project's success and a citizen helping the project succeed. +### Maintainer Responsibilities + +Maintainers share the highest level of responsibilities for the project and take the broadest viewpoint. +They help steer the technical direction of the project as well as shepherd the community so that it is always forward thinking and sustainable. + +The core responsibilities of our maintainers are: + + * Responsive to issues raised on the cncf-maintainers list. + * Responsive to issues raised on the security list and CVEs to coordinate and prioritise remediation. + * Regularly review and facilitate the acceptance or dismissal of Enhancement Proposals to guide the direction of the project. + * Lead by example with regard to following and working to improve processes and workflows in the project. + * Mediate any conflict that may arise on reviews, proposals, in meetings, or on the mailing list or slack channels. + * Represent the project by speaking at events and meetups and participating in interviews and press releases. + ### Selecting Maintainers The current project maintainers will periodically review contributor activities @@ -50,64 +69,76 @@ For nominations, the maintainers will look at the following criteria: A candidate must be proposed by an existing maintainer by filing an PR in the [Community Repo](https://github.com/kubevirt/community) against the MAINTAINERS.md file. -A simple majority vote of +1s from existing Maintainers approves the application. +A simple majority vote of +1s from existing maintainers approves the application. Approved maintainers will be added to the [private maintainer mailing list](mailto:cncf-kubevirt-maintainers@lists.cncf.io). ### Meetings -Time zones permitting, Maintainers are expected to participate in the weekly public -community meeting. More details can be found [here](commnuity_meeting.md). +Time zones permitting, maintainers are expected to participate in the weekly public +community meeting or SIG meetings. A list of these meetings is available in our [sig-list](sig-list.md). Maintainers will also have closed meetings in order to discuss security reports or Code of Conduct violations. Such meetings should be scheduled by any -Maintainer on receipt of a security issue or CoC report. All current Maintainers -must be invited to such closed meetings, except for any Maintainer who is +maintainer on receipt of a security issue or CoC report. All current maintainers +must be invited to such closed meetings, except for any maintainer who is accused of a CoC violation. ### CNCF Resources -Any Maintainer may suggest a request for CNCF resources, in the +Any maintainer may suggest a request for CNCF resources, in the [developer mailing list](https://groups.google.com/forum/#!forum/kubevirt-dev), -the [Maintainer mailing list](mailto:cncf-kubevirt-maintainers@lists.cncf.io), on Github, -or during a community meeting. A simple majority of Maintainers approves the -request. The Maintainers may also choose to delegate working with the CNCF to -non-Maintainer community members. +the [maintainer mailing list](mailto:cncf-kubevirt-maintainers@lists.cncf.io), on Github, +or during a community meeting. A simple majority of maintainers approves the +request. The maintainers may also choose to delegate working with the CNCF to +non-maintainer community members. ### Code of Conduct [Code of Conduct](./code-of-conduct.md) violations by community members will be discussed and resolved -on the [private Maintainer mailing list](mailto:cncf-kubevirt-maintainers@lists.cncf.io). If the reported CoC violator -is a Maintainer, the Maintainers will instead designate two Maintainers to work +on the [private maintainer mailing list](mailto:cncf-kubevirt-maintainers@lists.cncf.io). If the reported CoC violator +is a maintainer, the maintainers will instead designate two maintainers to work with CNCF staff in resolving the report. -### Removing Maintainers +### Off-boarding Maintainers and Mentorship + +Maintainers can voluntarily retire at any time, and should always feel that they can rely +on others to continue their good work. When a maintainer leaves, the project loses valuable +knowledge and history. + +To facilitate this process, it is encouraged that maintainers recognise when they no longer +have sufficient time to give to the project and engage in a mentorship with a possible +maintainer candidate from the community. Through this process, they can help transition some of their experience +and guide the candidate through expectations of the role. + +### Retiring and Removing Maintainers -Maintainers may voluntarily retire at any time. Should a maintainer retire, -it requires a majority vote of the current maintainers to reinstate them. +A maintainer can retire or be removed as a maintainer by filing an PR in the +[Community repo](https://github.com/kubevirt/community) against the [MAINTAINERS](./MAINTAINERS.md) file and moving to Emeritus. Maintainers may also be demoted at any time for one of the following reasons: * Inactivity, including 6 months or more of non-participation or non-communication, * Refusal to abide by this Governance, * Violations of the Code of Conduct, -* Other actions that harm the reputation, stability, or harmony of the Kubevirt +* Other actions that harm the reputation, stability, or harmony of the KubeVirt project. Removing a maintainer requires a 2/3 majority vote of the other maintainers. +Should a maintainer retire or be demoted and wish to return, it requires a majority vote of the current maintainers to reinstate them. ### Voting While most business in KubeVirt is conducted by "lazy consensus", periodically -the Maintainers may need to vote on specific actions or changes. +the maintainers may need to vote on specific actions or changes. A vote can be taken on [the developer mailing list](https://groups.google.com/forum/#!forum/kubevirt-dev) or -the private Maintainer mailing list for security or conduct matters. -Votes may also be taken at the community meeting. Any Maintainer may +the private maintainer mailing list for security or conduct matters. +Votes may also be taken at the community meeting. Any maintainer may request a vote be taken. -Most votes require a simple majority of all Maintainers to succeed. Maintainers -can be removed by a 2/3 majority vote of all Maintainers, and changes to this -Governance require a 2/3 vote of all Maintainers. +Most votes require a simple majority of all maintainers to succeed. maintainers +can be removed by a 2/3 majority vote of all maintainers, and changes to this +Governance require a 2/3 vote of all maintainers. ## SIGs diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 062b6cd3..59d79302 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -1,4 +1,6 @@ -The current Maintainers Group for the Kubevirt Project consists of: +## KubeVirt Project Maintainers + +The current Maintainers Group for the KubeVirt Project consists of: | Name | Employer | Responsibilities | | ----------- | ------- | -------------------------------- | @@ -14,3 +16,10 @@ The current Maintainers Group for the Kubevirt Project consists of: This list must be kept in sync with the [CNCF Project Maintainers list](https://github.com/cncf/foundation/blob/master/project-maintainers.csv). See [the project Governance](GOVERNANCE.md) for how maintainers are selected and replaced. + +## Emeritus Maintainers + +| Name | Date of Retirement | +| ---- | ------------------ | +| [Chris Calligari](https://github.com/mazzystr) | 4 April, 2022 | +| [Federico Gimenez](https://github.com/fgimenez) | 9 May, 2022 | diff --git a/membership_policy.md b/membership_policy.md index 60fbace6..b11b1e55 100644 --- a/membership_policy.md +++ b/membership_policy.md @@ -11,6 +11,7 @@ This document outlines the various responsibilities of contributor roles in Kube | [SIG Chair](#special-interest-group-sig-chair) | Lead a SIG aligned to the goals of the SIG charter | * Can be sig-approver
* Highly experienced in SIG matters
* Active reviewer & contributor to the project | [sigs.yaml] chair entry | | [SIG Subproject Lead](#sig-subproject-lead) | Lead a subproject aligned to the goals of the SIG charter | * sig-reviewer
* Highly experienced in SIG subproject matters
* Active reviewer & contributor to the project | [sigs.yaml] subproject leads entry | | [WG Chair](#working-group-wg-chair) | Lead a WG aligned to the goals of the WG charter | * Highly experienced in WG matters
* Active reviewer & contributor to the project | [sigs.yaml] WG chairs entry | +| [Project Maintainers](./GOVERNANCE.md) | Steer the project from the highest level | * Demonstrated leadership in the community
See the [Governance doc](./GOVERNANCE.md) for more details | [MAINTAINERS](./MAINTAINERS.md) file | ## New contributors