How to start a vote
In the good old days, there were a lot of GRs, all the time. This meant that it was easy to remember how to start a new one, and it was never written down. Now, that's not true, so this is a handy cheat-sheet with the steps to follow to start a vote.
Web pages
Note, this is quite a lot of work. See Neil, Kurt or web team if you need help.
You need to set up a new vote page, under webwml in webwml/english/vote/YEAR/vote_number.wml. It's best to copy another vote and use that as your template. The number should be increased by 1 for that year.
Change the pagetitle and status tag at the top, and update the rest of the page.
Commit the changes, and ask nicely on #debian-www for a partial rebuild of the vote pages. While you're waiting for this, set up devotee.
Devotee setup
Next, on vento.debian.org, in /srv/vote.debian.org, run sudo -u secretary setup/dvt-setup gr_votename. This will create you a folder in data/gr_votename, with some files/folders in there
Name |
Description |
spool/work/sig/check/ldap/tally/body/ack/nack |
Work directories where mail gets processed, see below |
ballot |
Empty folder. Possibly for requests for ballots, though probably legacy |
content |
Empty folder. Probably legacy |
log |
Logs of GPG output on mail. msgNNNNNN.raw is there if there's no GPG ballot. msgNNNNNN.body if there's a rejected sig for whatever reason. msgNNNNNN.body.good if it's a good signature |
timeline |
results and dotfiles archived regularly during the vote |
tmp |
temporary working directory |
work |
Where the messages get placed after spool |
crontab.top |
Crontab environment variables |
crontab.vote |
Crontab that processes incoming mail |
crontab.votestats |
Crontab that generates the stats |
debian-keyring.gpg |
A concatenation of debian-keyring.gpg and debian-nonupload.gpg from /org/keyring.debian.org/keyrings/. Regularly updated. |
devotee.conf |
The main configuration for this vote, see below for more details |
forward |
The email forwarding file for when people mail in |
lock |
A lock file. Unclear how it's used |
dvt-setup |
A copy of the setup script you used above. Unclear why a copy of this is taken |
end-vote |
Ends the vote, disabling new votes, generates the final stats and emails out the results |
start-vote |
Installs the above cronjobs and adds a mail alias for the vote |
vote.stats |
Generates stats pages as the vote goes on, and final stats once it's finished. |
Mail gets processed in the follow flow diagram: spool -> work -> sig -> check -> ldap -> tally -> body -> ack It can go to nack at any stage. This tells you if/why a vote failed to process. The underlying reason is that the voter in question is probably using Enigmail.
The next two files that need to change are devotee.conf, and a ballot.
devotee.conf
Edit the below to match your ballot:
# arch-tag: d495b767-7754-4e61-80ea-8b31c07f3595 # Sample configuration Top_Dir = /srv/vote.debian.org/data/gr_votename; Pass_Word = gr_votename; Vote_Name = gr_votename; Vote_Ref = vote_XXX; Secret = 0; Encrypted_Ack = 1; Vote_Taker_Name = Debian Project Secretary; Vote_Taker_EMAIL = secretary@debian.org; UUID = 57dd4d7c-3e92-428f-8ab7-10de5172589e; Majority_1 = 3; Majority_2 = 2; Majority_3 = 1; Majority_4 = 1; Majority_5 = 1; Majority_6 = 1; Majority_7 = 1; Title = FIXME: TITLE GOES HERE; Start_Time = 18 Oct 2014 00:00:01; End_Time = 01 Nov 2014 00:00:01; Option_1 = ; Option_2 = ; Option_3 = ; Option_4 = ; Option_5 = ; Option_6 = ; Option_7 = ; Option_8 = Further Discussion
Create a key pair
In the data directory, run gpg --homedir . --gen-key. Remember to sign the public bit with your key.
ballot
You need to add a ballot to /srv/vote.debian.org/ballots/ called gr_votename.blt. A sample is in setup/ballot, remember to replace the options and the UUID with the one from devotee above.
Mail d-d-a
Once the web pages are up and running, then you can mail d-d-a with the vote page.
Draft ballot
You should send the draft ballot to debian-vote a few days before the vote starts.
Run the vote
You will probably need to start the vote manually, with start-vote gr_votename. You also need to create an at job to end the vote, with /srv/vote.debian.org/data/gr_votename/end-vote gr_votename. Send the ballot to d-d-a, and make sure the Reply-to: is set to the vote address. Send a second call for votes with a week to go, and a final one 48-36h before the end.
