1 OVS Committer Grant/Revocation Policy
2 =====================================
4 An OVS committer is a participant in the project with the ability
5 to commit code directly to the master repository. Commit access
6 grants a broad ability to affect the progress of the project as
7 presented by its most important artifact, the code and related
8 resources that produce working binaries of Open vSwitch. As such
9 it represents a significant level of trust in an individual's
10 commitment to working with other committers and the community at
11 large for the benefit of the project. It can not be granted
12 lightly and, in the worst case, must be revocable if the trust
13 placed in an individual was inappropriate.
15 This document suggests guidelines for granting and revoking commit
16 access. It is intended to provide a framework for evaluation of such
17 decisions without specifying deterministic rules that wouldn't be
18 sensitive to the nuance of specific situations. In the end the
19 decision to grant or revoke committer privileges is a judgment call
20 made by the existing set of committers.
22 Granting Commit Access
23 ----------------------
25 Granting commit access should be considered when a candidate has
26 demonstrated the following in their interaction with the project:
28 * Contribution of significant new features through the patch
29 submission process where:
30 * Submissions are free of obvious critical defects
31 * Submissions do not typically require many iterations of
32 improvement to be accepted
33 * Consistent participation in code review of other's patches,
34 including existing committers, with comments consistent with the
35 overall project standards
36 * Assistance to those in the community who are less knowledgeable
37 through active participation in project forums such as the
38 ovs-discuss mailing list.
39 * Plans for sustained contribution to the project compatible with
40 the project's direction as viewed by current committers.
41 * Commitment to meet the expectations described in the
42 "Expectations of Developer's with Open vSwitch Access"
44 The process to grant commit access to a candidate is simple:
46 * An existing committer nominates the candidate by sending an
47 email to all existing committers with information
48 substantiating the contributions of the candidate in the areas
50 * All existing committers discuss the pros and cons of granting
51 commit access to the candidate in the email thread.
52 * When the discussion has converged or a reasonable time has
53 elapsed without discussion developing (e.g. a few business days)
54 the nominator calls for a final decision on the candidate with a
55 followup email to the thread.
56 * Each committer may vote yes, no, or abstain by replying to the
57 email thread. A failure to reply is an implicit abstention.
58 * After votes from all existing committers have been collected or a
59 reasonable time has elapsed for them to be provided (e.g. a
60 couple of business days) the votes are evaluated. To be granted
61 commit access the candidate must receive yes votes from a
62 majority of the existing committers and zero no votes. Since a
63 no vote is effectively a veto of the candidate it should be
64 accompanied by a reason for the vote.
65 * The nominator summarizes the result of the vote in an email to
66 all existing committers.
67 * If the vote to grant commit access passed, the candidate is
68 contacted with an invitation to become a committer to the project
69 which asks them to agree to the committer expectations
70 documented on the project web site.
71 * If the candidate agrees access is granted by setting up commit
72 access to the repos on github.
74 Revoking Commit Access
75 ----------------------
77 There are two situations in which commit access might be revoked.
79 The straightforward situation is a committer who is no longer
80 active in the project and has no plans to become active in the near
81 future. The process in this case is:
83 * Any time after a committer has been inactive for more than 6
84 months any other committer to the project may identify that
85 committer as a candidate for revocation of commit access due to
87 * The plans of revocation should be sent in a private email to the
89 * If the candidate for removal states plans to continue
90 participating no action is taken and this process terminates.
91 * If the candidate replies they no longer require commit
92 access then commit access is removed and a notification is
93 sent to the candidate and all existing committers.
94 * If the candidate can not be reached within 1 week of the first
95 attempting to contact this process continues.
96 * A message proposing removal of commit access is sent to the
97 candidate and all other committers.
98 * If the candidate for removal states plans to continue
99 participating no action is taken.
100 * If the candidate replies they no longer require commit
101 access then their access is removed.
102 * If the candidate can not be reached within 2 months of the
103 second attempting to contact them, access is removed.
104 * In any case, where access is removed, this fact is published
105 through an email to all existing committers (including the
106 candidate for removal).
108 The more difficult situation is a committer who is behaving in a
109 manner that is viewed as detrimental to the future of the project
110 by other committers. This is a delicate situation with the
111 potential for the creation of division within the greater
112 community and should be handled with care. The process in this
115 * Discuss the behavior of concern with the individual privately and
116 explain why you believe it is detrimental to the project. Stick
117 to the facts and keep the email professional. Avoid personal
118 attacks and the temptation to hypothesize about unknowable
119 information such as the other's motivations. Make it clear that
120 you would prefer not to discuss the behavior more widely but will
121 have to raise it with other contributors if it does not change.
122 Ideally the behavior is eliminated and no further action is
124 * Start an email thread with all committers, including the source
125 of the behavior, describing the behavior and the reason it is
126 detrimental to the project. The message should have the same
127 tone as the private discussion and should generally repeat the
128 same points covered in that discussion. The person whose
129 behavior is being questioned should not be surprised by anything
130 presented in this discussion. Ideally the wider discussion
131 provides more perspective to all participants and the issue is
133 * Start an email thread with all committers except the source of
134 the detrimental behavior requesting a vote on revocation of
135 commit rights. Cite the discussion among all committers and
136 describe all the reasons why it was not resolved satisfactorily.
137 This email should be carefully written with the knowledge that the
138 reasoning it contains may be published to the larger community
139 to justify the decision.
140 * Each committer may vote yes, no, or abstain by replying to the
141 email thread. A failure to reply is an implicit abstention.
142 * After all votes have been collected or a reasonable time has
143 elapsed for them to be provided (e.g. a couple of business days)
144 the votes are evaluated. For the request to revoke commit access
145 for the candidate to pass it must receive yes votes from two
146 thirds of the existing committers.
147 * anyone that votes no must provide their reasoning, and
148 * if the proposal passes then counter-arguments for the reasoning in
149 no votes should also be documented along with the initial reasons
150 the revocation was proposed. Ideally there should be no new
151 counter-arguments supplied in a no vote as all concerns should
152 have surfaced in the discussion before the vote.
153 * The original person to propose revocation summarizes the result
154 of the vote in an email to all existing committers excepting the
155 candidate for removal.
156 * If the vote to revoke commit access passes, access is removed and
157 the candidate for revocation is informed of that fact and the
158 reasons for it as documented in the email requesting the
160 * Ideally the revoked committer peacefully leaves the community
161 and no further action is required. However, there is a
162 distinct possibility that he/she will try to generate support
163 for his/her point of view within the larger community. In
164 this case the reasoning for removing commit access as
165 described in the request for a vote will be published to the
171 The process for changing the policy is:
173 * Propose the changes to the policy in an email to all current
174 committers and request discussion.
175 * After an appropriate period of discussion (a few days) update
176 the proposal based on feedback if required and resend it to all
177 current committers with a request for a formal vote.
178 * After all votes have been collected or a reasonable time has
179 elapsed for them to be provided (e.g. a couple of business days)
180 the votes are evaluated. For the request to modify the policy to
181 pass it must receive yes votes from two thirds of the existing
187 Nomination to Grant Commit Access
188 ---------------------------------
190 I would like to nominate *[candidate]* for commit access. I believe
191 *[he/she]* has met the conditions for commit access described in the
192 committer grant policy on the project web site in the following
195 *[list of requirements & evidence]*
197 Please reply to all in this message thread with your comments and
198 questions. If that discussion concludes favorably I will request a
199 formal vote on the nomination in a few days.
201 Vote to Grant Commit Access
202 ---------------------------
204 I nominated *[candidate]* for commit access on *[date]*. Having
205 allowed sufficient time for discussion it's now time to formally
206 vote on the proposal.
208 Please reply to all in this thread with your vote of: YES, NO, or
209 ABSTAIN. A failure to reply will be counted as an abstention. If
210 you vote NO, by our policy you must include the reasons for that
211 vote in your reply. The deadline for votes is *[date and time]*.
213 If a majority of committers vote YES and there are zero NO votes
214 commit access will be granted.
216 Vote Results for Grant of Commit Access
217 ---------------------------------------
219 The voting period for granting to commit access to *[candidate]*
220 initiated at *[date and time]* is now closed with the following
223 YES: *[count of yes votes]* (*[% of voters]*)
225 NO: *[count of no votes]* (*[% of voters]*)
227 ABSTAIN: *[count of abstentions]* (*[% of voters]*)
229 Based on these results commit access *[is/is NOT]* granted.
232 Invitation to Accepted Committer
233 --------------------------------
235 Due to your sustained contributions to the Open vSwitch (OVS)
236 project we would like to provide you with commit access to the
237 project repository. Developers with commit access must agree to
238 fulfill specific responsibilities described in the source
241 [Documentation/committer-responsibilities.md](committer-responsibilities.md)
243 Please let us know if you would like to accept commit access and if
244 so that you agree to fulfill these responsibilities. Once we
245 receive your response we'll set up access. We're looking forward
246 continuing to work together to advance the Open vSwitch project.
249 Proposal to Remove Commit Access for Inactivity
250 -----------------------------------------------
252 Committer *[candidate]* has been inactive for *[duration]*. I have
253 attempted to privately contacted *[him/her]* and *[he/she]* could not
256 Based on this I would like to formally propose removal of commit
257 access. If a response to this message documenting the reasons to
258 retain commit access is not received by *[date]* access will be
262 Notification of Commit Removal for Inactivity
263 ------------------------------------------------
265 Committer *[candidate]* has been inactive for *[duration]*. *[He/she]*
266 *[stated no commit access is required/failed to respond]* to the
267 formal proposal to remove access on *[date]*. Commit access has
271 Proposal to Revoke Commit Access for Detrimental Behavior
272 ---------------------------------------------------------
274 I regret that I feel compelled to propose revocation of commit
275 access for *[candidate]*. I have privately discussed with *[him/her]*
276 the following reasons I believe *[his/her]* actions are detrimental
277 to the project and we have failed to come to a mutual
280 *[List of reasons and supporting evidence]*
282 Please reply to all in this thread with your thoughts on this
283 proposal. I plan to formally propose a vote on the proposal on or
284 after *[date and time]*.
286 It is important to get all discussion points both for and against
287 the proposal on the table during the discussion period prior to the
288 vote. Please make it a high priority to respond to this proposal
291 Vote to Revoke Commit Access
292 ----------------------------
294 I nominated *[candidate]* for revocation of commit access on *[date]*.
295 Having allowed sufficient time for discussion it's now time to
296 formally vote on the proposal.
298 Please reply to all in this thread with your vote of: YES, NO, or
299 ABSTAIN. A failure to reply will be counted as an abstention. If
300 you vote NO, by our policy you must include the reasons for that
301 vote in your reply. The deadline for votes is *[date and time]*.
303 If 2/3rds of committers vote YES commit access will be revoked.
305 The following reasons for revocation have been given in the
306 original proposal or during discussion:
308 *[list of reasons to remove access]*
310 The following reasons for retaining access were discussed:
312 *[list of reasons to retain access]*
314 The counter-argument for each reason for retaining access is:
316 *[list of counter-arguments for retaining access]*
318 Vote Results for Revocation of Commit Access
319 --------------------------------------------
321 The voting period for revoking the commit access of *[candidate]*
322 initiated at *[date and time]* is now closed with the following
325 * YES: *[count of yes votes]* (*[% of voters]*)
327 * NO: *[count of no votes]* (*[% of voters]*)
329 * ABSTAIN: *[count of abstentions]* (*[% of voters]*)
331 Based on these results commit access *[is/is NOT]* revoked. The
332 following reasons for retaining commit access were proposed in NO
337 The counter-arguments for each of these reasons are:
339 *[list of counter-arguments]*
341 Notification of Commit Revocation for Detrimental Behavior
342 ----------------------------------------------------------
344 After private discussion with you and careful consideration of the
345 situation, the other committers to the Open vSwitch (OVS) project
346 have concluded that it is in the best interest of the project that
347 your commit access to the project repositories be revoked and this
350 The reasons for this decision are:
352 *[list of reasons for removing access]*
354 While your goals and those of the project no longer appear to be
355 aligned we greatly appreciate all the work you have done for the
356 project and wish you continued success in your future work.