<!doctype html>
<html>  
  <head>
    <title>Apache CloudStack: Open Source Cloud Computing</title>

    <meta name="description" content="CloudStack is open source cloud computing software for creating, managing, and deploying infrastructure cloud services">

    <meta itemprop="name" content="Apache Cloudstack">
    <meta itemprop="description" content="CloudStack is open source cloud computing software for creating, managing, and deploying infrastructure cloud services">
    <meta itemprop="image" content="https://cloudstack.apache.org/images/monkey-144.png">

    <meta property="og:title" content="Apache Cloudstack">
    <meta property="og:description" content="CloudStack is open source cloud computing software for creating, managing, and deploying infrastructure cloud services">
    <meta property="og:site_name" content="Apache Cloudstack"/>
    <meta property="og:image" content="https://cloudstack.apache.org/images/monkey-144.png">

    <meta name="twitter:card" content="summary">
    <meta name="twitter:title" content="Apache Cloudstack">
    <meta name="twitter:description" content="CloudStack is open source cloud computing software for creating, managing, and deploying infrastructure cloud services">
    <meta name="twitter:image:src" content="https://cloudstack.apache.org/images/monkey-144.png">

    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=1">

    <link href="stylesheets/bootstrap.css" rel="stylesheet" media="screen">
    <link href="stylesheets/font-awesome.css" rel="stylesheet">
    <link href="stylesheets/bootswatch.min.css" rel="stylesheet">
    <link href="stylesheets/custom.css" rel="stylesheet">

    <link rel="shortcut icon" href="images/favicon.ico">
    <link rel="icon" href="images/favicon.ico">

<!-- Commenting out this template stuff until we figure out how to make it work with middleman
    {% if headers.atom %}
      <link rel="alternate" href="{{ headers.atom.url }}"
            type="application/atom+xml" title="{{ headers.atom.title }}" />
    {% endif %}

    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
-->
<!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
        <!-- Twitter Bootstrap and jQuery after this line. -->
        <script src="https://code.jquery.com/jquery-latest.js"></script>
        <script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
        <script>
            $('.dropdown-toggle').dropdown();
            $('.nav-collapse').collapse();
        </script>
  </head>
  <body>
    <div class="navbar navbar-default navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <a href="index.html" class="navbar-brand"><img class="" src="images/new-logo-sm.png" style="width: 200px" alt="Apache Cloudstack"></a>
                <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target="#navbar-main">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
            </div>
            <div class="navbar-collapse collapse" id="navbar-main">
                <ul class="nav navbar-nav">
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="about">About <span class="caret"></span></a>
              <ul class="dropdown-menu" aria-labelledby="about">
                <li><a tabindex="-1" href="about.html">About</a></li>
                <li class="divider"></li>
                <li><a tabindex="-1" href="https://blogs.apache.org/cloudstack/" target="_blank">Blog<span class="glyphicon glyphicon-share-alt pull-right"></span></a></li>
                <li><a tabindex="-1" href="history.html">History</a></li>
                <li><a tabindex="-1" href="features.html">Features</a></li>
                <li><a tabindex="-1" href="cloudstack-faq.html">FAQ</a></li>
                <li><a tabindex="-1" href="who.html">Who We Are</a></li>
                <li><a tabindex="-1" href="security.html">Security</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="community">Community <span class="caret"></span></a>
              <ul class="dropdown-menu" aria-labelledby="community">
                <li><a tabindex="-1" href="contribute.html">Get Involved</a></li>
                <li><a tabindex="-1" href="developers.html">Developers</a></li>
                <li><a tabindex="-1" href="mailing-lists.html">Mailing Lists</a></li>
                <li><a tabindex="-1" href="http://cloudstackcollab.org/" target="_blank">Events &amp; Meetups <span class="glyphicon glyphicon-share-alt pull-right"></span></a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="users">Users <span class="caret"></span></a>
              <ul class="dropdown-menu" aria-labelledby="users">
                <li><a tabindex="-1" href="users.html">Known Users</a></li>
                <li><a tabindex="-1" href="https://cwiki.apache.org/confluence/display/CLOUDSTACK/Case+Studies" target="_blank">Case Studies <span class="glyphicon glyphicon-share-alt pull-right"></span></a></li>
                <li><a tabindex="-1" href="survey.html">Take Survey</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="docs">Documentation <span class="caret"></span></a>
              <ul class="dropdown-menu" aria-labelledby="docs">
                <li><a tabindex="-1" href="http://docs.cloudstack.apache.org" target="_blank">Getting Started Docs</span></a></li>
                <li><a tabindex="-1" href="http://docs.cloudstack.apache.org/projects/cloudstack-installation" target="_blank">Installation Docs</a></li> 
                <li><a tabindex="-1" href="http://docs.cloudstack.apache.org/projects/cloudstack-administration" target="_blank">Administration Docs</a></li>
                <li><a tabindex="-1" href="http://docs.cloudstack.apache.org/projects/cloudstack-release-notes" target="_blank">Release Notes</a></li>
                <li><a tabindex="-1" href="https://cwiki.apache.org/confluence/display/CLOUDSTACK/Home" target="_blank">Wiki</a></li>
                <li><a tabindex="-1" href="https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+Books" target="_blank">Books</a></li>
                <li><a tabindex="-1" href="api.html">API Documentation</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="download">Download <span class="caret"></span></a>
              <ul class="dropdown-menu" aria-labelledby="download">
                <li><a tabindex="-1" href="downloads.html">CloudStack Releases</a></li>
                <li><a tabindex="-1" href="downloads.html#cloudmonkey">CloudMonkey</a></li>
                <li><a tabindex="-1" href="archives.html">Release Archive</a></li>
              </ul>
            </li>
			<li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="apache">Apache <span class="caret"></span></a>
              <ul class="dropdown-menu" aria-labelledby="apache">
				<li><a tabindex="-1" href="http://apache.org">Apache Software Foundation</a></li>
                <li><a tabindex="-1" href="http://www.apache.org/licenses/">License</a></li>
                <li><a tabindex="-1" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                <li><a tabindex="-1" href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
              </ul>
            </li>
          </ul>
            </div>
        </div>
    </div>
    <div class="container">
        <div class="bs-docs-section">
            <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>


            <footer>
                <p>Copyright © 2017 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br/>
                "Apache", "CloudStack", "Apache CloudStack", the Apache CloudStack logo, the Apache CloudStack Cloud Monkey logo and the Apache feather logos are registered trademarks or trademarks of The Apache Software Foundation.</p>
                <p><a href="/trademark-guidelines.html">Apache CloudStack Trademark Usage</a> - <a href="/bylaws.html">Apache CloudStack Community ByLaws</a></p>
            </footer>

        </div>
    </div>
</div>
  </body>
</html>
