Apache Member's Meetings and Voting

This page describes how voting is typically done for candidates nominated for membership (at Annual or Special member's meetings); separately you can read about the BoardVoting process (at Annual Meetings, typically in the summer).

The next Annual Member's Meeting and board elections will be held starting at May 21st, 2012 @ 17:30 UTC Tuesday on channel #asfmembers on irc.freenode.net. Please use your availid when logging into IRC. Use channel #asf for backchannel chatter (like jokes, questions not related to the agenda, and the like), and keep the #asfmembers channel for official meeting business; it is logged to record the meetings.

***IMPORTANT:*** All nominations for new members or directors must be checked into SVN 10 days before the meeting starts - i.e. by May 11th. If it's not checked in, it doesn't count.

How Meetings Are Held

To best suit having online meetings, member meetings are held over IRC during a period of three days. This allows the bulk of the agenda and any basic resolutions to be voted on interactively, on the first half of the meeting on IRC the first day; this typically takes about an hour. The chair then announces the candidates for membership, and board nominees as appropriate.

The interactive meeting on IRC is then recessed for 48 hours, and the actual vote emails are sent out. Votes must be cast during the next approximately 40 hours, so that vote counters have a chance to tally votes before the meeting is re-convened. On the third day, the meeting returns from recess and joins the interactive IRC session again, and the results of member candidate and board elections are announced in the meeting. The second half of the meeting is typically much shorter, and members need not attend the second half if they have already attended the first half.

Reminder: do not publicize the names of newly elected (or not elected) members after the meeting! We need to wait until elected nominees formally accept membership before announcing any names.

How To Decide to Vote

That's really up to you. But the first thing to do is review the foundation/Meetings/20120522/agenda.txt file to see what will be discussed, and then read through the nominated-members.txt file. You probably also want to review if you personally know any of the member nominees, and may find using the MARC mail archives of various public Apache lists useful to review past mails from the nominee.

Many members have commented that they look for both a strong nomination statement from an existing member, describing why the nominee would make a good candidate. Having a number of seconds in the nomination file of other members is also often valuable.


If you cannot attend a meeting interactively, you should assign a proxy. Your proxy can mark you as present during the first interactive portion of the IRC meeting for official records. You may also assign your proxy to cast votes for you as well, if you will be unable to check your email for your voter keys during the meeting. If you assign a proxy, be sure they have a signed proxy form and that you or they update the proxies file in the appropriate Meetings directory. For example: https://svn.apache.org/repos/private/foundation/Meetings/20120522/proxies

The current proxy form is available in the appropriate Meetings directory, for example: https://svn.apache.org/repos/private/foundation/Meetings/20120522/member_proxy.txt

Counting and Tallying

For a new member to be elected, he/she must receive more Yes votes than No votes. To help in the counting for the results, there is a simple script under voter/monitoring called yna-summary.pl which will take in the Final Tally emails, as sent by the voter tool, and determine the YES/NO result for each issue. The script is setup so you can concat all the YNA Final Tally emails into 1 large file and have the script slurp that it, and it will generate the results for all elections/issues.

Note that the anonymous BoardVoting votes are published privately within the foundation directory, so that any member may validate the results. New member votes (total Yes/No votes) are not published. Multiple volunteer vote counters selected from the membership before the meeting each validate and cross-check all results.

How To Vote

Once the initial half of the member meeting is over, the Chairman (currently Doug) will set up the voter tool to mail out ballots. The ballots contain a description of the issue being voted on, together with the specific issue ID, plus your own unique hash key. You will use the issue ID and the hash key to cast your vote.

New! Web Interface for Casting Votes

You may now cast your vote via a web interface instead of using a command line (as we did in the past, see below). Note: This URL is only available during ballot periods, so don't panic: trust us, it's really easy to use when the time comes.

Simply click on the link to https://vote.apache.org/... that's included in your vote email. You will need to login in your browser using your LDAP username and password - typically the same username/password you use for Subversion. Then you will be presented with a simple web form where you can enter your vote.

NOTE: Triple-check your vote - when voting for board candidates using the STV method, the order of votes is important. Enter your vote in the edit box provided, and then press Submit. Your vote is cast! Be sure to check your email: every time your voting hash key is used (either in the web interface or the command line), you will get an email back noting that your key was used.

If you make a mistake when voting, just correct the vote and re-submit. Only the last vote counts (so long as it is received before the vote ends). Note that there is a Command Line Interface for Casting Votes, at the bottom of this page.

Command Line Interface for Casting Votes

If you're a hard core command line user, you can still use this method to vote instead of the website above (which we really recommend). The vote email with the issue ID and hash includes a command line that needs to be executed on people.apache.org in order to actually cast your vote. You may receive many ballots: one for each newly nominated member being voted on, and one to elect a new board (if an Annual meeting).

IMPORTANT: email ballots are sent to your email address as noted in members.txt, so ensure you can read this address!

Note: For board elections, see BoardVoting for important information about Single Transferable Voting (STV) ballots used when electing directors.

Tip: a quick way to collect all your vote emails: Find your local mail program's pop/imap INBOX, and do this on your local (i.e. secure) machine (change the date string as appropriate):

Or if you have a Maildir setup run the following in the correct folder (adjust mtime and the grep string as appropriate):

Then Edit allmyvotes to update all instances of "vote" to be one of "yes", "no", or "abstain" for new member elections. If on Windows, swap line feeds to Unix (LF only).

Typically the way many members cast their ballots is to create a text file on their own machine, with each line consisting of the command to be executed on people.apache.org which casts the vote. When the text file has been edited to reflect your intentions, one way votes may be cast is by piping the text file directly to ssh:

If you are using Windows, you can use the Putty "plink" command-line tool instead of ssh:

Note that the votes.txt file must have Unix line endings (i.e. LF only). For those members concerned with privacy, an alternate method of casting votes is below.

Here is a sample file you can use to test if it is working:


A real vote file will look more like this:

/home/voter/bin/vote voteidentification1 longhexstring1 yes
/home/voter/bin/vote voteidentification2 longhexstring2 no
/home/voter/bin/vote voteidentification2 longhexstring3 abstain

You will get a stream of results that should be inspected to confirm that your votes have all been properly cast. You will also get an email reply each time your voteidentification key is used - this is important if you assigned a proxy.

Vote anonymity

One of the more recent concerns that some members had regards ensuring anonymity of the vote. The above process is slightly imperfect in that regard, in that your votes are all being passed as arguments to a command instead of being cast interactively. (The command is not active for long, but potentially the arguments can be seen in a process listing)

A solution to this issue is change the final step to this:

If you are using Windows, you can use the Putty "plink" command-line tool instead of ssh:

The args_to_stdin.pl script will simulate an interactive session for each vote by passing what would have been command-line arguments to stdin instead. This process happens independently for each line in votes.txt, and causes a more verbose stream or results on stdout.

There are some caveats to this approach though. One is that if you make a typo in the path /home/voter/bin/vote (which should start each line), the args_to_stdin.pl script will fail, and you'll need to correct the path and start the vote over again (it is ok to vote on the same ballot more than once). The other issue is that the ballot may suggest to you that you should ""-quote your actual vote string, but that won't work with args_to_stdin.pl. Just pass your vote without surrounding quotes and you should be fine.

Correcting errors

Vote early and often! Only the last time an individual voter key is used counts; so if you change your mind (or realize that you made a mistake) you can always re-cast your vote.

Also see BoardVoting for important details about how to cast your STV - Single Transferable Vote - for board candidates.

MemberVoting (last edited 2013-05-10 17:26:34 by ShaneCurcuru)