Jump to: navigation, search

Difference between revisions of "Governance/Foundation/TechnicalCommittee"

(Adjusted to match the current proposed Foundation ByLaws)
(Reflect the options and the discussion happening on the ML)
Line 6: Line 6:
 
=== Mission ===
 
=== Mission ===
  
The Technical Committee ("TC") is tasked with providing the technical leadership for the OpenStack project as a whole. It enforces OpenStack core projects ideals (Openness, Transparency, Commonality, Integration, Quality...), decides on issues affecting multiple projects, and generally forms an ultimate appeals board for technical decisions.
+
The Technical Committee ("TC") is tasked with providing the technical leadership for the OpenStack project as a whole (including core projects, library projects, gating projects and supporting projects). It enforces OpenStack core projects ideals (Openness, Transparency, Commonality, Integration, Quality...), decides on issues affecting multiple projects, and generally forms an ultimate appeals board for technical decisions within OpenStack projects.
  
 
The TC has control over which projects are considered OpenStack projects, including those in core incubation status. It recommends projects for final OpenStack Core addition, combination, split or deletion to the Board of Directors, which has sole authority to approve them.
 
The TC has control over which projects are considered OpenStack projects, including those in core incubation status. It recommends projects for final OpenStack Core addition, combination, split or deletion to the Board of Directors, which has sole authority to approve them.
  
 
=== Members ===
 
=== Members ===
 
+
Two options:
The TC is composed of 9 elected members. You can cumulate other roles (Project technical lead, Foundation board member...) with a TC seat. Note that Project technical leads no longer get appointed seats to the TC: they should run for election.
+
{| border="1" cellpadding="2" cellspacing="0"
 +
|}
 +
or
 +
{| border="1" cellpadding="2" cellspacing="0"
 +
|}
  
 
=== Chair ===
 
=== Chair ===
  
After each election, the TC proposes one of its members to act as the TC chair. In case of multiple candidates, it may use a single-winner election to decide the result. The Board of Directors has the authority to approve the TC chair and shall approve the proposition, unless otherwise justified by its bylaws. The TC chair is responsible for making sure meetings are held according to the rules described below, and for communicating the decisions taken during those meetings to the Board of Directors and the OpenStack community at large.  
+
After each election, the TC proposes one of its members to act as the TC chair. In case of multiple candidates, it may use a single-winner election method to decide the result (see below). The Board of Directors has the authority to approve the TC chair and shall approve the proposition, unless otherwise justified by its bylaws. The TC chair is responsible for making sure meetings are held according to the rules described below, and for communicating the decisions taken during those meetings to the Board of Directors and the OpenStack community at large. It may be revoked under the conditions described in the Foundation bylaws.
  
 
=== Meeting ===
 
=== Meeting ===
  
TC meetings happen publicly, weekly on IRC. The meeting time should be decided among TC members after each election. If there isn't consensus on a meeting time, the option of rotating the time weekly should be explored. The TC maintains an open agenda on the wiki. A TC meeting is called if anything is posted to that wiki at least one day before the meeting time. For a meeting to be actually held, at least two thirds of the members need to be present (6 people). Non-members, in particular unelected PTLs or release manager, are strongly encouraged to participate to the meeting and voice their opinion on subjects that affect them, though only elected TC members can ultimately cast a vote.
+
TC meetings happen publicly, weekly on IRC. The meeting time should be decided among TC members after each election. If there isn't consensus on a meeting time, the option of rotating the time weekly should be explored. The TC maintains an open agenda on the wiki. A TC meeting is automatically called if anything is posted to that wiki by one of its members at least one day before the meeting time. For a meeting to be actually held, at least half of the members need to be present. Non-members affected by a given discussion are strongly encouraged to participate to the meeting and voice their opinion, though only elected TC members can ultimately cast a vote.
  
 
=== Motions ===
 
=== Motions ===
  
Before being put to a vote, motions presented before the TC should be discussed publicly on the mailing-list[1] for a minimum of 5 days to give a chance to the wider community to express their opinion. Members can vote positively, negatively, or abstain. Decisions need more positive votes than negative votes, and a minimum of 3 positive votes.
+
Before being put to a vote, motions presented before the TC should be discussed publicly on the development mailing-list for a minimum of 5 business days to give a chance to the wider community to express their opinion. TC members can vote positively, negatively, or abstain. Decisions need more positive votes than negative votes, and a minimum of positive votes of at least one fourth of the total number of TC members.
  
 
=== Proxying ===
 
=== Proxying ===
Line 31: Line 35:
  
 
=== Election ===
 
=== Election ===
 +
Depending on the option chosen above:
 +
{| border="1" cellpadding="2" cellspacing="0"
 +
|}
 +
or
 +
{| border="1" cellpadding="2" cellspacing="0"
 +
|}
 +
 +
=== Voters ===
 +
 +
The Technical committee represents the active technical contributors to OpenStack projects. The TC members are therefore elected by the Active Technical Contributors ("ATC"), which are a subset of the Foundation Individual Members. Individual Members who committed a change to any of the official OpenStack projects (over which the TC has final authority) in the past 18 months before an election are automatically considered ATC. Specific technical contributors who did not have a change recently accepted in one of the OpenStack projects but nevertheless feel their contribution to the OpenStack project is technical (bug triagers, technical documentation writers...) can exceptionally apply for ATC by sending an email to the TC chair. Final approval on the exception is decided by the TC itself, and lasts one year.
 +
 +
=== Candidates ===
 +
 +
Any ATC can propose his candidacy for an available TC seat.
  
The TC is renewed every 6 months using staggered elections: 5 seats are renewed every 6 months. In order to ensure fairness and representativity, the election is run on [http://www.cs.cornell.edu/w8/~andru/civs/ CIVS], using a Condorcet [http://en.wikipedia.org/wiki/Schulze_method Schulze algorithm] with the [http://www.cs.cornell.edu/w8/~andru/civs/proportional.html proportional representation] option enabled. People ranking 1st to 4th get elected for a one-year term. The 5th person gets elected for a 6-month term.
+
=== Initial committee ===
  
=== Voters and Candidates ===
+
Depending on the option chosen above:
 +
{| border="1" cellpadding="2" cellspacing="0"
 +
|}
 +
or
 +
{| border="1" cellpadding="2" cellspacing="0"
 +
|}
  
The voters are the Technical members[2] of the Foundation. Any Technical member can propose his candidacy for a TC seat.
+
=== Election systems ===
  
=== Initial election ===
+
For single-winner elections, the Condorcet Schulze algorithm shall be used.
  
To initially populate the TC, all 9 seats are up for election. People ranking 1st to 4th get elected for one year. People ranking 5th to 9th get elected for 6 months[3].
+
For multiple-winner elections, a system ensuring representativity of smaller groups and resistant to vote management shall be used. Options considered include [http://www.cs.cornell.edu/w8/~andru/civs/ CIVS]'s Schulze with [http://www.cs.cornell.edu/w8/~andru/civs/proportional.html proportional representation] enabled, traditional STV or Schulze STV.
  
=== Notes ===
+
=== Amendment ===
  
# Could be the openstack ML or a specific TC ML. The idea is to avoid surprising the community with a decision, and avoid the usual kabbale critics.
+
Amendment to those Technical Committee rules shall only be proposed by a motion accepted by at least two-thirds of the TC members. The Foundation Board of Directors has final authority to approve them.
# Two options here: make anyone who committed to one of the official OpenStack projects (core projects + docs + CI + ...) a Technical member of the Foundation, or set up a separate Technical Membership Committee to define rules and handle corner cases. In both cases we could require some currency in the contribution (for example you lose membership if you didn't commit anything over a year).
 
# We may want to re-align elections with release cycles. Example: If TC is created in July 2012, we may want to align elections with the next design summits, so the first term only be 2 months or 8 months.
 

Revision as of 12:47, 27 June 2012

Technical committee

Status: RFC

Mission

The Technical Committee ("TC") is tasked with providing the technical leadership for the OpenStack project as a whole (including core projects, library projects, gating projects and supporting projects). It enforces OpenStack core projects ideals (Openness, Transparency, Commonality, Integration, Quality...), decides on issues affecting multiple projects, and generally forms an ultimate appeals board for technical decisions within OpenStack projects.

The TC has control over which projects are considered OpenStack projects, including those in core incubation status. It recommends projects for final OpenStack Core addition, combination, split or deletion to the Board of Directors, which has sole authority to approve them.

Members

Two options:

or

Chair

After each election, the TC proposes one of its members to act as the TC chair. In case of multiple candidates, it may use a single-winner election method to decide the result (see below). The Board of Directors has the authority to approve the TC chair and shall approve the proposition, unless otherwise justified by its bylaws. The TC chair is responsible for making sure meetings are held according to the rules described below, and for communicating the decisions taken during those meetings to the Board of Directors and the OpenStack community at large. It may be revoked under the conditions described in the Foundation bylaws.

Meeting

TC meetings happen publicly, weekly on IRC. The meeting time should be decided among TC members after each election. If there isn't consensus on a meeting time, the option of rotating the time weekly should be explored. The TC maintains an open agenda on the wiki. A TC meeting is automatically called if anything is posted to that wiki by one of its members at least one day before the meeting time. For a meeting to be actually held, at least half of the members need to be present. Non-members affected by a given discussion are strongly encouraged to participate to the meeting and voice their opinion, though only elected TC members can ultimately cast a vote.

Motions

Before being put to a vote, motions presented before the TC should be discussed publicly on the development mailing-list for a minimum of 5 business days to give a chance to the wider community to express their opinion. TC members can vote positively, negatively, or abstain. Decisions need more positive votes than negative votes, and a minimum of positive votes of at least one fourth of the total number of TC members.

Proxying

When a TC member is unable to make a meeting, he is encouraged to name a proxy that will represent his opinion and vote on his behalf during the meeting. Only members really present at the meeting (directly or proxied) can vote.

Election

Depending on the option chosen above:

or

Voters

The Technical committee represents the active technical contributors to OpenStack projects. The TC members are therefore elected by the Active Technical Contributors ("ATC"), which are a subset of the Foundation Individual Members. Individual Members who committed a change to any of the official OpenStack projects (over which the TC has final authority) in the past 18 months before an election are automatically considered ATC. Specific technical contributors who did not have a change recently accepted in one of the OpenStack projects but nevertheless feel their contribution to the OpenStack project is technical (bug triagers, technical documentation writers...) can exceptionally apply for ATC by sending an email to the TC chair. Final approval on the exception is decided by the TC itself, and lasts one year.

Candidates

Any ATC can propose his candidacy for an available TC seat.

Initial committee

Depending on the option chosen above:

or

Election systems

For single-winner elections, the Condorcet Schulze algorithm shall be used.

For multiple-winner elections, a system ensuring representativity of smaller groups and resistant to vote management shall be used. Options considered include CIVS's Schulze with proportional representation enabled, traditional STV or Schulze STV.

Amendment

Amendment to those Technical Committee rules shall only be proposed by a motion accepted by at least two-thirds of the TC members. The Foundation Board of Directors has final authority to approve them.