You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ph...@apache.org on 2011/02/08 19:35:16 UTC

svn commit: r1068511 - in /zookeeper/site/trunk: content/bylaws.textile templates/sidenav.textile

Author: phunt
Date: Tue Feb  8 18:35:16 2011
New Revision: 1068511

URL: http://svn.apache.org/viewvc?rev=1068511&view=rev
Log:
Added version 1 of the bylaws

Added:
    zookeeper/site/trunk/content/bylaws.textile
Modified:
    zookeeper/site/trunk/templates/sidenav.textile

Added: zookeeper/site/trunk/content/bylaws.textile
URL: http://svn.apache.org/viewvc/zookeeper/site/trunk/content/bylaws.textile?rev=1068511&view=auto
==============================================================================
--- zookeeper/site/trunk/content/bylaws.textile (added)
+++ zookeeper/site/trunk/content/bylaws.textile Tue Feb  8 18:35:16 2011
@@ -0,0 +1,245 @@
+Title:     Project Bylaws
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+h1. Apache ZooKeeper Project Bylaws
+
+This is version 1 of the bylaws.
+
+h1. Introduction 
+
+This document defines the bylaws under which the Apache ZooKeeper 
+project operates. It defines the roles and responsibilities of the 
+project, who may vote, how voting works, how conflicts are resolved, etc. 
+
+ZooKeeper is a project of the "Apache Software Foundation":http://www.apache.org/foundation/ The foundation 
+holds the copyright on Apache code including the code in the ZooKeeper 
+codebase. The "foundation FAQ":http://www.apache.org/foundation/faq.html explains the operation and background of 
+the foundation. 
+
+ZooKeeper is typical of Apache projects in that it operates under a set 
+of principles, known collectively as the Apache Way. If you are new to 
+Apache development, please refer to the "Incubator project":http://incubator.apache.org/ for more 
+information on how Apache projects operate. 
+
+h1. Roles and Responsibilities 
+
+Apache projects define a set of roles with associated rights and 
+responsibilities. These roles govern what tasks an individual may 
+perform within the project. The roles are defined in the following sections. 
+
+h2. Users 
+
+The most important participants in the project are people who use our 
+software. The majority of our contributors start out as users and guide 
+their development efforts from the user's perspective. 
+
+Users contribute to the Apache projects by providing feedback to 
+contributors in the form of bug reports and feature suggestions. As 
+well, users participate in the Apache community by helping other users 
+on mailing lists and user support forums. 
+
+h2. Contributors 
+
+All of the volunteers who are contributing time, code, documentation, or 
+resources to the ZooKeeper Project. A contributor that makes sustained, 
+welcome contributions to the project may be invited to become a 
+committer, though the exact timing of such invitations depends on many 
+factors. 
+
+h2. Committers 
+
+The project's committers are responsible for the project's technical 
+management. Committers have access to a specified set of subproject's 
+subversion repositories. Committers on subprojects may cast binding 
+votes on any technical discussion regarding that subproject. 
+
+Committer access is by invitation only and must be approved by lazy 
+consensus of the active PMC members. A Committer is considered emeritus 
+by his or her own declaration or by not reviewing patches or commiting 
+patches to the project for over six months. An emeritus committer may 
+request reinstatement of commit access from the PMC which must be 
+approved by lazy consensus of the active PMC members. 
+
+Commit access can be revoked by a unanimous vote of all the active PMC 
+members (except the committer in question if he or she is also a PMC 
+member). 
+
+All Apache committers are required to have a signed "Contributor License Agreement (CLA)":http://www.apache.org/licenses/icla.txt
+ on file with the Apache Software Foundation. There is a 
+"Committer FAQ":http://www.apache.org/dev/committers.html which provides more details on the requirements for 
+committers. 
+
+A committer who makes a sustained contribution to the project may be 
+invited to become a member of the PMC. The form of contribution is not 
+limited to code. It can also include code review, helping out users on 
+the mailing lists, documentation, etc. 
+
+h2. Project Management Committee 
+
+The PMC is responsible to the board and the ASF for the management and 
+oversight of the Apache ZooKeeper codebase. The responsibilities of the 
+PMC include: 
+
+* Deciding what is distributed as products of the Apache ZooKeeper 
+project. In particular all releases must be approved by the PMC. 
+* Maintaining the project's shared resources, including the codebase 
+repository, mailing lists, websites. 
+* Speaking on behalf of the project. 
+* Resolving license disputes regarding products of the project. 
+* Nominating new PMC members and committers. 
+* Maintaining these bylaws and other guidelines of the project. 
+* Membership of the PMC is by invitation only and must be approved by a 
+lazy consensus of active PMC members. A PMC member is considered 
+emeritus by his or her own declaration or by not contributing in any 
+form to the project for over six months. An emeritus member may request 
+reinstatement to the PMC, which must be approved by a lazy consensus of 
+active PMC members. 
+
+Membership of the PMC can be revoked by an unanimous vote of all the 
+active PMC members other than the member in question. 
+
+The chair of the PMC is appointed by the ASF board. The chair is an 
+office holder of the Apache Software Foundation (Vice President, Apache 
+ZooKeeper) and has primary responsibility to the board for the 
+management of the projects within the scope of the ZooKeeper PMC. The 
+chair reports to the board quarterly on developments within the 
+ZooKeeper project. 
+
+When the current chair of the PMC resigns, the PMC votes to recommend a 
+new chair using lazy consensus, but the decision must be ratified by the 
+Apache board. 
+
+h1. Decision Making 
+
+Within the ZooKeeper project, different types of decisions require 
+different forms of approval. For example, the previous section describes 
+several decisions which require 'lazy consensus' approval. This section 
+defines how voting is performed, the types of approvals, and which types 
+of decision require which type of approval. 
+
+h2. Voting 
+
+Decisions regarding the project are made by votes on the primary project 
+development mailing list dev@zookeeper.apache.org. Where necessary, PMC 
+voting may take place on the private ZooKeeper PMC mailing list 
+private@zookeeper.apache.org. Votes are clearly indicated by subject 
+line starting with [VOTE]. Votes may contain multiple items for approval 
+and these should be clearly separated. Voting is carried out by replying 
+to the vote mail. Voting may take four flavors. 
+
+|Vote |Meaning|
+|+1 |'Yes,' 'Agree,' or 'the action should be performed.' In general, 
+this vote also indicates a willingness on the behalf of the voter in 
+'making it happen'.| 
+|+0 |This vote indicates a willingness for the action under 
+consideration to go ahead. The voter, however will not be able to help.| 
+|-0 |This vote indicates that the voter does not, in general, agree 
+with the proposed action but is not concerned enough to prevent the 
+action going ahead.| 
+|-1 |This is a negative vote. On issues where consensus is required, 
+this vote counts as a veto. All vetoes must contain an explanation of 
+why the veto is appropriate. Vetoes with no explanation are void. It may 
+also be appropriate for a -1 vote to include an alternative course of 
+action.| 
+
+All participants in the ZooKeeper project are encouraged to show their 
+agreement with or against a particular action by voting. For technical 
+decisions, only the votes of active committers are binding. Non binding 
+votes are still useful for those with binding votes to understand the 
+perception of an action in the wider ZooKeeper community. For PMC 
+decisions, only the votes of PMC members are binding. 
+
+Voting can also be applied to changes already made to the ZooKeeper 
+codebase. These typically take the form of a veto (-1) in reply to the 
+commit message sent when the commit is made. Note that this should be a 
+rare occurrence. All efforts should be made to discuss issues when they 
+are still patches before the code is committed. 
+
+h2. Approvals 
+
+There are the types of approvals that can be sought. Different actions 
+require different types of approvals. 
+
+|Approval Type |Definition|
+|Consensus |For this to pass, all voters with binding votes must 
+vote and there can be no binding vetoes (-1). Consensus votes are rarely 
+required due to the impracticality of getting all eligible voters to 
+cast a vote.| 
+|Lazy Consensus |Lazy consensus requires 3 binding +1 votes and no 
+binding vetoes.| 
+|Lazy Majority |A lazy majority vote requires 3 binding +1 votes and 
+more binding +1 votes that -1 votes.| 
+|Lazy Approval |An action with lazy approval is implicitly allowed 
+unless a -1 vote is received, at which time, depending on the type of 
+action, either lazy majority or lazy consensus approval must be obtained.| 
+|2/3 Majority |Some actions require a 2/3 majority of active committers 
+or PMC members to pass. Such actions typically affect the foundation of 
+the project (e.g. adopting a new codebase to replace an existing 
+product). The higher threshold is designed to ensure such changes are 
+strongly supported. To pass this vote requires at least 2/3 of binding 
+vote holders to vote +1.| 
+
+h2. Vetoes 
+
+A valid, binding veto cannot be overruled. If a veto is cast, it must
+be accompanied by a valid reason explaining the reasons for the
+veto. The validity of a veto, if challenged, can be confirmed by
+anyone who has a binding vote. This does not necessarily signify
+agreement with the veto - merely that the veto is valid.
+
+If you disagree with a valid veto, you must lobby the person casting the 
+veto to withdraw his or her veto. If a veto is not withdrawn, the action 
+that has been vetoed must be reversed in a timely manner. 
+
+h2. Actions 
+
+This section describes the various actions which are undertaken within 
+the project, the corresponding approval required for that action and 
+those who have binding votes over the action. It also specifies the 
+minimum length of time that a vote must remain open, measured in 
+business days. In general votes should not be called at times when it is 
+known that interested members of the project will be unavailable. 
+
+|Action |Description |Approval |Binding Votes |Minimum Length (days)|
+|Code Change |A change made to a codebase of the project and committed 
+by a committer. This includes source code, documentation, website 
+content, etc. |Lazy approval (not counting the vote of the 
+contributor), moving to lazy majority if a -1 is received |Active 
+committers |1| 
+|Release Plan |Defines the timetable and actions for a release. The 
+plan also nominates a Release Manager. |Lazy majority |Active 
+committers |3| 
+|Product Release |When a release of one of the project's products is 
+ready, a vote is required to accept the release as an official release 
+of the project. |Lazy Majority |Active PMC members |3| 
+|Adoption of New Codebase |When the codebase for an existing, released 
+product is to be replaced with an alternative codebase. If such a vote 
+fails to gain approval, the existing code base will continue. This also 
+covers the creation of new sub-projects within the project. |2/3 
+majority |Active PMC members| 6| 
+|New Committer or reinstatement |When a new committer is proposed for 
+the project. |Lazy consensus |Active PMC members |3| 
+|New PMC Member or reinstatement |When a committer is proposed for the 
+PMC. |Lazy consensus |Active PMC members |3| 
+|Committer Removal |When removal of commit privileges is sought. Note: 
+Such actions will also be referred to the ASF board by the PMC chair. |Consensus |Active PMC members (excluding the committer in question 
+if a member of the PMC). |6| 
+|PMC Member Removal |When removal of a PMC member is sought. Note: Such 
+actions will also be referred to the ASF board by the PMC chair. |Consensus |Active PMC members (excluding the member in question). |6| 
+|Modifying Bylaws |Modifying this document. |2/3 majority |Active 
+PMC members |6| 
\ No newline at end of file

Modified: zookeeper/site/trunk/templates/sidenav.textile
URL: http://svn.apache.org/viewvc/zookeeper/site/trunk/templates/sidenav.textile?rev=1068511&r1=1068510&r2=1068511&view=diff
==============================================================================
--- zookeeper/site/trunk/templates/sidenav.textile (original)
+++ zookeeper/site/trunk/templates/sidenav.textile Tue Feb  8 18:35:16 2011
@@ -4,6 +4,7 @@ h3. Project
 * "Releases":./releases.html
 * "Wiki":https://cwiki.apache.org/confluence/display/ZOOKEEPER/Index
 * "Credits":./credits.html
+* "Bylaws":./bylaws.html
 * "License":http://www.apache.org/licenses/
 * "Privacy Policy":./privacy.html
 * "Sponsorship":http://www.apache.org/foundation/sponsorship.html