Python governance vote (December 2018): Results

Committers

Python governance vote (December 2018)

As described inPEP 8001, the governance election has been completed.

The result is thatPEP 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 8016PEP 8012PEP 8011PEP 8015PEP 8014PEP 8010PEP 8013Discussion
PEP 8016-40374150445557
PEP 801222-343340404848
PEP 80112028-3342425251
PEP 8015182224-38364748
PEP 80149181618-304038
PEP 80101520142228-3843
PEP 8013699121417-32
Discussion4141013231829-

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.
85174326
83246517
61475338
32754618
21468537
72364715
88132834
61284357
61888367
61274358
12657438
15763824
21588867
44324441
21685743
43876125
83488417
21864735
37185426
64372518
84367125
84188325
25167438
65184327
83274516
14278356
71671618
45366218
12786435
76354218
72463518
81465327
42443218
54376128
52173428
61475238
15324867
52487613
73241658
55474438
12785364
84281238
54376128
32888417
84176235
71583624
54367218
32476518
36587214
15487236
65174238
86147235
12847653
66534128
11676618
88188823
85266214
87246315
34251678
18118888
31885824
87152346

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 theballots 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 theycould; e.g.,

jackjansen:

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

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
21
44
56
65
75
841

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

18118888

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
tim.one:

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.

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
tim.one:

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 theycould

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.

pitrou:

The UI isn’t terrific… I started dragging and dropping the various candidates until I was satisfied with the (visual) ordering

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