Saturday, July 30, 2005

First Gentoo council election

As the polls are about to open for the election of the first Gentoo council, I
thought I'd take the opportunity to share my thoughts about the council. Since
I'm one of the election officials, I need to remain impartial, but at the same
time I'm the person who created the blasted thing, so I feel like I should also
state my opinions about what I think the council should be.

My hope is that the soon-to-be-elected council will represent the best of
Gentoo. These people should be wise in the ways of Gentoo, first and foremost.
It is the council who will set gentoo-wide policy, and thus hard-earned
knowledge of what works, what doesn't, and why things do or don't work seems

The new council members should be trusted and respected by a large swath of the
community. The council sets policy, but policy is useless if devs refuse to
follow it, which is likely if the council members are not trusted by the devs
to know what they're doing. A trusted and respected council, on the other hand,
will have the "moral authority" of having been elected by their peers to enact
sane and essential policies. Presumably such trust and respect comes from
having a track record of significant accomplishments within Gentoo.

Besides being accomplished, the new council members also need to be dedicated.
Although I don't expect serving on the council to be an immense amount of work,
it does require that the council members hold at least one open meeting per
month, and all council members are expected to attend (or provide a proxy).
That's really the minimum requirement, though. The real measure of a council is
going to be the council's ability to keep Gentoo moving on track. Right now a
number of projects are stalled because they require cross-project decisions to
be made, and that desperately needs to end.

The new council members need to have vision. As members of the first Gentoo
council, these members will set the tone for councils to come. To a significant
extent, the success or failure of this new metastrucure depends on the
accomplishments (or lack thereof) of this new council.

Best of luck to all of the nominees.

Running a condorcet election

Here's a quick write-up on what needs to be done (from a technical standpoint)
to run one of the Gentoo Condorcet elections. Since these elections are ones
that only involve Gentoo devs, we handle authentication by the simple process
of running the election on, collecting and counting the ballots
that eligible devs create and store in their home directories on that machine.

We use agriffis's code to handle ballot distribution and vote collection and
counting, and that code lives in ~agriffis on d.g.o. The necessary code is
~agriffis/votify (which uses ~agriffis/elections/ and
~agriffis/countify. An election needs three files to run: ballot-$name
(where $name is the name of the election--"council2005" in the most recent
case), a randomized version of which will be distributed to voters,
officials-$name which lists the voting officials (specifically the Gentoo
usernames of the officials, one per line), and voters-$name which lists
eligible voters (again listing the usernames of the voters, one per line). This
last list is generally obtained from devrel, although for a gentoo-wide vote
getent passwd | cut -d: -f1 > voters-$name suffices. One also needs to
touch the files start-$name and stop-$name with the start and stop
dates (and times) for the election. Currently all of these files must reside
in ~agriffis/elections, but that will hopefully change when somebody has a
bit of time to put into doing some recoding. All of this is done before the
polls open, and infra copies or links /usr/local/bin/votify from
~agriffis/votify (if the link doesn't already exist), but nothing needs to
be done to officially "open" or "close" the polls, since that's what the
start-$name and stop-$name files are for.

After the polls close, somebody from infra runs (as root on d.g.o) perl
~agriffis/countify --collect $name
to collect all of the ballots. Then each
official runs perl ~agriffis/countify --rank $name to count the ballots.
Not only are the results reported (of course), but the master ballot (which
resides in the officials' results-$name directory as master-$name) is
mailed out. Also, voting confirmation e-mails are mailed out, which agriffis
has done using the following one-liner from the results-$name directory:

while read num user; do grep -q "confirmation $num" master-$name
|| continue; (echo "To: $"; sed
"s/^INSERT.*/Your confirmation number is $num./" email; )
| /usr/lib/sendmail -oi $; done < confs-$name

So far I've spent about five minutes getting this upcoming election ready to
go. Thanks, agriffis!

Label Cloud