Jump to: navigation, search

Difference between revisions of "Governance/TCElectionsFall2012"

(more phrasing tweaks)
(Results)
 
(14 intermediate revisions by 6 users not shown)
Line 1: Line 1:
__NOTOC__
+
 
 
=== Election officials ===
 
=== Election officials ===
  
 
Election officials cannot run for the election they are an official for.
 
Election officials cannot run for the election they are an official for.
Proposed election officials are:
+
Election officials for these elections are:
  
 
* Duncan McGreggor
 
* Duncan McGreggor
Line 39: Line 39:
  
 
=== Timeline ===
 
=== Timeline ===
* Sep 13 - 19: Open candidacy to TC directly-elected seats
+
* Sep 14 - 19: Open candidacy to TC directly-elected seats
 
* Sep 21 - 27: TC direct seats election
 
* Sep 21 - 27: TC direct seats election
  
Line 55: Line 55:
  
 
Note: Members of the PPB that were elected to a one-year term last Spring ([http://www.cs.cornell.edu/w8/~andru/cgi-perl/civs/results.pl?id=E_149094a7291d1baf Jay Pipes and Thierry Carrez]), and PTLs that just got elected in the previous election are automatically granted a 6-month term seat on the TC, and therefore cannot run for this election.
 
Note: Members of the PPB that were elected to a one-year term last Spring ([http://www.cs.cornell.edu/w8/~andru/cgi-perl/civs/results.pl?id=E_149094a7291d1baf Jay Pipes and Thierry Carrez]), and PTLs that just got elected in the previous election are automatically granted a 6-month term seat on the TC, and therefore cannot run for this election.
 +
 +
==== Confirmed Candidate List ====
 +
 +
* [https://lists.launchpad.net/openstack/msg16820.html Chris Behrens]
 +
* [https://lists.launchpad.net/openstack/msg16739.html Russell Bryant]
 +
* [https://lists.launchpad.net/openstack/msg16862.html Sean Dague]
 +
* [https://lists.launchpad.net/openstack/msg16747.html Anne Gentle]
 +
* [https://lists.launchpad.net/openstack/msg16875.html Soren Hansen]
 +
* [https://lists.launchpad.net/openstack/msg16867.html Joshua Harlow]
 +
* [https://lists.launchpad.net/openstack/msg16850.html Matt Joyce]
 +
* [https://lists.launchpad.net/openstack/msg16864.html Justin Shepherd]
 +
* [https://lists.launchpad.net/openstack/msg16826.html Mikal Still]
 +
* [https://lists.launchpad.net/openstack/msg16858.html Monty Taylor]
 +
* [https://lists.launchpad.net/openstack/msg16865.html Eric Windisch]
  
 
= Voting process =
 
= Voting process =
Line 60: Line 74:
 
As for all previous PTL/PPB elections, we will use the Condorcet method, under the Schulze (Beatpath) algorithm. The [http://www.cs.cornell.edu/w8/~andru/civs/ CIVS] online voting platform will be used. Elections should be left open for a minimum of 5 business days.
 
As for all previous PTL/PPB elections, we will use the Condorcet method, under the Schulze (Beatpath) algorithm. The [http://www.cs.cornell.edu/w8/~andru/civs/ CIVS] online voting platform will be used. Elections should be left open for a minimum of 5 business days.
  
=== Tie breaking ===
+
Condorcet may result in ties, which would be broken following the procedure outlined [[Governance/TieBreaking|here]].
 
 
Condorcet may result in ties, which should be broken fairly and in a reproducible manner. We will use the hash of a string describing the tie results as a seed in a random generator to determine the tie winners, this way anyone may verify the fairness of the tie break. Read on for more details ;-)
 
 
 
==== Desired Features ====
 
 
 
The features we need in a process that addresses a tie-breaking scenario are the following:
 
* has to be fair
 
* has to support a remote process
 
* results need to be verifiable (repeatable)
 
* results need to also be random
 
* process needs to severely limit (or remove altogether) the possibility of "gaming" the system
 
* process needs to support multi-way ties
 
 
 
==== A Tool ====
 
 
 
As such, we wrote a quick little python tool that supports part of the this list; the other part of the list is addressed via the process that makes use of the tool. The tool is [https://github.com/oubiwann/coin-toss available on github] and you can take a look at it with the following:
 
 
 
<pre><nowiki>
 
  $ git clone git@github.com:oubiwann/coin-toss.git
 
  $ cd coin-toss
 
</nowiki></pre>
 
 
 
 
 
This tool takes advantage of the Python standard library's <code><nowiki>random</nowiki></code> module. By using a seed, we can get the same series of random selections every time, thus satisfying our requirement for verifiability and repeatability (as well as randomness!).
 
 
 
Note that the tool standardizes on Python 3. Anyone verifying a tie-breaking result should use Python 3.
 
 
 
==== The Process ====
 
 
 
The process described in detail below attempts to leave no ambiguity in the minds of community members as to the steps election officials will take when determining who wins in the event of a tie. In order to be as explicit as possible about the process, we'll illustrate with an example. In our example election for three available seats, the following Condorcet results came in:
 
* Alice: 1st place
 
* Bob: 2nd place
 
* Carol: tied 3rd with Dave (lost to Alice by 40-47; lost to Bob by 38-45; beat Dave 41-40; lost to Eve 40-41)
 
* Dave: tied 3rd with Carol (lost to Alice 29-54; lost to Bob by 26-48; lost to Carol; 40-41; beat Eve 44-42)
 
* Eve: 4th place
 
 
 
We need to break the tie between Carol and Dave. We would like for our seed to be unique for time date and for the organization (in the event of an amazing coincidence where there was another tie between the same candidates running for a different election; we'd like to have a different hash/seed for ours!) . As such, we will be adding the following data to the seed:
 
* the date that the election opened
 
* the openstack.org domain to generate a UUID namespace
 
 
 
We know this information ahead of time, but we have to wait until the elections finish before we can generate our seed, since we also need:
 
* the scores of each tied candidate with all the other candidates (e.g., the data that is in the parentheses above for Carol and Dave)
 
 
 
So here's how we will put this together:
 
 
 
<pre><nowiki>
 
  $ ./bin/get_seed \
 
    --namespace=openstack.org \
 
    --data=2012-08-21 \
 
    --data=Carol.Smith:40-47:38-45:41-40:40-41 \
 
    --data=Dave.Doe:29-54:26-48:40-41:44-42
 
</nowiki></pre>
 
 
 
 
 
Important things to note:
 
* the date the election was opened is the first data added for the hash
 
* the scores of the tied candidates are provided next, in ascending alphabetical order by first name
 
* the scores are prepended with Firstname.Lastname of the candidate, colon-delimited from the scores (no spaces)
 
* the individual scores vs. another candidate are separated by a dash with the first score being that of the tied candidate (e.g., Carol Smith lost to Alice, 40 to 47 = 40-47)
 
* the individual scores are colon-delimited
 
 
 
Coin-toss supports any number of tied candidates. In the event of 4 tied candidates, we'd have two more <code><nowiki>--data=Firstname.Lastname:<scores></nowiki></code> arguments. We'd also need to update the <code><nowiki>toss</nowiki></code> command to include the two additional tied candidates.
 
 
 
Our call to <code><nowiki>get_seed</nowiki></code> gives us the following hash:
 
 
 
<pre><nowiki>
 
  e9ca327a-7deb-5919-a207-5d519c2d7837
 
</nowiki></pre>
 
 
 
 
 
With the seed generated, we can then finally "toss a coin" to see which of the tied candidates will be awarded the seat:
 
 
 
<pre><nowiki>
 
  $ ./bin/toss e9ca327a-7deb-5919-a207-5d519c2d7837 Carol.Smith,Dave.Doe
 
</nowiki></pre>
 
 
 
 
 
Important items of notice:
 
* the tied candidates are listed here in ascending alphabetical order by first name
 
* they are comma-delimited
 
* there are no spaces
 
  
And our winner is:
+
= Results =
  
<pre><nowiki>
+
[http://www.openstack.org/blog/2012/09/openstack-governance-elections-autumn-2012-results/ Results of the PTL elections]
  ['Carol.Smith']
+
[http://www.cs.cornell.edu/w8/~andru/cgi-perl/civs/results.pl?id=E_019fda1f0dd037a2 Results of the TC election]
</nowiki></pre>
 

Latest revision as of 19:54, 10 October 2015

Election officials

Election officials cannot run for the election they are an official for. Election officials for these elections are:

  • Duncan McGreggor
  • Stefano Maffulli
  • Thierry Carrez

PTL Elections

Timeline

  • Aug 30 - Sep 5: Open candidacy to PTL positions
  • Sep 7 - 13: PTL elections

Elected positions

All seats are elected for 6 months.

  • Nova PTL (one position)
  • Swift PTL (one position)
  • Glance PTL (one position)
  • Horizon PTL (one position)
  • Keystone PTL (one position)
  • Quantum PTL (one position)
  • Cinder PTL (one position)
  • openstack-common PTL (one position)

Electorate

The electorate for a given project PTL election are the Foundation individual members that are also committers for said project over the Essex-Folsom timeframe, up to 23:59 PST on August 29, 2012.

Candidates

Any member of an election electorate can propose his candidacy for the same election. No nomination is required. They do so by sending an email to the openstack@lists.launchpad.net mailing-list, which the subject: "PROJECT PTL candidacy" (for example for Glance: "Glance PTL candidacy"). The email can include a description of the candidate platform. The candidacy is then confirmed by one of the election officials, after verification of the electorate status of the candidate.

Technical committee direct members Election

Timeline

  • Sep 14 - 19: Open candidacy to TC directly-elected seats
  • Sep 21 - 27: TC direct seats election

Elected positions

This is a partial renewal of the elected seats for the Technical committee of the OpenStack Foundation. We are called to select 3 directly-elected positions. All winners will be granted a one-year term on the TC.

Electorate

The electorate for the TC direct seats election are the Foundation individual members that are also committers for an official OpenStack project (as defined here), over the Essex-Folsom timeframe, up to 23:59 PST on August 29, 2012.

Candidates

Any member of the TC direct seats election electorate can propose his candidacy for this election. No nomination is required. They do so by sending an email to the openstack@lists.launchpad.net mailing-list, which the subject: "TC candidacy". The email can include a description of the candidate platform. The candidacy is then confirmed by one of the election officials, after verification of the electorate status of the candidate.

Note: Members of the PPB that were elected to a one-year term last Spring (Jay Pipes and Thierry Carrez), and PTLs that just got elected in the previous election are automatically granted a 6-month term seat on the TC, and therefore cannot run for this election.

Confirmed Candidate List

Voting process

As for all previous PTL/PPB elections, we will use the Condorcet method, under the Schulze (Beatpath) algorithm. The CIVS online voting platform will be used. Elections should be left open for a minimum of 5 business days.

Condorcet may result in ties, which would be broken following the procedure outlined here.

Results

Results of the PTL elections Results of the TC election