Implementing PEP 609: PyPA Governance

A quorum with a fixed percentage of the voting populace will likely become a bigger hurdle over time, as many projects have inactive maintainers. For example, CPython has 172 core devs listed in the input to the voter rolls, of whom 82 were eligible to vote in the last election.

From what I can tell, on core dev promotions, absolute number of voters went up pretty significantly when it was switched to anonymous voting on discourse, and the number of votes each candidate has gotten since then is in the range of 20-40, so if CPython had adopted a 1/3 quorum without a qualification on who counts as ā€œactiveā€, no core dev promotions would have succeeded in at least the past several years.

If weā€™re worried about votes passing or failing due to lack of interest, Iā€™d set a maximum quorum at a fixed number, like, ā€œ1/3rd of eligible voters or 10 voters, whichever number is smallerā€. Possibly with a provision to extend the voting period if quorum is not met. Possible options for that would be:

  1. Extend until quorum is met.
  2. Extend by 1 week every time the vote expires without reaching quorum.
  3. Extend by 1 week every time the vote expires without reaching quorum for a maximum of N weeks.

If we are going to announce results here then I think that makes sense, otherwise I have not muted the thread yet as Iā€™m waiting to hear the results. Muting also assumes your email client supports muting, though.

For what itā€™s worth if we choose something like helios we can switch to anonymous voting, which could help with fairness of some votes. E.g. if many people start voting for a proposal, other members donā€™t feel pressure for voting against. So Iā€™m personally +1 on going Helios on this. Not sure how hard it is to setup the Helios voting, but I gather @EWDurbin has some experience he can share for the core python developers group.

PS. Iā€™m ok with 1 week deadline. And announce result as it is afterwards. If weā€™re going to set any type of quorum weā€™d need to introduce some type of removing people from PyPa, to not make life difficult with people that walked away from PyPa packaging but still having their commit bits.

As mentioned downthread already, the issue with ā€œrecorded votesā€ is that there is no quorum established. If only one vote was recorded, then the vote would succeed.

Iā€™d propose setting quorum to 1/3 of members of the list for simplicity.

For comparison, Debian defines its quorum as 3Q, where Q = 1/2 * sqrt(N) for N = number of developers. In the PyPA commiters case that would give a quorum of 10. 1/3 of 39 is 13.

(edited to s/29/39/)

1 Like