<?xml version="1.0"?>
<!--
  Copyright 2002-2005 The Apache Software Foundation or its licensors,
  as applicable.

  Licensed 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.
-->
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "http://forrest.apache.org/dtd/document-v11.dtd">
<document>
  <header>
    <title>Decision Making</title>
    
  </header>
  <body>
    <section>
      <title>Decision Making</title>
      <p>
      All <link href="roles.html">Developers</link> are encouraged to 
      participate in decisions, but the decision itself is made by those 
      that have <link href="roles.html">Committer</link> status in the Project. 
      In other words, the Project is a "Minimum Threshold Meritocracy".
    </p>
      <p>
      Any Developer may vote on any issue or action item. However, the only 
      binding votes are those cast by a Committer. If the vote is about a 
      change to the source code or documentation and the primary author is a 
      Developer and not a Commiter, the primary author of what is being 
      changed may also cast a binding vote on that issue.
    </p>
      <p>
      The act of voting carries certain obligations. Voting members are not 
      only stating their opinion, they are also agreeing to help do the 
      work.
    </p>
      <p>
      Each vote can be made in one of three flavors:
    </p>
      <ul>
        <li>
          <em>+1</em> - "Yes," "Agree," or "the action should be performed." 
        On some issues this is only binding if the voter has tested the action 
        on their own system(s).</li>
        <li>
          <em>+/-0</em> - "Abstain," "no opinion". An abstention may have 
        detrimental effects if too many people abstain.</li>
        <li>
          <em>-1</em> - "No." On issues where consensus is required, this 
      vote counts as a <em>veto</em>. All vetos must contain an explanation 
      of why the veto is appropriate. Vetos with no explanation are void. No 
      veto can be overruled. If you disagree with the veto, you should lobby 
      the person who cast the veto. Voters intending to veto an action item 
      should make their opinions known to the group immediately so that the 
      problem can be remedied as early as possible.</li>
      </ul>
      <p>
      An action requiring consensus approval must receive at least <em>3 
      binding +1</em> votes and no binding <em>vetos</em>. An action 
      requiring majority approval must receive at least <em>3 binding +1 
      votes</em> and <em>more +1</em> votes than -1 votes. All other action 
      items are considered to have lazy approval until somebody votes <em>-
      1</em>, after which point they are decided by either consensus or 
      majority vote, depending on the type of action item.
    </p>
    </section>
    <section>
      <title>Action Items</title>
      <p>
      All decisions revolve around "Action Items." Action Items consist of 
      the following:
    </p>
      <ul>
        <li>Long Term Plans</li>
        <li>Short Term Plans</li>
        <li>Release Plan</li>
        <li>Release Testing</li>
        <li>Showstoppers</li>
        <li>Product Changes</li>
      </ul>
      <section>
        <title>Long Term Plans</title>
        <p>
        Long term plans are simply announcements that group members are 
        working on particular issues related to the Project. These are not 
        voted on, but Developers who do not agree with a particular plan, or 
        think that an alternative plan would be better, are obligated to 
        inform the group of their feelings.
      </p>
      </section>
      <section>
        <title>Short Term Plans</title>
        <p>
        Short term plans are announcements that a developer is working on a 
        particular set of documentation or code files with the implication 
        that other developers should avoid them or try to coordinate their 
        changes.
      </p>
      </section>
      <section>
        <title>Release Plan</title>
        <p>
        A release plan is used to keep all Developers aware of when a 
        release is desired, who will be the release manager, when the 
        repository will be frozen to create a release, and other assorted 
        information to keep Developers from tripping over each other. Lazy 
        majority decides each issue in a release plan.

      </p>
      </section>
      <section>
        <title>Release Testing</title>
        <p>
        After a new release is built, it must be tested before being 
        released to the public. Majority approval is required before the 
        release can be made.
      </p>
      </section>
      <section>
        <title>Showstoppers</title>
        <p>
        Showstoppers are issues that require a fix be in place before the 
        next public release. They are listed in the status file in order to 
        focus special attention on these problems. An issue becomes a 
        showstopper when it is listed as such in the status file and remains 
        so by lazy consensus.
      </p>
      </section>
      <section>
        <title>Product Changes</title>
        <p>
        Changes to the products of the Project, including code and 
        documentation, will appear as action items in the status file. All 
        product changes to the currently active repository are subject to 
        lazy consensus. 
      </p>
      </section>
    </section>
  </body>
</document>
