Python governance vote (December 2018): Results

Python governance vote (December 2018)

As described in PEP 8001, the governance election has been completed.

The result is that PEP 8016: The Steering Council Model (Smith, Stufft) has been selected as the winner.

Result

  1. PEP 8016: The Steering Council Model (Smith, Stufft)
  • (Condorcet winner: wins contests with all other choices)
  1. PEP 8012: The Community Governance Model (Langa)
  • loses to PEP 8016: The Steering Council Model (Smith, Stufft) by 40ā€“22
  1. PEP 8011: Python Governance Model Lead by Trio of Pythonistas (Wijaya, Warsaw)
  • loses to PEP 8016: The Steering Council Model (Smith, Stufft) by 37ā€“20
  • loses to PEP 8012: The Community Governance Model (Langa) by 34ā€“28
  1. PEP 8015: Organization of the Python community (Stinner)
  • loses to PEP 8016: The Steering Council Model (Smith, Stufft)by 41ā€“18
  • loses to PEP 8011: Python Governance Model Lead by Trio of Pythonistas (Wijaya, Warsaw) by 33ā€“24
  1. PEP 8014: The Commons Governance Model (Jansen)
  • loses to PEP 8016: The Steering Council Model (Smith, Stufft) by 50ā€“9
  • loses to PEP 8015: Organization of the Python community (Stinner) by 38ā€“18
  1. PEP 8010: The Technical Leader Governance Model (Warsaw)
  • loses to PEP 8016: The Steering Council Model (Smith, Stufft) by 44ā€“15
  • loses to PEP 8014: The Commons Governance Model (Jansen) by 30ā€“28
  1. PEP 8013: The External Council Governance Model (Dower)
  • loses to PEP 8016: The Steering Council Model (Smith, Stufft) by 55ā€“6
  • loses to PEP 8010: The Technical Leader Governance Model (Warsaw) by 38ā€“17
  1. Further discussion
  • loses to PEP 8016: The Steering Council Model (Smith, Stufft) by 57ā€“4
  • loses to PEP 8013: The External Council Governance Model (Dower) by 32ā€“29

Result details

PEP 8016 PEP 8012 PEP 8011 PEP 8015 PEP 8014 PEP 8010 PEP 8013 Discussion
PEP 8016 - 40 37 41 50 44 55 57
PEP 8012 22 - 34 33 40 40 48 48
PEP 8011 20 28 - 33 42 42 52 51
PEP 8015 18 22 24 - 38 36 47 48
PEP 8014 9 18 16 18 - 30 40 38
PEP 8010 15 20 14 22 28 - 38 43
PEP 8013 6 9 9 12 14 17 - 32
Discussion 4 14 10 13 23 18 29 -

Ballot report

Choices

    1. PEP 8010: The Technical Leader Governance Model (Warsaw) (changelog)
    1. PEP 8011: Python Governance Model Lead by Trio of Pythonistas (Wijaya, Warsaw) (changelog
    1. PEP 8012: The Community Governance Model (Langa) (changelog)
    1. PEP 8013: The External Council Governance Model (Dower) (changelog)
    1. PEP 8014: The Commons Governance Model (Jansen) (changelog)
    1. PEP 8015: Organization of the Python community (Stinner) (changelog)
    1. PEP 8016: The Steering Council Model (Smith, Stufft) (changelog)
    1. Further discussion

Ballots in randomized order

0. 1. 2. 3. 4. 5. 6. 7.
8 5 1 7 4 3 2 6
8 3 2 4 6 5 1 7
6 1 4 7 5 3 3 8
3 2 7 5 4 6 1 8
2 1 4 6 8 5 3 7
7 2 3 6 4 7 1 5
8 8 1 3 2 8 3 4
6 1 2 8 4 3 5 7
6 1 8 8 8 3 6 7
6 1 2 7 4 3 5 8
1 2 6 5 7 4 3 8
1 5 7 6 3 8 2 4
2 1 5 8 8 8 6 7
4 4 3 2 4 4 4 1
2 1 6 8 5 7 4 3
4 3 8 7 6 1 2 5
8 3 4 8 8 4 1 7
2 1 8 6 4 7 3 5
3 7 1 8 5 4 2 6
6 4 3 7 2 5 1 8
8 4 3 6 7 1 2 5
8 4 1 8 8 3 2 5
2 5 1 6 7 4 3 8
6 5 1 8 4 3 2 7
8 3 2 7 4 5 1 6
1 4 2 7 8 3 5 6
7 1 6 7 1 6 1 8
4 5 3 6 6 2 1 8
1 2 7 8 6 4 3 5
7 6 3 5 4 2 1 8
7 2 4 6 3 5 1 8
8 1 4 6 5 3 2 7
4 2 4 4 3 2 1 8
5 4 3 7 6 1 2 8
5 2 1 7 3 4 2 8
6 1 4 7 5 2 3 8
1 5 3 2 4 8 6 7
5 2 4 8 7 6 1 3
7 3 2 4 1 6 5 8
5 5 4 7 4 4 3 8
1 2 7 8 5 3 6 4
8 4 2 8 1 2 3 8
5 4 3 7 6 1 2 8
3 2 8 8 8 4 1 7
8 4 1 7 6 2 3 5
7 1 5 8 3 6 2 4
5 4 3 6 7 2 1 8
3 2 4 7 6 5 1 8
3 6 5 8 7 2 1 4
1 5 4 8 7 2 3 6
6 5 1 7 4 2 3 8
8 6 1 4 7 2 3 5
1 2 8 4 7 6 5 3
6 6 5 3 4 1 2 8
1 1 6 7 6 6 1 8
8 8 1 8 8 8 2 3
8 5 2 6 6 2 1 4
8 7 2 4 6 3 1 5
3 4 2 5 1 6 7 8
1 8 1 1 8 8 8 8
3 1 8 8 5 8 2 4
8 7 1 5 2 3 4 6

Rank 1: PEP 8016: The Steering Council Model (Smith, Stufft) (6)

  • vs. 1 : (20 - 37)
  • vs. 2 : (22 - 40)
  • vs. 5 : (18 - 41)
  • vs. 0 : (15 - 44)
  • vs. 4 : (9 - 50)
  • vs. 3 : (6 - 55)
  • vs. 7 : (4 - 57)

Rank 2: PEP 8012: The Community Governance Model (Langa) (2):

  • vs. 1 : (28 - 34)
  • vs. 5 : (22 - 33)
  • vs. 0 : (20 - 40)
  • vs. 4 : (18 - 40)
  • vs. 7 : (14 - 48)
  • vs. 3 : (9 - 48)

Rank 3: PEP 8011: Python Governance Model Lead by Trio of Pythonistas (Wijaya, Warsaw) (1):

  • vs. 5 : (24 - 33)
  • vs. 4 : (16 - 42)
  • vs. 0 : (14 - 42)
  • vs. 7 : (10 - 51)
  • vs. 3 : (9 - 52)

Rank 4: PEP 8015: Organization of the Python community (Stinner) (5):

  • vs. 0 : (22 - 36)
  • vs. 4 : (18 - 38)
  • vs. 3 : (12 - 47)
  • vs. 7 : (13 - 48)

Rank 5: PEP 8014: The Commons Governance Model (Jansen) (4):

  • vs. 0 : (28 - 30)
  • vs. 7 : (23 - 38)
  • vs. 3 : (14 - 40)

Rank 6: PEP 8010: The Technical Leader Governance Model (Warsaw) (0):

  • vs. 3 : (17 - 38)
  • vs. 7 : (18 - 43)

Rank 7: PEP 8013: The External Council Governance Model (Dower) (3):

  • vs. 7 : (29 - 32)

Rank 8: Further discussion (7):

  • vs. 3 : (32 - 29)
8 Likes

Full results from the voting system are auditable at: https://civs.cs.cornell.edu/cgi-bin/results.pl?id=E_fe2b74aea628b45d

1 Like

Itā€™s not obvious to me how the results are auditable. For example, how do I find my vote certificate amongst the anonymized ballots?

I just scanned the list until I saw at least one ballot that matched the way I voted.

1 Like

But you donā€™t know whether itā€™s yours. It could be mine :slight_smile:

Thanks to everybody involved! I updated the governance PEPs to reference the vote and this post: https://github.com/python/peps/commit/5bd92c746b7a338afc841e5a996ebe383f3d5e32

3 Likes

How can some rows in the ballots listing have multiple entries with the same value? Or was it possible to vote for alternatives being equal, and did I overlook that?

And I canā€™t work out how many people voted for the polygamy poll after they finished the Python governance one.

:slight_smile:

4 Likes

Some notes on the tech aspects of the vote: most remarkable is how unremarkable it was :wink: Not only was there a flat-out Condorcet (ā€œbeats allā€) winner, but if we throw that winner out, thereā€™s also a flat-out Condorcet winner among the 7 remaining - and so on, all the way down to ā€œfurther discussionā€. For that reason, all of the Condorcet methods supported by CIVS compute the same total ordering. No ties, and no preference cycles, anywhere. The raw Condorcet criterion on its own was enough to resolve the full ordering. We were lucky in that way.

About a third of the ballots exploited the possibility to express ties. I was surprised that wasnā€™t larger, but itā€™s possible some didnā€™t realize they could; e.g.,

Yup! In fact, if ;you didnā€™t change anything in the initial ballot presented to you, and clicked ā€œSubmitā€, you would have ā€œvotedā€ that you had no preferences at all - the same as if you hadnā€™t voted.

Hereā€™s a breakdown of the number of ballots expressing a given number of distinct ranks:

#ranks #ballots
2 1
4 4
5 6
6 5
7 5
8 41

Only one ballot gave only two ranks, effectively pretending this was an Approval election:

1	8	1	1	8	8	8	8

Moral of the story: if we do this again, use score voting instead. Itā€™s much easier to understand, is immune to preference cycles, and would almost certainly have yielded the same total ordering :wink:.

5 Likes

Yeah, you could give multiple options the same rank and some ranks could be unused. In retrospect that could have been more clear.

-eric

2 Likes

Ah! Now I understand why I sometimes had to drag choices multiple times (wiggling them while holding them)ā€¦ And I thought this was an error in the UI implementation:-)

1 Like

The UI wasnā€™t fantastic, but Iā€™ve used CIVS often enough (Debian voting IIRC) that I could still express my choices eventually. Some of the drag and drop was problematic with one line being longer than the others. The other thing I would have changed is for the links to the PEPs in the selections to pop up a new tab or window rather than taking me off the voting page. But all in all, Iā€™m quite satisfied with how the vote was conducted (and also with the results).

Kudos to everyone involved, both in the actual machinery of the vote, in the fantastic and very useful discussions prior to the vote, to all who participated in writing and refining the PEPs, and to everyone who cares enough about Python to take this seriously and exercise their voice.

4 Likes

There could be another possibility: that people created a tie without knowing. The UI isnā€™t terrificā€¦ I started dragging and dropping the various candidates until I was satisfied with the (visual) ordering, then I realized that some candidates actually had the same ranking. It was a bit surprising and unintuitive TBH.

Ha, I just chose numbers from the dropdown boxes. It confused me a bit why things kept moving around, until I realised that it was reflecting my ordering. It was only right at the end (by which time Iā€™d set my ordering) that I even realised drag and drop was a possibility :slightly_smiling_face:

4 Likes