Added files for election 2012
This commit is contained in:
parent
217ee7b200
commit
9a4b49d928
10 changed files with 840 additions and 1 deletions
|
@ -45,4 +45,5 @@ foundation.gnome.org/vote/2007/Makefile
|
||||||
foundation.gnome.org/vote/2009/Makefile
|
foundation.gnome.org/vote/2009/Makefile
|
||||||
foundation.gnome.org/vote/2010/Makefile
|
foundation.gnome.org/vote/2010/Makefile
|
||||||
foundation.gnome.org/vote/2011/Makefile
|
foundation.gnome.org/vote/2011/Makefile
|
||||||
|
foundation.gnome.org/vote/2012/Makefile
|
||||||
])
|
])
|
||||||
|
|
14
foundation.gnome.org/vote/2012/Makefile.am
Normal file
14
foundation.gnome.org/vote/2012/Makefile.am
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
SUBDIRS =
|
||||||
|
|
||||||
|
urlpath = /vote/2012
|
||||||
|
|
||||||
|
page_SCRIPTS = \
|
||||||
|
index.html \
|
||||||
|
candidates.html\
|
||||||
|
rules.html
|
||||||
|
|
||||||
|
page_DATA = \
|
||||||
|
timeline.ics
|
||||||
|
mkical.py
|
||||||
|
|
||||||
|
include $(top_srcdir)/rules.common
|
244
foundation.gnome.org/vote/2012/candidates.wml
Normal file
244
foundation.gnome.org/vote/2012/candidates.wml
Normal file
|
@ -0,0 +1,244 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>GNOME Foundation 2012 Elections Candidates</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h1>Candidates for the GNOME Foundation 2012 Elections</h1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Below you will find a list of candidates who are running for the
|
||||||
|
GNOME Foundation Board of Directors. A short summary statement from
|
||||||
|
each candidate and a link to their full candidacy announcement is
|
||||||
|
provided to help you learn more about them. We encourage all voters
|
||||||
|
to read the full candidacy statements and related discussions on
|
||||||
|
<a href="http://mail.gnome.org/archives/foundation-list/">foundation-list@gnome.org</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
When deciding who you should vote for, please carefully consider
|
||||||
|
the various tasks the Board of Directors must perform. This
|
||||||
|
<a href="../overview.html">overview</a> may be helpful. Keep in mind that
|
||||||
|
the board will make a number of important decisions and will also have to
|
||||||
|
perform many tasks which require a significant amount of time and effort
|
||||||
|
and the ability to work and communicate with other people, companies, and
|
||||||
|
the media. The board of directors will represent GNOME to companies and
|
||||||
|
the world in a very real way. It is a good idea to strive for a
|
||||||
|
well-balanced board consisting of people with various backgrounds,
|
||||||
|
skills, and perspectives.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Additional elections details can be found on the
|
||||||
|
<a href="../../">GNOME Foundation Web Site</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If you have any questions, please send them to either
|
||||||
|
<a href="http://mail.gnome.org/archives/foundation-list/">foundation-list@gnome.org</a>
|
||||||
|
or to us at <a
|
||||||
|
href="mailto:elections@gnome.org">elections@gnome.org</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Candidates for the GNOME Foundation Board of Directors</h2>
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>1. Brian Cameron</strong><br />
|
||||||
|
Affiliation: <em>Oracle</em><br />
|
||||||
|
Full statement at <a href="http://mail.gnome.org/archives/foundation-announce/2010-May/msg00005.html">http://mail.gnome.org/archives/foundation-announce/2010-May/msg00005.html</a>
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
I am running for re-election for a third term on the board. I am
|
||||||
|
running not just because I love GNOME, the GNOME community, and free
|
||||||
|
software; but also because I have experience working on the board and a
|
||||||
|
good track record of getting things done.
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>2. Yang Emily Chen</strong><br />
|
||||||
|
Affiliation: <em>Sun Microsystems, Inc. (Will become Oracle soon after LEC in China)</em><br />
|
||||||
|
Full statement at <a href="http://mail.gnome.org/archives/foundation-announce/2010-May/msg00008.html">http://mail.gnome.org/archives/foundation-announce/2010-May/msg00008.html</a>
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
Hi, this Emily Chen. I participated in GNOME since 2006. Now I am continue working in GNOME community because I believe in GNOME. I worked on LDTP project in 2006, then participated in Google Summer of Code 2006 and 2007 on GNOME LDTP projects as mentor. In 2008, I started the GNOME.Asia and organized the GNOME.Asia Summit 2008 in China and GNOME.Asia Summit 2009 in Vietnam. Now I am working on the GNOME.Asia 2010, which will be host in Taiwan in August. Also, I start the Beijing GNOME Users Group in Beijing since 2008 Nov. Now Beijing GNOME Users Group is one of the most active organization in Beijing. I want to make GNOME grow in Beijing, China, and Asia, it is meaningful to promote GNOME to more people, especially in Asia, because I see many opportunity and good community here in Asian.
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>3. Baris Cicek</strong><br />
|
||||||
|
Affiliation: <em>Nerd Software</em><br />
|
||||||
|
Full statement at <a href="http://mail.gnome.org/archives/foundation-announce/2010-May/msg00015.html">http://mail.gnome.org/archives/foundation-announce/2010-May/msg00015.html</a>
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
I'm 27 years old, and contributing GNOME since early 2000s. I've been
|
||||||
|
taking role of GNOME Turkish translation coordinator since 2004, and in
|
||||||
|
past served community at GNOME Membership and Elections committee for
|
||||||
|
three years. My last but not the least significant contribution was
|
||||||
|
organizing GUADEC 2008 which was held in Istanbul.
|
||||||
|
|
||||||
|
Since from the day one I've also been trying to contribute with
|
||||||
|
occasional bug reports and patches for various GNOME applications as
|
||||||
|
well.
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>4. Paul Cutler</strong><br />
|
||||||
|
Affiliation: <em>Novell</em><br />
|
||||||
|
Full statement at <a href="http://mail.gnome.org/archives/foundation-announce/2010-May/msg00002.html">http://mail.gnome.org/archives/foundation-announce/2010-May/msg00002.html</a>
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
Hi, I'm Paul and I've been contributing to GNOME since 2006 in
|
||||||
|
documentation, marketing and the web team. I have been on the Board for
|
||||||
|
the last two months having been asked to fill Behdad's term. I think the
|
||||||
|
GNOME Foundation is doing very well and the future is bright with GNOME
|
||||||
|
3.0 just around the corner. I want to help promote GNOME 3 and continue
|
||||||
|
to improve the communication between the Board, the GNOME communities
|
||||||
|
and GNOME's partners to help GNOME grow.
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>5. Seif Lotfy</strong><br />
|
||||||
|
Affiliation: <em>None</em><br />
|
||||||
|
Full statement at <a href="http://mail.gnome.org/archives/foundation-announce/2010-May/msg00014.html">http://mail.gnome.org/archives/foundation-announce/2010-May/msg00014.html</a>
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
Hello, I'm Seif Lotfy, I have been using GNOME since 2004
|
||||||
|
and participated starting 2007. I enjoy being part of the community and
|
||||||
|
enjoy spreading GNOME.
|
||||||
|
|
||||||
|
I initiated Zeitgeist and GNOME activity Journal, and dedicated most of
|
||||||
|
my time developing them and building a community around both. Now I would
|
||||||
|
love to start contributing in other parts of GNOME.
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>6. Og Maciel</strong><br />
|
||||||
|
Affiliation: <em>rPath Inc</em><br />
|
||||||
|
Full statement at <a href="http://mail.gnome.org/archives/foundation-announce/2010-May/msg00004.html">http://mail.gnome.org/archives/foundation-announce/2010-May/msg00004.html</a>
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
The GNOME Project has allowed me to take my first steps into the world
|
||||||
|
of collaborative projects and long nights of translation sprints. Due
|
||||||
|
to my open minded attitude, I have been able to get involved in many
|
||||||
|
different projects and work with a great number of interesting people.
|
||||||
|
|
||||||
|
My passion is in the community aspect of these projects and how to
|
||||||
|
better integrate new comers and volunteers with the rest of the
|
||||||
|
community. I am also extremely interested in how we, the open source
|
||||||
|
community as a whole, can leverage this immense pool of ideas and
|
||||||
|
projects, and use it to the benefit of all.
|
||||||
|
|
||||||
|
If elected to the board, I will bring in my experience of building
|
||||||
|
communities and guiding/enabling users to become more active in the
|
||||||
|
GNOME Project. After all, the GNOME Project IS about people! I will
|
||||||
|
also push to make accessibility a high priority for the project.
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>7. Andreas Nilsson</strong><br />
|
||||||
|
Affiliation: <em>None</em><br />
|
||||||
|
Full statement at <a href="http://mail.gnome.org/archives/foundation-announce/2010-May/msg00013.html">http://mail.gnome.org/archives/foundation-announce/2010-May/msg00013.html</a>
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
I'm Andreas Nilsson, 28 years old, from Sweden. I've been part of the GNOME community since around 2005 and do all kinds of visual stuff for the project. Websites, t-shirts, icons, etc. as part of the Art team and the Marketing team. I run my own freelance design company in Gothenburg and this is my candidacy for GNOME Board of Directors.
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>8. Bastien Nocera</strong><br />
|
||||||
|
Affiliation: <em>Red Hat UK Ltd., a wholly owned subsidiary of Red
|
||||||
|
Hat Inc.</em><br />
|
||||||
|
Full statement at <a href="http://mail.gnome.org/archives/foundation-announce/2010-May/msg00016.html">http://mail.gnome.org/archives/foundation-announce/2010-May/msg00016.html</a>
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
I'm a 31 year-old French Anglophile, who has been involved in GNOME for
|
||||||
|
more than 10 years, first as an application developer, then as a core
|
||||||
|
hacker (though I did not hack on gnome-core[1] at the time).
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>9. Germán Póo-Caamaño</strong><br />
|
||||||
|
Affiliation: <em>None </em><br />
|
||||||
|
Full statement at <a href="http://mail.gnome.org/archives/foundation-announce/2010-May/msg00017.html">http://mail.gnome.org/archives/foundation-announce/2010-May/msg00017.html</a>
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
I am a contributor since 2000 and I am running for re-election
|
||||||
|
for the Foundation Board because I am confident there is plenty
|
||||||
|
of room where I can help to Gnome and its community, as in the
|
||||||
|
last year, bringing a different perspective and an independent
|
||||||
|
voice.
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>10. Diego Escalante Urrelo</strong><br />
|
||||||
|
Affiliation: <em>Igalia S.L.</em><br />
|
||||||
|
Full statement at <a href="http://mail.gnome.org/archives/foundation-announce/2010-May/msg00009.html">http://mail.gnome.org/archives/foundation-announce/2010-May/msg00009.html</a>
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
I'm Diego, 22, from good old Lima - Perú. I've been involved
|
||||||
|
since 2006, I've contributed with code, bug triaging, accounts
|
||||||
|
administration, promotion with/at events, organization, Board, etc.
|
||||||
|
|
||||||
|
I love GNOME and our community, it's awesome :).
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>11. Jonh Wendell</strong><br />
|
||||||
|
Affiliation: <em>Santo Antonio Sugar Company</em><br />
|
||||||
|
Full statement at <a href="http://mail.gnome.org/archives/foundation-announce/2010-May/msg00003.html">http://mail.gnome.org/archives/foundation-announce/2010-May/msg00003.html</a>
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
I've been using GNOME since 2005 and contributing since 2006.
|
||||||
|
I love GNOME. I love to spread GNOME. I love to bring new
|
||||||
|
contributors to GNOME. That's why I'm running for the board
|
||||||
|
of directors (for the first time).
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Additional Elections-related Information</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Note, that according to the
|
||||||
|
<a href="../../about/bylaws.pdf">Bylaws</a> Article VIII Section 2d
|
||||||
|
there is a 2-person maximum on the number of people affiliated with any
|
||||||
|
one company that can be on the board: if more than 2 persons from one
|
||||||
|
company get elected, only the top 2 vote getters will get on.
|
||||||
|
You will be able to vote for up to 7 candidates of your choice, with no
|
||||||
|
restrictions, except that you cannot vote more than once for the same
|
||||||
|
candidate.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If you have any futher question, please consult the
|
||||||
|
<a href="rules.html">Rules for this election</a> or write to
|
||||||
|
<a href="mailto:elections@gnome.org">elections@gnome.org</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
63
foundation.gnome.org/vote/2012/index.wml
Normal file
63
foundation.gnome.org/vote/2012/index.wml
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>GNOME Foundation 2012 Elections</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
<meta name="author" content="Tobias Mueller" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h1>GNOME Foundation 2012 Elections</h1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The GNOME Foundation Membership currently elects the Board of
|
||||||
|
Directors each year for July, 1st. Any member can nominate
|
||||||
|
themself to run in the elections. The overall elections process
|
||||||
|
is overseen by the Membership and Elections Committee, which can
|
||||||
|
be reached at <a
|
||||||
|
href="mailto:elections@gnome.org">elections@gnome.org</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The elections results from the 2012 Board of Directors elections
|
||||||
|
will be archived here for public access.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>2012 Elections Materials:</h2>
|
||||||
|
<ul>
|
||||||
|
<!-- <li>
|
||||||
|
<a href="http://mail.gnome.org/archives/foundation-announce/2012-June/msg00004.html">Election results announcement</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="../../vote/results.php?election_id=16">Detailed election results</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="../../vote/votes.php?election_id=16">List of all votes</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="../../vote/vote.php?election_id=16">Interface to vote</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="candidates.html">List of candidates for Board of Directors</a>
|
||||||
|
</li>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="http://foundation.gnome.org/membership/members.php?date=2012-05-30">List of registered voters</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="rules.html">Elections Rules and Timeline</a> (webcal <a
|
||||||
|
href="webcal://foundation.gnome.org/elections/2012/timeline.ics">timeline</a>)
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="../overview.html">Overview of the Board of Directors role</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
258
foundation.gnome.org/vote/2012/mkical.py
Normal file
258
foundation.gnome.org/vote/2012/mkical.py
Normal file
|
@ -0,0 +1,258 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
'''
|
||||||
|
This Python script creates a simple iCal file based on hardcoded events
|
||||||
|
in this file.
|
||||||
|
'''
|
||||||
|
|
||||||
|
import calendar
|
||||||
|
import datetime
|
||||||
|
import logging
|
||||||
|
import math
|
||||||
|
import os
|
||||||
|
import vobject
|
||||||
|
|
||||||
|
|
||||||
|
#### Configure these variables
|
||||||
|
YEAR = 2012
|
||||||
|
CANDIDATES_OPENED_DATE = (YEAR, 5, 7)
|
||||||
|
CANDIDATES_CLOSED_DATE = (YEAR, 5, 20)
|
||||||
|
CANDIDATES_ANNOUNCED_DATE = (YEAR, 5, 23)
|
||||||
|
VOTING_OPENED_DATE = (YEAR, 5, 27)
|
||||||
|
VOTING_CLOSED_DATE = (YEAR, 6, 10)
|
||||||
|
PRELIMINARY_RESULTS_DATE = (YEAR, 6, 12)
|
||||||
|
CHALLENGE_CLOSED_DATE = (YEAR, 6, 19)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### I'm sorry that these functions clutter your calendar-creating experience
|
||||||
|
### Please scroll down a bit to edit the description texts
|
||||||
|
|
||||||
|
#### Application Data
|
||||||
|
def c(multilinestring):
|
||||||
|
'''
|
||||||
|
A helper functions which cleans up a multiline string, so that
|
||||||
|
it doesn't contain any newlines or multiple whitespaces
|
||||||
|
'''
|
||||||
|
stripped = [l.strip() for l in multilinestring.splitlines()]
|
||||||
|
ret = " ".join (stripped)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def d(year, month, day):
|
||||||
|
'''
|
||||||
|
Just a tiny wrapper around datetime.datetime to create a datetime object
|
||||||
|
'''
|
||||||
|
return datetime.date(year, month, day)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CANDIDATES_OPENED = (
|
||||||
|
d(*CANDIDATES_OPENED_DATE),
|
||||||
|
'Announcements and list of candidates opens',
|
||||||
|
c("""If you are a member of the GNOME Foundation and are interested
|
||||||
|
in running for election, you may nominate yourself by sending an
|
||||||
|
e-mail to foundation-announce@gnome.org with your name, e-mail
|
||||||
|
address, corporate affiliation (if any), and a description of why
|
||||||
|
you'd like to serve, before
|
||||||
|
%s (23:59 UTC).""" % d(*CANDIDATES_CLOSED_DATE)) + '''
|
||||||
|
''' + c("""
|
||||||
|
You should also send a summary of your candidacy announcement
|
||||||
|
(75 words or less) to elections@gnome.org. If you are not yet a
|
||||||
|
GNOME Foundation member and would like to stand for election,
|
||||||
|
you must first apply for membership and be accepted to be eligible
|
||||||
|
to run. (You may, however, announce your candidacy prior to formal
|
||||||
|
acceptance of your application;
|
||||||
|
should your application not be accepted, you will not be included in
|
||||||
|
the list of candidates.)""") + '''
|
||||||
|
'''
|
||||||
|
)
|
||||||
|
|
||||||
|
CANDIDATES_CLOSED = (
|
||||||
|
d(*CANDIDATES_CLOSED_DATE),
|
||||||
|
'List of candidates closed',
|
||||||
|
CANDIDATES_OPENED[2] # Get the same text again
|
||||||
|
)
|
||||||
|
|
||||||
|
CANDIDATES_ANNOUNCED = (
|
||||||
|
d(*CANDIDATES_ANNOUNCED_DATE),
|
||||||
|
'List of candidates announced',
|
||||||
|
'You may now start to send your questions to the candidates'
|
||||||
|
)
|
||||||
|
|
||||||
|
VOTING_OPENED = (
|
||||||
|
d(*VOTING_OPENED_DATE),
|
||||||
|
'Instructions to vote are sent',
|
||||||
|
'Please read your email and follow these instructions and submit your vote by %s' % d(*VOTING_CLOSED_DATE)
|
||||||
|
)
|
||||||
|
VOTING_CLOSED = (
|
||||||
|
d(*VOTING_CLOSED_DATE),
|
||||||
|
'Votes must be returned',
|
||||||
|
'Preliminary results are announced on %s' % d(*PRELIMINARY_RESULTS_DATE)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
PRELIMINARY_RESULTS = (
|
||||||
|
d(*PRELIMINARY_RESULTS_DATE),
|
||||||
|
'Preliminary results are announced',
|
||||||
|
'The preliminary results can be challenged until %s' % d(*CHALLENGE_CLOSED_DATE)
|
||||||
|
)
|
||||||
|
|
||||||
|
CHALLENGE_CLOSED = (
|
||||||
|
d(*CHALLENGE_CLOSED_DATE),
|
||||||
|
'Challenges to the results closed',
|
||||||
|
"If there weren't any challenges, preliminary results are valid"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def create_ical(eventlist):
|
||||||
|
'''Generates an ical stream based on the list given as eventlist.
|
||||||
|
The list shall contain elements with a tuple with a
|
||||||
|
(date, string, string) object, serving as date when the event takes place,
|
||||||
|
summary and description respectively.
|
||||||
|
'''
|
||||||
|
log = logging.getLogger('create_ical')
|
||||||
|
|
||||||
|
cal = vobject.iCalendar()
|
||||||
|
cal.add('method').value = 'PUBLISH'
|
||||||
|
cal.add('calscale').value = 'GREGORIAN'
|
||||||
|
cal.add('x-wr-timezone').value = 'UTC'
|
||||||
|
|
||||||
|
for (timestamp, summary, description) in eventlist:
|
||||||
|
log.debug('creating %s, %s', timestamp, description)
|
||||||
|
vevent = cal.add('vevent')
|
||||||
|
vevent.add('dtstart').value = timestamp
|
||||||
|
vevent.add('dtend').value = timestamp + datetime.timedelta(1)
|
||||||
|
vevent.add('summary').value = summary
|
||||||
|
vevent.add('description').value = description
|
||||||
|
|
||||||
|
stream = cal.serialize()
|
||||||
|
return stream
|
||||||
|
|
||||||
|
|
||||||
|
def wraptext(s, width):
|
||||||
|
'''Wraps a string @s at @width characters.
|
||||||
|
|
||||||
|
>>> wraptext('fooo', 2)
|
||||||
|
['fo','oo']
|
||||||
|
'''
|
||||||
|
l = len(s)
|
||||||
|
nr_frames = int(math.ceil(float(l)/width))
|
||||||
|
print nr_frames
|
||||||
|
frames = []
|
||||||
|
for i in xrange(nr_frames):
|
||||||
|
start, end = i*width, (i+1) * width
|
||||||
|
frames.append(s[start:end])
|
||||||
|
# One could (and prolly should) yield that
|
||||||
|
return frames
|
||||||
|
|
||||||
|
def ordinal(n):
|
||||||
|
n = int(n)
|
||||||
|
if 10 <= n % 100 < 20:
|
||||||
|
return str(n) + 'th'
|
||||||
|
else:
|
||||||
|
return str(n) + {1 : 'st', 2 : 'nd', 3 : 'rd'}.get(n % 10, "th")
|
||||||
|
|
||||||
|
|
||||||
|
def cal_for_month(month, events, width=80, year=datetime.datetime.now().year):
|
||||||
|
'''Generates a textual calendar for the @month in @year.
|
||||||
|
It will return a string with the calendar on the left hand side and the
|
||||||
|
events on the right hand side.
|
||||||
|
@events shall be a list with tuples: timestamp, summary, description.
|
||||||
|
|
||||||
|
Returns a string with the calendar
|
||||||
|
'''
|
||||||
|
log = logging.getLogger('cal_for_month')
|
||||||
|
|
||||||
|
cal = calendar.TextCalendar()
|
||||||
|
calstrings = cal.formatmonth(year, month, 3).splitlines()
|
||||||
|
|
||||||
|
for (timestamp, summary, description) in events:
|
||||||
|
log.debug('creating %s, %s', timestamp, summary)
|
||||||
|
year, month, day = timestamp.year, timestamp.month, timestamp.day
|
||||||
|
maxwidth = max([len(cs) for cs in calstrings])
|
||||||
|
rightwidth = 80 - maxwidth
|
||||||
|
for i, line in enumerate(calstrings):
|
||||||
|
needles = (" %d " % day,
|
||||||
|
" %d\n" % day)
|
||||||
|
replacement = "(%d)" % day
|
||||||
|
# Find the day so that we can highlight it and add a comment
|
||||||
|
day_in_week = False
|
||||||
|
for needle in needles:
|
||||||
|
if needle in line+"\n":
|
||||||
|
# k, this looks a bit weird but we have that corner
|
||||||
|
# case with the day being at the end of the line
|
||||||
|
# which in turn will have been split off
|
||||||
|
day_in_week = True
|
||||||
|
break # Set the needle to the found one
|
||||||
|
if day_in_week == False: # Nothing found, try next week
|
||||||
|
log.debug('Day (%d) not found in %s', day, line)
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
log.debug('Day (%d) found in %s', day, line)
|
||||||
|
new_line = (line+"\n").replace(needle, replacement).rstrip()
|
||||||
|
new_line += " %s (%s)" % (summary, ordinal(day))
|
||||||
|
# Replace in-place for two events in the same week
|
||||||
|
# FIXME: This has bugs :-(
|
||||||
|
calstrings[i] = new_line
|
||||||
|
|
||||||
|
return os.linesep.join(calstrings)
|
||||||
|
|
||||||
|
def create_textcal(eventlist):
|
||||||
|
'''Generates a multiline string containing a calendar with the
|
||||||
|
events written on the side
|
||||||
|
The list shall contain elements with a tuple with a
|
||||||
|
(date, string, string) object, serving as date when the event takes place,
|
||||||
|
summary and description respectively.
|
||||||
|
'''
|
||||||
|
log = logging.getLogger('textcal')
|
||||||
|
log.debug('Generating from %s', eventlist)
|
||||||
|
months = set(map(lambda x: x[0].month, eventlist))
|
||||||
|
year = set(map(lambda x: x[0].year, eventlist)).pop()
|
||||||
|
|
||||||
|
final_cal = []
|
||||||
|
for month in months:
|
||||||
|
events = filter(lambda x: x[0].month == month, eventlist)
|
||||||
|
log.debug('Events for %d: %s', month, events)
|
||||||
|
month_cal = cal_for_month(month, events, year=year)
|
||||||
|
final_cal.append(month_cal)
|
||||||
|
|
||||||
|
return os.linesep.join(final_cal)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
from optparse import OptionParser
|
||||||
|
parser = OptionParser("usage: %prog [options]")
|
||||||
|
parser.add_option("-l", "--loglevel", dest="loglevel", help="Sets the loglevel to one of debug, info, warn, error, critical",
|
||||||
|
default=None)
|
||||||
|
parser.add_option("-i", "--ical",
|
||||||
|
action="store_true", dest="ical", default=False,
|
||||||
|
help="print iCal file to stdout")
|
||||||
|
parser.add_option("-t", "--textcal",
|
||||||
|
action="store_true", dest="tcal", default=False,
|
||||||
|
help="print textual calendar to stdout")
|
||||||
|
(options, args) = parser.parse_args()
|
||||||
|
|
||||||
|
loglevel = {'debug': logging.DEBUG, 'info': logging.INFO,
|
||||||
|
'warn': logging.WARN, 'error': logging.ERROR,
|
||||||
|
'critical': logging.CRITICAL}.get(options.loglevel, "warn")
|
||||||
|
logging.basicConfig( level=loglevel )
|
||||||
|
log = logging.getLogger()
|
||||||
|
|
||||||
|
eventlist = [
|
||||||
|
CANDIDATES_OPENED,
|
||||||
|
CANDIDATES_CLOSED,
|
||||||
|
CANDIDATES_ANNOUNCED,
|
||||||
|
VOTING_OPENED,
|
||||||
|
VOTING_CLOSED,
|
||||||
|
PRELIMINARY_RESULTS,
|
||||||
|
CHALLENGE_CLOSED,
|
||||||
|
]
|
||||||
|
|
||||||
|
if not any([options.ical, options.tcal]):
|
||||||
|
parser.error("You want to select either ical or textcal output. See --help for details")
|
||||||
|
if options.ical:
|
||||||
|
ical = create_ical( eventlist )
|
||||||
|
print ical
|
||||||
|
if options.tcal:
|
||||||
|
tcal = create_textcal( eventlist )
|
||||||
|
print tcal
|
144
foundation.gnome.org/vote/2012/rules.wml
Normal file
144
foundation.gnome.org/vote/2012/rules.wml
Normal file
|
@ -0,0 +1,144 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>GNOME Foundation 2012 Elections Rules</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h1>Rules & Timeline for the GNOME Foundation 2012 Elections</h1>
|
||||||
|
|
||||||
|
<h2>Elections Rules</h2>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
See the <a href="../../about/charter/">GNOME Foundation charter</a> for
|
||||||
|
general rules.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
There are 7 board slots that are to be filled during these elections.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Members of the GNOME Foundation as of
|
||||||
|
<!-- CANDIDATES_ANNOUNCED_DATE -->2012-05-23
|
||||||
|
|
||||||
|
are eligible to vote in the elections. Anyone who has made a
|
||||||
|
contribution to GNOME can apply for membership by completing the
|
||||||
|
<a href="../../membership/application.php">application</a>.
|
||||||
|
Also, your membership needs to be valid at least until the end of the
|
||||||
|
elections
|
||||||
|
(<!-- CHALLENGE_CLOSED_DATE -->2012-06-19).
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Any eligible voter is eligible to be elected to the Board of Directors.
|
||||||
|
To announce your candidacy, send a message to
|
||||||
|
<a href="http://mail.gnome.org/archives/foundation-announce/">foundation-announce@gnome.org</a>
|
||||||
|
with your full name, e-mail, corporate affiliation (if any), and a
|
||||||
|
description of your reasons for wanting to serve as a director.
|
||||||
|
Candidacies must be announced prior to
|
||||||
|
<!-- CANDIDATES_CLOSED_DATE -->2012-05-20, 23:59 UTC.
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
All candidates should mail a summary of their candicacy announcement
|
||||||
|
(see previous rule) to <a
|
||||||
|
href="mailto:elections@gnome.org">elections@gnome.org</a>.
|
||||||
|
Summaries should be no more than 75 words of continuous text (i.e. no
|
||||||
|
bullet lists or multiple paragraphs) and must be received by the
|
||||||
|
nomination deadline given above. A compilation of the summaries will
|
||||||
|
be mailed to all registered voters several days prior to the elections.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
All discussion related to the elections should be held on
|
||||||
|
<a href="http://mail.gnome.org/archives/foundation-list/">foundation-list@gnome.org</a>.
|
||||||
|
Members are invited to ask questions to one or all candidates on that
|
||||||
|
list.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Instructions explaining how to vote will be sent via e-mail to all
|
||||||
|
eligible voters on
|
||||||
|
<!-- VOTING_OPENED_DATE -->2012-05-27,
|
||||||
|
|
||||||
|
and votes must be returned by
|
||||||
|
<!-- VOTING_CLOSED_DATE -->2012-06-11, 23:59 UTC.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Votes will be held confidential during the elections, but an
|
||||||
|
anonymized archive of all submitted votes will be made publicly
|
||||||
|
accessible at its conclusion.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
The GNOME Foundation Membership and Elections Committee is
|
||||||
|
responsible for counting the votes.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
The 7 candidates voted for most as counted by a <a href="http://mail.gnome.org/archives/foundation-list/2009-March/msg00012.html">single transferable
|
||||||
|
vote system</a> will be elected, except that no more than two
|
||||||
|
individuals affiliated with any one corporation may be elected. Should
|
||||||
|
more than two of the top seven vote-getters be affiliated with the
|
||||||
|
same company, only the two with the most votes will be considered
|
||||||
|
elected. For a full definition of corporate affiliation, see the
|
||||||
|
<a href="../../about/charter/">GNOME Foundation charter</a>.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
In the event of a tie for the final slot on the board, the Elections
|
||||||
|
Committee will schedule run-off elections as soon as possible.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
The Elections Committee will announce preliminary results as soon as
|
||||||
|
possible after the elections close, along with instructions on how to
|
||||||
|
access the votes archive and how to independently verify the vote
|
||||||
|
count.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Any eligible voter may challenge the preliminary results by e-mailing
|
||||||
|
<a
|
||||||
|
href="mailto:elections@gnome.org">elections@gnome.org</a>
|
||||||
|
prior to
|
||||||
|
<!-- PRELIMINARY_RESULTS_DATE -->2012-06-19.
|
||||||
|
|
||||||
|
The decision of the Elections Committee as
|
||||||
|
to any challenge shall be final. Once any challenges have been
|
||||||
|
resolved, the Elections Committee shall announce the final results.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Any questions regarding these procedures should be directed to the
|
||||||
|
Elections Committee by e-mail to <a
|
||||||
|
href="mailto:elections@gnome.org">elections@gnome.org</a>.
|
||||||
|
The committee shall have the power to make any necessary changes or
|
||||||
|
clarifications to these rules at any point during the elections.
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<h2>Timeline</h2>
|
||||||
|
<p><small>(all deadlines are 23:59 UTC)</small></p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<!-- CANDIDATES_OPENED_DATE -->2012-05-07: Announcements and list of candidates opens.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<!-- CANDIDATES_CLOSED_DATE -->2012-05-20: Last day to announce candidacies, submit summary statements.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<!-- CANDIDATES_ANNOUNCED_DATE -->2012-05-23: Final list of candidates.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<!-- VOTING_OPENED_DATE -->2012-05-27: Instructions mailed to eligible voters, voting begins.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<!-- VOTING_CLOSED_DATE -->2012-06-10: Voting closes.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<!-- PRELIMINARY_RESULTS_DATE -->2012-06-12: Preliminary results are announced.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<!-- CHALLENGE_CLOSED_DATE -->2012-06-19: Last day to challenge preliminary results.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
79
foundation.gnome.org/vote/2012/timeline.ics
Normal file
79
foundation.gnome.org/vote/2012/timeline.ics
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
BEGIN:VCALENDAR
|
||||||
|
VERSION:2.0
|
||||||
|
CALSCALE:GREGORIAN
|
||||||
|
METHOD:PUBLISH
|
||||||
|
PRODID:-//PYVOBJECT//NONSGML Version 1//EN
|
||||||
|
BEGIN:VEVENT
|
||||||
|
UID:20110504T161927Z-98567@xbox
|
||||||
|
DTSTART;VALUE=DATE:20120507
|
||||||
|
DTEND;VALUE=DATE:20120508
|
||||||
|
DESCRIPTION:If you are a member of the GNOME Foundation and are interested
|
||||||
|
in running for election\, you may nominate yourself by sending an e-mail
|
||||||
|
to foundation-announce@gnome.org with your name\, e-mail address\, corpora
|
||||||
|
te affiliation (if any)\, and a description of why you'd like to serve\, b
|
||||||
|
efore 2012-05-20 (23:59 UTC).\n You should also send a summary of your
|
||||||
|
candidacy announcement (75 words or less) to elections@gnome.org. If you
|
||||||
|
are not yet a GNOME Foundation member and would like to stand for election
|
||||||
|
\, you must first apply for membership and be accepted to be eligible to r
|
||||||
|
un. (You may\, however\, announce your candidacy prior to formal acceptanc
|
||||||
|
e of your application\; should your application not be accepted\, you will
|
||||||
|
not be included in the list of candidates.)\n
|
||||||
|
SUMMARY:Announcements and list of candidates opens
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
UID:20110504T161927Z-2533@xbox
|
||||||
|
DTSTART;VALUE=DATE:20120520
|
||||||
|
DTEND;VALUE=DATE:20120521
|
||||||
|
DESCRIPTION:If you are a member of the GNOME Foundation and are interested
|
||||||
|
in running for election\, you may nominate yourself by sending an e-mail
|
||||||
|
to foundation-announce@gnome.org with your name\, e-mail address\, corpora
|
||||||
|
te affiliation (if any)\, and a description of why you'd like to serve\, b
|
||||||
|
efore 2012-05-20 (23:59 UTC).\n You should also send a summary of your
|
||||||
|
candidacy announcement (75 words or less) to elections@gnome.org. If you
|
||||||
|
are not yet a GNOME Foundation member and would like to stand for election
|
||||||
|
\, you must first apply for membership and be accepted to be eligible to r
|
||||||
|
un. (You may\, however\, announce your candidacy prior to formal acceptanc
|
||||||
|
e of your application\; should your application not be accepted\, you will
|
||||||
|
not be included in the list of candidates.)\n
|
||||||
|
SUMMARY:List of candidates closed
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
UID:20110504T161927Z-67367@xbox
|
||||||
|
DTSTART;VALUE=DATE:20120523
|
||||||
|
DTEND;VALUE=DATE:20120524
|
||||||
|
DESCRIPTION:You may now start to send your questions to the candidates
|
||||||
|
SUMMARY:List of candidates announced
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
UID:20110504T161927Z-36748@xbox
|
||||||
|
DTSTART;VALUE=DATE:20120527
|
||||||
|
DTEND;VALUE=DATE:20120528
|
||||||
|
DESCRIPTION:Please read your email and follow these instructions and submi
|
||||||
|
t your vote by 2012-06-10
|
||||||
|
SUMMARY:Instructions to vote are sent
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
UID:20110504T161927Z-82792@xbox
|
||||||
|
DTSTART;VALUE=DATE:20120610
|
||||||
|
DTEND;VALUE=DATE:20120611
|
||||||
|
DESCRIPTION:Preliminary results are announced on 2012-06-12
|
||||||
|
SUMMARY:Votes must be returned
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
UID:20110504T161927Z-79881@xbox
|
||||||
|
DTSTART;VALUE=DATE:20120612
|
||||||
|
DTEND;VALUE=DATE:20120613
|
||||||
|
DESCRIPTION:The preliminary results can be challenged until 2012-06-19
|
||||||
|
SUMMARY:Preliminary results are announced
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
UID:20110504T161927Z-71057@xbox
|
||||||
|
DTSTART;VALUE=DATE:20120619
|
||||||
|
DTEND;VALUE=DATE:20120620
|
||||||
|
DESCRIPTION:If there weren't any challenges\, preliminary results are vali
|
||||||
|
d
|
||||||
|
SUMMARY:Challenges to the results closed
|
||||||
|
END:VEVENT
|
||||||
|
X-WR-TIMEZONE:UTC
|
||||||
|
END:VCALENDAR
|
||||||
|
|
35
foundation.gnome.org/vote/2012/voting-instructions.txt
Normal file
35
foundation.gnome.org/vote/2012/voting-instructions.txt
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
tobiasmue@gnome.org
|
||||||
|
GNOME Foundation Board election - voting instructions
|
||||||
|
|
||||||
|
Dear <member>
|
||||||
|
|
||||||
|
The election of the GNOME Foundation Board is now open.
|
||||||
|
|
||||||
|
Voting will run from 2012-05-27 (today) until 2010-06-10, 23:59 UTC.
|
||||||
|
|
||||||
|
To vote, please go to http://foundation.gnome.org/vote/vote.php?id=16
|
||||||
|
and follow the instructions there.
|
||||||
|
|
||||||
|
A list of candidates and their reasons for running is available at
|
||||||
|
http://foundation.gnome.org/elections/2012/candidates.html
|
||||||
|
|
||||||
|
When instructed to do so, enter the following details:
|
||||||
|
|
||||||
|
E-mail:
|
||||||
|
Vote token:
|
||||||
|
|
||||||
|
The election has 4 steps - first, you must identify yourself using the
|
||||||
|
voting token above. Then select your preferred candidates in order of
|
||||||
|
preference. A third step will show you your choice, and ask you to
|
||||||
|
confirm or return to the previous step. Finally, after confirming your
|
||||||
|
choice, a unique identifier will be given to you which will allow you to
|
||||||
|
verify after the election that your vote was counted correctly. To ensure
|
||||||
|
anonymity, no link will be kept between this token and your identifiers,
|
||||||
|
so please keep this token safe. Once you have voted, you will not be able
|
||||||
|
to vote again.
|
||||||
|
|
||||||
|
Thank you for your vote!
|
||||||
|
|
||||||
|
Regards,
|
||||||
|
Tobias Mueller
|
||||||
|
on behalf of the GNOME Membership and Elections Commitee
|
|
@ -1,4 +1,4 @@
|
||||||
SUBDIRS = include 2004-10 2005-10 2000 2001 2002 2003 2004 2005 2006 2007 2009 2010 2011
|
SUBDIRS = include 2004-10 2005-10 2000 2001 2002 2003 2004 2005 2006 2007 2009 2010 2011 2012
|
||||||
|
|
||||||
urlpath = /vote
|
urlpath = /vote
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
<li><a href="2012/">Material from the Spring 2012 Elections</a></li>
|
||||||
<li><a href="2011/">Material from the Spring 2011 Elections</a></li>
|
<li><a href="2011/">Material from the Spring 2011 Elections</a></li>
|
||||||
<li><a href="2010/">Material from the Spring 2010 Elections</a></li>
|
<li><a href="2010/">Material from the Spring 2010 Elections</a></li>
|
||||||
<li><a href="2009/">Material from the Spring 2009 Elections</a></li>
|
<li><a href="2009/">Material from the Spring 2009 Elections</a></li>
|
||||||
|
|
Loading…
Reference in a new issue