Why don't we see if it becomes a problem and then add it to our
process rather than codifying in the bylaws. That work?

Patrick

On Wed, Jan 12, 2011 at 3:36 PM, Benjamin Reed <br...@yahoo-inc.com> wrote:
> i've added it to the cwiki:
> https://cwiki.apache.org/confluence/display/ZOOKEEPER/ZooKeeperBylawsProposal
>
> i don't mean the pre-annouce time to stretch things out. it's really to make
> sure the status updates go out. as we get more committers we need to make
> sure that there is a heads up that something is coming so that if someone
> will be on vacation or something like that we can take it into account.
>
> the idea is that we would say: hey next month we will be having a vote that
> way interested parties can watch out for it rather than going on vacation,
> coming back, and finding out that a blocker was overridden and a flawed
> release has gone out.
>
> ben
>
> On 01/12/2011 09:21 AM, Patrick Hunt wrote:
>>
>> Hi Ben, thanks for getting this rolling. Your committer suggestion
>> sounds fine to me. WRT to pre announcing, we are already giving
>> multiple days for a vote, also in the lead up to a release it should
>> be pretty obvious that one is imminent (we usually send out status
>> updates and such, plus the activity is pretty clear on the lists,
>> jira, svn, etc...). Adding more "pre announce time" will stretch out
>> the timeframes (and process) even longer, I'd rather we keep it as is
>> unless ppl think this is a big issue.
>>
>> Would you mind creating a proposal page on the cwiki similar to what Pig
>> did?
>> http://markmail.org/message/lvchbhoojpbwuxyx
>>
>> Regards,
>>
>> Patrick
>>
>> On Tue, Jan 4, 2011 at 9:17 AM, Benjamin Reed<br...@yahoo-inc.com>  wrote:
>>>
>>> I really like the Pig bylaws. I would suggest using it as a starting
>>> point
>>> for ZooKeeper. One thing I would like to modify is the Committer section.
>>> Pig's bylaws state that the committer becomes emeritus if they haven't
>>> contributed in any form for 6 months. I would tighten that up and say if
>>> they haven't been actively involved in reviewing or committing. (They are
>>> after all committers.) I have made this change to the text.
>>>
>>> The other change that I would like, and did not add, is for some of the
>>> votes to have a requirement to pre-announce. Specifically for PMC,
>>> committer, and release it would be nice to give a week or two notice that
>>> a
>>> vote will be coming up, just so that interested parties don't miss it.
>>>
>>> ben
>>>
>>> here is the text:
>>>
>>> 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 The foundation
>>> holds the copyright on Apache code including the code in the ZooKeeper
>>> codebase. The foundation FAQ 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 for more information
>>> on
>>> how Apache projects operate.
>>>
>>> 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.
>>>
>>> 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.
>>>
>>> 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.
>>>
>>> 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) on file with the Apache Software Foundation. There is a
>>> Committer FAQ 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.
>>>
>>> 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.
>>>
>>> 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.
>>>
>>> Voting
>>> Decisions regarding the project are made by votes on the primary project
>>> development mailing list u...@zookeeper.apache.org. Where necessary, PMC
>>> voting may take place on the private ZooKeeper PMC mailing list
>>> priv...@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.
>>>
>>> Approvals
>>> These 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.
>>>
>>> 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.
>>>
>>> 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
>>> 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
>>>
>>>
>
>

Reply via email to