diff options
author | 2018-11-12 13:56:31 -0800 | |
---|---|---|
committer | 2018-11-12 21:56:31 +0000 | |
commit | 96f6d9abbce5c1c461edd87755c809ccf55299c0 (patch) | |
tree | 6d55c1821bc12e5cfce529eabb2669b273d8d025 /GOVERNANCE.md | |
parent | d97b257f8da2c25fabbc567c812a7768c6102f5a (diff) | |
download | coredns-96f6d9abbce5c1c461edd87755c809ccf55299c0.tar.gz coredns-96f6d9abbce5c1c461edd87755c809ccf55299c0.tar.zst coredns-96f6d9abbce5c1c461edd87755c809ccf55299c0.zip |
text for governance proposal, rev 4 (#2220)
Automatically submitted.
Diffstat (limited to 'GOVERNANCE.md')
-rw-r--r-- | GOVERNANCE.md | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 000000000..48123d6e7 --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,147 @@ +# CoreDNS Governance + +## Principles + +The CoreDNS community adheres to the following principles: + +- Open: CoreDNS is open source, advertised on [our website](https://coredns.io/community). +- Welcoming and respectful: See [Code of Conduct](CODE-OF-CONDUCT.md). +- Transparent and accessible: Work and collaboration are done in public. +- Merit: Ideas and contributions are accepted according to their technical merit and alignment with + project objectives, scope, and design principles. + +## Project Lead + +The CoreDNS project has a project lead. + +A project lead in CoreDNS is +a single person that has a final say in any decision concerning the CoreDNS project. + +The term of the project lead 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 top level [OWNERS](OWNERS) file with the string +`project lead` and the term behind the name. + + +## Expectations from Maintainers + +Every one carries water... + +Making a community work requires input/effort from everyone. Maintainers should actively +participate in Pull Request reviews. Maintainers are expected to respond to assigned Pull Requests +in a *reasonable* time frame, either providing insights, or assign the Pull Requests to other +maintainers. + +Every Maintainer is listed in the top-level [OWNERS](https://github.com/coredns/coredns/blob/master/OWNERS) +file, with their Github handle and a possibly obfuscated email address. Everyone in the +`approvers` list is a Maintainer. + +A Maintainer is also listed in a plugin specific OWNERS file. + +A Maintainer should be a member of `maintainers@coredns.io`, although this is not a hard requirement. + +## Becoming a Maintainer + +On successful merge of a significant pull request any current maintainer can reach +to the author behind the pull request and ask them if they are willing to become a CoreDNS +maintainer. The email of the new maintainer invitation should be cc'ed to `maintainers@coredns.io` +as part of the process. + +## Changes in Maintainership + +If a Maintainer feels she/he can not fulfill the "Expectations from Maintainers", they are free to +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). + +## Changes in Project Lead + +Changes in project lead or term is initiated by opening a github PR. + +Anyone from 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 top-level [OWNERS](OWNERS) 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 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. + +When there are conflicting PRs about changes in project lead, the PR with the most binding +1 votes is merged. + +The project lead can volunteer to step down. + +## 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`. + +## 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, +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 +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. + +Decision making process should be transparent to adhere to +the principles of CoreDNS project. + +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`. + +## Github Project Administration + +The __coredns__ GitHub project maintainers team reflects the list of Maintainers. + +## Other Projects + +The CoreDNS organization is open to receive new sub-projects under its umbrella. To accept a project +into the __CoreDNS__ organization, it has to meet the following criteria: + +- Must be licensed under the terms of the Apache License v2.0 +- Must be related to one or more scopes of the CoreDNS ecosystem: + - CoreDNS project artifacts (website, deployments, CI, etc) + - External plugins + - Other DNS related processing +- Must be supported by a Maintainer not associated or affiliated with the author(s) of the sub-projects + +The submission process starts as a Pull Request or Issue on the +[coredns/coredns](https://github.com/coredns/coredns) repository with the required information +mentioned above. Once a project is accepted, it's considered a __CNCF sub-project under the umbrella +of CoreDNS__. + +## New Plugins + +The CoreDNS is open to receive new plugins as part of the CoreDNS repo. The submission process +is the same as a Pull Request submission. Unlike small Pull Requests though, a new plugin submission +should only be approved by a maintainer not associated or affiliated with the author(s) of the +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 +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. + +## Code of Conduct + +The [CoreDNS Code of Conduct](CODE-OF-CONDUCT.md) is aligned with the CNCF Code of Conduct. + +## Credits + +Sections of this documents have been borrowed from [Fluentd](https://github.com/fluent/fluentd/blob/master/GOVERNANCE.md) and [Envoy](https://github.com/envoyproxy/envoy/blob/master/GOVERNANCE.md) projects. |