1=encoding utf8 2 3=head1 NAME 4 5vote_admin_guide - Perl Governance Vote Administrator Guide 6 7=head1 Running a Steering Council nomination process 8 9Announce the nomination period to the Perl Core mailing list. Be explicit 10about the end time. Set a calendar reminder for yourself for when it's 11time to close the nominations and begin the voting. 12 13Remember that inactive Core Team members may not participate in the nomination 14or voting process. The governance document is clear that inactive members may 15not declare themselves active when a vote is proposed, which includes the 16nomination process. 17 18If someone outside the Core Team is nominated, contact them to confirm that 19they accept the nomination. If they do, ask the Steering Council to add 20them as a moderated member of the Perl Core list for the duration of the 21election and invite them to offer a statement on their candidacy to the 22list. 23 24Before the end of the nomination period, remind everyone of the schedule 25and share the current list of nominees to confirm you aren't missing 26anyone. 27 28At the end of the nomination period, notify the Perl Core list of the list 29of nominees and set their expectations for when you'll be opening the 30voting period. 31 32=head1 Using CIVS 33 34We are using L<Condorcet Internet Voting Service|https://civs.cs.cornell.edu/> 35(CIVS), which is pretty easy to use, although it has a lot of options. 36 37First, bookmark that link, but realize that there are no user accounts. 38Whenever you create or participate in a poll, you'll get a unique URL, and you 39need to save it to come back to what you were doing before. 40 41=head2 Preliminary work 42 43You'll need to complete these steps. 44 45=head3 Get list of active Core Team member emails 46 47This can be found in the F<Porting/core-team.json> file. 48 49=head3 Remind Core Team members to opt-in their email address 50 51CIVS has a required opt-in to send polls out to an email address. The active 52Core Team members that would like to vote and haven't opted-in yet must use the 53following link with the email address they have in F<core-team.json>: 54L<https://civs1.civs.us/cgi-bin/opt_in.pl> 55 56=head2 Running an election on CIVS 57 58The following instructions describe steps to run an election. 59 60=head3 Creating a poll 61 62On the right sidebar of the CIVS landing page is a list of links, and the 63first one is Create a poll. Some of the things it asks for are simple: 64what's it called? Who is running it? It asks for an email address, and it 65has to work: that's where you're going to get all the links! 66 67Note that "day and time you plan to stop" is just a text box. It gets sent 68to the recipient in their invitation to vote. It does not schedule one 69dang thing, so you better set yourself a reminder to close the poll on 70time! Also, remember to think about time zones! (You are free to 71selfishly pick your local time.) 72 73The description box is limited HTML: you can put in C<< <p> >> and 74C<< <b> >> and C<< <ul> >> and C<< <a> >> and some other basics. Hit 75"preview" whenever you want. Also, you'll be able to see the email 76before you send it to everybody. 77 78The "names of choices" is line by line. Blanks are ignored. Again, use 79preview. Also, note that these will be presented to the voters in random 80order, so the order you put the candidates doesn't matter. (CIVS lets you 81force the ordering, but we don't use that.) 82 83The options you want are: 84 85 * How many choices will win: 3 86 * Private 87 * Enable detailed ballot reporting: true 88 * Enforce proportional representation: true 89 Assume maximizing rank of their favorite choice: true 90 91Leave all other options off. 92 93Then you can create the poll. 94 95=head3 Start the poll 96 97You'll get an email linking back to the poll's control page. 98 99B<BOOKMARK THE CONTROL PAGE!> 100 101Don't lose that link or you won't be able to administer the poll and you'll 102have to re-create it. 103 104From here, you can double check your settings. Some things, but not all, 105can be edited. 106 107If it looks good, click "start poll." You'll get a success page and can 108click "go back to poll control". 109 110=head3 Check how the email looks 111 112At the bottom, under "Add voters", enter your email address. Click "add 113voters." You'll get another success screen and can again "go back to poll 114control." 115 116Meanwhile, you'll get another email, this one linking you to the voting 117page itself. Proofread the email. Click the link. Proofread the page. If 118you want, cast your vote! 119 120At this point, you probably either need to start over - because you can't 121edit a poll once it's going - or you're good to proceed. If you need to 122start over, just close the poll (or not, but it seems polite to do so) and 123start over. Otherwise... 124 125=head3 Send the poll! 126 127This is the point of no return! Once you send the poll to the whole team, 128you'll look silly if you made a big mistake. That's okay, you can survive 129looking silly, but it's better to avoid it if you can. 130 131Put all the email addresses for the team into the "add voters" on the poll 132control page. There should be as many of these as there are team members. 133Double check! It's okay if you enter your email address, again. You won't 134be allowed to vote twice. 135 136Click "add voters." It will take a little while. (I think it does all the 137email sending synchronously.) When that's done, you can email the list to 138say the ballot has been sent. 139 140If you're told that some email addresses aren't authorized to vote, chase 141down these Core Team members that haven't opted-in their email address. 142 143=head3 Wait 144 145Now you just need to wait for the end date. Set a calendar alarm to remind 146yourself. Look at the poll control page once in a while to see how many votes 147were cast. Because votes can't be edited once cast, you could end the voting 148immediately once 100% of ballots have been cast, but don't expect this will 149actually happen. 150 151=head3 End the poll 152 153When it's time, go to the poll control page and click "end poll". You'll get 154dumped on a results page that will provide the three winners (and a bunch of 155other data). Use the "minimax" rule (the default). Everyone else will be able 156to access these results, so don't worry about copying anything but the winners. 157Inform the group! 158 159=head2 After an election 160 161In addition to notifying the Perl Core mailing list of the results, open a 162pull request to update perlgov.pod with the new Steering Council members. 163If a non-Core-Team candidate won, also add them to the Core Team list. 164 165Ask the outgoing Steering Council to: 166 167=over 168 169=item * 170 171edit the Perl Core mailing list admins to match the incoming Steering Council 172 173=item * 174 175update the L<GitHub "steering" team|https://github.com/orgs/Perl/teams/perl-steering-council/members> to match incoming Steering Council 176 177=item * 178 179request that the L<Perl NOC|https://noc.perl.org> update the perl-security list to include all incoming 180Steering Council members (without removing outgoing members; the incoming Steering 181Council will decide whether this is needed) 182 183=back 184 185Update this guide with any clarifications or new information that will help 186the next Vote Administrator. 187 188Relax and congratulate yourself! 189 190=cut 191 192