Differences between revisions 2 and 3
Revision 2 as of 2005-03-22 05:44:03
Size: 6067
Editor: anonymous
Comment: missing edit-log entry for this revision
Revision 3 as of 2009-09-20 23:50:28
Size: 6067
Editor: localhost
Comment: converted to 1.6 markup
No differences found!

PMC Voting Procedures

!THIS DOCUMENT IS A WORK IN PROGRESS AND NOT YET AGREED! !THIS PROPOSAL IS PROBABLY DEAD!

This document details how the Jakarta PMC has agreed to handle voting.


People Involved in the Voting Process

The Proposer

The proposer is the one who comes up with the discussion that needs to be addressed. Any member of the Jakarta community may start the discussion. The proposer must follow the procedures listed under the heading "Prior to the Vote".

The Vote Administrator

The vote administrator is the person who tallies the votes and reports the results. The person who actually puts a proposal up for vote is usually the vote administrator, although this task can be taken on by someone else.

The Voter

A voter is someone who expresses support, opposition or abstention for the subject being voted on. A voter must be an Jakarta PMC member. Input is appreciated from committers and all other members of the community, but only votes from PMC members are counted.

The Chair

The Jakarta chair is the person appointed by the Apache Software Foundation board. The chair for the vote is the person who is chair at the time the vote is called.


The Vote

Before any vote can take place, the subject must be discussed. All such discussions take place on the Jakarta developer or PMC mailing list, and have the text "[PROPOSAL]" in the subject line. That practice alerts members to the fact that you eventually intend to call a vote on the subject.

When the proposal is ready to be adopted by the community, the Proposer will call for a vote on the Jakarta general or PMC mailing list. The call for vote must have the text "[PMC:VOTE]" in the subject line. That practice alerts the members to the fact that the prior proposal is now ready to vote on, and discussion should stop for the proposal.

How to Vote

The voter responds to the call for vote with an expression of support, opposition, or abstention. The exact way to express the voter's position is listed below:

{{{ * +1 a vote supporting the subject

  • +0 a vote abstaining from the subject (but showing some support).
  • -0 a vote abstaining from the subject (but showing disapproval).
  • -1 a vote opposing the subject }}}

Counting Votes

The vote administrator will count only the last vote from each voter. That means a voter may change their vote at any time during the duration of the vote. A voter must be a PMC member at the time the vote is called. Both +0 and -0 votes are treated as 0 for the purposes of counting.

Types of Votes

There are three classes of votes: a Qualified Majority Vote, a Concensus Vote and a Normal Majority Vote.

Qualified Majority Vote

Any vote that affects this document or the text "Jakarta PMC Bylaws" is a Qualified Majority Vote. For this type of vote to pass, it requires support from two-thirds (2/3) of the voters (at least 2 +1's for each -1).

For a Qualified Majority Vote to be considered binding it must have quorum, and be held for the proper amount of time. The quorum is defined as the minimum of sixteen (16) or one-half (1/2) of PMC members.

If three (3) Qualified Majority Votes in a row have resulted in less than the quorum of PMC members participating then PMC can, using a Normal Majority Vote, change the required voting participation or participation Duration.

Concensus Vote

All votes concerning changes to code or other artfacts in the CVS require concensus. A -1 vote cast by any voter is considered a veto causing the Consensus Vote to fail. All -1 votes must be accompanied by a valid reason. The -1 vote may declared invalid by the chair if the reason is invalid, but this is an option of last resort.

If you disagree with the veto, you should lobby the person who cast the veto. The vetoer is obligated to work with the community to resolve the issue and lift the veto. The vetoer must make their intention to veto known at the earliest opportunity to enable progress to be made.

For a Consensus Vote to be considered binding it must have quorum, and be held for the proper amount of time. The quorum is defined as at least three (3) +1 votes or one (1) -1 vote.

To avoid votes on every CVS change, commits are subject to Lazy Consensus. After a commit is made, any PMC member may veto the change and require that it is reverted by the original committer. This situation should be avoided by discussion and voting on potentially controversial topics before committing the change.

Normal Majority Vote

All votes that do not fall under the heading of Qualified Majority or Consensus are handled as a Normal Majority Vote. If more than half (1/2) of the voters support it (more +1 than -1), then the vote has passed.

For a Normal Majority Vote to be considered binding it must have quorum, and be held for the proper amount of time. The quorum is defined as at least three (3) +1 votes.

Duration

All votes will be open for an initial period of one week. The Vote Administrator may close the vote at any time after that period if quorum has been achieved. If quorum could not be reached within the initial one-week period, the vote will remain open for one additional week. If the vote still has not achieved quorum, then it is considered failed. The proposer can choose to bring it up later when quorum can be reached.


Results

When the vote is closed, the results of the vote are summarized by the Vote Administrator. The vote administrator will send an email to the Jakarta developers or PMC list with the text "[PMC:VOTE-RESULT]" in the subject that has the summary. The summary will include the count of all +1, +0, -0, and -1 responses, and the final verdict of whether the subject passed.

Disagreements

Disagreements concerning voting may be directed to the Chair. The Chair's opinion shall be final and binding upon the PMC.

JakartaPMCVotingProcedures (last edited 2009-09-20 23:50:28 by localhost)