Settle on a voting solution
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Domain
- documentation
Research direction
Start by reviewing the requirements in issue #33 and comparing the listed prior-art systems: Caritat, CIVC, Elekto, Google Forms, and the Codeberg voting system. The work is done when the TSC reaches and documents a decision on a voting solution that addresses authenticity, secrecy, immutability, and vote-tabulation UX.
Written by the indexing model from the issue text.
Description
Currently, there's no documented consensus on how a vote among the LoopBack TSC members should occur (i.e. how to cast a vote). In the past, we have used GitHub Teams Discussions and GitHub Issues Reactions. However, non of these meet the following requirements:
- Authenticity: The authorisation to vote is only restricted by GitHub authentication. Requiring a PGP-signed Git Commit may be more resilient against account takeovers.
- Secrecy during voting process: The votes are visible to other TSC members, which may sway their own votes.
- Immutability: The votes can be modified after the voting itself has concluded. This is in part because the TSC members are delegated the GitHub Organisation Admin role, which means that locking a GitHub Issue does not prevent votes changes.
- Vote tabulation UX: For GitHub Issue-based voting, there's nothing preventing non-TSC members from "casting a vote". This mean that tabulation would require filtering through the noise (e.g. through the use of the GitHub API).
This issue is to aid in discussing and deciding on a more robust solution.
Prior art
- Caritat
- Used by the Node.js TSC for recent votes (e.g. https://github.com/nodejs/TSC/pull/1206) Ongoing discussion: https://github.com/nodejs/TSC/issues/1165
- Git-based workflow
- Does not require new infrastructure
- CIVC (alt. website)
- Web-based workflow
- Third-party hosted websites available (see links above); Self-hosted also an option.
- Used for Cloud Foundry TOC elections
- Prev. used for Kubernetes elections (prior 2021).
- Elekto
- Web-based workflow
- Requires self-hosting
- Intended to be a replacement for CIVC
- Currently being tabled by Cloud Foundry for their upcoming TOC election: https://github.com/cloudfoundry/community/pull/282
- Used in Kubernetes 2021 elections: https://github.com/kubernetes/community/blob/9cc5dc80174d04a7d05f4c4fb387f9efea167c5b/events/elections/2021/README.md
K8's problem statement: https://github.com/kubernetes/community/issues/5096
- Google Forms (or equivalent)
- Web-based workflow
- Used in OpenJS Foundation Board Seat Election (e.g. https://github.com/openjs-foundation/cross-project-council/issues/859)
- Codeberg voting system
- Sends voting PIN via email
- Used by Codeberg e.V.: https://codeberg.org/Codeberg/Contributing/issues/58
All of the listed solutions utilise the Condorcet election method.
Except Caritat, all of the solutions do not provide any method to validate the authenticity of the results.
- Dominant language
- No language data
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from loopbackio/loopback-governance
-
publish release
Difficulty 4/5 3-5 days Newbie friendliness 25/100
-
Update EOL dateMay be free again @dhmlau claimed this 997 days ago, and no pull request is open. Open
loopbackio/loopback-governance#45 · 1 assignee ·
-
openjsf
Difficulty 5/5 Over a week Newbie friendliness 20/100
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
-
openjsf
Difficulty 5/5 Over a week Newbie friendliness 25/100
loopbackio/loopback-governance#35 · 2 comments ·
All issues in loopbackio/loopback-governance
Similar issues
-
CalendarEventAttendance/get returns eventAttendanceStatus while the doc says attendanceStatusPossibly taken @chibenwa claimed this today. Openbug claude
Difficulty 1/5 Under an hour Newbie friendliness 90/100
linagora/tmail-backend#2697 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
PyPSA/PyPSA#1976 · 1 comment ·
Maintainers usually reply within 1 day
-
C-bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 2 days
-
status:untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
midnightntwrk/servicedesk#234 ·
Maintainers usually reply within 1 day
-
[Docs][openrouter]: README JWT example mints a token without exp, which the proxy always rejectsOpengood first issue help wanted
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Maintainers usually reply within 1 day