From patchwork Sun Oct 30 13:29:48 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Finucane X-Patchwork-Id: 688928 X-Patchwork-Delegate: rbryant@redhat.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from archives.nicira.com (archives.nicira.com [96.126.127.54]) by ozlabs.org (Postfix) with ESMTP id 3t6JKx30Cqz9t1T for ; Mon, 31 Oct 2016 00:31:17 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="key not found in DNS" (0-bit key; unprotected) header.d=that.guru header.i=@that.guru header.b=PquBCrIN; dkim-atps=neutral Received: from archives.nicira.com (localhost [127.0.0.1]) by archives.nicira.com (Postfix) with ESMTP id 980B6102CB; Sun, 30 Oct 2016 06:31:16 -0700 (PDT) X-Original-To: dev@openvswitch.org Delivered-To: dev@openvswitch.org Received: from mx1e3.cudamail.com (mx1.cudamail.com [69.90.118.67]) by archives.nicira.com (Postfix) with ESMTPS id 3C1E4102CB for ; Sun, 30 Oct 2016 06:31:15 -0700 (PDT) Received: from bar5.cudamail.com (localhost [127.0.0.1]) by mx1e3.cudamail.com (Postfix) with ESMTPS id C7BBE4203BB for ; Sun, 30 Oct 2016 07:31:14 -0600 (MDT) X-ASG-Debug-ID: 1477834272-09eadd0f97242810001-byXFYA Received: from mx3-pf3.cudamail.com ([192.168.14.3]) by bar5.cudamail.com with ESMTP id 2nUZZYRJIPTxdxEs (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Sun, 30 Oct 2016 07:31:12 -0600 (MDT) X-Barracuda-Envelope-From: stephen@that.guru X-Barracuda-RBL-Trusted-Forwarder: 192.168.14.3 Received: from unknown (HELO bonobo.birch.relay.mailchannels.net) (23.83.209.22) by mx3-pf3.cudamail.com with ESMTPS (DHE-RSA-AES256-SHA encrypted); 30 Oct 2016 13:31:11 -0000 Received-SPF: none (mx3-pf3.cudamail.com: domain at that.guru does not designate permitted sender hosts) X-Barracuda-Apparent-Source-IP: 23.83.209.22 X-Barracuda-RBL-IP: 23.83.209.22 X-Sender-Id: mxroute|x-authuser|stephen@that.guru Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id ADFA7120EF5 for ; Sun, 30 Oct 2016 13:31:10 +0000 (UTC) Received: from one.mxroute.com (ip-10-107-69-155.us-west-2.compute.internal [10.107.69.155]) by relay.mailchannels.net (Postfix) with ESMTPA id D04A6120042 for ; Sun, 30 Oct 2016 13:31:09 +0000 (UTC) X-Sender-Id: mxroute|x-authuser|stephen@that.guru Received: from one.mxroute.com ([UNAVAILABLE]. [10.102.194.57]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.7.8); Sun, 30 Oct 2016 13:31:10 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: mxroute|x-authuser|stephen@that.guru X-MailChannels-Auth-Id: mxroute X-MC-Loop-Signature: 1477834270282:762557664 X-MC-Ingress-Time: 1477834270281 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=that.guru; s=default; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Sender:Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=5Y9ZIl8IsA1Nl7aGLAfJ07ssQ988GI7+DgsSc7MyrkQ=; b=PquBCrINxzTcOWUswqyhFk085R Tjz1EOtsEhLMlXzjCmsJTMwB6xwCaV2mu2mT8rghqAMvX5ccjNis0/RsmSsOhBd6Dq/rjVn9pIRJW JTS8+BS8TDp7Taa5GmmKswCqsGJfKvbAHqTs3nTVfwvlWsH5g+cns6vXiExmb/CZyFAHm+EtXsnpR 97IxvfE94QU+ZmsfFWruckbuhdyqUZDkQFc7h9XOR7uddGWgzcleOWuLsH4QQJ8aOToFiNySXAHUN yc8z+Zjsoxw/d8PDMK8DaF/pPgo4bnW1IuM4R4dfy7bLBkDPVkxjRPAixEnVG5qXZ4x3WHGKp5jyy 7/kfY1RA==; X-CudaMail-Envelope-Sender: stephen@that.guru From: Stephen Finucane To: dev@openvswitch.org X-CudaMail-MID: CM-V3-1029004284 X-CudaMail-DTE: 103016 X-CudaMail-Originating-IP: 23.83.209.22 Date: Sun, 30 Oct 2016 13:29:48 +0000 X-ASG-Orig-Subj: [##CM-V3-1029004284##][PATCH 02/23] doc: Convert committer-grant-revocation to rST Message-Id: <1477834209-11414-3-git-send-email-stephen@that.guru> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1477834209-11414-1-git-send-email-stephen@that.guru> References: <1477834209-11414-1-git-send-email-stephen@that.guru> X-OutGoing-Spam-Status: No, score=-9.2 X-AuthUser: stephen@that.guru X-GBUdb-Analysis: 0, 23.83.209.22, Ugly c=0.071429 p=0 Source Normal X-MessageSniffer-Rules: 0-0-0-32767-c X-Barracuda-Connect: UNKNOWN[192.168.14.3] X-Barracuda-Start-Time: 1477834272 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://web.cudamail.com:443/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at cudamail.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.10 X-Barracuda-Spam-Status: No, SCORE=1.10 using global scores of TAG_LEVEL=3.5 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=4.0 tests=BSF_SC0_MV0713, BSF_SC5_MJ1963, DKIM_SIGNED, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.34168 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS 0.50 BSF_SC0_MV0713 Custom rule MV0713 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 Subject: [ovs-dev] [PATCH 02/23] doc: Convert committer-grant-revocation to rST X-BeenThere: dev@openvswitch.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dev-bounces@openvswitch.org Sender: "dev" Signed-off-by: Stephen Finucane --- Documentation/automake.mk | 2 +- Documentation/committer-grant-revocation.md | 356 ------------------------ Documentation/committer-grant-revocation.rst | 398 +++++++++++++++++++++++++++ MAINTAINERS.rst | 2 +- 4 files changed, 400 insertions(+), 358 deletions(-) delete mode 100644 Documentation/committer-grant-revocation.md create mode 100644 Documentation/committer-grant-revocation.rst diff --git a/Documentation/automake.mk b/Documentation/automake.mk index d709e77..2f728bd 100644 --- a/Documentation/automake.mk +++ b/Documentation/automake.mk @@ -1,6 +1,6 @@ docs += \ Documentation/committer-responsibilities.md \ - Documentation/committer-grant-revocation.md \ + Documentation/committer-grant-revocation.rst \ Documentation/group-selection-method-property.txt \ Documentation/OVSDB-replication.md \ Documentation/release-process.md diff --git a/Documentation/committer-grant-revocation.md b/Documentation/committer-grant-revocation.md deleted file mode 100644 index 83b703c..0000000 --- a/Documentation/committer-grant-revocation.md +++ /dev/null @@ -1,356 +0,0 @@ -OVS Committer Grant/Revocation Policy -===================================== - -An OVS committer is a participant in the project with the ability -to commit code directly to the master repository. Commit access -grants a broad ability to affect the progress of the project as -presented by its most important artifact, the code and related -resources that produce working binaries of Open vSwitch. As such -it represents a significant level of trust in an individual's -commitment to working with other committers and the community at -large for the benefit of the project. It can not be granted -lightly and, in the worst case, must be revocable if the trust -placed in an individual was inappropriate. - -This document suggests guidelines for granting and revoking commit -access. It is intended to provide a framework for evaluation of such -decisions without specifying deterministic rules that wouldn't be -sensitive to the nuance of specific situations. In the end the -decision to grant or revoke committer privileges is a judgment call -made by the existing set of committers. - -Granting Commit Access ----------------------- - -Granting commit access should be considered when a candidate has -demonstrated the following in their interaction with the project: - -* Contribution of significant new features through the patch - submission process where: - * Submissions are free of obvious critical defects - * Submissions do not typically require many iterations of - improvement to be accepted -* Consistent participation in code review of other's patches, - including existing committers, with comments consistent with the - overall project standards -* Assistance to those in the community who are less knowledgeable - through active participation in project forums such as the - ovs-discuss mailing list. -* Plans for sustained contribution to the project compatible with - the project's direction as viewed by current committers. -* Commitment to meet the expectations described in the - "Expectations of Developer's with Open vSwitch Access" - -The process to grant commit access to a candidate is simple: - -* An existing committer nominates the candidate by sending an - email to all existing committers with information - substantiating the contributions of the candidate in the areas - described above. -* All existing committers discuss the pros and cons of granting - commit access to the candidate in the email thread. -* When the discussion has converged or a reasonable time has - elapsed without discussion developing (e.g. a few business days) - the nominator calls for a final decision on the candidate with a - followup email to the thread. -* Each committer may vote yes, no, or abstain by replying to the - email thread. A failure to reply is an implicit abstention. -* After votes from all existing committers have been collected or a - reasonable time has elapsed for them to be provided (e.g. a - couple of business days) the votes are evaluated. To be granted - commit access the candidate must receive yes votes from a - majority of the existing committers and zero no votes. Since a - no vote is effectively a veto of the candidate it should be - accompanied by a reason for the vote. -* The nominator summarizes the result of the vote in an email to - all existing committers. -* If the vote to grant commit access passed, the candidate is - contacted with an invitation to become a committer to the project - which asks them to agree to the committer expectations - documented on the project web site. -* If the candidate agrees access is granted by setting up commit - access to the repos on github. - -Revoking Commit Access ----------------------- - -There are two situations in which commit access might be revoked. - -The straightforward situation is a committer who is no longer -active in the project and has no plans to become active in the near -future. The process in this case is: - -* Any time after a committer has been inactive for more than 6 - months any other committer to the project may identify that - committer as a candidate for revocation of commit access due to - inactivity. -* The plans of revocation should be sent in a private email to the - candidate. -* If the candidate for removal states plans to continue - participating no action is taken and this process terminates. -* If the candidate replies they no longer require commit - access then commit access is removed and a notification is - sent to the candidate and all existing committers. -* If the candidate can not be reached within 1 week of the first - attempting to contact this process continues. -* A message proposing removal of commit access is sent to the - candidate and all other committers. -* If the candidate for removal states plans to continue - participating no action is taken. -* If the candidate replies they no longer require commit - access then their access is removed. -* If the candidate can not be reached within 2 months of the - second attempting to contact them, access is removed. -* In any case, where access is removed, this fact is published - through an email to all existing committers (including the - candidate for removal). - -The more difficult situation is a committer who is behaving in a -manner that is viewed as detrimental to the future of the project -by other committers. This is a delicate situation with the -potential for the creation of division within the greater -community and should be handled with care. The process in this -case is: - -* Discuss the behavior of concern with the individual privately and - explain why you believe it is detrimental to the project. Stick - to the facts and keep the email professional. Avoid personal - attacks and the temptation to hypothesize about unknowable - information such as the other's motivations. Make it clear that - you would prefer not to discuss the behavior more widely but will - have to raise it with other contributors if it does not change. - Ideally the behavior is eliminated and no further action is - required. If not, -* Start an email thread with all committers, including the source - of the behavior, describing the behavior and the reason it is - detrimental to the project. The message should have the same - tone as the private discussion and should generally repeat the - same points covered in that discussion. The person whose - behavior is being questioned should not be surprised by anything - presented in this discussion. Ideally the wider discussion - provides more perspective to all participants and the issue is - resolved. If not, -* Start an email thread with all committers except the source of - the detrimental behavior requesting a vote on revocation of - commit rights. Cite the discussion among all committers and - describe all the reasons why it was not resolved satisfactorily. - This email should be carefully written with the knowledge that the - reasoning it contains may be published to the larger community - to justify the decision. -* Each committer may vote yes, no, or abstain by replying to the - email thread. A failure to reply is an implicit abstention. -* After all votes have been collected or a reasonable time has - elapsed for them to be provided (e.g. a couple of business days) - the votes are evaluated. For the request to revoke commit access - for the candidate to pass it must receive yes votes from two - thirds of the existing committers. -* anyone that votes no must provide their reasoning, and -* if the proposal passes then counter-arguments for the reasoning in - no votes should also be documented along with the initial reasons - the revocation was proposed. Ideally there should be no new - counter-arguments supplied in a no vote as all concerns should - have surfaced in the discussion before the vote. -* The original person to propose revocation summarizes the result - of the vote in an email to all existing committers excepting the - candidate for removal. -* If the vote to revoke commit access passes, access is removed and - the candidate for revocation is informed of that fact and the - reasons for it as documented in the email requesting the - revocation vote. -* Ideally the revoked committer peacefully leaves the community - and no further action is required. However, there is a - distinct possibility that he/she will try to generate support - for his/her point of view within the larger community. In - this case the reasoning for removing commit access as - described in the request for a vote will be published to the - community. - -Changing the Policy -------------------- - -The process for changing the policy is: - -* Propose the changes to the policy in an email to all current - committers and request discussion. -* After an appropriate period of discussion (a few days) update - the proposal based on feedback if required and resend it to all - current committers with a request for a formal vote. -* After all votes have been collected or a reasonable time has - elapsed for them to be provided (e.g. a couple of business days) - the votes are evaluated. For the request to modify the policy to - pass it must receive yes votes from two thirds of the existing - committers. - -Template Emails -=============== - -Nomination to Grant Commit Access ---------------------------------- - -I would like to nominate *[candidate]* for commit access. I believe -*[he/she]* has met the conditions for commit access described in the -committer grant policy on the project web site in the following -ways: - -*[list of requirements & evidence]* - -Please reply to all in this message thread with your comments and -questions. If that discussion concludes favorably I will request a -formal vote on the nomination in a few days. - -Vote to Grant Commit Access ---------------------------- - -I nominated *[candidate]* for commit access on *[date]*. Having -allowed sufficient time for discussion it's now time to formally -vote on the proposal. - -Please reply to all in this thread with your vote of: YES, NO, or -ABSTAIN. A failure to reply will be counted as an abstention. If -you vote NO, by our policy you must include the reasons for that -vote in your reply. The deadline for votes is *[date and time]*. - -If a majority of committers vote YES and there are zero NO votes -commit access will be granted. - -Vote Results for Grant of Commit Access ---------------------------------------- - -The voting period for granting to commit access to *[candidate]* -initiated at *[date and time]* is now closed with the following -results: - -YES: *[count of yes votes]* (*[% of voters]*) - -NO: *[count of no votes]* (*[% of voters]*) - -ABSTAIN: *[count of abstentions]* (*[% of voters]*) - -Based on these results commit access *[is/is NOT]* granted. - - -Invitation to Accepted Committer --------------------------------- - -Due to your sustained contributions to the Open vSwitch (OVS) -project we would like to provide you with commit access to the -project repository. Developers with commit access must agree to -fulfill specific responsibilities described in the source -repository: - -[Documentation/committer-responsibilities.md](committer-responsibilities.md) - -Please let us know if you would like to accept commit access and if -so that you agree to fulfill these responsibilities. Once we -receive your response we'll set up access. We're looking forward -continuing to work together to advance the Open vSwitch project. - - -Proposal to Remove Commit Access for Inactivity ------------------------------------------------ - -Committer *[candidate]* has been inactive for *[duration]*. I have -attempted to privately contacted *[him/her]* and *[he/she]* could not -be reached. - -Based on this I would like to formally propose removal of commit -access. If a response to this message documenting the reasons to -retain commit access is not received by *[date]* access will be -removed. - - -Notification of Commit Removal for Inactivity ------------------------------------------------- - -Committer *[candidate]* has been inactive for *[duration]*. *[He/she]* -*[stated no commit access is required/failed to respond]* to the -formal proposal to remove access on *[date]*. Commit access has -now been removed. - - -Proposal to Revoke Commit Access for Detrimental Behavior ---------------------------------------------------------- - -I regret that I feel compelled to propose revocation of commit -access for *[candidate]*. I have privately discussed with *[him/her]* -the following reasons I believe *[his/her]* actions are detrimental -to the project and we have failed to come to a mutual -understanding: - -*[List of reasons and supporting evidence]* - -Please reply to all in this thread with your thoughts on this -proposal. I plan to formally propose a vote on the proposal on or -after *[date and time]*. - -It is important to get all discussion points both for and against -the proposal on the table during the discussion period prior to the -vote. Please make it a high priority to respond to this proposal -with your thoughts. - -Vote to Revoke Commit Access ----------------------------- - -I nominated *[candidate]* for revocation of commit access on *[date]*. -Having allowed sufficient time for discussion it's now time to -formally vote on the proposal. - -Please reply to all in this thread with your vote of: YES, NO, or -ABSTAIN. A failure to reply will be counted as an abstention. If -you vote NO, by our policy you must include the reasons for that -vote in your reply. The deadline for votes is *[date and time]*. - -If 2/3rds of committers vote YES commit access will be revoked. - -The following reasons for revocation have been given in the -original proposal or during discussion: - -*[list of reasons to remove access]* - -The following reasons for retaining access were discussed: - -*[list of reasons to retain access]* - -The counter-argument for each reason for retaining access is: - -*[list of counter-arguments for retaining access]* - -Vote Results for Revocation of Commit Access --------------------------------------------- - -The voting period for revoking the commit access of *[candidate]* -initiated at *[date and time]* is now closed with the following -results: - -* YES: *[count of yes votes]* (*[% of voters]*) - -* NO: *[count of no votes]* (*[% of voters]*) - -* ABSTAIN: *[count of abstentions]* (*[% of voters]*) - -Based on these results commit access *[is/is NOT]* revoked. The -following reasons for retaining commit access were proposed in NO -votes: - -*[list of reasons]* - -The counter-arguments for each of these reasons are: - -*[list of counter-arguments]* - -Notification of Commit Revocation for Detrimental Behavior ----------------------------------------------------------- - -After private discussion with you and careful consideration of the -situation, the other committers to the Open vSwitch (OVS) project -have concluded that it is in the best interest of the project that -your commit access to the project repositories be revoked and this -has now occurred. - -The reasons for this decision are: - -*[list of reasons for removing access]* - -While your goals and those of the project no longer appear to be -aligned we greatly appreciate all the work you have done for the -project and wish you continued success in your future work. diff --git a/Documentation/committer-grant-revocation.rst b/Documentation/committer-grant-revocation.rst new file mode 100644 index 0000000..5d6435b --- /dev/null +++ b/Documentation/committer-grant-revocation.rst @@ -0,0 +1,398 @@ +.. + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + + Convention for heading levels in Open vSwitch documentation: + + ======= Heading 0 (reserved for the title in a document) + ------- Heading 1 + ~~~~~~~ Heading 2 + +++++++ Heading 3 + ''''''' Heading 4 + + Avoid deeper levels because they do not render well. + +===================================== +OVS Committer Grant/Revocation Policy +===================================== + +An OVS committer is a participant in the project with the ability to commit +code directly to the master repository. Commit access grants a broad ability to +affect the progress of the project as presented by its most important artifact, +the code and related resources that produce working binaries of Open vSwitch. +As such it represents a significant level of trust in an individual's +commitment to working with other committers and the community at large for the +benefit of the project. It can not be granted lightly and, in the worst case, +must be revocable if the trust placed in an individual was inappropriate. + +This document suggests guidelines for granting and revoking commit access. It +is intended to provide a framework for evaluation of such decisions without +specifying deterministic rules that wouldn't be sensitive to the nuance of +specific situations. In the end the decision to grant or revoke committer +privileges is a judgment call made by the existing set of committers. + +Granting Commit Access +---------------------- + +Granting commit access should be considered when a candidate has demonstrated +the following in their interaction with the project: + +- Contribution of significant new features through the patch submission + process where: + + - Submissions are free of obvious critical defects + - Submissions do not typically require many iterations of improvement + to be accepted + +- Consistent participation in code review of other's patches, including + existing committers, with comments consistent with the overall project + standards + +- Assistance to those in the community who are less knowledgeable through + active participation in project forums such as the ovs-discuss mailing list. + +- Plans for sustained contribution to the project compatible with the project's + direction as viewed by current committers. + +- Commitment to meet the expectations described in the "Expectations of + Developer's with Open vSwitch Access" + +The process to grant commit access to a candidate is simple: + +- An existing committer nominates the candidate by sending an email to all + existing committers with information substantiating the contributions of the + candidate in the areas described above. + +- All existing committers discuss the pros and cons of granting commit + access to the candidate in the email thread. + +- When the discussion has converged or a reasonable time has elapsed without + discussion developing (e.g. a few business days) the nominator calls for a + final decision on the candidate with a followup email to the thread. + +- Each committer may vote yes, no, or abstain by replying to the email thread. + A failure to reply is an implicit abstention. + +- After votes from all existing committers have been collected or a reasonable + time has elapsed for them to be provided (e.g. a couple of business days) the + votes are evaluated. To be granted commit access the candidate must receive + yes votes from a majority of the existing committers and zero no votes. Since + a no vote is effectively a veto of the candidate it should be accompanied by + a reason for the vote. + +- The nominator summarizes the result of the vote in an email to all existing + committers. + +- If the vote to grant commit access passed, the candidate is contacted with an + invitation to become a committer to the project which asks them to agree to + the committer expectations documented on the project web site. + +- If the candidate agrees access is granted by setting up commit access to the + repos on github. + +Revoking Commit Access +---------------------- + +There are two situations in which commit access might be revoked. + +The straightforward situation is a committer who is no longer active in the +project and has no plans to become active in the near future. The process in +this case is: + +- Any time after a committer has been inactive for more than 6 months any other + committer to the project may identify that committer as a candidate for + revocation of commit access due to inactivity. + +- The plans of revocation should be sent in a private email to the candidate. + +- If the candidate for removal states plans to continue participating no action + is taken and this process terminates. + +- If the candidate replies they no longer require commit access then commit + access is removed and a notification is sent to the candidate and all + existing committers. + +- If the candidate can not be reached within 1 week of the first attempting to + contact this process continues. + +- A message proposing removal of commit access is sent to the candidate and all + other committers. + + - If the candidate for removal states plans to continue participating no + action is taken. + + - If the candidate replies they no longer require commit access then their + access is removed. + + - If the candidate can not be reached within 2 months of the second + attempting to contact them, access is removed. + +- In any case, where access is removed, this fact is published through an email + to all existing committers (including the candidate for removal). + +The more difficult situation is a committer who is behaving in a manner that is +viewed as detrimental to the future of the project by other committers. This is +a delicate situation with the potential for the creation of division within the +greater community and should be handled with care. The process in this case is: + +- Discuss the behavior of concern with the individual privately and explain why + you believe it is detrimental to the project. Stick to the facts and keep the + email professional. Avoid personal attacks and the temptation to hypothesize + about unknowable information such as the other's motivations. Make it clear + that you would prefer not to discuss the behavior more widely but will have + to raise it with other contributors if it does not change. Ideally the + behavior is eliminated and no further action is required. If not, + +- Start an email thread with all committers, including the source of the + behavior, describing the behavior and the reason it is detrimental to the + project. The message should have the same tone as the private discussion and + should generally repeat the same points covered in that discussion. The + person whose behavior is being questioned should not be surprised by anything + presented in this discussion. Ideally the wider discussion provides more + perspective to all participants and the issue is resolved. If not, + +- Start an email thread with all committers except the source of the + detrimental behavior requesting a vote on revocation of commit + rights. Cite the discussion among all committers and describe all the + reasons why it was not resolved satisfactorily. This email should be + carefully written with the knowledge that the reasoning it contains + may be published to the larger community to justify the decision. + +- Each committer may vote yes, no, or abstain by replying to the email + thread. A failure to reply is an implicit abstention. + +- After all votes have been collected or a reasonable time has elapsed + for them to be provided (e.g. a couple of business days) the votes + are evaluated. For the request to revoke commit access for the + candidate to pass it must receive yes votes from two thirds of the + existing committers. + +- anyone that votes no must provide their reasoning, and + +- if the proposal passes then counter-arguments for the reasoning in no + votes should also be documented along with the initial reasons the + revocation was proposed. Ideally there should be no new + counter-arguments supplied in a no vote as all concerns should have + surfaced in the discussion before the vote. + +- The original person to propose revocation summarizes the result of + the vote in an email to all existing committers excepting the + candidate for removal. + +- If the vote to revoke commit access passes, access is removed and the + candidate for revocation is informed of that fact and the reasons for + it as documented in the email requesting the revocation vote. + +- Ideally the revoked committer peacefully leaves the community and no + further action is required. However, there is a distinct possibility + that he/she will try to generate support for his/her point of view + within the larger community. In this case the reasoning for removing + commit access as described in the request for a vote will be + published to the community. + +Changing the Policy +------------------- + +The process for changing the policy is: + +- Propose the changes to the policy in an email to all current committers and + request discussion. + +- After an appropriate period of discussion (a few days) update the proposal + based on feedback if required and resend it to all current committers with a + request for a formal vote. + +- After all votes have been collected or a reasonable time has elapsed for them + to be provided (e.g. a couple of business days) the votes are evaluated. For + the request to modify the policy to pass it must receive yes votes from two + thirds of the existing committers. + +Template Emails +=============== + +Nomination to Grant Commit Access +--------------------------------- + +:: + + I would like to nominate *[candidate]* for commit access. I believe + *[he/she]* has met the conditions for commit access described in the + committer grant policy on the project web site in the following ways: + + *[list of requirements & evidence]* + + Please reply to all in this message thread with your comments and + questions. If that discussion concludes favorably I will request a formal + vote on the nomination in a few days. + +Vote to Grant Commit Access +--------------------------- + +:: + + I nominated *[candidate]* for commit access on *[date]*. Having allowed + sufficient time for discussion it's now time to formally vote on the + proposal. + + Please reply to all in this thread with your vote of: YES, NO, or ABSTAIN. + A failure to reply will be counted as an abstention. If you vote NO, by our + policy you must include the reasons for that vote in your reply. The + deadline for votes is *[date and time]*. + + If a majority of committers vote YES and there are zero NO votes commit + access will be granted. + +Vote Results for Grant of Commit Access +--------------------------------------- + +:: + + The voting period for granting to commit access to *[candidate]* initiated + at *[date and time]* is now closed with the following results: + + YES: *[count of yes votes]* (*[% of voters]*) + + NO: *[count of no votes]* (*[% of voters]*) + + ABSTAIN: *[count of abstentions]* (*[% of voters]*) + + Based on these results commit access *[is/is NOT]* granted. + +Invitation to Accepted Committer +-------------------------------- + +:: + + Due to your sustained contributions to the Open vSwitch (OVS) project we + would like to provide you with commit access to the project repository. + Developers with commit access must agree to fulfill specific + responsibilities described in the source repository: + + /Documentation/committer-responsibilities.rst + + Please let us know if you would like to accept commit access and if so that + you agree to fulfill these responsibilities. Once we receive your response + we'll set up access. We're looking forward continuing to work together to + advance the Open vSwitch project. + +Proposal to Remove Commit Access for Inactivity +----------------------------------------------- + +:: + + Committer *[candidate]* has been inactive for *[duration]*. I have + attempted to privately contacted *[him/her]* and *[he/she]* could not be + reached. + + Based on this I would like to formally propose removal of commit access. + If a response to this message documenting the reasons to retain commit + access is not received by *[date]* access will be removed. + +Notification of Commit Removal for Inactivity +--------------------------------------------- + +:: + + Committer *[candidate]* has been inactive for *[duration]*. *[He/she]* + *[stated no commit access is required/failed to respond]* to the formal + proposal to remove access on *[date]*. Commit access has now been removed. + +Proposal to Revoke Commit Access for Detrimental Behavior +--------------------------------------------------------- + +:: + + I regret that I feel compelled to propose revocation of commit access for + *[candidate]*. I have privately discussed with *[him/her]* the following + reasons I believe *[his/her]* actions are detrimental to the project and we + have failed to come to a mutual understanding: + + *[List of reasons and supporting evidence]* + + Please reply to all in this thread with your thoughts on this proposal. I + plan to formally propose a vote on the proposal on or after *[date and + time]*. + + It is important to get all discussion points both for and against the + proposal on the table during the discussion period prior to the vote. + Please make it a high priority to respond to this proposal with your + thoughts. + +Vote to Revoke Commit Access +---------------------------- + +:: + + I nominated *[candidate]* for revocation of commit access on *[date]*. + Having allowed sufficient time for discussion it's now time to formally + vote on the proposal. + + Please reply to all in this thread with your vote of: YES, NO, or ABSTAIN. + A failure to reply will be counted as an abstention. If you vote NO, by our + policy you must include the reasons for that vote in your reply. The + deadline for votes is *[date and time]*. + + If 2/3rds of committers vote YES commit access will be revoked. + + The following reasons for revocation have been given in the original + proposal or during discussion: + + *[list of reasons to remove access]* + + The following reasons for retaining access were discussed: + + *[list of reasons to retain access]* + + The counter-argument for each reason for retaining access is: + + *[list of counter-arguments for retaining access]* + +Vote Results for Revocation of Commit Access +-------------------------------------------- + +:: + + The voting period for revoking the commit access of *[candidate]* initiated + at *[date and time]* is now closed with the following results: + + - YES: *[count of yes votes]* (*[% of voters]*) + + - NO: *[count of no votes]* (*[% of voters]*) + + - ABSTAIN: *[count of abstentions]* (*[% of voters]*) + + Based on these results commit access *[is/is NOT]* revoked. The following + reasons for retaining commit access were proposed in NO votes: + + *[list of reasons]* + + The counter-arguments for each of these reasons are: + + *[list of counter-arguments]* + +Notification of Commit Revocation for Detrimental Behavior +---------------------------------------------------------- + +:: + + After private discussion with you and careful consideration of the + situation, the other committers to the Open vSwitch (OVS) project have + concluded that it is in the best interest of the project that your commit + access to the project repositories be revoked and this has now occurred. + + The reasons for this decision are: + + *[list of reasons for removing access]* + + While your goals and those of the project no longer appear to be aligned we + greatly appreciate all the work you have done for the project and wish you + continued success in your future work. diff --git a/MAINTAINERS.rst b/MAINTAINERS.rst index 34f4e7b..fba9ce6 100644 --- a/MAINTAINERS.rst +++ b/MAINTAINERS.rst @@ -32,7 +32,7 @@ The responsibilities of an Open vSwitch committer are documented `here `__. The process for adding or removing committers is documented -`here `__. +`here `__. This is the current list of Open vSwitch committers: