Skip to content

Instantly share code, notes, and snippets.

@saundefined
Created April 17, 2025 06:45
Show Gist options
  • Select an option

  • Save saundefined/8d7f34407b49bd5f7108f7ec7cf51445 to your computer and use it in GitHub Desktop.

Select an option

Save saundefined/8d7f34407b49bd5f7108f7ec7cf51445 to your computer and use it in GitHub Desktop.
PHP 8.5 Release Manager Election — STV
$ ./grab.sh && php elect.php 'php_8.5_rm_*doodle' 2 "G Engebreth" "R Landers" "V Dusch" "D Scherzer"
Reading from:
- php_8.5_rm_1st_preference.doodle
- php_8.5_rm_2nd_preference.doodle
- php_8.5_rm_3rd_preference.doodle
- php_8.5_rm_4th_preference.doodle
Candidates (in order of ballot):
G Engebreth — R Landers — V Dusch — D Scherzer
Votes:
Vote # 0: V Dusch — G Engebreth — R Landers — D Scherzer
Vote # 1: R Landers — V Dusch — D Scherzer — G Engebreth
Vote # 2: D Scherzer — V Dusch — R Landers — G Engebreth
Vote # 3: D Scherzer — V Dusch — R Landers — G Engebreth
Vote # 4: D Scherzer — V Dusch — R Landers — G Engebreth
Vote # 5: V Dusch — D Scherzer — R Landers — G Engebreth
Vote # 6: R Landers — V Dusch — G Engebreth — D Scherzer
Vote # 7: V Dusch — D Scherzer — R Landers — G Engebreth
Vote # 8: V Dusch — G Engebreth — D Scherzer — R Landers
Vote # 9: V Dusch — R Landers — D Scherzer — G Engebreth
Vote #10: D Scherzer — V Dusch — G Engebreth — R Landers
Vote #11: V Dusch — D Scherzer — R Landers — G Engebreth
Vote #12: D Scherzer — V Dusch — R Landers — G Engebreth
Vote #13: D Scherzer — V Dusch — R Landers — G Engebreth
Vote #14: V Dusch — D Scherzer
Vote #15: R Landers — G Engebreth — V Dusch — D Scherzer
Vote #16: D Scherzer — V Dusch — R Landers — G Engebreth
Vote #17: R Landers — G Engebreth — D Scherzer — V Dusch
Vote #18: G Engebreth — V Dusch — D Scherzer — R Landers
Vote #19: V Dusch — G Engebreth — R Landers — D Scherzer
Votes: 20
Candidates: 4
Seats: 2
Quorum: 7
Round #1
--------
Tally:
Candidate 'V Dusch': 8 → 0 5 7 8 9 11 14 19
Candidate 'D Scherzer': 7 → 2 3 4 10 12 13 16
Candidate 'R Landers': 4 → 1 6 15 17
Candidate 'G Engebreth': 1 → 18
Candidate 'V Dusch' is over quorum (7) with 8 votes, redistributing.
Votes:
Vote # 0: V Dusch — G Engebreth — R Landers — D Scherzer
Vote # 1: R Landers — V Dusch — D Scherzer — G Engebreth
Vote # 2: D Scherzer — V Dusch — R Landers — G Engebreth
Vote # 3: D Scherzer — V Dusch — R Landers — G Engebreth
Vote # 4: D Scherzer — V Dusch — R Landers — G Engebreth
Vote # 5: V Dusch — D Scherzer — R Landers — G Engebreth
Vote # 6: R Landers — V Dusch — G Engebreth — D Scherzer
Vote # 7: V Dusch — D Scherzer — R Landers — G Engebreth
Vote # 8: V Dusch — G Engebreth — D Scherzer — R Landers
Vote # 9: V Dusch — R Landers — D Scherzer — G Engebreth
Vote #10: D Scherzer — V Dusch — G Engebreth — R Landers
Vote #11: V Dusch — D Scherzer — R Landers — G Engebreth
Vote #12: D Scherzer — V Dusch — R Landers — G Engebreth
Vote #13: D Scherzer — V Dusch — R Landers — G Engebreth
Vote #14: V Dusch — D Scherzer
Vote #15: R Landers — G Engebreth — V Dusch — D Scherzer
Vote #16: D Scherzer — V Dusch — R Landers — G Engebreth
Vote #17: R Landers — G Engebreth — D Scherzer — V Dusch
Vote #18: G Engebreth — V Dusch — D Scherzer — R Landers
Vote #19: V Dusch — G Engebreth — R Landers — D Scherzer
- Vote 0 has V Dusch as current preference, and as next preference G Engebreth.
- Vote 5 has V Dusch as current preference, and as next preference D Scherzer.
- Vote 7 has V Dusch as current preference, and as next preference D Scherzer.
- Vote 8 has V Dusch as current preference, and as next preference G Engebreth.
- Vote 9 has V Dusch as current preference, and as next preference R Landers.
- Vote 11 has V Dusch as current preference, and as next preference D Scherzer.
- Vote 14 has V Dusch as current preference, and as next preference D Scherzer.
- Vote 19 has V Dusch as current preference, and as next preference G Engebreth.
Next preferences:
G Engebreth → 3 * 1/8: 0
- Pick 0 random votes from
#0, #8, #19 to transfer:
#
D Scherzer → 4 * 1/8: 0
- Pick 0 random votes from
#5, #7, #11, #14 to transfer:
#
R Landers → 1 * 1/8: 0
- Pick 0 random votes from
#9 to transfer:
#
Exhausted → 0
Tally:
Candidate 'V Dusch': 8 → 0 5 7 8 9 11 14 19
Candidate 'D Scherzer': 7 → 2 3 4 10 12 13 16
Candidate 'R Landers': 4 → 1 6 15 17
Candidate 'G Engebreth': 1 → 18
Candidate 'V Dusch' has reached quorum, and is therefore elected
Candidate 'D Scherzer' has reached quorum, and is therefore elected
Tally:
Candidate 'R Landers': 4 → 1 6 15 17
Candidate 'G Engebreth': 1 → 18
=================================
ELECTED:
V Dusch
D Scherzer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment