From 06ec6c4b660ca0ddcaa3455a87024fb95ca292f5 Mon Sep 17 00:00:00 2001 From: "Sahdev P. Zala" Date: Mon, 23 Sep 2019 16:18:53 -0400 Subject: [PATCH 1/2] *: create project governance Create project governance. --- GOVERNANCE.md | 88 ++++++++++++++++++++++++++++++++++++++++++++ MAINTAINERS | 11 +++++- MAINTAINERS_RULES.md | 16 -------- OWNERS | 20 ---------- 4 files changed, 98 insertions(+), 37 deletions(-) create mode 100644 GOVERNANCE.md delete mode 100644 MAINTAINERS_RULES.md delete mode 100644 OWNERS diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 00000000000..b7d10081f14 --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,88 @@ +# etcd Governance + +## Principles + +The etcd community adheres to the following principles: + +- Open: etcd is open source. +- Welcoming and respectful: See [Code of Conduct](code-of-conduct.md). +- Transparent and accessible: Changes to the etcd code repository and CNCF related +activities (e.g. level, involvement, etc) are done in public. +- Merit: Ideas and contributions are accepted according to their technical merit for +the betterment of the project. For specific guidance on practical contribution steps +please see [CONTRIBUTING](./CONTRIBUTING.md) guide. + +## Maintainers + +[Maintainers](./MAINTAINERS) are first and foremost contributors that have shown they +are committed to the long term success of a project. Maintainership is about building +trust with the current maintainers of the project and being a person that they can +depend on to make decisions in the best interest of the project in a consistent manner. +The maintainers role can be a top-level or restricted to certain package/feature +depending upon their commitment in fulfilling the expected responsibilities as explained +below. + +### Top-level maintainer + +- Running the etcd release processes +- Ownership of test and debug infrastructure +- Triage GitHub issues to keep the issue count low (goal: under 100) +- Regularly review GitHub pull requests across all pkgs +- Providing cross pkg design review +- Monitor email aliases +- Participate when called upon in the [security disclosure and release process](security/README.md) +- General project maintenance + +### Package/feature maintainer + +- Ownership of test and debug failures in a pkg/feature +- Resolution of bugs triaged to a package/feature +- Regularly review pull requests to the pkg subsystem + +Contributors who are interested in becoming a maintainer, if performing these +responsibilities, should discuss their interest with the existing maintainers. New +maintainers must be nominated by an existing maintainer and must be elected by a +supermajority of maintainers. Likewise, maintainers can be removed by a supermajority +of the maintainers and moved to emeritus status. + +Life priorities, interests, and passions can change. If a maintainer needs to step +down, inform other maintainers about this intention, and if possible, help find someone +to pick up the related work. At the very least, ensure the related work can be continued. +Afterward, create a pull request to remove yourself from the [MAINTAINERS](./MAINTAINERS) +file. + +## Approvers + +[Approvers](./MAINTAINERS) are contributors with merge rights. They are active reviewers +and have created significant numbers of PRs in the various code areas to add new features, +fix bugs and improve code. New approvers must be nominated by an existing maintainer +and must be elected by a supermajority of maintainers. Likewise, approvers can be removed +by a supermajority of the maintainers or can resign by notifying the maintainers. + +## Reviewers + +[Reviewers](./MAINTAINERS) are contributors who have demonstrated greater skill in +reviewing the code contribution from other contributors. Their LGTM counts towards +merging a code change into the project. New reviewers must be nominated by an existing +maintainer and must be elected by a supermajority of maintainers. Likewise, reviewers +can be removed by a supermajority of the maintainers or can resign by notifying the +maintainers. + +## Decision making process + +Decisions are built on consensus between maintainers publicly. Proposals and ideas +can either be submitted for agreement via a GitHub issue or PR, or by sending an email +to `etcd-maintainers@googlegroups.com`. + +## Conflict resolution + +In general, we prefer that technical issues and maintainer membership are amicably +worked out between the persons involved. However, any technical dispute that has +reached an impasse with a subset of the community, any contributor may open a GitHub +issue or PR or send an email to `etcd-maintainers@googlegroups.com`. If the +maintainers themselves cannot decide an issue, the issue will be resolved by a +supermajority of the maintainers. + +## Changes in Governance + +Changes in project governance could be initiated by opening a GitHub PR. diff --git a/MAINTAINERS b/MAINTAINERS index 541e03ee5fd..fd85ff1e235 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1,4 +1,6 @@ -# This is the official list of etcd maintainers. +# The official list of maintainers, approvers, and reviewers for the project maintenance. +# +# Refer to the GOVERNANCE.md for description of the roles. # # Names should be added to this file like so: # Individual's name (@GITHUB_HANDLE) pkg:* @@ -6,6 +8,7 @@ # # Please keep the list sorted. +# MAINTAINERS Brandon Philips (@philips) pkg:* Gyuho Lee (@gyuho) pkg:* Hitoshi Mitake (@mitake) pkg:* @@ -18,3 +21,9 @@ Xiang Li (@xiang90) pkg:* Ben Darnell (@bdarnell) pkg:go.etcd.io/etcd/raft Tobias Grieger (@tbg) pkg:go.etcd.io/etcd/raft +# APPROVERS +Anthony Romano (@heyitsanthony) pkg:* +Fanmin Shi (@fanminshi) pkg:* + +# REVIEWERS +Wenjia Zhang (@wenjiaswe) pkg:* diff --git a/MAINTAINERS_RULES.md b/MAINTAINERS_RULES.md deleted file mode 100644 index d39d69fc7b4..00000000000 --- a/MAINTAINERS_RULES.md +++ /dev/null @@ -1,16 +0,0 @@ - -This document describes basic expectations for maintainers. To become a maintainer, start taking on these responsibilities. Consistent contributors then discuss with existing maintainers to become the official [MAINTAINERS](./MAINTAINERS). - -### Top-level maintainer - -- Running the etcd release processes -- Ownership of test and debug infrastructure -- Resolve or redirect issues to keep the issue count low (goal: under 100) -- Regularly review pull requests across all pkgs -- Providing cross pkg design review - -### Package/feature maintainer - -- Ownership of test and debug failures in a pkg/feature -- Resolution of bugs triaged to a package/feature -- Regularly review pull requests to the pkg subsystem diff --git a/OWNERS b/OWNERS deleted file mode 100644 index 410efd09546..00000000000 --- a/OWNERS +++ /dev/null @@ -1,20 +0,0 @@ -approvers: -- heyitsanthony -- philips -- fanminshi -- gyuho -- mitake -- jpbetz -- xiang90 -- hexfusion -reviewers: -- heyitsanthony -- philips -- fanminshi -- gyuho -- mitake -- jpbetz -- xiang90 -- wenjiaswe -- jingyih -- hexfusion From 036cb96fd1e94b8cfc696d9d3c84c55330117ddd Mon Sep 17 00:00:00 2001 From: "Sahdev P. Zala" Date: Mon, 30 Sep 2019 13:26:51 -0400 Subject: [PATCH 2/2] *: create project governance Create project governance. --- CHANGELOG-3.5.md | 3 +++ GOVERNANCE.md | 18 +++++------------- MAINTAINERS | 6 +----- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/CHANGELOG-3.5.md b/CHANGELOG-3.5.md index e9f815e12e3..656679a7e2d 100644 --- a/CHANGELOG-3.5.md +++ b/CHANGELOG-3.5.md @@ -102,6 +102,9 @@ Note that any `etcd_debugging_*` metrics are experimental and subject to change. - Require [*Go 1.13+*](https://github.com/etcd-io/etcd/pull/11110). - Compile with [*Go 1.13*](https://golang.org/doc/devel/release.html#go1.13) +### Project Governance + +- The etcd team has added, a well defined and openly discussed, project [governance](https://github.com/etcd-io/etcd/pull/11175).
diff --git a/GOVERNANCE.md b/GOVERNANCE.md index b7d10081f14..a0a6a290e56 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -42,7 +42,7 @@ below. Contributors who are interested in becoming a maintainer, if performing these responsibilities, should discuss their interest with the existing maintainers. New maintainers must be nominated by an existing maintainer and must be elected by a -supermajority of maintainers. Likewise, maintainers can be removed by a supermajority +supermajority of maintainers. Likewise, maintainers can be removed by a supermajority of the maintainers and moved to emeritus status. Life priorities, interests, and passions can change. If a maintainer needs to step @@ -51,22 +51,14 @@ to pick up the related work. At the very least, ensure the related work can be c Afterward, create a pull request to remove yourself from the [MAINTAINERS](./MAINTAINERS) file. -## Approvers - -[Approvers](./MAINTAINERS) are contributors with merge rights. They are active reviewers -and have created significant numbers of PRs in the various code areas to add new features, -fix bugs and improve code. New approvers must be nominated by an existing maintainer -and must be elected by a supermajority of maintainers. Likewise, approvers can be removed -by a supermajority of the maintainers or can resign by notifying the maintainers. - ## Reviewers [Reviewers](./MAINTAINERS) are contributors who have demonstrated greater skill in reviewing the code contribution from other contributors. Their LGTM counts towards -merging a code change into the project. New reviewers must be nominated by an existing -maintainer and must be elected by a supermajority of maintainers. Likewise, reviewers -can be removed by a supermajority of the maintainers or can resign by notifying the -maintainers. +merging a code change into the project. A reviewer is generally on the ladder towards +maintainership. New reviewers must be nominated by an existing maintainer and must be +elected by a supermajority of maintainers. Likewise, reviewers can be removed by a +supermajority of the maintainers or can resign by notifying the maintainers. ## Decision making process diff --git a/MAINTAINERS b/MAINTAINERS index fd85ff1e235..b42a28e5354 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1,4 +1,4 @@ -# The official list of maintainers, approvers, and reviewers for the project maintenance. +# The official list of maintainers and reviewers for the project maintenance. # # Refer to the GOVERNANCE.md for description of the roles. # @@ -21,9 +21,5 @@ Xiang Li (@xiang90) pkg:* Ben Darnell (@bdarnell) pkg:go.etcd.io/etcd/raft Tobias Grieger (@tbg) pkg:go.etcd.io/etcd/raft -# APPROVERS -Anthony Romano (@heyitsanthony) pkg:* -Fanmin Shi (@fanminshi) pkg:* - # REVIEWERS Wenjia Zhang (@wenjiaswe) pkg:*