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.