Skip to content

Commit a659797

Browse files
authored
Merge pull request #1207 from conda-forge/beckermr-patch-2
ENH change voting rules and when summaries are needed
2 parents 2b0815f + 7f132ef commit a659797

File tree

1 file changed

+96
-63
lines changed

1 file changed

+96
-63
lines changed

src/orga/governance.rst

Lines changed: 96 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,10 @@ Here are defined the primary teams participating in conda-forge activities.
3535
dev meetings and voting on polls) in the past six months will be asked if they want to become emeritus-core
3636
developers. Any core member can also request to become emeritus if they wish to do so
3737
(e.g. taking a sabbatical or long vacation).
38-
Emeritus core members can still vote and be back to active core anytime, the only difference is
39-
that emeritus-core will not count as the total core members when computing the necessary
40-
votes a poll needs to pass. The ``core.csv`` list should be updated when change in the status of a member occurs.
38+
Emeritus core members can still vote and move back to active core anytime. Emeritus
39+
votes are used to count towards quorum but the quorum size is computed from the size of
40+
the active core group. The ``core.csv`` list should be updated when a change in the status
41+
of a member occurs.
4142

4243
Sub-Teams
4344
---------
@@ -85,9 +86,9 @@ Standard items are ones where public record and discourse is
8586
preferable. Sensitive voting items are ones where the results of the
8687
vote should remain private to the voters after the vote has occurred.
8788
Sensitive votes should take place on a secure anonymous voting platform
88-
in order to retain election integrity and anonymity. (We have used `Polys <polys.me>`_
89-
and `the Helios voting system <https://vote.heliosvoting.org/>`_, but are
90-
open to any secure, anonymous system.) The email capability of your chosen
89+
in order to retain election integrity and anonymity. (We have used `Polys <polys.me>`_
90+
and `the Helios voting system <https://vote.heliosvoting.org/>`_, but are
91+
open to any secure, anonymous system.) The email capability of your chosen
9192
voting platform should be used for sending voting invitations and reminders,
9293
and you should use the email list from
9394
https://github.com/conda-forge/conda-forge.github.io/blob/master/src/core.csv as
@@ -108,68 +109,89 @@ To call for a standard vote, here is a template PR comment:
108109
To vote please leave Approve (yea) or Request Changes (nay) reviews.
109110
If you would like changes to the current language please leave a comment or push to this branch.
110111
This vote will end on {date}.
111-
112+
112113
----
113-
:Posting results: To maintain the historical record, the outcome of any standard vote should be
114-
recorded in the "vote-results" folder at
114+
115+
:Posting results: To maintain the historical record, the outcome of any standard vote which invokes the
116+
"time out" rules below should be recorded in the "vote-results" folder at
115117
https://github.com/conda-forge/conda-forge.github.io/tree/master/src/vote-results
116-
117-
Each vote should be its own file. The filename should reflect the topic and the
118+
119+
Each vote should be its own file. The filename should reflect the topic and the
118120
date that the vote opened. The file should contain at least:
119-
121+
120122
* vote description
121123
* vote policy
122124
* vote totals
123-
* Poll open and close dates
124-
125-
If a vote has "timed out," as described in "Quorum," the documentation regarding
126-
notification records should also be in this file.
127-
125+
* poll open and close dates
126+
* notifications given to the core group
128127

129128
----
130-
:Quorum: All percentages below express *both* required participation, as a
131-
fraction of the active core team, as well as the fraction of that
132-
fraction who vote affirmatively on the issue. For example, in a vote
133-
requiring 50%, with 18 active core members, at least 9 must vote;
134-
if 9 vote, there must 5 affirmative votes. If 13 members vote, 7
135-
must be affirmative.
136-
137-
Because everyone is busy and it is difficult sometimes to get quorum,
138-
votes not achieving quorum will eventually time out on their set end date. When this happens,
139-
the current participation level is taken for what it is, and the percentage
140-
of affirmative votes is calculated from whatever the vote total is at that
141-
time. In order for a timeout to occur, the vote must have:
142-
143-
* been open for at least 2 weeks
144-
* been presented and discussed at a Core team meeting
145-
* been advertised on at least 3 separate occasions on the gitter core
146-
channel (beginning of voting period, middle, and one day prior to
147-
proposed timeout)
148-
* been sent to core members via email. Email reminders must have been
149-
sent similarly to the gitter core channel: at least 3 times,
150-
occurring as beginning of voting period, middle, and one day
151-
prior to proposed timeout.
152-
153-
Extending the above example, if 9 people are required for a quorum, but
154-
only 7 have voted, those 7 votes can form the basis of a completed vote
155-
after the above conditions are met. 4 votes within those 7 would be
156-
needed to pass the vote.
157-
158-
To post a timeout reminder, here is a template comment:
159-
160-
.. code-block:: md
161-
162-
@conda-forge/core
163-
This vote falls under the {policy} policy, please vote and/or comment on this PR.
164-
This vote needs {policy_percent} of core to vote yea to pass.
165-
This vote presently has {current_voters}, and needs {policy_percent * core - current_voters} more for quorum.
166-
It is proposed that this vote will time out and be evaluated with the current votes in {days}, on {date}.
167-
To vote please leave Approve (yea) or Request Changes (nay) reviews.
168-
169-
To declare a standard vote "timed out," the person making such a declaration must post a pull-request adding
170-
a vote record to the https://github.com/conda-forge/conda-forge.github.io/tree/master/src/vote-results
171-
folder. The declaration PR should be merged by the first core member who is available to verify that
172-
the requirements for the timeout have been met, based on their own personal records.
129+
130+
:Quorum: Quorum for votes can be met in one of three ways depending on the
131+
vote: the standard quorum rules, the accelerated quorum rules, and the
132+
"time out" quorum rules. The specific quorum rules applicable
133+
for each vote are listed below.
134+
135+
**Standard Quorum Rules**: All percentages below express *both*
136+
required participation, as a
137+
fraction of the active core team, as well as the fraction of that
138+
fraction who vote affirmatively on the issue. For example, in a vote
139+
requiring 50%, with 18 active core members, at least 9 must vote;
140+
if 9 vote, there must 5 affirmative votes. If 13 members vote, 7
141+
must be affirmative.
142+
143+
**Accelerated Quorum Rules**: For certain votes, we allow a lower quorum level.
144+
For these votes,
145+
if the voting period is longer than a week and there are no "no" votes, a quorum
146+
of half of the size
147+
needed for a **standard quorum** above is accepatble. For example, for a vote
148+
requiring 50% with 18
149+
active core members, at least 5 people must vote "yes" and exactly 0 people
150+
must vote "no".
151+
152+
**Time-out Quorum Rules**: Votes not achieving quorum will eventually time out on their set end date.
153+
When this happens,
154+
the current participation level is taken for what it is, and the percentage
155+
of affirmative votes is calculated from whatever the vote total is at that
156+
time. In order for a timeout to occur, the vote must have:
157+
158+
* been open for at least 2 weeks
159+
* been presented and discussed at a Core team meeting
160+
* been advertised on at least 3 separate occasions on the gitter core
161+
channel (beginning of voting period, middle, and one day prior to
162+
proposed timeout)
163+
* been sent to core members via email. Email reminders must have been
164+
sent to the core email list in a manner similar to the gitter channel: at least 3 times,
165+
occurring as beginning of voting period, middle, and one day
166+
prior to proposed timeout.
167+
168+
Extending the above example, if 9 people are required for a quorum, but
169+
only 7 have voted, those 7 votes can form the basis of a completed vote
170+
after the above conditions are met. 4 votes within those 7 would be
171+
needed to pass the vote.
172+
173+
To post a timeout reminder, here is a template comment:
174+
175+
.. code-block:: md
176+
177+
@conda-forge/core
178+
This vote falls under the {policy} policy, please vote
179+
and/or comment on this PR.
180+
This vote needs {policy_percent} of core to vote yea to pass.
181+
This vote presently has {current_voters}, and needs
182+
{policy_percent * core - current_voters} more for quorum.
183+
It is proposed that this vote will time out and be
184+
evaluated with the current votes in {days}, on {date}.
185+
To vote please leave Approve (yea) or Request Changes (nay)
186+
reviews.
187+
188+
To declare a standard vote "timed out," the person making such a declaration
189+
must post a pull-request adding
190+
a vote record to the https://github.com/conda-forge/conda-forge.github.io/tree/master/src/vote-results
191+
folder. The declaration PR should be merged by the first core member
192+
who is available to verify that
193+
the requirements for the timeout have been met, based on their
194+
own personal records.
173195

174196
----
175197

@@ -181,6 +203,7 @@ To call for a standard vote, here is a template PR comment:
181203

182204
* Standard
183205
* 60% Majority to pass
206+
* Quorum rules: standard or time-out
184207

185208
----
186209

@@ -189,6 +212,7 @@ To call for a standard vote, here is a template PR comment:
189212

190213
* Sensitive
191214
* 50% Majority to pass
215+
* Quorum rules: standard, accelerated, or time-out
192216

193217
----
194218

@@ -201,6 +225,7 @@ To call for a standard vote, here is a template PR comment:
201225

202226
* Sensitive
203227
* 66.7% Majority to pass
228+
* Quorum rules: standard or time-out
204229

205230
----
206231

@@ -209,6 +234,7 @@ To call for a standard vote, here is a template PR comment:
209234

210235
* Standard
211236
* 50% Majority to pass
237+
* Quorum rules: standard or time-out
212238

213239
----
214240

@@ -217,6 +243,7 @@ To call for a standard vote, here is a template PR comment:
217243

218244
* Standard
219245
* 50% Majority to pass
246+
* Quorum rules: standard or time-out
220247

221248
----
222249

@@ -242,6 +269,7 @@ To call for a standard vote, here is a template PR comment:
242269

243270
* Sensitive
244271
* 60% Majority to pass
272+
* Quorum rules: standard or time-out
245273

246274
----
247275

@@ -251,6 +279,7 @@ To call for a standard vote, here is a template PR comment:
251279

252280
* Sensitive
253281
* 66.7% Majority to pass
282+
* Quorum rules: standard or time-out
254283

255284
----
256285

@@ -260,6 +289,7 @@ To call for a standard vote, here is a template PR comment:
260289

261290
* Sensitive
262291
* 75% Majority to pass
292+
* Quorum rules: standard or time-out
263293

264294
----
265295

@@ -271,7 +301,8 @@ To call for a standard vote, here is a template PR comment:
271301
and discussions. Friendly reminders to vote are encouraged.
272302

273303
* Standard
274-
* 50% plus one of those voting to pass
304+
* 50% Majority to pass
305+
* Quorum rules: standard, accelerated, or time-out
275306

276307
----
277308

@@ -288,6 +319,7 @@ To call for a standard vote, here is a template PR comment:
288319

289320
* Standard
290321
* 50% Majority to pass
322+
* Quorum rules: standard or time-out
291323

292324
----
293325

@@ -299,11 +331,12 @@ To call for a standard vote, here is a template PR comment:
299331

300332
* Standard
301333
* 75% plus one of those voting to pass
334+
* Quorum rules: standard or time-out
302335

303336
----
304337

305-
All other voting items are considered to be standard and require a 50%
306-
majority to pass.
338+
All other voting items are considered to be standard, require a 50%
339+
majority to pass, and use only the standard or time-out quorum rules.
307340

308341
Current Members of Core
309342
-----------------------

0 commit comments

Comments
 (0)