aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Chris O'Haver <cohaver@infoblox.com> 2022-09-08 19:45:15 -0400
committerGravatar GitHub <noreply@github.com> 2022-09-08 23:45:15 +0000
commit786ee691bea3b8939d5104515d5f96119a3cf4de (patch)
tree90e7670e150a67ecdd9a4c84a7e4a2c0faae3c28
parentb56b080a7c1125cd97c0a2edd7ae21bc1bdcd2a5 (diff)
downloadcoredns-786ee691bea3b8939d5104515d5f96119a3cf4de.tar.gz
coredns-786ee691bea3b8939d5104515d5f96119a3cf4de.tar.zst
coredns-786ee691bea3b8939d5104515d5f96119a3cf4de.zip
Governance: Replace project lead role with a steering committee (#5531)
* replace project lead with steering committee Signed-off-by: Chris O'Haver <cohaver@infoblox.com> * align CODEOWNERS Signed-off-by: Chris O'Haver <cohaver@infoblox.com> * grow committee size to 5; add committee decision restrictions and vote detail Signed-off-by: Chris O'Haver <cohaver@infoblox.com> * add scm voting details and restrictions Signed-off-by: Chris O'Haver <cohaver@infoblox.com> * 5 placeholders in codeowners Signed-off-by: Chris O'Haver <cohaver@infoblox.com> Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
-rw-r--r--CODEOWNERS7
-rw-r--r--GOVERNANCE.md71
2 files changed, 45 insertions, 33 deletions
diff --git a/CODEOWNERS b/CODEOWNERS
index 6b5525213..26e4271b0 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -1,4 +1,9 @@
-# @miekg, miek@miek.nl, project lead: 11/11/2022
+# 5 steering committee members
+# steering committee member: <github handle>, <email>, term ends <term end date>
+# steering committee member: <github handle>, <email>, term ends <term end date>
+# steering committee member: <github handle>, <email>, term ends <term end date>
+# steering committee member: <github handle>, <email>, term ends <term end date>
+# steering committee member: <github handle>, <email>, term ends <term end date>
* @bradbeam @chrisohaver @dilyevsky @jameshartig @greenpau @isolus @johnbelamaric @miekg @pmoroney @rajansandeep @stp-ip @superq @yongtang @Tantalor93
diff --git a/GOVERNANCE.md b/GOVERNANCE.md
index 36c531b58..ef358a76a 100644
--- a/GOVERNANCE.md
+++ b/GOVERNANCE.md
@@ -10,21 +10,20 @@ The CoreDNS community adheres to the following principles:
- Merit: Ideas and contributions are accepted according to their technical merit and alignment with
project objectives, scope, and design principles.
-## Project Lead
+## Project Steering Committee
-The CoreDNS project has a project lead.
+The CoreDNS project has a project steering committee consisting of 5 members, with a maximum of 1 member from any single organization.
+The steering committee in CoreDNS has a final say in any decision concerning the CoreDNS project, with the exceptions of
+deciding steering committe membership, and changes to project governance. See `Changes in Project Steeting Committee Membership`
+and `Changes in Project Governance`.
-A project lead in CoreDNS is
-a single person that has a final say in any decision concerning the CoreDNS project.
+Any decision made must not conflict with CNCF policy.
-The term of the project lead is one year, with no term limit restriction.
+The maximum term length of each steering committee member is one year, with no term limit restriction.
-The project lead is elected by CoreDNS maintainers
-according to an individual's technical merit to CoreDNS project.
-
-The current project lead is identified in the [CODEOWNERS](CODEOWNERS) file with the string
-`project lead` and the term behind the name in a comment at the top of the file.
+Steering committee member are elected by CoreDNS maintainers.
+The steering committee members are identified in the [CODEOWNERS](CODEOWNERS) file.
## Expectations from Maintainers
@@ -54,51 +53,59 @@ If a Maintainer feels she/he can not fulfill the "Expectations from Maintainers"
step down.
The CoreDNS organization will never forcefully remove a current Maintainer, unless a maintainer
-fails to meet the principles of CoreDNS community,
-or adhere to the [Code of Conduct](CODE-OF-CONDUCT.md).
+fails to meet the principles of CoreDNS community, or adhere to the [Code of Conduct](CODE-OF-CONDUCT.md).
-## Changes in Project Lead
+## Changes in Project Steering Committee Membership
-Changes in project lead or term is initiated by opening a github PR.
+Changes to the project steering committee membership are initiated by opening a separate GitHub PR updating
+the [CODEOWNERS](CODEOWNERS) file for each steering committee member candidate.
-Anyone from CoreDNS community can vote on the PR with either +1 or -1.
+Anyone from the CoreDNS community can vote on the PR with either +1 or -1.
Only the following votes are binding:
1) Any maintainer that has been listed in the [CODEOWNERS](CODEOWNERS) file before the PR is opened.
2) Any maintainer from an organization may cast the vote for that organization. However, no organization
should have more binding votes than 1/5 of the total number of maintainers defined in 1).
-The PR should only be opened no earlier than 6 weeks before the end of the project lead's term.
+The PR should be opened no earlier than 6 weeks before the end of affected committee member's term.
The PR should be kept open for no less than 4 weeks. The PR can only be merged after the end of the
-last project lead's term, with more +1 than -1 in the binding votes.
+replaced committe member's term, with more +1 than -1 in the binding votes.
+
+When there are conflicting PRs for changes to a project committee member, the PR with the most
+binding +1 votes is merged.
-When there are conflicting PRs about changes in project lead, the PR with the most binding +1 votes is merged.
+During a vote there may be several candidates running for multiple committee seat vacancies. Maintainers and
+community members should cast a single vote per vacancy (although this does not need to be enforced). At the end of the
+voting period, candidates with the most binding votes will fill the vacancies. In the event of a
+multi-way tie for a set of remaining vacancies, the candidates who have been maintainers longest have precedence.
-The project lead can volunteer to step down.
+A project steering committee member may volunteer to step down, ending their term early.
## Changes in Project Governance
-Changes in project governance (GOVERNANCE.md) could be initiated by opening a github PR.
-The PR should only be opened no earlier than 6 weeks before the end of the project lead's term.
-The PR should be kept open for no less than 4 weeks. The PR can only be merged follow the same
-voting process as in `Changes in Project Lead`.
+Changes in project governance (GOVERNANCE.md) can be initiated by opening a GitHub PR.
+The PR should only be opened no earlier than 6 weeks before the end of a comittee member's term.
+The PR should be kept open for no less than 4 weeks. The PR can only be merged following the same
+voting process as in `Changes in Project Steeting Committee Membership`.
-## Decision making process
+## Decision-making process
Decisions are build on consensus between maintainers.
-Proposals and ideas can either be submitted for agreement via a github issue or PR,
+Proposals and ideas can either be submitted for agreement via a GitHub issue or PR,
or by sending an email to `maintainers@coredns.io`.
In general, we prefer that technical issues and maintainer membership are amicably worked out between the persons involved.
-If a dispute cannot be decided independently, get a third-party maintainer (e.g. a mutual contact with some background
+If a dispute cannot be resolved independently, get a third-party maintainer (e.g. a mutual contact with some background
on the issue, but not involved in the conflict) to intercede.
-If a dispute still cannot be decided, the project lead has the final say to decide an issue.
+If a dispute still cannot be resolved, the project steering committee has the final say to decide an issue.
+The project steering committee may reach this decision by consensus or else by a simple majority vote among committee
+members if necessary. The steering should committee endeavor to make this decision within a reasonable amount of time,
+not to extend longer than two weeks.
-Decision making process should be transparent to adhere to
-the principles of CoreDNS project.
+The decision-making process should be transparent to adhere to the CoreDNS Code of Conduct.
-All proposals, ideas, and decisions by maintainers or the project lead
-should either be part of a github issue or PR, or be sent to `maintainers@coredns.io`.
+All proposals, ideas, and decisions by maintainers or the steering committee
+should either be part of a GitHub issue or PR, or be sent to `maintainers@coredns.io`.
## Github Project Administration
@@ -131,7 +138,7 @@ plugin.
## CoreDNS and CNCF
CoreDNS is a CNCF project. As such, CoreDNS might be involved in CNCF (or other CNCF projects) related
-marketing, events, or activities. Any maintainer could help driving the CoreDNS involvement, as long as
+marketing, events, or activities. Any maintainer may participate in these activities, as long as
she/he sends email to `maintainers@coredns.io` (or create a GitHub Pull Request) to call for participation
from other maintainers. The `Call for Participation` should be kept open for no less than a week if time
permits, or a _reasonable_ time frame to allow maintainers to have a chance to volunteer.