<div class="row">

<div class="col-lg-12">

<div class="page-header">

<h1 id="indicators">Apache CloudStack: Project Bylaws</h1>

</div>

</div>

</div>

<h1 id="introduction">1. Introduction</h1>

<p>1.1. This document defines the bylaws under which the Apache CloudStack project
operates. It defines the roles and responsibilities of the project, who may
vote, how voting works, how conflicts are resolved and specifies the rules for
specific project actions.</p>

<p>1.2. CloudStack is a project of the Apache Software Foundation. The foundation
holds the trademark on the name "CloudStack" and copyright on Apache code
including the code in the CloudStack codebase. The foundation FAQ explains the
operation and background of the foundation.</p>

<p>1.3. CloudStack operates under a set of principles known collectively as the
"Apache Way". Those principles are: Transparency, consensus, non-affiliation,
respect for fellow developers, and meritocracy, in no specific order.</p>

<h1 id="roles-and-responsibilities">2. Roles and Responsibilities</h1>

<p>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:</p>

<p>2.1. Users</p>

<p>The most important participants in the project are people who use our software.
Users can contribute to the Apache projects by providing feedback to developers
in the form of bug reports and feature suggestions. As well, users can
participate in the Apache community by helping other users on mailing lists and
user support forums. Users who participate in the project through any mechanism
are considered to be Contributors.</p>

<p>2.2. Contributors</p>

<p>Contributors are all of the volunteers who are contributing time, code,
documentation, or resources to the CloudStack Project. Contributions are not
just code, but can be any combination of documentation, testing, user support,
code, code reviews, bug reporting, community organizing, project marketing, or
numerous other activities that help promote and improve the Apache CloudStack
project and community.</p>

<p>A Contributor that makes sustained, welcome contributions to the project may be
invited to become a Committer by the PMC. The invitation will be at the
discretion of a supporting PMC member.</p>

<p>2.3. Committers</p>

<p>The project's Committers are responsible for the project's technical
management. Committers have access to all project source control repositories.
Committers may cast binding votes on any technical discussion regarding the
project (or any sub-project).</p>

<p>2.3.1. Committer access is by invitation only and must be approved by a lazy
consensus of the active PMC members.</p>

<p>2.3.2. All Apache Committers are required to have a signed Individual
Contributor License Agreement (ICLA) on file with the Apache Software
Foundation. There is a Committer FAQ which provides more details on the
requirements for Committers at Apache.</p>

<p>2.3.3. A Committer who makes a sustained contribution to the project may be
invited by the PMC to become a member of the PMC, after approval of the PMC.</p>

<p>2.4. Project Management Committee</p>

<p>The Project Management Committee (PMC) for Apache CloudStack is responsible to
the board and the ASF for the management and oversight of the Apache CloudStack
codebase.</p>

<p>2.4.1. The responsibilities of the PMC include:</p>

<p>2.4.1.1. Fostering, supporting and growing the project's community.</p>

<p>2.4.1.2. Deciding what is distributed as products of the Apache CloudStack
project. In particular all releases must be approved by the PMC.</p>

<p>2.4.1.3. Maintaining the project's shared resources, including the codebase
repository, mailing lists, websites.</p>

<p>2.4.1.4. Speaking on behalf of the project.</p>

<p>2.4.1.5. Resolving license disputes regarding products of the project.</p>

<p>2.4.1.6. Nominating new PMC members and committers.</p>

<p>2.4.1.7. Maintaining these bylaws and other guidelines of the project.</p>

<p>2.4.1.8. Managing and protecting the project's trademarks and brand.</p>

<p>2.4.2. Membership of the PMC is by invitation only and must be approved by a
lazy consensus of active PMC members.</p>

<p>2.4.3. A PMC member is considered "emeritus" by their own declaration. An
emeritus member may request reinstatement to the PMC. Such reinstatement is
subject to lazy consensus of the active PMC members.</p>

<p>2.4.4. "Active PMC members" are all non-emeritus PMC members.</p>

<p>2.4.4. 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
CloudStack) and has primary responsibility to the board for the management of
the projects within the scope of the CloudStack PMC. The chair reports to the
board quarterly on developments within the CloudStack project. The chair must
be an active PMC member.</p>

<p>2.4.5. If the current chair of the PMC resigns, or the term of the current
chair expires, the PMC will attempt to reach consensus on a new chair through
discussion, confirming that consensus via a vote to recommend a new chair using
a lazy 2/3 majority voting method. In the case that consensus is not achieved,
the PMC will vote for a chair using Single Transferable Vote (STV) voting. Due
to the fact that the discussions are about specific individuals, this vote
would be held on the cloudstack-private mailing list. The decision must be
ratified by the Apache board.</p>

<p>2.4.6. The role of PMC chair will have a one year term.  The intention of this
term is to allow for a rotation of the role amongst the PMC members.  This
intention does not prohibit the PMC from selecting the same chair to serve
consecutive terms.</p>

<h1 id="decision-making">3. Decision Making</h1>

<p>This section defines how voting is performed, the types of approvals, and which
types of decision require which type of approval.</p>

<p>3.1. Voting</p>

<p>3.1.1. Decisions regarding the project are made by votes on the primary project
development mailing list (dev@cloudstack.apache.org). Where necessary, PMC
voting may take place on the private CloudStack PMC mailing list. 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.</p>

<p>3.1.2. Voting may take four flavors:</p>

<p>3.1.2.1. +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"</p>

<p>3.1.2.2. +0 This vote indicates a willingness for the action under
consideration to go ahead. The voter, however will not be able to help.</p>

<p>3.1.2.3. -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.</p>

<p>3.1.2.4. -1 This is a negative vote. On issues where consensus is required,
this vote counts as a veto if binding. 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.</p>

<p>3.1.3. All participants in the CloudStack 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 CloudStack community. For PMC decisions, only the votes
of PMC members are binding.</p>

<p>3.1.4. Voting can also be applied to changes made to the CloudStack codebase.
These typically take the form of a veto (-1) in reply to the commit message
sent when the commit is made.</p>

<p>3.1.5. Non-binding -1 votes are not considered to be vetos for any decision.</p>

<p>3.2. Approvals</p>

<p>There are three types of approvals that can be sought. Section 3.4 describes
actions and types of approvals needed for each action.</p>

<p>3.2.1. Lazy Consensus - Lazy consensus requires 3 binding +1 votes and no
binding -1 votes.</p>

<p>3.2.2. Lazy Majority - A lazy majority vote requires 3 binding +1 votes and
more binding +1 votes than binding -1 votes.</p>

<p>3.2.3. Lazy 2/3 Majority - Lazy 2/3 majority votes requires at least 3 binding
votes and twice as many binding +1 votes as binding -1 votes.</p>

<p>3.3. Vetoes</p>

<p>3.3.1. Vetoes are only possible in a lazy consensus vote.</p>

<p>3.3.2. 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.</p>

<p>3.3.3. If you disagree with a valid veto, you must lobby the person casting the
veto to withdraw their veto. If a veto is not withdrawn, any action that has
been vetoed must be reversed in a timely manner.</p>

<p>3.4. Actions</p>

<p>This section describes the various actions which are undertaken within the
project, the roles that have the right to start a vote on the action, the
corresponding approval required for that action and those who have binding
votes over the action.</p>

<p>3.4.1. Technical Decisions</p>

<p>A technical decision is any decision that involves changes to the source code
that we distribute in our official releases.</p>

<p>Technical decisions should normally be made by the entire community using
discussion-lead consensus gathering, and not through formal voting.</p>

<p>Technical decisions must be made on the project development mailing list.</p>

<p>During the consensus gathering process, technical decisions may be vetoed by
any Committer with a valid reason.</p>

<p>If a formal vote is started for a technical decision, the vote will be held as
a lazy consensus of active committers.</p>

<p>Any user, contributor, committer, or PMC member can initiate a technical
decision making process.</p>

<p>3.4.2. Non-Technical Decisions</p>

<p>A non-technical decisions is any decision that does not involve changes to the
source code that we distribute in our official releases (excluding questions of 
trademark usage).</p>

<p>Non-technical decisions should normally be made by the entire community using
discussion-lead consensus-building, and not through formal voting.</p>

<p>Non-technical decisions can be made on whichever project mailing list is most
appropriate.</p>

<p>Non-technical decisions cannot be vetoed, but if there is strong opposition
a formal vote can be used to resolve the dispute.</p>

<p>If a formal vote is started for a non-technical decision, the vote will be held
as a lazy 2/3 majority of active committers.</p>

<p>Any user, contributor, committer, or PMC member can initiate a non-technical
decision making process.</p>

<p>3.4.3. Release Plan</p>

<p>Defines the timetable and work items for a release. The plan also nominates a
Release Manager.</p>

<p>A lazy majority of active committers is required for approval.</p>

<p>Any active committer or PMC member may call a vote. The vote must occur on the
project development mailing list.</p>

<p>3.4.4. Product Release</p>

<p>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.</p>

<p>Lazy Majority of active PMC members is required for approval.</p>

<p>Any active committer or PMC member may call a vote. The vote must occur on the
project development mailing list.</p>

<p>3.4.5. Adoption of New Codebase</p>

<p>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.</p>

<p>This also covers the creation of new sub-projects within the project.</p>

<p>Lazy 2/3 majority of active PMC members.</p>

<p>Any active committer or PMC member may call a vote. The vote must occur on the
project development mailing list.</p>

<p>3.4.6. New Committer</p>

<p>When a new committer is proposed for the project.</p>

<p>Lazy consensus of active PMC members.</p>

<p>Any active PMC member may call a vote. The vote must occur on the PMC private
mailing list.</p>

<p>3.4.7. New PMC Member</p>

<p>When a committer is proposed for the PMC.</p>

<p>Lazy consensus of active PMC members.</p>

<p>Any active PMC member may call a vote. The vote must occur on the PMC private
mailing list.</p>

<p>3.4.8. Committer Removal</p>

<p>When removal of commit privileges is sought. Note: Such actions will also be
referred to the ASF board by the PMC chair</p>

<p>Lazy 2/3 majority of active PMC members (excluding the committer in question if
a member of the PMC).</p>

<p>Any active PMC member may call a vote. The vote must occur on the PMC private
mailing list.</p>

<p>3.4.9. PMC Member Removal</p>

<p>When removal of a PMC member is sought. Note: Such actions will also be
referred to the ASF board by the PMC chair.</p>

<p>Lazy 2/3 majority of active PMC members (excluding the member in question)</p>

<p>Any active PMC member may call a vote. The vote must occur on the PMC private
mailing list.</p>

<p>3.4.10. Modifying Bylaws</p>

<p>Modifying this document.</p>

<p>Lazy majority of active PMC members</p>

<p>Any active committer or PMC member may call a vote. The vote must occur on the
project development mailing list.</p>

<p>3.4.11. Trademark Usage Approvals</p>

<p>Our project maintains a formal Trademark Usage Guidelines document, which
serves as a additive reference to the Apache Software Foundation's trademark
policies. The Apache CloudStack PMC has had approval authority delegated to it
for requests from third parties to use our trademarks. It is the PMC's
responsibility to provide these approvals, and to ensure that any requests
are in compliance with both the project and the foundation's trademark
usage policies.</p>

<p>The CloudStack Trademark Guidelines specify how a requestor is expected to
request permission for usage of the trademarks.</p>

<p>The process of approval will typically be as follows:</p>

<ul>
  <li>A request is made that includes the required information for the PMC to make 
a decision.</li>
  <li>A PMC member reviews the request and provides an initial acknowledgement 
response to the requester.</li>
  <li>If no PMC member raises a concern after 72 hours, the requester can assume 
approval.</li>
</ul>

<p>In situations where a concern is raised, the PMC member is expected inform the
requster that there is some discussion that needs to be had prior to approval
from the PMC.  This notice serves to end the assumed approval after 72 hours.</p>

<p>After raising a concern, the PMC member in question is required to forward the
concern to private@cloudstack.apache.org, explaining the issue that they have
with the request.  The use of private@cloudstack.apache.org for discussing the
request is to allow the PMC to deliberate without confusing the requester, and
to ensure that a formal approval or denial is clear at the end of the
discusion.</p>

<p>The PMC will then attempt to achieve consensus on how the request for approval
will be answered.  The requester may be asked for more information to help the
PMC make a decision, may be asked to make a change to the proposal in order to
gain approval, or may have their request be denied.</p>

<p>If consensus is not achieved within the PMC by discussion, then a formal VOTE
can be called as a Lazy 2/3 majority of voting PMC members.</p>

<p>Votes related to trademark usage approvals may be performed on the
private@cloudstack.apache.org mailing list.</p>

<p>3.5. Voting Timeframes</p>

<p>Formal votes are open for a period of at least 72 hours to allow all active
voters time to consider the vote.</p>
