OK, I’ve found a way to get every user with the commit bit in the GitHub org. I don’t have everyone’s email address, however. I’ve added all the users I do have emails for, but I’m missing the following:
I do think we should send a mail saying “Hey, we’re going to start using this for PyPA-level decision-making votes now, since PEP 609 is now an accepted PEP” before we start the votes (in case there’s folks in PyPA who aren’t keeping up with all-the-things-around-that-governance-discussion.
Maybe this is a topic for another thread, but in the PyPA as a PSF Fiscal Sponsoree vote, I’m noticing that it’s already very noisy, the votes are public and it seems like it will be somewhat annoying manual task to count the votes.
Is there any way we can move to an implementation where the vote is advertised on PyPA-committers, but conducted via discourse or Helios or some other system that counts the votes for you and doesn’t involve everyone on the list getting an e-mail every time someone votes?
That it is ambiguous what PEP means when it comes to counting the votes proportion. Is it +1’s divided by all possible voters or by those who actually have casted a vote. @pf_moore seems to agree and I think it’s reasonable to only count the ones who casted their votes too.
Thanks everyone for the feedback. I’ll agree that I seem to have misinterpreted the PEP, I’ll chalk that up due to lack of coffee. It probably makes sense to amend the PEP to say:
- If at least two thirds of voters vote +1, then the vote succeeds.
+ If at least two thirds of recorded votes are +1, then the vote succeeds.
Why not just mute the thread after voting? I think the infrequency in which we’ll conduct a vote doesn’t merit this much overhead. Also, if we don’t actually need 2/3 of voters to participate, there’s even less emails to receive and less votes to count.
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:
Extend until quorum is met.
Extend by 1 week every time the vote expires without reaching quorum.
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.