Skip to content

[^] BALLOT: effect of selectors on subsequent placeholders #873

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
aphillips opened this issue Aug 28, 2024 · 17 comments · Fixed by #877
Closed

[^] BALLOT: effect of selectors on subsequent placeholders #873

aphillips opened this issue Aug 28, 2024 · 17 comments · Fixed by #877
Labels
Agenda+ Requested for upcoming teleconference Ballot Balloting issue

Comments

@aphillips
Copy link
Member

aphillips commented Aug 28, 2024

Per the discussion in the 2024-08-26 teleconference (along with preceding calls on the same topic), there has been a call for voting on the preferred design of those described in the Design Document selection-declaration.md. This is an advisory vote to be used in technical discussion.

Note

The design document lists a "proposed design". Please ignore this.

Note

The design document was merged from conversation on #824 and there may be valuable discussion on that thread.

WORKING GROUP BALLOT

Please read the instructions CAREFULLY before responding.

Please carefully read the design document before responding.

Balloting Instructions

The voting methodology is single transferable vote.

The deadline is 1700 (5 PM) in the America/Los_Angeles time zone on Sunday, 1 September 2024 Votes received after the deadline will be considered at the discretion of the chair.

  • Anyone MAY submit exactly one ballot.
    • Working group participants ballots will be counted as a full vote.
    • Working group observers ballots are not officially counted, but can be considered by the working group.
  • You MAY edit, change, or delete your ballot up until the deadline.
  • Ballots MUST be submitted as a comment on this github issue.
    Group members who cannot submit a comment on this issue should contact the chair (@aphillips) for assistance.
  • Ballots MUST contain only a votes for candidates listed below. Write in votes are not acceptable.
  • You MUST NOT comment on the ballots of others in this issue. "Electioneering" or non-voting commentary is not permitted in the issue except the chair may seek clarification of a vote.

Ballots should be cast as an ordered list of preferred candidates using the format specified below.
Do not include candidates into your ranked choices that you find unacceptable.
You may indicate candidates you find unacceptable using ! as showing in the example below.
Do not equate two items. The chair will treat X = Y as X > Y in all cases.

Example 1: X > Y > Z ! Q = R means:

  • I prefer X to Y and Y to Z.
  • Candidates Q and R are not acceptable to me.
  • Candidates S and T are not listed. They receive no votes but are not unacceptable.

Important

Listing items as unacceptable has no effect on tallying. They are merely advisory to others in the WG.

Candidates

(A) Do nothing

(B) Require annotation of selector variables in placeholders

(C) Allow both local and input declarative selectors with immutability

(D) Allow mutable input declarative selectors

(E) Allow immutable input declarative selectors

(F) Match on variables instead of expressions

(G) Provide a #-like Feature

(H) Hybrid approach: Match may mutate, no duplicates

@aphillips aphillips added the Action-Item Action item assigned by the WG label Aug 28, 2024
@aphillips
Copy link
Member Author

aphillips commented Aug 28, 2024

(chair hat OFF)

E > F > H > C

@sffc
Copy link
Member

sffc commented Aug 28, 2024

F = E > G > H = D > C ! B > A

EDIT 9/2/24: Switched around E and F

@macchiati
Copy link
Member

macchiati commented Aug 28, 2024 via email

@bearfriend
Copy link
Contributor

bearfriend commented Aug 28, 2024

(observer)

F > E > H > A > D > C ! B > G

Edited 9/2/2024: Swapped F and E

@eemeli
Copy link
Collaborator

eemeli commented Aug 29, 2024

F > B > G > E ! A > H > D > C

@echeran
Copy link
Collaborator

echeran commented Aug 30, 2024

A > F ! B = C = D = E = G = H

@mihnita
Copy link
Collaborator

mihnita commented Sep 1, 2024

F >> A > B > E > ! G = C = D = H

@aphillips
Copy link
Member Author

I tallied the votes above using STV:

Detailed results of STV Candidates=8 Seats=3 Votes=7 Quota=1.75 Raw votes vote 1: (E) (F) (H) (C) (none) (none) (none) (none) vote 2: (E) (F) (G) (H) (D) (none) (none) (none) vote 3: (H) (D) (E) (C) (F) (none) (none) (none) vote 4: (E) (F) (H) (A) (D) (C) (none) (none) vote 5: (F) (B) (G) (E) (none) (none) (none) (none) vote 6: (A) (F) (none) (none) (none) (none) (none) (none) vote 7: (F) (A) (B) (E) (none) (none) (none) (none)

Round 1 votes
vote 1: (E) (F) (H) (C) vote value = 1
vote 2: (E) (F) (G) (H) (D) vote value = 1
vote 3: (H) (D) (E) (C) (F) vote value = 1
vote 4: (E) (F) (H) (A) (D) (C) vote value = 1
vote 5: (F) (B) (G) (E) vote value = 1
vote 6: (A) (F) vote value = 1
vote 7: (F) (A) (B) (E) vote value = 1
A = 1
B = 0
C = 0
D = 0
E = 3
F = 2
G = 0
H = 1

Most votes currently held by a candidate = 3.
Number of candidates with the greatest number of votes = 1.
E has exceeded the quota and is elected. If there are seats remaining to be filled, the surplus will now be reallocated.

Round 2 votes
vote 1: (F) (H) (C) vote value = 0.4166666666666667
vote 2: (F) (G) (H) (D) vote value = 0.4166666666666667
vote 3: (H) (D) (C) (F) vote value = 1
vote 4: (F) (H) (A) (D) (C) vote value = 0.4166666666666667
vote 5: (F) (B) (G) vote value = 1
vote 6: (A) (F) vote value = 1
vote 7: (F) (A) (B) vote value = 1
A = 1
B = 0
C = 0
D = 0
E = 0
F = 3.25
G = 0
H = 1

Most votes currently held by a candidate = 3.25.
Number of candidates with the greatest number of votes = 1.
F has exceeded the quota and is elected. If there are seats remaining to be filled, the surplus will now be reallocated.

Round 3 votes
vote 1: (H) (C) vote value = 0.19230769230769232
vote 2: (G) (H) (D) vote value = 0.19230769230769232
vote 3: (H) (D) (C) vote value = 1
vote 4: (H) (A) (D) (C) vote value = 0.19230769230769232
vote 5: (B) (G) vote value = 0.46153846153846156
vote 6: (A) vote value = 1
vote 7: (A) (B) vote value = 0.46153846153846156
A = 1.4615384615384617
B = 0.46153846153846156
C = 0
D = 0
E = 0
F = 0
G = 0.19230769230769232
H = 1.3846153846153846

Fewest votes won by a candidate = 0.19230769230769232.
Number of candidates with the fewest votes = 1.
G is eliminated.

Round 4 votes
vote 1: (H) vote value = 0.19230769230769232
vote 2: (H) vote value = 0.19230769230769232
vote 3: (H) vote value = 1
vote 4: (H) (A) vote value = 0.19230769230769232
vote 5: (B) vote value = 0.46153846153846156
vote 6: (A) vote value = 1
vote 7: (A) (B) vote value = 0.46153846153846156
A = 1.4615384615384617
B = 0.46153846153846156
C = 0
D = 0
E = 0
F = 0
G = 0
H = 1.5769230769230769

Fewest votes won by a candidate = 0.46153846153846156.
Number of candidates with the fewest votes = 1.
B is eliminated.

Round 5 votes
vote 1: (H) vote value = 0.19230769230769232
vote 2: (H) vote value = 0.19230769230769232
vote 3: (H) vote value = 1
vote 4: (H) (A) vote value = 0.19230769230769232
vote 5: vote value = 0.46153846153846156
vote 6: (A) vote value = 1
vote 7: (A) vote value = 0.46153846153846156
A = 1.4615384615384617
B = 0
C = 0
D = 0
E = 0
F = 0
G = 0
H = 1.5769230769230769

Fewest votes won by a candidate = 1.4615384615384617.
Number of candidates with the fewest votes = 1.
A is eliminated.

Round 6 votes
vote 1: (H) vote value = 0.19230769230769232
vote 2: (H) vote value = 0.19230769230769232
vote 3: (H) vote value = 1
vote 4: (H) vote value = 0.19230769230769232
vote 5: vote value = 0.46153846153846156
vote 6: vote value = 1
vote 7: vote value = 0.46153846153846156
A = 0
B = 0
C = 0
D = 0
E = 0
F = 0
G = 0
H = 1.5769230769230769

The election is complete and the elected candidates are (E) (F) (H).

@aphillips aphillips added Agenda+ Requested for upcoming teleconference Ballot Balloting issue and removed Action-Item Action item assigned by the WG labels Sep 2, 2024
@echeran
Copy link
Collaborator

echeran commented Sep 2, 2024

Question about the votes: how do the vetoes factor into the voting? According to the above single transferable vote process, "the elected candidates are (E) (F) (H)". When I count the number of vetoes, I see:

  • E has 1 veto
  • F has 0 vetoes
  • H has 3 vetoes

@aphillips
Copy link
Member Author

@echeran

Note this in the instructions:

Listing items as unacceptable has no effect on tallying. They are merely advisory to others in the WG.

@gibson042
Copy link
Collaborator

F > G > E > H > A > B > D > C

@sffc
Copy link
Member

sffc commented Sep 2, 2024

@echeran's comments yesterday convinced me to rank F above E so I updated my ballot to reflect that.

I've been reading a lot about ranked choice voting and how it's often impossible to find a consensus. I've found that the Condorcet Method tends to work better than Instant Runoff Voting.

By the Condorcet Method:

  • A beats: B, C, D, G*
  • B beats: C*, D*, G*
  • D beats: C
  • E beats: A, B*, C**, D, G, H**
  • F beats: A, B**, C**, D, E, G**, H**
  • G beats: C*, D"
  • H beats: A*, B*, C, D, G*

* by one vote only (not a strong consensus)
** by a margin of 6 or more votes (strong consensus)

Please note that if the votes had been tallied on September 1, then E would have beat F in the head to head. There may have been a small number of other changes.

@gibson042
Copy link
Collaborator

IIUC, that makes F the unique Condorcet winner.

@aphillips
Copy link
Member Author

(chair hat ON)

In today's discussion (which was not an official teleconference due to quorum issues) the observation was that "F" appears to be close to a consensus. Two participants in the call had not voted, although @gibson042 has since added a vote.

@sffc Changing your vote would change the outcome of my previous tally, as does @gibson042's vote. Thanks for the pointer on Condorcet, though! That looks like a useful methodology for the future.

The methodology is not as important here, as it is the actual consensus of the WG that matters.

In the call today, we also discussed some of the syntactic details of F, particularly whether the selectors require a delimiter of some sort. The result of that discussion was general agreement that such a delimiter is not required.

Important

Actual WG consensus will NOT be declared until a full teleconference (or F2F), with the next call expected to be 2024-09-09.
The actual technical choice will depend on the results of that discussion.

@bearfriend
Copy link
Contributor

Just noting that I did also update my ballot to swap F above E just before the last update (after the deadline), as I felt like I had compromised with myself and abandoned my own stated first priority.

@mradbourne
Copy link
Collaborator

F > A > B > E ! C = D = H

@aphillips
Copy link
Member Author

In the 2024-09-09 teleconference the working group consensus was to accept option F with the following modifications:

  • we will modify the stability policy to allow future syntax additions (that is, the syntax will be forward but not backwards compatible)
  • we will remove the reserve syntax elements from the syntax and spec

This would enable the (re-)addition of support for expressions in a selector in a future version of the spec, e.g. to support Option E.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Agenda+ Requested for upcoming teleconference Ballot Balloting issue
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants