Election-Tech-Initiative / Election-Tech-Initiative/electionguard

✨ Remove the VoteVariationTypes not supported in 1.0 library

Open
#245 1 comment 0 reactions 1 assignee Claimed by @rc-ms View on GitHub
enhancement question
Dominant language
Python
Stars
872
Forks
131
PR merge metrics
No merged PRs in 30d

Description

### Is there an existing issue for this?

- [X] I have searched the existing issues

### Suggestion

AFAICT, the 1.0 reference library supports

1. **n_of_m** type election
2. **one_of_m** is a special case with number_elected = 1.
3. **approval** where votes_allowed = number of options.

I think in these three cases votes_allowed == number_elected.

Im looking at the other VoteVariationType's, and Im guessing some of those (_majority, plurality, proportional, super_majority_) can be done by the current system because they are just special versions of n_of_m. Some (_borda, cumulative, range, rcv_) I guess cannot currently be done.

For clarity, we should remove the VoteVariationTypes not supported in the 1.0 library, and for the supported ones, make clear if election guard needs to do any special handling.

### Possible Implementation

For 1.0, remove all VoteVariationType's except n_of_m, one_of_m, and approval. Remove number_elected and only use votes_allowed, which is required.

### Anything else?

Also see Issue #224 and Discussion #247

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.