On Nov 3, 2018, at 3:09 PM, Donald Stufft <donald@stufft.io> wrote:

On Nov 3, 2018, at 2:06 PM, Barry Warsaw <barry@python.org> wrote:

I also prefer private ballots on principle, but I’ll still vote if they are public.  I don’t completely buy into the rationale in PEP 8001 on why they must be public.

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):

[x] Private
[ ] Make this a test poll: read all votes from a file.
[ ] Do not release results to all voters.
[x] Enable detailed ballot reporting.
[ ] In detailed ballot report, also reveal the identity of the voter with each ballot.
[ ] Allow voters to write in new choices.
[ ] Present choices on voting page in exactly the given order.
[ ] Allow voters to select “no opinion” for some choices.
[ ] Enforce proportional representation

This best represents the current behavior, while moving us to use a secret ballot. Voting in this system looks like an email like https://s.caremad.io/9i63IkqBppKMudh/ which includes in it a link to vote. Going to that link gives you a page like https://s.caremad.io/TDQWB0wv4FDx3I9/. Which has some Ui affordances for dragging/dropping to re-order or to allow you to use a drop down to select your winner.  Once you submit your vote, you’re given a page like https://s.caremad.io/HszGnDfDJQ725YX/. Once the election is over, the results are available and look like https://s.caremad.io/4Wcy5InXoLjV7MU/ (after you click a button to see more results).

This has the following properties:

- People’s identities are kept secret.
  - This assume that the people running that online system are discarding the votes like they claim to be. I don’t think they’re likely to be lying and it’s a popular online service so they’re unlikely to do anything about it.
- The actual ballots are public, and available to be viewed and even downloaded in CSV format.
- 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.
- 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).
- As an upside, it will randomize the order ballots are in by default, and there is science/evidence to suggest that when ballots are in the same order for everyone, that items closer to the top of the ballot are more likely to win. Randomizing ballot order helps with this.
- 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). 
- 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).

One thing we need if we do go this route, is a single person to act as the election supervisor. Their powers are limited basically they configure the election, adding a description, the choices, etc and then they have the power to start the election, add voters via email addresses, and then end the election. All of these are manual action items, but the system automatically generates result emails and voter emails and such.

So if we go this route, we’d have to pick that person. I poked Ernest Durbin to see if he’d be willing to do that. I figure we’d make a good candidate for election supervisor (again, if we go that route) since he’s a PSF employee, he’s well known enough in the community and generally trusted (he has root on all the boxes pretty much, so he can do a lot of damage if he wanted) and he’s not a core developer, so he’s about as close to a trusted, but neutral party as we’re likely to find. He said he’d absolutely be willing to handle that if we want.