diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 37 |
1 files changed, 24 insertions, 13 deletions
@@ -7,7 +7,7 @@ This handles all elections per the [Gentoo Elections](https://wiki.gentoo.org/wi The Condercet system is used, and most of this repository exists just to house the actual data needed to run each election, such as the start/stop time, -eligable voters, blank ballot etc. +eligible voters, blank ballot etc. Completed elections are available in the `completed/` directory. @@ -28,32 +28,43 @@ Instructions 1. Setup an election: --------------------- To create a new election, make a top-level directory with the exact name of -the election. Usually in the format of `{council,trustees}-YYYYMM`. +the election. Usually in the format of `{council,trustees}-YYYYMM`. All of the +following files should be in that directory. Let `${election_name}` be the name of the election. Any member of the elections project or infra may set this up. -- `Votify.pm`: symlink to `../Votify.pm` for tooling -- `ballot-${election_name}` - One entry per line, in alphabetical order. - The special candidate `_reopen_nominations` is valid in some elections. - The ballot order will be randomized per candidate, at voting time. - `election-details`: - key-value file with details about the election. + key-value file with details about the election, see `election-details.template` `name`: exact election name `startDate`, `endDate`: start & end time in UTC - `officials`: election officials, including the infra contact, (prohibited from being candidates) + `officials`: election officials, including the infra contact (prohibited from being candidates) `voters`: URL to list of members who may cast a ballot `ballot`: URL to sample ballot + `url`: URL to the Elections page for this specific election (optional, newer) + +Using the above file, and the `populate-election.sh` script, the remaining +files are created (pulling from URLs as needed.) + +- `Votify.pm`: symlink to `../Votify.pm` for tooling +- `ballot-${election_name}` + One entry per line, in alphabetical order. + The special candidate `_reopen_nominations` is valid in some elections. + The ballot order will be randomized per candidate, at voting time. - `officials-${election_name}`: list of election officials, including the infra contact - `start-${election_name}`: election start time, as epoch seconds. - `stop-${election_name}`: election end time, as epoch seconds. - `voters-${election_name}`: list of members who may cast a ballot -For developers, the one liner, worked example below, run on woodpecker, works. -ldapsearch -ZZ -x -D uid=neddyseagoon,ou=devs,dc=gentoo,dc=org -W '(&(gentooStatus=active)(!(gentooAccess=infra-system.group)))' uid gentoojoin -LLL | grep "^uid" | sed -e "s/^uid: //" | sort -n > voters-council-202306.txt -Some fine tuning to remove developers added to roll call after the cut off -may be required. +For developers, the one liner, worked example below, run on woodpecker, can create the `voters` file. +``` +ldapsearch -ZZ -x -w '' -S uid -LLL \ + '(&(gentooStatus=active)(!(gentooAccess=infra-system.group)))' \ + uid gentoojoin \ + |awk -F ': ' '/uid:/ {print $2}' > voters-council-202406 +``` +Some fine tuning to remove developers added to roll call after the cut off +may be required. Populate the files, commit & push to Git. At the start time, an official should verify that the ballot works. Ideally a non-infra official, who then |