[python-committers] Timeline to vote for a governance PEP

Donald Stufft donald at stufft.io
Sun Nov 4 01:52:57 EDT 2018



> On Nov 3, 2018, at 11:56 PM, Tim Peters <tim.peters at gmail.com> wrote:
> 
> [Donald Stufft <donald at stufft.io>]
>> So to avoid just complaining without an actionable suggestion, here’s a suggestion:
>> 
>> Use https://civs.cs.cornell.edu with the following settings (x in the ones turned on):
> 
> Presumably someone is "running" this election, but I don't know who.
> Do we believe they're paying attention to this list?  Or are they
> focused on the Discourse site now?:  I'd hate to see this possibility
> get lost:

I’ll mirror this over to discourse in a bit, or maybe tomorrow.

> 
>> ...
>> - The results are computed, although none of the options are for “pure” condorcet,
>> we can use the CSV format to compute it how we like to verify that there was a
>> pure condorcet winner.
> 
> The test poll you constructed didn't have a Condorcet winner.  Looking
> at other public polls on that site, I noticed that when there _was_ a
> Condorcet winner, the results page said
> 
>    (Condorcet winner: wins contests with all other choices)
> 
> next to the winning candidate.  Given that the results page also gives
> a color-coded matrix of pairwise preference counts, verifying this is
> trivial by eyeball (the winning candidate is in the top row, and is a
> Condorcet winner if and only if all the cells in the top row are
> colored green (excluding the extreme northwest cell, which is always
> blank) - which means the top-row candidate outright won against every
> other candidate - which is what "pure Condorcet winner" means).

You’re right. I simulated an election without a Condorcet winner, but where the voting mechanisms would otherwise select a winner (just using the example from the Schulze Wikipedia page), it says "(Not defeated in any contest vs. another choice)”, instead. An example can be found at: https://civs.cs.cornell.edu/cgi-bin/results.pl?num_winners=1&id=E_4191dbfb94efecb6&algorithm=beatpath <https://civs.cs.cornell.edu/cgi-bin/results.pl?num_winners=1&id=E_4191dbfb94efecb6&algorithm=beatpath>.

Just for kicks I added enough ballots so that there would be a Condorcet winner, and I verified that the above is true, and an example can be found at https://civs.cs.cornell.edu/cgi-bin/results.pl?num_winners=1&id=E_31f80ce0986ce98c&algorithm=beatpath <https://civs.cs.cornell.edu/cgi-bin/results.pl?num_winners=1&id=E_31f80ce0986ce98c&algorithm=beatpath>.

So that means if we go with it, we can let CIVS tally for us and we’ll just look for a Condorcet winner instead of another kind of winner. Of course since all of the anonymized ballots are public, people are free to compute it themselves as well.

> 
>> - As a downside, the list of people who voted are *not* made public (it
>> considers not participating at all to be something that deserves secret
>> as well).
> 
> Indeed, it appears that even the election supervisor has no way to
> find out who did and didn't vote.  Although, from the Security page:
> 
> """
> The election supervisor can determine whether a voter has voted only
> with the permission of the voter and only after the election has
> ended.
> “""

Maybe they mean that if you contact them they can look that information up? I’m looking and I don’t see any UI that lets me do that, so either it’s not implemented, it was removed, I’m missing it, or it requires contacting them.

> 
> 
>> - It doesn’t require you to make a total ranking of all the options (it allows you to
>> rank some items equal). This is fine with Condorcet (it just means a cycle is
>> more likely).
> 
> We can worry about that when it doesn't happen anyway ;-)

It can also optionally let people pick no opinion, though I’m not sure of the utility of that. It basically means, as I understand it, that in any pairwise contest that includes a option you had no opinion on, your ballot would just not be included. The FAQ on this says:


What does “no opinion” mean? It means you are providing no information about how this choice ranks with respect to the other choices. For example, if you give one choice the rank 1, and give all other choices the rank “no opinion”, your ballot becomes useless because it doesn't express any preferences. Voters often pick “no opinion” when what they mean is that they don't like the choice or that they don't have any information about it. In these situations, it is often better to give the choice a low rank rather than to select “no opinion”. A good reason for a voter to give a choice the rank “no opinion” is because the voter isn't supposed to express an opinion about that choice.

It sounds to me like no opinion is a bit of a footgun here, so I think it makes sense not to allow it (probably the case of where you don’t have an opinion, you’re better off just ranking it last like the FAQ suggests).


> 
>> - A single person has to act as the election administrator, which basically only
>> gives the power to start/stop the election and to add voters (you can’t add
>> the same email address twice, doing so just re-sends the email to that person).
> 
> So the admin _could_, e.g., add a hundred sock puppet email addresses,
> and effectively give them self a hundred votes.  We couldn't tell,
> other than noting that the total vote count seemed too high.
> 
> Which I don't really care about.  The CIVS service is good enough for
> me - and likely far better than anything people who just can't believe
> running an election can present any real difficulties will come up
> with off the top of their heads ;-)


Yea. And my suggestion of Ernest is that well, an evil Ernest can already fuck shit up for the Python community way beyond trying to change how we make decisions about PEPs and such (and he’s not a core dev, so he doesn’t have a horse in this race). Although I don’t really care who runs it, I think anyone here is going to be honest about it.

I can say as a supervisor you also can’t see how people have voted at all until after the voting ends. You can only see how many people voted. This makes it harder to meaningfully influence the election because you won’t be able to make targeted, strategic puppet votes without either doing it blindly or flooding the votes to a degree that it would be obvious.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-committers/attachments/20181104/16d969cb/attachment.html>


More information about the python-committers mailing list