<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Home page of The Apache Software Foundation">
  <link rel="apple-touch-icon" sizes="57x57" href="/favicons/apple-touch-icon-57x57.png">
  <link rel="apple-touch-icon" sizes="60x60" href="/favicons/apple-touch-icon-60x60.png">
  <link rel="apple-touch-icon" sizes="72x72" href="/favicons/apple-touch-icon-72x72.png">
  <link rel="apple-touch-icon" sizes="76x76" href="/favicons/apple-touch-icon-76x76.png">
  <link rel="apple-touch-icon" sizes="114x114" href="/favicons/apple-touch-icon-114x114.png">
  <link rel="apple-touch-icon" sizes="120x120" href="/favicons/apple-touch-icon-120x120.png">
  <link rel="apple-touch-icon" sizes="144x144" href="/favicons/apple-touch-icon-144x144.png">
  <link rel="apple-touch-icon" sizes="152x152" href="/favicons/apple-touch-icon-152x152.png">
  <link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon-180x180.png">
  <link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
  <link rel="icon" type="image/png" href="/favicons/favicon-194x194.png" sizes="194x194">
  <link rel="icon" type="image/png" href="/favicons/favicon-96x96.png" sizes="96x96">
  <link rel="icon" type="image/png" href="/favicons/android-chrome-192x192.png" sizes="192x192">
  <link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
  <link rel="manifest" href="/favicons/manifest.json">
  <link rel="shortcut icon" href="/favicons/favicon.ico">
  <meta name="msapplication-TileColor" content="#603cba">
  <meta name="msapplication-TileImage" content="/favicons/mstile-144x144.png">
  <meta name="msapplication-config" content="/favicons/browserconfig.xml">
  <meta name="theme-color" content="#282661">

  <title>How the ASF works</title>
  <link href="/css/Montserrat-300-600.css" rel="stylesheet">
  <link href="/css/min.bootstrap.css" rel="stylesheet">
  <link href="/css/styles.css" rel="stylesheet">
  <style>
.headerlink {
  visibility: hidden;
}
dt:hover > .headerlink, p:hover > .headerlink, td:hover > .headerlink, h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink {
  visibility: visible
}  </style>

<!-- http://www.apache.org/licenses/LICENSE-2.0 -->
</head>

<body >
  <!-- Navigation -->
  <header>
	<div id="skiptocontent">
		<a href="#maincontent">Skip to Main Content</a>
	</div>
    <nav class="navbar navbar-inverse navbar-fixed-top mainmenu">
      <div class="container">
        <div class="navbar-header">
          <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#mainnav-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
        </div>
        <div class="collapse navbar-collapse" id="mainnav-collapse">
          <ul class="nav navbar-nav navbar-justified">
            <li><a href="/index.html#news">News</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">About&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation">Overview</a></li>
                <li><a href="/foundation/how-it-works.html">Process</a></li>
                <li><a href="/foundation/governance/">Governance</a></li>
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="/foundation/governance/members.html">Membership</a></li>
                <li><a href="https://community.apache.org/">Community</a></li>
                <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="/foundation/glossary.html">Glossary</a></li>
				  <li><a href="/apache-name">About Our Name</a></li>
                <li><a href="/foundation/preFAQ.html">FAQ</a></li>
                <li><a href="/foundation/contributing.html">Support Apache</a></li>
                <li><a href="/press/">Media/Analysts</a></li>
                <li><a href="/foundation/contact.html">Contact</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Make a Donation&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation/contributing.html">Donate Now</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via Credit Card</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via ACH</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via PayPal</a></li>
                <li><a href="https://www.redbubble.com/people/comdev">Buy Swag</a></li>
                <li><a href="https://smile.amazon.com/gp/chpf/homepage/ref=smi_se_scyc_srch_stsr?q=apache+software+foundation&orig=%2F">Shop smile.amazon.com</a></li>
                <li><a href="/foundation/sponsorship.html">ASF Sponsorship</a></li>
                <li><a href="/foundation/thanks#targeted-sponsors">Targeted Sponsorship</a></li>
                <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">The Apache Way&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="https://s.apache.org/GhnI">Sustainable Open Source</a></li>
                <li><a href="/foundation/how-it-works.html">How it Works</a></li>
                <li><a href="/foundation/how-it-works.html#meritocracy">Merit</a></li>
                <li><a href="https://blogs.apache.org/foundation/category/SuccessAtApache">Success at Apache</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">Join Us&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://community.apache.org/gettingStarted/101.html">Getting Started</a></li>
                <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                <li><a href="https://www.apachecon.com/">ApacheCon</a></li>
                <li><a href="http://community.apache.org/calendars/">Community Events</a></li>
                <li><a href="/travel/">Travel Assistance</a></li>
                <li><a href="https://community.apache.org/gsoc.html">Summer of Code</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="https://community.apache.org/contributors/etiquette">Etiquette</a></li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/index.html#projects-list">Project List</a></li>
                    <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
                    <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
                    <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
                    <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
                    <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
                    <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
                    <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
                    <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="/foundation/marks/">Brand Management</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
                    <li><a href="/foundation/members.html">Members</a></li>
                    <li><a href="https://community.apache.org/contributors/">Committers</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Officers  &amp; Project VPs</a></li>
                    <li><a href="https://community.zones.apache.org/map.html">Location Map</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://people.apache.org/">Committer Directory</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="https://community.apache.org/about/">Community Development</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://community.apache.org/">Get Involved</a></li>
                    <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
                    <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
                    <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/dev/infrastructure.html">Infra overview</a></li>
                    <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
                    <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
                    <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
                    <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
                    <li><a href="/foundation/marks/list/">Trademarks</a></li>
					<li><a href="/licenses/exports/">Exports</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
                    <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
                    <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
                    <li><a href="/foundation/contributing.html">Individual Donations</a></li>
                    <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
                  </ul>
                </li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Downloads&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://downloads.apache.org/">Distribution</a></li>
                <li><a href="https://projects.apache.org/releases.html">Releases</a></li>
                <li><a href="https://status.apache.org/">Infrastructure Status</a></li>
                <li><a href="/uptime/">Infrastructure Statistics</a></li>
              </ul>
            </li>
            <li class="dropdown hidden-xs">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button"><span class="glyphicon glyphicon-search"
                  aria-hidden="true"></span><span class="sr-only">Search</span></a>
              <ul class="dropdown-menu search-form" role="search">
                <li>
                  <div class="input-group" style="width: 100%; padding: 0 5px;">
                    <script async src="https://cse.google.com/cse.js?cx=cb41d2753d228d8b7"></script>
                    <div class="gcse-search"></div>
                  </div>
                </li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </nav>
  </header>
  <!-- / Navigation -->
  <header id="main-header" class="container">
    <div class="sideImg">
          <a class="visible-home" href="https://events.apache.org/x/current-event.html">
            <img class="img-responsive" style="width: 125px;" src="/events/current-event-125x125.png" alt="Apache Events"/>
<!-- STALE: <img class="img-responsive" style="width: 125px;" src="https://www.apachecon.com/event-images/default-square-light.png" alt="ApacheCon 2021 Coming Soon!" /> -->
          </a>
      <a class="hidden-home" href="/"><img class="img-responsive" src="/img/asf-estd-1999-logo.jpg" alt="The Apache Software Foundation"></a>
    </div>
    <div class="main">
      <img class="img-responsive center-block visible-home" src="/img/asf-estd-1999-logo.jpg" alt="Apache 20th Anniversary Logo">
      <h2 class="text-center">Community-led development "The&nbsp;Apache&nbsp;Way"</h2>
      <ul class="nav navbar-nav navbar-justified">
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/index.html#projects-list">Project List</a></li>
            <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
            <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
            <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
            <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
            <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
            <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
            <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
            <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="/foundation/marks/">Brand Management</a></li>
            <li><a href="/foundation/glossary.html">Glossary of Terms</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
            <li><a href="/foundation/members.html">Members</a></li>
            <li><a href="https://community.apache.org/contributors/">Committers</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Officers &amp; Project VPs</a></li>
            <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://people.apache.org/">Committer Directory</a></li>
            <li><a href="https://community.zones.apache.org/map.html">Heat Map</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="https://community.apache.org/about/">Community Development</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://community.apache.org/">Get Involved</a></li>
            <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
            <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
            <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
              <li><a href="/dev/infrastructure.html">Infra overview</a></li>
              <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
              <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
            <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
            <li><a href="/foundation/marks/list/">Trademarks</a></li>
			<li><a href="/licenses/exports/">Exports</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
            <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
            <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
            <li><a href="/foundation/contributing.html">Individual Donations</a></li>
            <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
          </ul>
        </li>
      </ul>
    </div>
    <div class="sideImg">
      <a href="/foundation/contributing.html"><img class="img-responsive" src="/img/support-apache.jpg" alt="Apache Support Logo" /></a>
    </div>
  </header>
  <main id="maincontent">
<div class="container">    <h1 id="how-the-asf-works">How the ASF works<a class="headerlink" href="#how-the-asf-works" title="Permalink">&para;</a></h1>
<div class=".pull-right" style="float:right; border-style:dotted; width:200px; padding:5px; margin:5px">
<p>If you're curious about more governance details, we have a description of <a href="/foundation/governance/">Apache style governance</a>.<br/>
The <a href="http://community.apache.org/">Apache Community Development project</a> is also
here to help newcomers find their way around.</p>
</div>
<p>This page provides an overview of everything you always wanted to know about the
Apache Software Foundation but were afraid to ask: the difference between membership and
committership, who decides what, how elections take place, how our
infrastructure is set up, what the board is and does, what a PMC is, what's the
philosophy behind the incubator, and how the ASF deals with
the incredible growth in new projects and contributors over the years. Come and see behind the scenes of the ASF.</p>
<ul>
<li>
<p><a href="#what">What is the Apache Software Foundation?</a></p>
</li>
<li>
<p><a href="#meritocracy">Meritocracy</a></p>
</li>
<li>
<p><a href="#structure">The Foundation structure</a></p>
</li>
<li>
<p><a href="#roles">Roles</a></p>
</li>
<li>
<p><a href="#management">Project management and collaboration</a></p>
</li>
<li>
<p><a href="#infrastructure">The Foundation Infrastructure</a></p>
</li>
<li>
<p><a href="#incubator">The Foundation Incubator</a></p>
</li>
<li>
<p><a href="#other">Other Foundation entities</a></p>
</li>
<li>
<p><a href="#conclusions">Conclusions</a></p>
</li>
</ul>
<h2 id="what">What is the Apache Software Foundation?<a class="headerlink" href="#what" title="Permalink">&para;</a></h2>
<p>The <a href="/foundation/">Apache Software Foundation</a> (ASF) is a 501(c)3 non-profit public charity organization
incorporated in the United States of America. It was formed in 1999 primarily to:</p>
<ul>
<li>
<p>provide a foundation for open, collaborative software development
projects by supplying hardware, communication, and business infrastructure</p>
</li>
<li>
<p>create an independent legal entity to which companies and individuals can
donate resources and be assured that those resources will be used for the
public benefit</p>
</li>
<li>
<p>provide a means for individual volunteers to be sheltered from legal
suits directed at the Foundation's projects</p>
</li>
<li>
<p>protect the 'Apache' brand, as applied to its software products, from
being abused by other organizations</p>
</li>
</ul>
<p>That's the dry facts, but how did all this come to be and what does it
really mean? We need to step back a little in history.</p>
<h2 id="meritocracy">Meritocracy<a class="headerlink" href="#meritocracy" title="Permalink">&para;</a></h2>
<p>Unlike other software development efforts under an open source
license, like the Linux Kernel or the Perl/Python languages, no single developer initiated the Apache Web Server. A diverse group of people who shared common interests developed the project as they exchanged information, software fixes and suggestions.</p>
<p>As the group started to develop their own version of the software, moving
away from the NCSA version, more people were attracted and started to help
out, first by sending little patches, or suggestions, or replying to email
on the mail list, later with more important contributions.</p>
<p>When the group felt that a person had "earned" the merit to be part of
the development community, they granted direct access to the code
repository, thus growing the group and increasing its ability to develop the program, and to maintain and develop the software more
effectively.</p>
<p>We call this basic principle "meritocracy": government by merit.</p>
<p>The process scaled very well without
creating friction because, unlike in other situations where power is a
scarce and conservative resource, in the Apache group newcomers were seen
as volunteers who wanted to help rather than people who wanted to steal
a position.</p>
<p>With no limited and therefore valuable resource (money, energy, time) at stake, the group
was happy to have new people come in and help. They only filtered those who expressed interest to find and include those whom they believed were committed enough for the task and matched the
human attitudes required to work well with others, especially when there were
disagreements.</p>
<p>After explaining the structure of the ASF, we will see how the meritocracy
relates to the various roles.</p>
<h2 id="structure">The Foundation structure<a class="headerlink" href="#structure" title="Permalink">&para;</a></h2>
<p>As the Apache Web Server started to grow in market share and popularity,
due to synergy of its technical merit and to the openness of the community
behind the project, people started to create satellite projects. Influenced
by the spirit of the community they were used to, they adopted the same
traditions of community management.</p>
<p>By the time the ASF came into existence, there were several separate
communities, each focused on a different side of the "web serving" problem,
but all united by a common set of goals and a respected set of cultural
traditions of both etiquette and process.</p>
<p>These separate communities were referred to as "projects" and, while
similar, each of them exhibited little differences that made them special.</p>
<p>To reduce friction and allow diversity to emerge, rather than
forcing a monoculture from the top, the ASF designates the projects as the central
decision-making organizations of the Apache world. Each project has authority over development of its software, and has a great
deal of latitude in designing its own technical charter and its own
governing rules.</p>
<p>At the same time, the cultural influence of the original Apache group is
strong and the similarities between the various communities are evident, as
we'll see later.</p>
<p>The following entities govern the foundation:</p>
<ul>
<li>
<p>Board of Directors (board) governs the foundation and is composed of
members.</p>
</li>
<li>
<p>Project Management Committees (PMCs) govern the projects, and they are
composed of committers. (Note that every PMC member is, by definition, also a
committer.)</p>
</li>
<li>
<p>Various Officers of the corporation, appointed by the board, who set
Foundation-wide policies in specific areas (legal, brand, fundraising, etc.)</p>
</li>
</ul>
<p>For all the details, read our <a href="/foundation/governance/">Governance overview</a>.</p>
<h3 id="board">Board of Directors (board)<a class="headerlink" href="#board" title="Permalink">&para;</a></h3>
<p>The board is responsible for management and oversight of the business and
affairs of the corporation in accordance with the foundation
<a href="bylaws.html">Bylaws</a>. This includes management of the corporate assets
(funds, intellectual property, trademarks, and support equipment) and
allocation of corporate resources to projects.</p>
<p>However, each Apache project's PMC has technical decision-making authority regarding the content and
direction of the project.</p>
<p>The board is currently composed of nine individuals, elected by and from the
members of the foundation. The bylaws don't specify the number of board members
that the foundation should have, but this was the number of the
first board and it has never changed. The board is elected every year.</p>
<p>The <a href="board/">board website</a> has more information, the list of the current
directors, a schedule of meetings, and minutes of past meetings.</p>
<h3 id="pmc">Project Management Committees (PMC)<a class="headerlink" href="#pmc" title="Permalink">&para;</a></h3>
<p>The Board establishes Project Management Committees (PMCs) to be responsible for the active management of one or more specific
communities.</p>
<p>Each PMC includes least one officer of the ASF, who shall be
designated its chair, and may include one or more other members of the
ASF.</p>
<p>The Board appoints the chair of the PMC, who also becomes an officer (Vice President) of the ASF. The chair has primary responsibility to the Board, and
has the power to establish rules and procedures for the day to day
management of the communities for which the PMC is responsible, including
the composition of the PMC itself. See further discussion about the role of the
PMC <a href="../dev/pmc.html#chair">chair</a> and <a href="faq.html#why-are-PMC-chairs-officers">why chairs are
officers</a>.</p>
<p>The <a href="bylaws.html">ASF Bylaws</a> (section 6.3) define a PMC and the position
of chair. Some emails help to clarify:
<a href="http://www.mail-archive.com/community@apache.org/msg03961.html">here</a> and
<a href="http://www.mail-archive.com/community@apache.org/msg04005.html">here</a>.</p>
<p>The role of the PMC from a Foundation perspective is oversight. The main
role of the PMC is not code and not coding, but to ensure that its community addresses all legal
issues and follows stated procedures, and that each and every
release is the product of the community as a whole. That is key to our
litigation-protection mechanisms.</p>
<p>The second role of the PMC is to further the long-term development and
health of the community as a whole, and to ensure that balanced and wide
scale peer review and collaboration takes place. Within the ASF we worry
about any community which centers around a few individuals who are working
virtually without review. We believe that this is detrimental to quality,
stability, and robustness of both code and long-term social structures.</p>
<p>We firmly believe in <a href="#hats">hats</a>. Your role at the ASF is one assigned to
you personally, and is bestowed on you by your peers. It is not tied to
your job or current employer or company.</p>
<p>However those on the PMC are held to a higher standard. The PMC, and the
chair in particular, are eyes and ears of the ASF Board, so we rely on and need to trust you to provide legal oversight.</p>
<p>The board can to terminate a PMC at any time by resolution.</p>
<p>The <a href="/dev/">Apache Developer Information</a> pages have more details of how PMCs work.
A complete <a href="http://projects.apache.org/">list of all Apache projects</a> is also available.</p>
<h3 id="officers">Officers<a class="headerlink" href="#officers" title="Permalink">&para;</a></h3>
<p>The <a href="./">Officers of the Apache Software Foundation</a> oversee the day-to-day
affairs of the Foundation. The <a href="#board">Board of
Directors</a> elects these officers.</p>
<h2 id="roles">Roles<a class="headerlink" href="#roles" title="Permalink">&para;</a></h2>
<p>The meritocracy typically has various roles within each individual Apache project community:</p>
<p><code><a href="#users">user</a> | <a href="#developers">developer</a> | <a href="#committers">committer</a>
| <a href="#pmc-members">PMC member</a> | <a href="#pmc-chair">PMC chair</a> | <a href="#asf-members">ASF member</a></code></p>
<h3 id="users">User<a class="headerlink" href="#users" title="Permalink">&para;</a></h3>
<p>A <strong>user</strong> is someone who uses our software. They contribute to
Apache projects by providing feedback to developers in the form of bug
reports and feature suggestions. Users participate in the Apache community
by helping other users on mailing lists and user support forums.</p>
<h3 id="developers">Developer<a class="headerlink" href="#developers" title="Permalink">&para;</a></h3>
<p>A <strong>developer</strong> is a user who contributes to a project in the form of
code or documentation. They take extra steps to participate in a project,
are active on the developer mailing list, participate in discussions, and
provide patches, documentation, suggestions, and criticism. Developers are
also known as <strong>contributors</strong>.</p>
<h3 id="committers">Committer<a class="headerlink" href="#committers" title="Permalink">&para;</a></h3>
<p>A <strong>committer</strong> is a developer who has write access to the code
repository and has a signed <a href="/licenses/#clas">Contributor License Agreement
(CLA)</a> on file. They have an
apache.org mail address. Not needing to depend on other people to make patches to the code or documentation, they are actually making short-term decisions for the project. The
PMC can (even tacitly) agree and approve the changes into permanency, or they can
reject them. Remember that the PMC makes the decisions, not the individual
committers.</p>
<h3 id="pmc-members">PMC Member<a class="headerlink" href="#pmc-members" title="Permalink">&para;</a></h3>
<p>A <strong>PMC member</strong> is a committer who was elected due to
merit for the evolution of the project.
They have write access to the code repository, an apache.org mail address,
the right to vote on community-related decisions and the right to
propose other active contributors for committership. The PMC as a whole is the entity
that controls the project, nobody else.  In particular, the PMC must vote to approve any formal release of their project's software products.</p>
<h3 id="pmc-chair">PMC Chair<a class="headerlink" href="#pmc-chair" title="Permalink">&para;</a></h3>
<p>The Board appoints the <strong>Chair</strong> of a PMC from the <a href="#pmc-members">PMC members</a>. The PMC as a whole is the
entity that controls and leads the project. The Chair is the interface
between the Board and the Project.  <a href="/dev/pmc.html#chair">PMC Chairs have specific duties</a>.</p>
<h3 id="asf-members">ASF Member<a class="headerlink" href="#asf-members" title="Permalink">&para;</a></h3>
<p>An <strong>ASF member</strong> is a person who was nominated by current members and
elected due to merit for the evolution and progress of the foundation.
Members care for the ASF itself, usually through project-related and cross-project activities. Legally, a member is
a "shareholder" of the foundation, one of the owners. They have the right
to elect the board, to stand as a candidate for board election and to
propose a committer for membership. They also have the right to propose a
new project for incubation (we'll see later what this means). The members
coordinate their activities through their mailing list and through their
annual meeting. We have a <a href="/foundation/members.html">full listing of Apache Members</a>.</p>
<h2 id="management">Project Management and collaboration<a class="headerlink" href="#management" title="Permalink">&para;</a></h2>
<p>Apache projects are managed using a collaborative, consensus-based
process. We do not have a hierarchical structure; rather, different groups
of contributors have different rights and responsibilities in the
organization.</p>
<p>Since the appointed PMCs have the power to create
their own self-governing rules, there is no single vision on how PMCs
should run their projects and nurture the communities they lead.</p>
<p>At the same time, while there are some differences, there are a number of
similarities all ASF projects share:</p>
<h3 id="communication">Communication<a class="headerlink" href="#communication" title="Permalink">&para;</a></h3>
<p>Communication is via mailing lists. These are "virtual meeting
rooms" where conversations happen asynchronously, which is a general
requirement for groups that are distributed across many
time zones (as is normally the case for Apache
communities).</p>
<p>Some projects additionally use more synchronous messaging (for example, IRC
or instant messaging). Voice communication is extremely rare, normally
because of costs and the language barrier (speech is harder to understand
than written text).</p>
<p>In general, asynchronous communication is important because it
allows archives to be created and it's more tolerant on the volunteer
nature of the various communities.</p>
<h3 id="documentation">Documentation<a class="headerlink" href="#documentation" title="Permalink">&para;</a></h3>
<p>Each project is responsible for its own <a href="projects.html">project website</a>.
Further information to assist committers, developers, and PMCs is available
at <a href="../dev/">ASF Infrastructure</a>.</p>
<h3 id="decision-making">Decision Making<a class="headerlink" href="#decision-making" title="Permalink">&para;</a></h3>
<p>Projects are normally auto governing and driven by the people who volunteer
for the job. This is sometimes referred to as "do-ocracy" -- power of those
who do. This functions well in most cases.</p>
<p>When coordination is required, projects make decisions with a lazy consensus
approach: a few positive votes with no negative vote is enough to get
going.</p>
<p>Voting is by numbers:</p>
<ul>
<li>
<p>+1 -- a positive vote</p>
</li>
<li>
<p>0 -- abstain, have no opinion</p>
</li>
<li>
<p>-1 -- a negative vote</p>
</li>
</ul>
<p>The rules require that a PMC member registering a negative vote must include an alternative proposal or
a detailed explanation of the reasons for the negative vote.</p>
<p>The community then tries to gather consensus on an alternative proposal
that can resolve the issue. In the great majority of cases, the concerns
leading to the negative vote can be addressed.</p>
<p>This process is called "consensus gathering" and we consider it a very
important indication of a healthy community.</p>
<p>Specific cases have some more <a href="/foundation/voting.html">detailed voting rules</a>.</p>
<h2 id="philosophy">Philosophy<a class="headerlink" href="#philosophy" title="Permalink">&para;</a></h2>
<p>While there is not an official list, people often cite these six principles, often referred to as "The Apache Way",
as the core beliefs behind the foundation:</p>
<ul>
<li>
<p>collaborative software development</p>
</li>
<li>
<p>commercial-friendly standard license</p>
</li>
<li>
<p>consistently high-quality software</p>
</li>
<li>
<p>respectful, honest, technical-based interaction</p>
</li>
<li>
<p>faithful implementation of standards</p>
</li>
<li>
<p>security as a mandatory feature</p>
</li>
</ul>
<p>All ASF projects share these principles.  Similarly, Apache projects
must <a href="http://community.apache.org/projectIndependence.html">govern themselves independently</a> of undue commercial influence.</p>
<h2 id="operation">Operation<a class="headerlink" href="#operation" title="Permalink">&para;</a></h2>
<p>All participants in ASF projects are volunteers and nobody (not even members or
officers) is paid directly by the foundation to do their job. There are many
examples of committers who are paid to work on projects, but never by
the foundation itself. Rather, companies or institutions that use
the software and want to enhance it or maintain it provide the salary.</p>
<p>The ASF does contract out various services, including accounting,
Press and Media relations, and infrastructure system administration.</p>
<h3 id="hats">Individuals compose the ASF<a class="headerlink" href="#hats" title="Permalink">&para;</a></h3>
<p>All of the ASF including the board, the officers, the committers, and
the members, are participating as individuals. That is one strength of the
ASF: personal affiliations do not cloud the person's contributions.</p>
<p>Unless they specifically state otherwise, whatever an ASF participant posts on any mailing
list is done <em>as themselves</em>. It is the individual point-of-view, wearing
their personal hat and not as a mouthpiece for whatever company happens to
be signing their paychecks right now, and not even as a director of the
ASF.</p>
<p>All ASF participants implicitly have multiple hats, especially the
Board, the officers, and the PMC chairs. They sometimes need to talk
about a matter of policy, so to avoid appearing to be expressing a personal
opinion, they will state that they are talking in their special capacity.
However, most of the time this is not necessary: personal opinions work
well.</p>
<p>Some people declare their hats by using a special footer to their email,
others enclose their statements in special quotation marks, others use
their apache.org email address when otherwise they would use their personal
one. This last method is not reliable, as many people use their
apache.org address all of the time.</p>
<h3 id="confidential">Balancing confidentiality and public discussion<a class="headerlink" href="#confidential" title="Permalink">&para;</a></h3>
<p>We endeavour to conduct as much discussion in public as possible. This
encourages openness, provides a public record, and stimulates the broader
community.</p>
<p>However sometimes internal private mail lists are necessary. You must never
divulge information from such a list in public without the express permission of the
list. Also never copy an email between private and public lists (no Cc).
Such an event would go beyond the normal need for email etiquette and would be a
serious breach of confidence. It could have serious ramifications, causing
unnecessary confusion and ill-informed discussion.</p>
<p>Private lists are typically only used for matters pertaining to people as
individuals (like voting in new committers), and legal matters that require
confidentiality.</p>
<h2 id="the-foundation-infrastructure-infrastructure">The Foundation Infrastructure (#infrastructure)<a class="headerlink" href="#the-foundation-infrastructure-infrastructure" title="Permalink">&para;</a></h2>
<p>The ASF does not have offices or buildings. Its only physical existence is the technical infrastructure that enables it to operate, and the staff.</p>
<p>The ASF Infrastructure team, known as "Infra", supports services that help the ASF and its projects function and flourish. <a href="https://apache.org/dev/infrastructure.html" target="_blank">Learn more</a>.</p>
<h2 id="incubator">The Foundation Incubator<a class="headerlink" href="#incubator" title="Permalink">&para;</a></h2>
<p>To support and encourage new projects, the ASF created the
<a href="http://incubator.apache.org/">Incubator</a> to help new
efforts join the foundation.</p>
<p>Since the meritocratic rules operate across the ASF from bottom to top, it
is vital for the long-term stability of this form of government that a project's
initial set of committers has to understand very well the dynamics of such a
system, and to share the same philosophical attitude toward
collaboration and openness that the ASF expects from its projects.</p>
<p>The incubator is responsible for:</p>
<ul>
<li>
<p>filtering proposals about the creation of a new project or
sub-project</p>
</li>
<li>
<p>helping create the new project and the infrastructure that it needs to
operate</p>
</li>
<li>
<p>supervising and mentoring the incubated community to help it create
an open, meritocratic environment</p>
</li>
<li>
<p>evaluating the maturity of the incubated project, and deciding whether to promote it to
official project / sub-project status or, in case of failure, to retire it.</p>
</li>
</ul>
<p>The incubator (like the board) does not perform
filtering on the basis of technical issues. The foundation
respects and supports a variety of technical approaches. It doesn't fear
innovation or even internal confrontation between projects which overlap in
functionality.</p>
<p>The incubator filters projects on the basis of the likelihood of projects
becoming successful meritocratic communities. The basic requirements for
incubation are:</p>
<ul>
<li>
<p>a working codebase -- over the years and after several failures, the
foundation came to understand that without an initial working codebase, it
is generally hard to bootstrap a community. This is because merit is not
well-recognized by developers without a working codebase. Also, the
friction that can develop during the initial design stage is likely to
fragment the community.</p>
</li>
<li>
<p>the intention to assign sufficient intellectual
property rights to the software to the ASF -- this allows the
foundation to obtain an irrevocable and permanent right to redistribute and
work on the code, without fearing lock-in for itself or for its users, while
still allowing the original author to maintain their copyright.</p>
</li>
<li>
<p>a sponsoring ASF member or officer -- this person acts as the main
mentor, giving directions to the project, helping out in the day-to-day
details and keeping contact with the incubator PMC.</p>
</li>
</ul>
<p>The incubation period normally serves to estimate whether the project is able to increase the diversity of its committer base and
play within the meritocratic rules of the foundation.</p>
<p>It might seem rather easy to achieve, but, in a
volunteer and highly selective environment, attracting new committers is
not automatic.</p>
<p>Diversity of committership is important for two main reasons:</p>
<ul>
<li>
<p>it gives long term stability to the project's development. In fact, with
all the developers affiliated to the same entity, the chance of seeing all
of them moving away from the project at the same time is much greater than
with a community of individuals affiliated to unrelated entities.</p>
</li>
<li>
<p>it gives a greater variety of technical visions, This guarantees a better adherence to the environment and users' needs, thus a
higher chance of finding real-life use of the software.</p>
</li>
</ul>
<h2 id="other">Other Foundation Entities<a class="headerlink" href="#other" title="Permalink">&para;</a></h2>
<p>Along with the Incubator, the foundation has several other
cross-foundation projects. For example, the ASF does not have offices or
buildings. It's a virtual entity that exists only on the internet, and the <a href="../dev/infrastructure.html">Infrastructure team</a> manages the
technical infrastructure that enables it to operate.</p>
<p>Read more about these and other cross-foundation projects on the <a href="foundation-projects.html">Foundation
Projects</a> page.</p>
<p>The ASF also hosts some foundation-wide mailing lists, which you can learn about
on the <a href="mailinglists.html">Mailing Lists</a> page.</p>
<h2 id="conclusions">In review...<a class="headerlink" href="#conclusions" title="Permalink">&para;</a></h2>
<p>The ASF represents one of the best
examples of an open organization that has found balance between structure
and flexibility. We have grown from 200 committers to around 3000, and that
number continues to grow on a daily basis. We have been able to create
software products that are leaders in their markets. We have also
been able to find balance between openness and economical feasibility. This
has earned us respect from individual users of Apache software and
multinational corporations. We hope to continue to provide inspiration for
businesses, governments, education programs, and other software foundations.</p>

</div>  </main>

  <!-- Footer -->
  <footer class="bg-primary">
    <div class="container">
      <div class="row">
        <br />
        <div class="col-sm-1">

        </div>
        <div class="col-sm-2">
          <h5 class="white">Community</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://community.apache.org/">Overview</a></li>
            <li><a href="/foundation/conferences.html">Conferences</a></li>
            <li><a href="http://community.apache.org/gsoc.html">Summer of Code</a></li>
            <li><a href="http://community.apache.org/newcomers/">Getting Started</a></li>
            <li><a href="/foundation/how-it-works.html">The Apache Way</a></li>
            <li><a href="/travel/">Travel Assistance</a></li>
            <li><a href="/foundation/getinvolved.html">Get Involved</a></li>
            <li><a href="/foundation/policies/conduct.html">Code of Conduct</a></li>
            <li><a href="http://community.apache.org/newbiefaq.html">Community FAQ</a></li>
            <li><a href="/memorials/">Memorials</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Innovation</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://incubator.apache.org/">Incubator</a></li>
            <li><a href="http://labs.apache.org/">Labs</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Tech Operations</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/dev/">Developer Information</a></li>
            <li><a href="/dev/infrastructure.html">Infrastructure</a></li>
            <li><a href="/security/">Security</a></li>
            <li><a href="http://status.apache.org">Status</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Press</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/press/">Overview</a></li>
            <li><a href="https://blogs.apache.org/">ASF News</a></li>
            <li><a href="https://blogs.apache.org/foundation/">Announcements</a></li>
            <li><a href="https://twitter.com/TheASF">Twitter Feed</a></li>
            <li><a href="/press/#contact">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Legal</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/legal/">Legal Affairs</a></li>
            <li><a href="/legal/dmca.html">DMCA</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/records/">Public Records</a></li>
            <li><a href="/foundation/policies/privacy.html">Privacy Policy</a></li>
            <li><a href="/licenses/exports/">Export Information</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-1">
        </div>

      </div>
      <hr class="col-lg-12 hr-white" />
      <div class="row">
        <div class="col-lg-12">
          <p class="text-center">Copyright &#169; 2023 The Apache Software Foundation, Licensed under the <a class="white" href="/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
          <p class="text-center">Apache and the Apache feather logo are trademarks of The Apache Software Foundation. </p>
        </div>
      </div>
    </div>

  </footer>

  <!-- / Footer -->

  <script src="/js/jquery-2.1.1.min.js"></script>
  <script src="/js/bootstrap.js"></script>
  <script src="/js/slideshow.js"></script>
  <script>
    (function($){
    $(document).ready(function(){
    $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
    event.preventDefault();
    event.stopPropagation();
    $(this).parent().siblings().removeClass('open');
    $(this).parent().toggleClass('open');
    console.log('WOrked');
    });
    });
    })(jQuery);
  </script>
</body>
</html>