[foundation-web] Prepare the field for 2016 elections



commit b2a60471dbce32d193a94b0a5e83bb3f50dc1edb
Author: Andrea Veri <av gnome org>
Date:   Thu Apr 28 18:10:23 2016 +0200

    Prepare the field for 2016 elections

 foundation.gnome.org/vote/2016/Makefile.am         |   14 +
 foundation.gnome.org/vote/2016/candidates.wml      |  306 ++++++++++++++++++++
 foundation.gnome.org/vote/2016/electorate.txt      |  273 +++++++++++++++++
 foundation.gnome.org/vote/2016/index.wml           |   63 ++++
 foundation.gnome.org/vote/2016/mkical.py           |  256 ++++++++++++++++
 foundation.gnome.org/vote/2016/rules.wml           |  137 +++++++++
 foundation.gnome.org/vote/2016/timeline.ics        |   77 +++++
 .../vote/2016/voting-instructions.txt              |   32 ++
 foundation.gnome.org/vote/Makefile.am              |    2 +-
 9 files changed, 1159 insertions(+), 1 deletions(-)
---
diff --git a/foundation.gnome.org/vote/2016/Makefile.am b/foundation.gnome.org/vote/2016/Makefile.am
new file mode 100644
index 0000000..17270c4
--- /dev/null
+++ b/foundation.gnome.org/vote/2016/Makefile.am
@@ -0,0 +1,14 @@
+SUBDIRS =
+
+urlpath = /vote/2016
+ 
+page_SCRIPTS = \
+       index.html \
+       candidates.html\
+       rules.html
+
+page_DATA = \
+       timeline.ics \
+       electorate.txt
+
+include $(top_srcdir)/rules.common
diff --git a/foundation.gnome.org/vote/2016/candidates.wml b/foundation.gnome.org/vote/2016/candidates.wml
new file mode 100644
index 0000000..94a0d7a
--- /dev/null
+++ b/foundation.gnome.org/vote/2016/candidates.wml
@@ -0,0 +1,306 @@
+<?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 2015 Elections Candidates</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+  </head>
+
+  <body>
+    <div id="content">
+    <h1>Candidates for the GNOME Foundation 2015 Elections</h1>
+
+    <p>
+      Below you find the list of candidates running for the
+      GNOME Foundation Board of Directors in 2015. We encourage everyone
+      to check the candidates' full candidacy statements, and follow related 
+      discussions on <a 
href="http://mail.gnome.org/archives/foundation-list/";>foundation-list&#64;gnome&#46;org</a>.
+    </p>
+
+    <p>
+      When deciding who to vote for, please consider
+      the various tasks under the responsibility of the Board of Directors. This
+      <a href="../overview.html">overview</a> might be helpful. The board makes 
+      a number of important decisions and performs many tasks which require time,
+       effort and the ability to work and communicate with others. The Board of 
+       Directors will represent GNOME to companies and the world. 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="http://foundation.gnome.org";>GNOME Foundation Web Site</a>.
+    </p>
+
+    <p>
+      If you have any questions, just let us know by emailing
+      <a href="http://mail.gnome.org/archives/foundation-list/";>foundation-list&#64;gnome&#46;org</a>
+      or <a
+      href="mailto:membership-committee gnome org">membership-committee gnome org</a>.
+    </p>
+
+    <h2>Candidates for the GNOME Foundation Board of Directors</h2>
+
+    <ol>
+        <p>
+            <li><strong>Alexandre Franke</strong><br />
+                Affiliation: <em>None</em><br />
+                Full statement at <a 
href="https://mail.gnome.org/archives/foundation-announce/2015-May/msg00010.html";>https://mail.gnome.org/archives/foundation-announce/2015-May/msg00010.html</a>
+                <blockquote>I have been involved in many areas of GNOME over the past decade,
+amongst which are advocacy, translations and GUADEC organization. It
+has given me a good overview of how the different areas and teams
+within the Foundation function, as well as many occasions to exercise
+my coordination, organisational and problem solving skills. I have
+enjoyed my time working on GNOME and would like to use what I have
+learnt to contribute on a higher level.
+
+Being on the board is not a piece of cake and our past directors have
+done a good job. I am now humbly presenting my candidacy, hoping that
+I'll be able to serve as well as others have done in the past.</blockquote>
+                <!- - Verified Member: 7873 - ->
+            </li>
+        </p>
+
+        <p>
+            <li><strong>Allan Day</strong><br />
+            Affiliation: <em>Red Hat</em><br />
+            Full statement at <a 
href="https://mail.gnome.org/archives/foundation-announce/2015-May/msg00011.html";>https://mail.gnome.org/archives/foundation-announce/2015-May/msg00011.html</a>
+                <blockquote>I have worked on the GNOME Project for around 6 years, first as a volunteer, and 
currently as a Red Hat employee. I've always been deeply appreciative of the work done by the Board of 
Directors; now seems like a good time for me to help out in this important area.
+
+As a member of the Board, I would work to ensure that the Foundation is both efficient and effective. I'm 
pretty good when it comes to organisational matters, and tend to get things done. One of my main interests 
would be to ensure that we successfully engage our Advisory Board members, as well as develop new 
partnerships wherever possible.
+
+Also, I think that I have good awareness of where GNOME's strengths and weaknesses are right now - which 
would be helpful if I'm elected.</blockquote>
+                <!- - Verified Member: 8057 - ->
+            </li>
+        </p>
+
+
+        <p>
+            <li><strong>Andrea Veri</strong><br />
+            Affiliation: <em>None</em><br />
+            Full statement at <a 
href="https://mail.gnome.org/archives/foundation-announce/2015-May/msg00009.html";>https://mail.gnome.org/archives/foundation-announce/2015-May/msg00009.html</a>
+                <blockquote>Foundation Members,
+
+this past year has been challenging for the Board of Directors - just 
+to remind the most demanding items: from the Groupon trademark infringement
+handling to the Outreach Program for Women outsourcing to the Software 
+Freedom Conservancy - and I'm extremely proud to have had a chance to 
+contribute to the success of the GNOME Foundation providing my 
+feedback on both the legal and technical fields when issues arised.
+ 
+I'm also glad to have served as the Secretary of the Board providing high 
+detailed meeting minutes, answering Foundation member's questions 
+privately and generally making sure the Foundation membership as a 
+whole was informed of what the Board was up to in a timely manner.
+
+That said, I'm happy to announce my candidacy to the Board of 
+Directors for a second term.</blockquote>
+                <!- - Verified Member: 7915 - ->
+            </li>
+        </p>
+
+        <p>
+            <li><strong>Carlos Soriano</strong><br />
+            Affiliation: <em>Red Hat</em><br />
+            Full statement at <a 
href="https://mail.gnome.org/archives/foundation-announce/2015-May/msg00016.html";>https://mail.gnome.org/archives/foundation-announce/2015-May/msg00016.html</a>
+                <blockquote>I would like to announce my candidacy for the Foundation Board of Directors.
+
+I have been working on Gnome since 3 years ago, starting as a volunteer on October of 2012 for gnome-shell 
and accomplishing successfully Gsoc on gnome-shell the years 2013 and 2014, joining Red Hat as maintainer of 
Nautilus after the end of the 2014 Gsoc.
+I have been interested in lower the barrier for newcomers to contribute to Gnome. In that matter I have 
reworked part of the GnomeLove wiki. Also I have been always trying to help newcomers on IRC and make the 
Gnome community feel a welcomed place for those people.
+
+As myself, I'm a enthusiastic person, I do what I do because I love it. I like teaching and helping people, 
and learn from them at the same time. I try to be patient, listen and understand what every person has to say.
+
+</blockquote>
+                <!- - Verified Member: 8214 - ->
+            </li>
+        </p>
+        
+        <p>
+            <li><strong>Christian Hergert</strong><br />
+            Affiliation: <em>None</em><br />
+            Full statement at <a 
href="https://mail.gnome.org/archives/foundation-announce/2015-May/msg00005.html";>https://mail.gnome.org/archives/foundation-announce/2015-May/msg00005.html</a>
+                <blockquote>Over the years, I have watched our Board of Directors knowing that
+someday I wanted to contribute on that level. This past year has been
+an incredible experience for me and I owe that to all of you. I want
+to continue by serving as a board member on your behalf.
+
+I've been quite satisfied with our Board of Directors over the years.
+Keeping momentum is not an easy task. I think I can help bring this to
+our Board and to our Community at large.
+
+Therefore, I am both humbled and excited to announce my candidacy for
+the Board of Directors.</blockquote>
+                <!- - Verified Member: 7899 - ->
+            </li>
+        </p>
+        
+        <p>
+            <li><strong>Cosimo Cecchi</strong><br />
+            Affiliation: Endless<em></em><br />
+            Full statement at <a 
href="https://mail.gnome.org/archives/foundation-announce/2015-May/msg00006.html";>https://mail.gnome.org/archives/foundation-announce/2015-May/msg00006.html</a>
+                <blockquote>I would like to announce my candidacy to serve on the Board of Directors this 
term.
+
+I've been a technical contributor to the project since 2007 and a Foundation member since 2008; despite my 
long history with the project, this the first time I'm running for such an election.
+I believe my work experience with different large users of GNOME (Red Hat first, and now Endless Mobile) can 
be an unique asset to the Board of Directors, and would help keeping our community a thriving environment for 
downstream projects and hardware products based on our technology stack.
+
+I am looking forward to my continued involvement with GNOME and Free Software and hope for your vote in 
supporting my candidacy!</blockquote>
+                <!- - Verified Member: 7613 - ->
+            </li>
+        </p>
+        
+        <p>
+            <li><strong>Ekaterina Gerasimova</strong><br />
+            Affiliation: <em>Collabora</em><br />
+            Full statement at <a 
href="https://mail.gnome.org/archives/foundation-announce/2015-May/msg00015.html";>https://mail.gnome.org/archives/foundation-announce/2015-May/msg00015.html</a>
+                <blockquote>I am announcing my candidacy for the board of directors. If elected,
+this will be my third term. I have been on the board since 2013, and
+contributing for a few years longer. I am currently the documentation
+team lead, a member of the Travel Committee, as well as the Foundation
+treasurer.
+
+I work for Collabora, although my work there is not currently directly
+related to my contributions in GNOME.
+
+I would be happy to answer any questions that you may have about what
+I would bring to the board.
+</blockquote>
+                <!- - Verified Member: 8102 - ->
+            </li>
+        </p>
+        
+        <p>
+            <li><strong>Jeff Fortin Tam</strong><br />
+            Affiliation: <em>None</em><br />
+            Full statement at <a 
href="https://mail.gnome.org/archives/foundation-announce/2015-May/msg00012.html";>https://mail.gnome.org/archives/foundation-announce/2015-May/msg00012.html</a>
+                <blockquote>I am offering my candidacy to serve on the Foundation Board for a second term.
+
+I have been involved in various areas of GNOME since 2004 or so, including testing, triaging, marketing, 
mentoring, coding, public speaking and advocacy, user interaction & UX design, etc. I am a business developer 
and manager. Besides running my branding & management consulting company, I have been serving you as 
president of the board since last year. A report on activities accomplished during that time can be found 
here: http://jeff.ecchi.ca/blog/2015/05/07/presidents-report-the-state-of-the-gnome-foundation/
+
+With the experience gained throughout the years, I hope to continue serving GNOME to the best of my 
abilities.
+
+You can learn more about me on my personal website above.</blockquote>
+                <!- - Verified Member: 8149 - ->
+            </li>
+        </p>
+        
+        <p>
+            <li><strong>Josh Triplett</strong><br />
+            Affiliation: <em>Intel</em><br />
+            Full statement at <a 
href="https://mail.gnome.org/archives/foundation-announce/2015-May/msg00008.html";>https://mail.gnome.org/archives/foundation-announce/2015-May/msg00008.html</a>
+                <blockquote>GNOME has a difficult challenge ahead, carefully balancing the goals of
+the GNOME user community, the GNOME developer community, the broader
+community of people using and building on GNOME technologies, and the
+ultimate goal of building the best possible Free Software desktop
+environment.  In the GNOME 3 timeframe especially, GNOME often helps
+drive improvements in the full stack, from the kernel on up, and vice
+versa.  This makes it possible for GNOME to tackle difficult technical
+goals that could not be solved with changes to GNOME alone.  However, it
+also requires increased collaboration among plumbing developers, as
+those components must serve the needs of many different users and
+environments.  In addition, GNOME's own components are increasingly used
+in environments other than GNOME, requiring the same improvements to
+collaboration.
+
+I look forward to helping GNOME better address this and other
+challenges.</blockquote>
+                <!- - Verified Member: 6478 - ->
+            </li>
+        </p>
+        
+        <p>
+            <li><strong>Magdalen Berns</strong><br />
+            Affiliation: <em>The Scottish National Party, University of Edinburgh</em><br />
+            Full statement at <a 
href="https://mail.gnome.org/archives/foundation-announce/2015-May/msg00007.html";>https://mail.gnome.org/archives/foundation-announce/2015-May/msg00007.html</a>
+                <blockquote>I currently maintain the java-atk-wrapper and I have been an accessibility 
contributor at GNOME since 2013. I would like to put my hat in for the directors election this year, because 
I believe that GNOME is in a great position to set the bar for GNU/Linux desktop accessibility and more 
generally, I feel I am able to contribute progressive ideas towards developing GNOME’s infrastructure with a 
view to helping it grow as an autonomous non-profit organisation.
+
+An atmosphere where the contributors are made to feel supported and valued, is one that is more able to 
constructively motivate productivity; so as an elected director, I would strive to best represent your views 
by being open, direct, approachable, communicative and accountable in seeking feedback on matters which may 
arise throughout the term.
+
+Please feel free to fire any questions you may have about my candidacy to the list and I will do my best to 
answer comprehensively.
+
+</blockquote>
+                <!- - Verified Member: 8318 - ->
+            </li>
+        </p>
+        
+        <p>
+            <li><strong>Ryan Lortie</strong><br />
+            Affiliation: <em>Canonical</em><br />
+            Full statement at <a 
href="https://mail.gnome.org/archives/foundation-list/2015-May/msg00019.html";>https://mail.gnome.org/archives/foundation-list/2015-May/msg00019.html</a>
+                <blockquote>I am announcing my candidacy for the board of directors.
+
+If elected, this would be my second time on the board.
+
+I have been a GNOME developer during many years, mostly on lower-level
+things.
+
+I am currently affiliated with Canonical where I am in the desktop team,
+mostly in context of working on the GNOME technologies that are also
+used in our products.
+
+I am happy to answer any questions that you may have about how I would
+represent you on the board of directors.</blockquote>
+                <!- - Verified Member: 8286 - ->
+            </li>
+        </p>
+        
+        <p>
+            <li><strong>Shaun McCance</strong><br />
+            Affiliation: <em>Red Hat</em><br />
+            Full statement at <a 
href="https://mail.gnome.org/archives/foundation-list/2015-May/msg00018.html";>https://mail.gnome.org/archives/foundation-list/2015-May/msg00018.html</a>
+                <blockquote>I'm announcing my candidacy for the board of directors. I'm a long-time
+GNOME developer and enthusiast, because I believe GNOME does important
+work in ensuring free software is usable for everybody. I spent ten
+years as the docs team lead. I've stepped down from that role, but I
+still maintain our docs tools and try to remain active.
+
+I work for Red Hat, though I do not work in the department that works on
+GNOME. I work on the Open Source and Standards team as the Community
+Documentation Liaison. Basically, my job is to build communities around
+documentation in various upstream open source projects.</blockquote>
+                <!- - Verified Member: 5069 - ->
+            </li>
+        </p>
+        
+        <p>
+            <li><strong>Tobias Mueller</strong><br />
+            Affiliation: <em>Huawei</em><br />
+            Full statement at <a 
href="https://mail.gnome.org/archives/foundation-announce/2015-May/msg00004.html";>https://mail.gnome.org/archives/foundation-announce/2015-May/msg00004.html</a>
+                <blockquote>I am throwing my hat in the ring for serving a fourth term on the
+Foundation's Board of Directors.
+
+I run for the Board because I have several years of experience now as a
+Director and I think it is a good asset for the Foundation.  Even after
+three years, I still enjoy my duties.  As someone who is in (computer)
+security, I strongly believe in Free Software and GNOME.  As such, I
+regularly talk about security, GNOME, or both at conferences and promote
+GNOME and Free Software wherever I can.  I think GNOME is in a very good
+position to provide users with a safe and secure computation environment
+and I think we should market it as such.</blockquote>
+                <!- - Verified Member: 7583 - ->
+            </li>
+        </p>
+
+    </ol>
+
+
+
+    <h2>Additional Elections-related Information</h2>
+
+    <p>
+      Note, that according to the
+      <a href="http://www.gnome.org/wp-content/uploads/2011/11/bylaws.pdf";>Bylaws</a> Article VIII Section 
2d the Board cannot have more than two members affiliated with one same company. If more than 2 people from 
one
+      company are elected, only the top 2 candidates will join the Board.
+      You will be able to vote for up to 7 candidates of your choice, with no
+      restrictions in terms of affiliation. 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:membership-committee gnome org">membership-committee gnome org</a>.
+    </p>
+
+  </body>
+</html>
diff --git a/foundation.gnome.org/vote/2016/electorate.txt b/foundation.gnome.org/vote/2016/electorate.txt
new file mode 100644
index 0000000..1f3138e
--- /dev/null
+++ b/foundation.gnome.org/vote/2016/electorate.txt
@@ -0,0 +1,273 @@
+List of Foundation members as of 21-05-2015
+
+Philip Langdale
+Arun Raghavan
+Philippe Normand
+Will Thompson
+Jose Angel
+Martin Robinson
+John Stowers
+Jared L
+Sahil Sareen
+Igor Gnatenko
+Jehan Pagès
+Jordi Mallach
+Charles Lindsay
+Shaun McCance
+Vladimír Beneš
+Ikey Doherty
+Sebastien Granjoux
+Florian Müllner
+Greg Kroah-Hartman
+Ignacio Casal
+Shivani Poddar
+Hubert Figuière
+ChangSeok Oh
+Emmanuele Bassi
+Petr Kovář
+Debarshi Ray
+Carlos Soriano
+Magdalen Berns
+Marcin Kolny
+Jonathan Matthew
+Thibault Saunier
+Pranav Kant
+Jim Nelson
+Aleksander Morgado
+Lennart Poettering
+Efstathios Iosifidis
+Christian Persch
+Mike Gorse
+Josh Triplett
+Olivier Crête
+Tim Lunn
+Alberto Ruiz
+Karen Sandler
+Juan Jose
+Alejandro Valdes
+Mario Wenzel
+Christian Hergert
+Misha Shnurapet
+Cheng-Chia Tseng
+Alexandre Franke
+James Liggett
+Oliver Propst
+Dave Neary
+Rob Bradford
+Felipe Erias
+Edward Hervey
+Marc-Andre Lureau
+Vincent Untz
+Tong Hui
+Miao Yu
+Sri Ramkrishna
+Sam Thursfield
+Pamela Chestek
+Kalev Lember
+Ines Chen
+Bootingman Wen,
+Tobias Mueller
+Antoine Jacoutot
+Max Huang
+Xabier Rodriguez
+Piotr Drąg
+Rūdolfs Mazurs
+Daniel Korostil
+Carlos Garnacho
+Michael Hill
+Tim-Philipp Müller
+Mattias Bengtsson
+Federico Mena
+Robert Ancell
+Ray Strode
+Cosimo Cecchi
+Nirbheek Chauhan
+Bastian Ilsø
+Antonius Riha
+David King
+Henrique P.
+Frederic Peters
+Julita Inca
+Jens Georg
+Stephan Sundermann
+Nilamdyuti Goswami
+Matthew Barnes
+Ryan Lortie
+Chao-Hsiung Liao
+Fabiana Pedreira
+Michael Catanzaro
+Sébastien Wilmet
+Nikhar Agrawal
+Juan José
+Hylke Bons
+Parin Porecha
+Rodrigo Moya
+Andre Klapper
+Sagar Ghuge
+Jim Hall
+Behdad Esfahbod
+David Herrmann
+Pascal Terjan
+Felix Riemann
+Stefano Facchini
+Ross Burton
+Sankarasivasubramanian Pasupathilingam
+Seong-ho Cho
+Jakub Steiner
+Marcos Chavarría
+Jan Schmidt
+Srinivasa Ragavan
+Allan Day
+Daiki Ueno
+Mirco M.
+Sergio Infante
+Martin Pitt
+Travis Reitter
+Guido Günther
+Evgeny Bobkin
+Olav Vitters
+Michael Meeks
+Andres Gomez
+Alexander Larsson
+Benjamin Otte
+Gil Forcada
+Robert Roth
+Frederic Muller
+Sergio Villar
+Christian Kirbach
+Aurimas Černius
+Peter Hutterer
+Morten Welinder
+Chenthill Palanisamy
+Tomeu Vizoso
+Bastien Nocera
+Matthew Garrett
+Jana Svarova
+Joaquim Manuel
+Michael Natterer
+Jonh Wendell
+Germán Poo-Caamaño
+Luciana Fujii
+Luis de
+Colin Walters
+Marta Maria
+Guillaume Jérôme
+Andrew Cowie
+Fabio Duran
+Jean-François Fortin
+Emmanuel Pacaud
+Sebastian Dröge
+Robert Bragg
+Marina Zhurakhinskaya
+Jim Campbell
+Ismael Olea
+Victor Toso
+Felipe Borges
+Lasse Schuirmann
+Baurzhan Muftakhidinov
+Daniel Espinosa
+Techlive Zheng
+Alejandro Piñeiro
+Damien Sandras
+Mathieu Duponchelle
+Frédéric Crozat
+Claude Paroz
+Jonny Lamb
+Jonathan Blandford
+Joshua Lock
+Ali Jawad
+Kjartan Maraas
+Žan Doberšek
+Tiffany Antopolski
+Bertrand Lorentz
+Izabel Cerqueira
+Jiri Eischmann
+Vivien Malerba
+Mario Sanchez
+Lars Uebernickel
+Aruna Sankaranarayanan
+Xan Lopez
+Christian Fredrik
+Bin Li
+Ahmad Haris
+Rui Matos
+Krzesimir Nowak
+Javier Hernández
+Andreas Nilsson
+Emilio Pozuelo
+Juan A.
+Johannes Schmid
+Yosef Or
+Kristian Rietveld
+Andika Triwidada
+Guillaume Desmottes
+Lapo Calamandrei
+Luis Menina
+Sebastien Lafargue
+Andrés Aragoneses
+Anish Patil
+Murray Cumming
+Zeeshan Ali
+Jonas Danielsson
+Leonardo Ferreira
+Olivier Sessink
+Arth Patel
+Pierre-Yves Luyten
+Antonio Fernandes
+Christophe Fergeau
+Ekaterina Gerasimova
+Iago Toral
+Dodji Seketeli
+Owen Taylor
+Simon Feltman
+Luca Ferretti
+Will LaShell
+Seif Lotfy
+Mathieu Bridon
+Arx Henrique
+Sammy Fung
+Gian Mario
+Sebastian Keller
+Adam Janos
+Maciej Marcin
+Benjamin Berg
+Marco Barisione
+Joanmarie Diggs
+Emanuele Aina
+Scott Reeves
+Andrea Veri
+Joone Hur
+Alberto Garcia
+Gustavo Noronha
+Daniel G.
+Francisco Diéguez
+Rosanna Yuen
+Flavia Weisghizzi
+Kay Sievers
+Fabiano Fidêncio
+Wouter Bolsterlee
+Shaswat Nimesh
+Nimit Shah
+Georges Basile
+Stefan Kost
+Richard Hughes
+Erick Pérez
+Javier Jardón
+Garrett Regier
+Philip Withnall
+Emily Gonyer
+Jose Aliste
+Meg Ford
+Shobha Tyagi
+Thomas Wood
+Paolo Borelli
+Daniel Mustieles
+Patrick Uiterwijk
+Baptiste Mille-Mathias
+Jiro Matsuzawa
+David Zeuthen
+Claudio Saavedra
+Giovanni Campagna
+Thomas Bechtold
+Matthias Clasen
+Phillip Wood
diff --git a/foundation.gnome.org/vote/2016/index.wml b/foundation.gnome.org/vote/2016/index.wml
new file mode 100644
index 0000000..1bb7315
--- /dev/null
+++ b/foundation.gnome.org/vote/2016/index.wml
@@ -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 2016 Elections</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+    <meta name="author" content="Andrea Veri" />
+  </head>
+
+  <body>
+
+    <div id="content">
+    <h1>GNOME Foundation 2016 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:membership-committee&#64;gnome&#46;org";>membership-committee&#64;gnome&#46;org</a>.
+    </p>
+
+    <p>
+      The elections results from the 2016 Board of Directors elections 
+      will be archived here for public access.
+    </p>
+
+    <h2>2016 Elections Materials:</h2>
+    <ul>
+<--
+        <li>
+            <a href="https://mail.gnome.org/archives/foundation-announce/2016-June/msg00003.html";>Election 
results announcement</a>
+        </li>
+        <li>
+            <a href="../../results.php?election_id=23">Detailed election results</a>
+        </li>
+        <li>
+            <a href="../../votes.php?election_id=23">List of all votes</a>
+        </li>
+        <li>
+            <a href="../../vote.php?election_id=23">Interface to vote</a>
+        </li>
+        <li>
+            <a href="candidates.html">List of candidates for Board of Directors</a>
+        </li>
+        <li>
+            <a href="electorate.txt">List of registered voters</a>
+        </li> 
+--> 
+        <li>
+            <a href="rules.html">Elections Rules and Timeline</a> (webcal <a
+            href="webcal://vote.gnome.org/2016/timeline.ics">timeline</a>)
+        </li>
+    
+        <li>
+            <a href="../overview.html">Overview of the Board of Directors role</a>
+        </li>
+    </ul>
+
+  </body>
+</html>
diff --git a/foundation.gnome.org/vote/2016/mkical.py b/foundation.gnome.org/vote/2016/mkical.py
new file mode 100755
index 0000000..5c103da
--- /dev/null
+++ b/foundation.gnome.org/vote/2016/mkical.py
@@ -0,0 +1,256 @@
+#!/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 = 2015
+CANDIDATES_OPENED_DATE    = (YEAR, 5,  6)
+CANDIDATES_CLOSED_DATE    = (YEAR, 5, 18)
+CANDIDATES_ANNOUNCED_DATE = (YEAR, 5, 21)
+VOTING_OPENED_DATE        = (YEAR, 5, 25)
+VOTING_CLOSED_DATE        = (YEAR, 6,  8)
+PRELIMINARY_RESULTS_DATE  = (YEAR, 6, 10)
+CHALLENGE_CLOSED_DATE     = (YEAR, 6, 17)
+
+
+
+### 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("""    
+    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, logging.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
diff --git a/foundation.gnome.org/vote/2016/rules.wml b/foundation.gnome.org/vote/2016/rules.wml
new file mode 100644
index 0000000..e2ce058
--- /dev/null
+++ b/foundation.gnome.org/vote/2016/rules.wml
@@ -0,0 +1,137 @@
+<?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 2016 Elections Rules</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+  </head>
+
+  <body>
+
+    <div id="content">
+    <h1>Rules &amp; Timeline for the GNOME Foundation 2016 Elections</h1>
+
+    <h2>Elections Rules</h2> 
+
+    <ol>
+      <li>
+        See the <a 
href="https://git.gnome.org/browse/foundation-web/tree/foundation.gnome.org/about/bylaws.rst";>GNOME 
Foundation Bylaws</a> (<a href="https://www.gnome.org/foundation/governance/attachment/bylaws-2/";>PDF</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 -->2016-05-21
+        
+        are eligible to vote in the elections. Members without voting rights
+        such as <a 
href="https://mail.gnome.org/archives/foundation-announce/2012-May/msg00015.html";>Emeritus members</a>
+        are not eligible to vote.
+        Anyone who has made a 
+        contribution to GNOME can apply for membership by completing the
+        <a href="https://foundation.gnome.org/membership/apply/";>application</a>.
+      </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="https://mail.gnome.org/archives/foundation-announce/";>foundation-announce&#64;gnome&#46;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 -->2016-05-18, 23:59 UTC.
+        
+      </li>
+      <li>
+        All discussion related to the elections should be held on
+        <a href="https://mail.gnome.org/archives/foundation-list/";>foundation-list&#64;gnome&#46;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 -->2016-05-25,
+       
+       and votes must be returned by
+       <!-- VOTING_CLOSED_DATE -->2016-06-08, 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.
+        The committee serves at the pleasure of the GNOME Board of Directors
+        as per Section 9.1 of the bylaws.
+      </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="https://wiki.gnome.org/Foundation/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:membership-committee gnome org">membership-committee gnome org</a>
+        prior to
+        <!-- PRELIMINARY_RESULTS_DATE -->2016-06-17.
+        
+        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:membership-committee gnome org">membership-committee 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 -->2016-05-05: Announcements and list of candidates opens.
+      </li>
+      <li>
+        <!-- CANDIDATES_CLOSED_DATE -->2016-05-18: Last day to announce candidacies, submit summary 
statements.
+      </li>
+      <li>
+        <!-- CANDIDATES_ANNOUNCED_DATE -->2016-05-21: Final list of candidates.
+      </li>
+      <li>
+        <!-- VOTING_OPENED_DATE -->2016-05-25: Instructions mailed to eligible voters, voting begins.
+      </li>
+      <li>
+        <!-- VOTING_CLOSED_DATE -->2016-06-08: Voting closes.
+      </li>
+      <li>
+        <!-- PRELIMINARY_RESULTS_DATE -->2016-06-10: Preliminary results are announced.
+      </li>
+      <li>
+        <!-- CHALLENGE_CLOSED_DATE -->2016-06-17: Last day to challenge preliminary results.
+      </li>
+    </ul>
+
+  </body>
+</html>
diff --git a/foundation.gnome.org/vote/2016/timeline.ics b/foundation.gnome.org/vote/2016/timeline.ics
new file mode 100644
index 0000000..e042fae
--- /dev/null
+++ b/foundation.gnome.org/vote/2016/timeline.ics
@@ -0,0 +1,77 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+METHOD:PUBLISH
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VEVENT
+UID:20160520T144402Z-28088 spaceshuttle
+DTSTART;VALUE=DATE:20160506
+DTEND;VALUE=DATE:20160507
+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 2016-05-18 (23:59 UTC).\n     If you are not yet a GNOME Foundation 
+ member and would like to stand for election\, you must first apply for mem
+ bership and be accepted to be eligible to run. (You may\, however\, announ
+ ce 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.)\n    
+SUMMARY:Announcements and list of candidates opens
+END:VEVENT
+BEGIN:VEVENT
+UID:20160520T144402Z-21944 spaceshuttle
+DTSTART;VALUE=DATE:20160518
+DTEND;VALUE=DATE:20160519
+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 2016-05-18 (23:59 UTC).\n     If you are not yet a GNOME Foundation 
+ member and would like to stand for election\, you must first apply for mem
+ bership and be accepted to be eligible to run. (You may\, however\, announ
+ ce 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.)\n    
+SUMMARY:List of candidates closed
+END:VEVENT
+BEGIN:VEVENT
+UID:20160520T144402Z-19286 spaceshuttle
+DTSTART;VALUE=DATE:20160521
+DTEND;VALUE=DATE:20160522
+DESCRIPTION:You may now start to send your questions to the candidates
+SUMMARY:List of candidates announced
+END:VEVENT
+BEGIN:VEVENT
+UID:20160520T144402Z-94067 spaceshuttle
+DTSTART;VALUE=DATE:20160525
+DTEND;VALUE=DATE:20160526
+DESCRIPTION:Please read your email and follow these instructions and submi
+ t your vote by 2016-06-08
+SUMMARY:Instructions to vote are sent
+END:VEVENT
+BEGIN:VEVENT
+UID:20160520T144402Z-95716 spaceshuttle
+DTSTART;VALUE=DATE:20160608
+DTEND;VALUE=DATE:20160609
+DESCRIPTION:Preliminary results are announced on 2016-06-10
+SUMMARY:Votes must be returned
+END:VEVENT
+BEGIN:VEVENT
+UID:20160520T144402Z-5191 spaceshuttle
+DTSTART;VALUE=DATE:20160610
+DTEND;VALUE=DATE:20160611
+DESCRIPTION:The preliminary results can be challenged until 2016-06-17
+SUMMARY:Preliminary results are announced
+END:VEVENT
+BEGIN:VEVENT
+UID:20160520T144402Z-74895 spaceshuttle
+DTSTART;VALUE=DATE:20160617
+DTEND;VALUE=DATE:20160618
+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
+
diff --git a/foundation.gnome.org/vote/2016/voting-instructions.txt 
b/foundation.gnome.org/vote/2016/voting-instructions.txt
new file mode 100644
index 0000000..3ff22af
--- /dev/null
+++ b/foundation.gnome.org/vote/2016/voting-instructions.txt
@@ -0,0 +1,32 @@
+Dear %(firstname)s %(lastname)s,
+
+The election of the GNOME Foundation Board will soon be open.
+
+Voting will run from 2016-05-25 (Monday) until 2016-06-08, 23:59 UTC.
+
+To vote, please go to http://vote.gnome.org/vote.php?id=18
+and follow the instructions there.
+
+A list of candidates and their reasons for running is available at
+https://vote.gnome.org/2016/candidates.html
+
+When instructed to do so, enter the following details:
+
+   E-mail: %(email)s
+   Vote token: %(token_or_last_renewed_on)s
+
+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,
+  Fabiana Simões
+  on behalf of the GNOME Membership and Elections Commitee
diff --git a/foundation.gnome.org/vote/Makefile.am b/foundation.gnome.org/vote/Makefile.am
index 7a1335e..84ac84f 100644
--- a/foundation.gnome.org/vote/Makefile.am
+++ b/foundation.gnome.org/vote/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = include 2004-10 2005-10 2000 2001 2002 2003 2004 2005 2006 2007 2007-10 2009 2010 2011 2012 2013 
2014 2015
+SUBDIRS = include 2004-10 2005-10 2000 2001 2002 2003 2004 2005 2006 2007 2007-10 2009 2010 2011 2012 2013 
2014 2015 2016
 
 urlpath = /vote
  



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]