<!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>Glossary of ASF Terms</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>

  <!-- pagefind search -->
  <link href="/_pagefind/pagefind-ui.css" rel="stylesheet">
  <script src="/_pagefind/pagefind-ui.js" type="text/javascript"></script>
  <script>
    window.addEventListener('DOMContentLoaded', (event) => {
        new PagefindUI({ element: "#pagefind-search" });
    });
  </script>

<!-- https://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="/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="https://tac.apache.org">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 id="pagefind-search" class="input-group" style="width: 100%; padding: 0 5px;"></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">

      <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>
 
  </header>
  <main id="maincontent">
<div class="container">    <h1 id="glossary-of-asf-terms">Glossary of ASF Terms<a class="headerlink" href="#glossary-of-asf-terms" title="Permalink">&para;</a></h1>
<p>This glossary provides a brief description of some of the organizational
terms used at the ASF and in Apache projects.  For more information
about anything Apache, see the <a href="/dev/">/dev documentation</a> or the
<a href="http://community.apache.org/">Community Development project</a>.</p>
<hr/>
<dl>
<dt id="ApacheCon">ApacheCon<a class="headerlink" href="#ApacheCon" title="Permalink">&para;</a></dt>
<dd>
<p>The official developer and user conference of the ASF (see the
<a href="http://ApacheCon.Com/">ApacheCon Web site</a> ).</p>
</dd>
<dt id="Artifact">Artifact<a class="headerlink" href="#Artifact" title="Permalink">&para;</a></dt>
<dd>
<p>A file which is created as the outcome of a process, typically the
release preparation process.</p>
</dd>
<dt id="ASF">ASF<a class="headerlink" href="#ASF" title="Permalink">&para;</a></dt>
<dd>
<p>The Apache Software Foundation, a non-profit organization.</p>
</dd>
<dt id="Attic">Attic<a class="headerlink" href="#Attic" title="Permalink">&para;</a></dt>
<dd>
<p>A location for discontinued, abandoned, and retired
<a href="#Codebase">codebases</a> and <a href="#Project">projects</a>. The
<a href="http://attic.apache.org">Apache Attic project</a>
preserves the information for posterity, reference, and potential
future re-activation, while keeping it clearly distinct from active
work.</p>
</dd>
<dt id="Board">Board<a class="headerlink" href="#Board" title="Permalink">&para;</a></dt>
<dd>
<p>The nine-person legal governing body of the ASF, elected by the
<a href="#Member">members</a>. The board provides the oversight of the
Foundation's activities and operation, and applies and enforces the ASF's <a href="#Bylaws">bylaws</a>. Among other
things, the board approves or rejects resolutions brought before it,
such as for the creation or dissolution of ASF <a href="#Project">projects</a> ,
funding requests, legal concerns, and disciplinary actions. As an open
and non-profit corporation, the ASF makes the minutes of board meetings publicly available at
<a href="/foundation/records/minutes/">http://www.apache.org/foundation/records/minutes/</a>.
These minutes include all decisions not made in <a href="#ExecutiveSession">executive
sessions</a>. Also see <a href="#Director">Director</a>.</p>
</dd>
<dt id="Bikeshed">Bikeshed Argument<a class="headerlink" href="#Bikeshed" title="Permalink">&para;</a></dt>
<dd>
<p>Arguing (pointlessly) about which color to paint the bikeshed. As
explained <a href="http://www.unixguide.net/freebsd/faq/16.19.shtml">here</a> it
may happen when the argument is so trivial that it's easy for anyone
to have an opinion, and want to see theirs prevail.</p>
</dd>
<dt id="Build">Build<a class="headerlink" href="#Build" title="Permalink">&para;</a></dt>
<dd>
<p>A <strong>Build</strong> is a package which is not suitable for distribution to the
general public. Builds are works-in-progress, and should only be available to people working on product
development at the Foundation.</p>
</dd>
<dt id="Bylaws">Bylaws<a class="headerlink" href="#Bylaws" title="Permalink">&para;</a></dt>
<dd>
<p>Bylaws are a codification of the rules that an organisation follows.
Some, such as the <a href="/foundation/bylaws.html">ASF bylaws</a>, are legally
binding and have significance outside the organisation. Others, such
as the <a href="http://jakarta.apache.org/site/management.html">Jakarta bylaws</a>, are only
meaningful within the <a href="#Community">community</a> and are only as binding
as the community itself makes them. The bylaws of an organisation
within the ASF may not contradict those of the ASF proper; any such
conflicting parts in the organisation bylaws are necessarily null and
void.</p>
</dd>
<dt id="Chair">Chair<a class="headerlink" href="#Chair" title="Permalink">&para;</a></dt>
<dd>
<p><strong>1.</strong> The Chair of the <a href="#Board">Board</a> of <a href="#Director">Directors</a> of
the <a href="#ASF">ASF</a>, responsible for the orderly meeting and functioning
of the Board.
<strong>2.</strong> The official head of a committee, such as a
Project Management Committee <a href="#PMC">PMC</a>. PMC Chairs are ASF
<a href="#Vice-President">Vice Presidents</a> given charge of the proper operation of their
<a href="#Project">projects</a>.</p>
</dd>
<dt id="Codebase">Codebase<a class="headerlink" href="#Codebase" title="Permalink">&para;</a></dt>
<dd>
<p>A meaningful group of source. Some <a href="#Project">projects</a> use only a
single codebase, while others have several.</p>
</dd>
<dt id="CommitAccess">Commit access<a class="headerlink" href="#CommitAccess" title="Permalink">&para;</a></dt>
<dd>
<p>ASF <a href="#Project">projects</a> collaborate on code using <a href="#version-control">version
control</a> software to coordinate changes.
The ability to make direct changes to that code is known as <em>commit
access</em> (from the <code>[VCS] commit</code> subcommand). This process patches the
actual official code. Also see <a href="#Karma">Karma</a> .</p>
</dd>
<dt id="Committer">Committer<a class="headerlink" href="#Committer" title="Permalink">&para;</a></dt>
<dd>
<p>An individual who has the privilege to directly commit changes to an Apache <a href="#Codebase">codebase</a> ( <a href="#CommitAccess">commit
access</a> ).</p>
</dd>
<dt id="CommitThenReview">Commit-Then-Review<a class="headerlink" href="#CommitThenReview" title="Permalink">&para;</a></dt>
<dd>
<p>(Often abbreviated 'CTR' or 'C-T-R'.) A policy governing code changes
which permits developers to make changes at will, with the possibility
of a change being retroactively <a href="#Veto">vetoed</a>. C-T-R is an application of
decision-making through <a href="#LazyConsensus">lazy consensus</a>. The C-T-R
model is useful in rapid-prototyping environments, but because of the
lack of mandatory review it may let more bugs through in daily practice than the
<a href="#ReviewThenCommit">R-T-C</a> alternative. Compare <a href="#ReviewThenCommit">R-T-C</a>, and see the description of the <a href="voting.html">voting process</a>.</p>
</dd>
<dt id="Community">Community<a class="headerlink" href="#Community" title="Permalink">&para;</a></dt>
<dd>
<p>Group of individuals with a common cause. The community of a
<a href="#Project">project</a> consists of all those with an interest in that project.</p>
</dd>
<dt id="ConsensusApproval">Consensus Approval<a class="headerlink" href="#ConsensusApproval" title="Permalink">&para;</a></dt>
<dd>
<p>'Consensus approval' refers to a <a href="#Vote">vote</a> (sense 1) which has
completed with <strong>at least three binding +1 votes</strong> and <strong>no</strong>
<a href="#Veto">vetos</a>. Compare <a href="#MajorityApproval">Majority Approval</a>.</p>
</dd>
<dt id="Contributor">Contributor<a class="headerlink" href="#Contributor" title="Permalink">&para;</a></dt>
<dd>
<p>Someone who makes consistent improvements to the entities under an
<a href="#ASF">ASF</a> <a href="#PMC">PMC</a>, code or documentation or otherwise.
This does not, in and of itself, imply <a href="#CommitAccess">commit access</a>, though frequent and valued contributors are readily <a href="#Vote">voted</a>
on for such access.</p>
</dd>
<dt id="CLA">Contributor License Agreement<a class="headerlink" href="#CLA" title="Permalink">&para;</a></dt>
<dd>
<p>Contributor License Agreement (CLA) is sometimes referred to as
Individual Contributor License Agreement (ICLA). There is also a
Corporate Contributor License Agreement (CCLA). All are explained on
the <a href="/licenses/#clas">Licenses</a> page.</p>
</dd>
<dt id="CTR">CTR , C-T-R<a class="headerlink" href="#CTR" title="Permalink">&para;</a></dt>
<dd>
<p>See <a href="#CommitThenReview">CommitThenReview</a></p>
</dd>
<dt id="CVS">CVS<a class="headerlink" href="#CVS" title="Permalink">&para;</a></dt>
<dd>
<p>The Concurrent Versioning System, an older <a href="#version-control">version control
system</a>.</p>
</dd>
<dt id="Darwinism">Darwinism<a class="headerlink" href="#Darwinism" title="Permalink">&para;</a></dt>
<dd>
<p>See <a href="#SoftwareDarwinism">Software Darwinism</a>.</p>
</dd>
<dt id="Developer">Developer<a class="headerlink" href="#Developer" title="Permalink">&para;</a></dt>
<dd>
<p>A user who contributes to a project in the form of code or
documentation becomes a developer. They take extra steps to
participate in a project, are active on the developer mailing list,
participate in discussions, provide patches, documentation,
suggestions, and criticism. Developers are also known as
"contributors".</p>
</dd>
<dt id="Director">Director<a class="headerlink" href="#Director" title="Permalink">&para;</a></dt>
<dd>
<p>One of nine individuals elected annually by the <a href="#Member">members</a> to the
Foundation's <a href="#Board">board of directors</a>. Directors may or may not
have individual responsibilities, but all are generally expected to
stay informed about as much of the Foundation's operations and
activity as possible, since the Board provides oversight for the
Foundation as a whole.</p>
</dd>
<dt id="Emeritus">Emeritus<a class="headerlink" href="#Emeritus" title="Permalink">&para;</a></dt>
<dd>
<p>A term used to formally designate someone as no longer active, but
still entitled to many of the rights and privileges of the position.
For example, an ASF member who hasn't attended any membership meetings
for a long time is declared emeritus; someone who no longer has time
to work on a particular <a href="#Project">project</a> may declare themself
emeritus. Emeritus status indicates interest but not activity, as
opposed to having resigned.</p>
</dd>
<dt id="Evolution">Evolution<a class="headerlink" href="#Evolution" title="Permalink">&para;</a></dt>
<dd>
<p>Progress by gradual accumulation of small changes. Typical mode for
Apache projects. Compare <a href="#Revolution">Revolution</a>.</p>
</dd>
<dt id="ExecutiveSession">Executive Session<a class="headerlink" href="#ExecutiveSession" title="Permalink">&para;</a></dt>
<dd>
<p>A portion of a <a href="#Board">board</a> meeting which concerns confidential
matters and which therefore cannot be publicly minuted. Examples
include salary discussions, areas covered by non-disclosure
agreements, disciplinary actions, and some types of funding decisions.</p>
</dd>
<dt id="git">Git<a class="headerlink" href="#git" title="Permalink">&para;</a></dt>
<dd>
<p>A <a href="#version-control">version control system</a> used by the majority of ASF projects.</p>
</dd>
<dt id="Hackathon">Hackathon<a class="headerlink" href="#Hackathon" title="Permalink">&para;</a></dt>
<dd>
<p>Informal event at which ASF participants can get together, network,
and discuss/argue/hack/prototype according to their interests.
Hackathons are open to all <a href="#Committer">committers</a> and invited
contributors, and typically take place immediately preceding or
following the <a href="#ApacheCon">ApacheCon</a> events.</p>
</dd>
<dt id="Hibernation">Hibernation<a class="headerlink" href="#Hibernation" title="Permalink">&para;</a></dt>
<dd>
<p>Sleeplike state with a depressed metabolic rate. Sometimes used to
describe a <a href="#Project">project</a> with low levels of activity.</p>
</dd>
<dt id="Karma">Karma<a class="headerlink" href="#Karma" title="Permalink">&para;</a></dt>
<dd>
<p><strong>1.</strong> Sufficient access to perform an operation, such as committing
changes to a <a href="#version-control">version control</a>. ("Please grant Yo
Mega karma to the foo-bar.")
<strong>2.</strong> Respect and <a href="#Merit">merit</a> in
the <a href="#Community">community</a>. ("Al Faa and Ro Main have good karma because of the
careful and tactful way they make their points and the quality of their
technical contributions.")
<strong>3.</strong> Any combination of senses 1 and two; they are indirectly related.</p>
</dd>
<dt id="LazyConsensus">Lazy consensus<a class="headerlink" href="#LazyConsensus" title="Permalink">&para;</a></dt>
<dd>
<p>(Also called 'lazy approval'.) A decision-making policy which assumes
general consent if no responses are posted within a defined period.
For example, "I'm going to commit this by lazy consensus if no-one
objects within the next three days." Also see <a href="#ConsensusApproval">Consensus Approval</a> ,
<a href="#MajorityApproval">Majority Approval</a> , and the description of the <a href="voting.html">voting
process</a>.</p>
</dd>
<dt id="LicenseHeader">License Header<a class="headerlink" href="#LicenseHeader" title="Permalink">&para;</a></dt>
<dd>
<p>Text, at the top of a code file, referring to the license for the file (as opposed to including the complete
license text).</p>
</dd>
<dt id="MajorityApproval">Majority Approval<a class="headerlink" href="#MajorityApproval" title="Permalink">&para;</a></dt>
<dd>
<p>Refers to a <a href="#Vote">vote</a> (sense 1) which has completed with <strong>at
least three binding +1 votes</strong> and more +1 votes than -1 votes. (
<em>I.e.</em> , a simple majority with a minimum quorum of three positive
votes.) Note that in votes requiring majority approval a -1 vote is
simply a vote against, <strong>not</strong> a <a href="#Veto">veto</a>. Compare
<a href="#ConsensusApproval">Consensus Approval</a>. See also the description of the <a href="voting.html">voting
process</a>.</p>
</dd>
<dt id="Member">Member<a class="headerlink" href="#Member" title="Permalink">&para;</a></dt>
<dd>
<p>An individual who has been elected to membership in the ASF by the
existing members. Membership benefits include having a voice in
the functioning of the Foundation, and the ability to nominate and vote
on new Member candidates and on directors.</p>
</dd>
<dt id="Merit">Merit<a class="headerlink" href="#Merit" title="Permalink">&para;</a></dt>
<dd>
<p>The concept of 'merit' is central to the Apache philosophy and
<a href="#Community">community</a> methodology. Merit is a qualitative and
subjective term, referring to a combination of the
worth of one's accomplishments and the respect of one's
peers.</p>
<ul>
<li>technical competence</li>
<li>ability to get along with others</li>
<li>positive contributions to discussions and code</li>
</ul>
<p>The acquisition of merit is a cumulative process;
once acquired, it doesn't decay. It is possible to lose merit, though,
by violating community ethics, guidelines, or sensibilities.</p>
</dd>
<dt id="Meritocracy">Meritocracy<a class="headerlink" href="#Meritocracy" title="Permalink">&para;</a></dt>
<dd>
<p>Meritocracy is one of the principles underlying the ASF and its
philosophy. As it has been put, 'the more you do the more you are
allowed to do.' As a person acquires merit, their stature in the
<a href="#Community">community</a> and (to a certain extent) the weight
given to their opinions grow.</p>
</dd>
<dt id="Netiquette">Netiquette<a class="headerlink" href="#Netiquette" title="Permalink">&para;</a></dt>
<dd>
<p>Netiquette is the common rules of good online
behaviour. For the general case, it is defined in <a href="http://www.faqs.org/rfcs/rfc1855.html">IETF RFC
1855</a> ; for the more specific
Apache environment, it boils down to things like:</p>
<ul>
<li>don't flame</li>
<li>lurk for a while after joining a list before posting; this allows you to get a feel for the personalities,
attitudes, and issues, as well as existing rules for acceptable behaviour</li>
<li>be aware of the <a href="#Project">project</a> 's/list's guidelines (such as on voting), and don't violate them</li>
<li>if you have a question, search the list archives and the bug database before asking what may have already been answered&gt;</li>
</ul>
<p>These are just the rough outline of things that may be more (or less) the
rule on a per-list basis. They boil down to 'be polite' and 'don't
make unnecessary work for others'.</p>
</dd>
<dt id="NOTICE">NOTICE file<a class="headerlink" href="#NOTICE" title="Permalink">&para;</a></dt>
<dd>
<p>The NOTICE file in a software release package is reserved for a certain subset of legally-required notifications
which are not satisfied by either the text of LICENSE
or the presence of licensing information embedded within the bundled dependency.
See <a href="/dev/licensing-howto.html#mod-notice">NOTICE modifications</a>
Also section 4d of the <a href="/licenses/LICENSE-2.0">Apache License</a></p>
</dd>
<dt id="Officer">Officer<a class="headerlink" href="#Officer" title="Permalink">&para;</a></dt>
<dd>
<p>An individual appointed by the ASF Board of Directors and given
specific authority over and responsibility for some portion of the
Foundation's activities. An officer may or may not be a
<a href="#Board">director</a> of the Foundation.</p>
</dd>
<dt id="Package">Package (sometimes referred to informally as Tarball or Distribution)<a class="headerlink" href="#Package" title="Permalink">&para;</a></dt>
<dd>
<p>A <strong>Package</strong> is a compressed archive file created from a project's
source code with the intent to distribute.  Packages are typically either
source packages or binary packages built from source; sometimes separate
documentation packages are released alongside the source package.  Often
packages have external dependencies which may require additional
software be installed as a prerequisite.</p>
</dd>
<dt id="PEO">PEO<a class="headerlink" href="#PEO" title="Permalink">&para;</a></dt>
<dd>
<p><a href="https://en.wikipedia.org/wiki/Professional_employer_organization">Professional_employer_organization</a></p>
</dd>
<dt id="PMC">PMC<a class="headerlink" href="#PMC" title="Permalink">&para;</a></dt>
<dd>
<p>Project Management Committee, the group of people with formal
oversight of a <a href="#Project">project</a>. The chair of a PMC is always an
<a href="#Officer">officer</a> of the Foundation. As the PMC has official
oversight responsibilities assigned by the <a href="#Board">Board</a> , its
actions are considered to be on behalf of the Foundation, with all the
legal protections and responsibilities implied. See the
<a href="bylaws.html#6.3">Bylaws</a>.</p>
</dd>
<dt id="Podling">Podling<a class="headerlink" href="#Podling" title="Permalink">&para;</a></dt>
<dd>
<p>A <a href="#Codebase">codebase</a> and its <a href="#Community">community</a> while in the
process of being incubated. See the description of the <a href="http://incubator.apache.org/incubation/Process_Description.html">Incubation
process</a>.</p>
</dd>
<dt id="President">President<a class="headerlink" href="#President" title="Permalink">&para;</a></dt>
<dd>
<p>Primary executive officer of the <a href="#ASF">ASF</a> , serving at the
direction of the <a href="#Board">Board</a>.</p>
</dd>
<dt id="Project">Project<a class="headerlink" href="#Project" title="Permalink">&para;</a></dt>
<dd>
<p>In the Apache Software Foundation, the term ' <em>project</em> ' typically
refers to a <a href="#Community">community</a> focussed on one or more
<a href="#Codebase">codebases</a> , overseen by a <a href="#PMC">PMC</a>.</p>
</dd>
<dt id="ReleaseCandidate">Release Candidate<a class="headerlink" href="#ReleaseCandidate" title="Permalink">&para;</a></dt>
<dd>
<p>A source <a href="#Package">package</a> and other accompanying
<a href="#Artifacts">artifacts</a> to be inspected to see whether they are ready for release. The PMC then votes whether to release the candidate.</p>
</dd>
<dt id="ReleaseManager">Release Manager<a class="headerlink" href="#ReleaseManager" title="Permalink">&para;</a></dt>
<dd>
<p>The individual who takes responsibility for shepherding a release through
the release process to final distribution.  Any project
<a href="#Committer">committer</a> can serve as Release Manager.  Often abbreviated
as "RM".</p>
</dd>
<dt id="ReviewThenCommit">Review-Then-Commit<a class="headerlink" href="#ReviewThenCommit" title="Permalink">&para;</a></dt>
<dd>
<p>(Often referenced as 'RTC' or 'R-T-C'.) Commit policy which requires
that all changes receive <a href="#ConsensusApproval">consensus approval</a> before being
committed to the code base. Compare <a href="#CommitThenReview">C-T-R</a> , and see the
description of the <a href="voting.html">voting process</a>.</p>
</dd>
<dt id="Revolution">Revolution<a class="headerlink" href="#Revolution" title="Permalink">&para;</a></dt>
<dd>
<p>In the Apache environment, some communities may decide to permit (or
encourage) <em>revolutions</em> as ways of reconciling differences,
particularly code changes which have been blocked on a particular
branch by a veto. Originally described by James Duncan Davison in his
'Rules for Revolutionaries,' the concept has been adopted, formally or
informally, by at least one Apache <a href="#Project">project</a>. Essentially, a
revolution occurs when a group of committers decides to fork the
current main branch in order to work on problematic code or concepts.
This permits them to pursue it without disturbing the evolutionary
work on the main branch. A revolutionary branch may eventually be
merged back into the main branch, die out, split completely and become
a new main branch, or may absorb the current main branch into itself
(essentially no different than the first option). See the ' <a href="http://incubator.apache.org/learn/rules-for-revolutionaries.html">Rules for
Revolutionaries</a>
' and compare <a href="#Evolution">Evolution</a>.</p>
</dd>
<dt id="Release">Release<a class="headerlink" href="#Release" title="Permalink">&para;</a></dt>
<dd>
<p>A <strong>Release</strong> is a package offered to the general public by The Apache
Software Foundation.</p>
</dd>
<dt id="RTC">RTC , R-T-C<a class="headerlink" href="#RTC" title="Permalink">&para;</a></dt>
<dd>
<p>See <a href="#ReviewThenCommit">ReviewThenCommit</a></p>
</dd>
<dt id="SoftwareDarwinism">Software Darwinism<a class="headerlink" href="#SoftwareDarwinism" title="Permalink">&para;</a></dt>
<dd>
<p>A deceptively simple concept, often expressed as 'the best code
survives'. The <a href="#Evolution">evolutionary</a> processes inherent in the
Apache peer-review environment support this idea.</p>
</dd>
<dt id="SGA">Software Grant Agreement<a class="headerlink" href="#SGA" title="Permalink">&para;</a></dt>
<dd>
<p>See <a href="/licenses/#grants">details of SGAs</a>.</p>
</dd>
<dt id="STATUSfiles">STATUS files<a class="headerlink" href="#STATUSfiles" title="Permalink">&para;</a></dt>
<dd>
<p>Due to the noninteractive style of communication practised by most of
the Apache development projects, maintaining a record of decisions
made -- and in progress -- can be a useful thing. A number of the
Apache projects accomplish this through the use of a file, typically
named <code>STATUS</code> , stored in the project's own code repository. In
addition to keeping existing developers informed of current issues,
such files also provide useful information to new would-be developers
investigating the project.</p>
</dd>
<dt id="STV">STV<a class="headerlink" href="#STV" title="Permalink">&para;</a></dt>
<dd>
<p>Single Transferable Vote, used in Apache board elections for example.
See <a href="http://en.wikipedia.org/wiki/Single_Transferable_Vote">http://en.wikipedia.org/wiki/Single_Transferable_Vote</a></p>
</dd>
<dt id="Subversion">Subversion<a class="headerlink" href="#Subversion" title="Permalink">&para;</a></dt>
<dd>
<p>A <a href="#version-control">version control system</a> that is "a compelling
replacement for <a href="#CVS">CVS</a> ". A minority of projects use Subversion (SVN).</p>
</dd>
<dt id="SVN">SVN<a class="headerlink" href="#SVN" title="Permalink">&para;</a></dt>
<dd>
<p>See <a href="#Subversion">Subversion</a>.</p>
</dd>
<dt id="tabled">tabled<a class="headerlink" href="#tabled" title="Permalink">&para;</a></dt>
<dd>
<p>The term 'tabled' may be seen in minutes of Board meetings.
For example, "Special Order 7H, ... , was tabled."
In that context it means 'postponed' or 'deferred'.</p>
</dd>
<dt id="TLP">TLP<a class="headerlink" href="#TLP" title="Permalink">&para;</a></dt>
<dd>
<p>Top Level Project, see also <a href="#PMC">PMC</a></p>
</dd>
<dt id="Treasurer">Treasurer<a class="headerlink" href="#Treasurer" title="Permalink">&para;</a></dt>
<dd>
<p>The treasurer of the <a href="#ASF">ASF</a> is an <a href="#Officer">officer</a> of the
corporation, and is responsible for managing the funds and assets of
the Foundation, reporting tax information, and so on. The treasurer
need not be a <a href="#Member">member</a> of the Foundation, nor a
<a href="#Director">director</a>, though the role is often filled by someone who
is.</p>
</dd>
<dt id="Troll">Troll<a class="headerlink" href="#Troll" title="Permalink">&para;</a></dt>
<dd>
<p>Some definitions:</p>
<ul>
<li><a href="http://www.askdavetaylor.com/whats_a_troll_and_a_zombie.html">Gentle</a></li>
<li><a href="http://www.urban75.com/Mag/troll.html">Naughty</a></li>
<li><a href="http://en.wikipedia.org/wiki/Internet_trolls">Definitive</a></li>
</ul>
<p>For how to deal with trolls, see <a href="http://markmail.org/message/3wlpx2hafyeqdt4t">this thread</a> but (for those who
are impatient) here's <a href="http://markmail.org/message/sppexq2vcfewcm5a">Ted's opinion</a>
(which acts as a good summary).</p>
</dd>
<dt id="User">User<a class="headerlink" href="#User" title="Permalink">&para;</a></dt>
<dd>
<p>Someone who uses our software. Users 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>
</dd>
<dt id="version-control">Version Control System<a class="headerlink" href="#version-control" title="Permalink">&para;</a></dt>
<dd>
<p>Version control systems provide the ability to track (and potentially
revert) incremental changes to files, reporting them to a mailing list
as they are made, and can be used concurrently by many developers. All
of the Foundation's code and documentation are managed in such systems
thus providing a complete history for each codebase. See <a href="#git">Git</a>,
<a href="#Subversion">Subversion</a> and <a href="#CVS">CVS</a>.</p>
</dd>
<dt id="Veto">Veto<a class="headerlink" href="#Veto" title="Permalink">&para;</a></dt>
<dd>
<p>According to the Apache methodology, a change which has been made or
proposed may be blocked through the exercise of a veto by a
committer to the <a href="#Codebase">codebase</a> in question. If the
<a href="#ReviewThenCommit">R-T-C</a> commit policy is in effect, a veto prevents
the change from being made. In either the R-T-C or
<a href="#CommitThenReview">C-T-R</a> environments, a veto applied to a change
that has already been made forces it to be reverted. Vetoes may not be
overridden nor voted down, and only cease to apply when the committer
who issued the veto withdraws it. All vetoes <em>must</em> be accompanied by a
valid technical justification; a veto without such a justification is
invalid. In case of doubt, deciding whether a technical
justification is valid is up to the PMC. Vetoes force discussion
and, if supported, version control rollback or appropriate code changes. Vetoed code commits
are best reverted by the original committer, unless an urgent
solution is needed (e.g., build breakers). Vetoes only apply to
code or documentation changes; they do not apply to
procedural issues such as software releases.</p>
</dd>
<dt id="Vice-President">Vice-President<a class="headerlink" href="#Vice-President" title="Permalink">&para;</a></dt>
<dd>
<p><a href="#ASF">ASF</a> vice-presidents are <a href="#Officer">officers</a> of the
corporation, with authority over and responsibility for specific
areas of the Foundation's work. <a href="#PMC">PMC</a> <a href="#Chair">chairs</a> are
vice-presidents given charge of the proper operation of their
<a href="#Project">projects</a>.</p>
</dd>
<dt id="Vote">Vote<a class="headerlink" href="#Vote" title="Permalink">&para;</a></dt>
<dd>
<p><strong>1.</strong> The process of making a formal decision. ('The vote for foo
will close in three days.')</p>
<p><strong>2.</strong> The expression of a positive or
negative opinion, or a veto, as part of a formal decision. ('My vote
is -1 because foo smells bad.')</p>
<p><strong>Binding votes</strong> are those
cast by the PMC committers for the <a href="#Project">project</a> to which the
decision applies. Votes cast by others are advisory or indicative
only.<br/>See also <a href="#ConsensusApproval">ConsensusApproval</a> , <a href="#MajorityApproval">MajorityApproval</a>
, <a href="#LazyConsensus">LazyConsensus</a> , and the description of the <a href="voting.html">voting
process</a>.</p>
</dd>
</dl>

</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="https://tac.apache.org">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="https://privacy.apache.org/policies/privacy-policy-public.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.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>