<!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">

  <meta property="og:url" content="https://www.apache.org/">
  <meta property="og:type" content="website">
  <meta property="og:title" content="Apache Corporate Governance - Board of Directors">
  <meta property="og:description" content="Home page of The Apache Software Foundation">
  <meta property="og:image" content="https://www.apache.org/foundation/press/kit/asf-estd-1999-logo.svg">

  <meta name="twitter:card" content="summary_large_image">
  <meta property="twitter:domain" content="apache.org">
  <meta property="twitter:url" content="https://www.apache.org/">
  <meta name="twitter:title" content="Apache Corporate Governance - Board of Directors">
  <meta name="twitter:description" content="Home page of The Apache Software Foundation">
  <meta name="twitter:image" content="https://www.apache.org/foundation/press/kit/asf-estd-1999-logo.svg">

  <title>Apache Corporate Governance - Board of Directors</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 -->  <!-- Matomo -->
  <script>
    var _paq = window._paq = window._paq || [];
    /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
    /* We explicitly disable cookie tracking to avoid privacy issues */
    _paq.push(['disableCookies']);
    /* Measure a visit to flink.apache.org and nightlies.apache.org/flink
as the same visit */
    _paq.push(['trackPageView']);
    _paq.push(['enableLinkTracking']);
    (function() {
      var u="//analytics.apache.org/";
      _paq.push(['setTrackerUrl', u+'matomo.php']);
      _paq.push(['setSiteId', '37']);
      var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
      g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
    })();
  </script>
  <!-- End Matomo Code -->

</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">
          <div class="upper-nav">
            <div class="header-social-icons">
              <a target="_blank" href="https://infra.apache.org/slack.html"><img src="/images/slack-icon.svg" alt="slack icon"></a>
              <a target="_blank" href="https://github.com/apache"><img src="/images/github-mark-white.svg" alt="github icon"></a>
              <a target="_blank" href="https://www.linkedin.com/company/the-apache-software-foundation/"><img src="/images/linkedin-icon.png" alt="linkedIn icon"></a>
              <a target="_blank" href="https://www.youtube.com/c/TheApacheFoundation"><img src="/images/youtube-icon.svg" alt="youtube icon"></a>
              <a target="_blank" href="https://twitter.com/TheASF"><img src="/images/x-icon.svg" alt="X icon"></a>
            </div>
            <a href="/foundation/sponsorship" class="btn btn-default" onclick="_paq.push(['trackEvent', 'click', 'SponsorASF Button']);">Sponsor the ASF</a>
          </div>
          <ul class="nav navbar-nav navbar-justified">
            <li class="dropdown">
              <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/" target="_blank">Contributor Getting Started</a></li>
                <li><a href="https://community.apache.org/contributors/" target="_blank">Becoming a Committer</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="/community-resources/">Community Resources</a></li>
                <li><a href="https://communityovercode.org/" target="_blank">Community Over Code</a></li>
                <li><a href="https://events.apache.org/" target="_blank">Events</a></li>
                <li><a href="https://www.redbubble.com/people/comdev/shop" target="_blank">Store</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <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="/projects">Projects</a></li>
                <li><a href="https://incubator.apache.org/" target="_blank">Incubator Projects</a></li>
                <li><a href="https://projects.apache.org/" target="_blank">Projects Directory </a></li>
                <li><a href="/foundation/mailinglists">Mailing Lists </a></li>
                <li><a href="/security">Report a Vulnerability</a></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/" target="_blank">Distributions</a></li>
                <li><a href="https://projects.apache.org/releases.html" target="_blank">Releases</a></li>
                <li><a href="https://status.apache.org/" target="_blank">Infrastructure Status</a></li>
                <li><a href="https://infra-reports.apache.org/#uptime" target="_blank">Infrastructure Statistics</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Learn&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://news.apache.org/" target="_blank">Blog</a></li>
                <li><a href="/foundation/how-it-works">How the ASF Works</a></li>
                <li><a href="/theapacheway/">The Apache Way</a></li>
                <li><a href="/legal/">Legal &amp; Trademark</a></li>
                <li><a href="/licenses">Licenses</a></li>
                <li><a href="/foundation/glossary">Glossary</a></li>
                <li><a href="/foundation/faq">FAQ</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Resources &amp; Tools&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/dev/">Developer Information</a></li>
                <li><a href="https://cwiki.apache.org/" target="_blank" >Wiki</a></li>
                <li><a href="https://issues.apache.org/" target="_blank" >Issues</a></li>
                <li><a href="https://infra.apache.org/slack.html" target="_blank" >Slack</a></li>
                <li><a href="https://selfserve.apache.org/" target="_blank" >Self Serve Portal</a></li>
                <li><a href="https://infra.apache.org/" target="_blank" >Infrastructure</a></li>
                <li><a href="https://whimsy.apache.org/" target="_blank" >Whimsy</a></li>
                <li><a href="/foundation/press/kit/">Brand Guidelines</a></li>
                <li><a href="/logos/">Project Logos</a></li>
              </ul>
            </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/">About</a></li>
                <li><a href="/foundation/sponsors">Our Sponsors</a></li>
		<li><a href="/foundation/sponsorship">Corporate Sponsorship</a></li>
                <li><a href="/foundation/individual-supporters">Individual Supporters</a></li>
                <li><a href="/foundation/leadership">Leadership</a></li>
                <li><a href="/foundation/members">Members</a></li>
                <li><a href="https://diversity.apache.org/" target="_blank">Diversity & Inclusion</a></li>
                <li><a href="/press/">Newsroom</a></li>
                <li><a href="/foundation/contact">Contact</a></li>
              </ul>
            </li>
            
           
            
            <li class="dropdown">
              <a href="#" class="dropdown-toggle hidden-xs" 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">

    </div>
 
  </header>
  <main id="maincontent">
<div class="container">    <h1 id="apache-corporate-governance-board-of-directors">Apache Corporate Governance - Board of Directors<a class="headerlink" href="#apache-corporate-governance-board-of-directors" title="Permalink">&para;</a></h1>
<p>The Board of Directors sets overall policy for the Apache Software Foundation and
delegates execution and specific policy areas to individual officers
and Project Management Committees.</p>
<p><strong>Contents</strong></p>
<div id="toc"><ul><li><a class="toc-href" href="#organization" title="Organization">Organization</a></li><li><a class="toc-href" href="#legal" title="Legal">Legal</a></li><li><a class="toc-href" href="#communication" title="Communication">Communication</a></li><li><a class="toc-href" href="#meetings" title="Meetings">Meetings</a></li><li><a class="toc-href" href="#merit" title="Merit">Merit</a></li><li><a class="toc-href" href="#community" title="Community">Community</a></li><li><a class="toc-href" href="#technical" title="Technical">Technical</a></li><li><a class="toc-href" href="#references" title="References">References</a></li></ul></div>
<h2 id="organization">Organization<a class="headerlink" href="#organization" title="Permalink">&para;</a></h2>
<p>The board consists of nine directors, each serving as an individual.
After each annual board election, the board chooses a Board Chair from its ranks. The
selection of a new Board Chair and other executive officers typically takes place a couple of months after the board election, to give the new
board a chance to get to know one another.</p>
<p>The board meets by conference call and IRC chat monthly. The agenda is published
privately to the Membership. Each corporate officer makes a monthly written
report to the board, and every Project Management Committee (PMC) makes a
quarterly written report to the board. In this way, the PMCs report directly to
the board, not to the President or other corporate officers. All ASF Members and
invited guests are welcome at board meetings, except during very rare executive
sessions of the board.</p>
<p>The normal <a href="/foundation/board/calendar">monthly board agenda</a> includes 10+ corporate officer reports, 60+
PMC reports, and often a handful of official resolutions. To ease the review
process, reports are due well before the meeting begins, and many
directors "preapprove" reports by initialing them in the agenda file before the
meeting. Each PMC report is assigned a director to serve as "shepherd" for the
month; the shepherd takes any questions raised before or during the meeting to the relevant officer or PMC for an answer or resolution. PMCs that report
late or where serious questions are raised during the meeting may be asked to
provide an additional report at the next monthly meeting.  The board
uses the Apache Whimsy tool to <a href="/foundation/board/meeting">simplify many steps during the meeting process</a>.</p>
<p>The President is responsible for managing day-to-day operations, and
provides direction for the VP, Infrastructure who is responsible for ensuring the maintenance of the
servers and services.  The VP, Infrastructure directs<br/>
a team of system administrator contractors, and is assisted part time by a
number of volunteer sysadmins.  Some corporate officers report directly to the
President and provide a monthly report; the President rolls up all reports for
the board on a monthly basis.  This way, the board provides oversight for all
operations and project activities.</p>
<h2 id="legal">Legal<a class="headerlink" href="#legal" title="Permalink">&para;</a></h2>
<p>Article V. of the ASF bylaws specifies a Board of nine Directors, elected
annually by the ASF Membership. The Apache Board is much like the board of
directors of any other corporation, responsible for -- management of the
corporate assets (funds, intellectual property, trademarks, and support
equipment) and allocation of corporate resources to projects.</p>
<p>The board is responsible for appointing any officers of the ASF, including
executive officers -- President, Secretary, Treasurer -- and other officers, both
those with corporate functions (Legal, Publicity), and Vice Presidents of
individual Apache projects. The board also sets overall policy for Apache
projects, or in many cases, delegates the details of policy setting and
implementation to specific corporate officers. The board uses official resolutions to
appoint or change officer positions, create new Top Level Projects (TLPs) or
retire unused projects, and in certain cases to make fundamental policy
decisions. Most policy is simply agreed upon by the board and any relevant
officer(s), and published on our website.</p>
<h2 id="communication">Communication<a class="headerlink" href="#communication" title="Permalink">&para;</a></h2>
<p>With the exception of monthly conference calls, board communication takes place over
private email lists. The <a href="mailto:board@apache.org">board@apache.org</a> email list is the primary place for
where official business. All directors, corporate officers and PMC
chairs are expected to subscribe to this email list and to track issues relevant
to their areas of responsibility. Many ASF Members also participate, comment,
and help resolve issues where appropriate.</p>
<p>Directors regularly read and participate on various project email lists
when a board-level issue or question has been raised. They may particiapte wearing their board hat: i.e. as a strategic voice, addressing broad ASF
policies or important community health issues. Directors participate technically
in Apache projects as individuals: directors are not automatically granted
committerships, PMC memberships, or even binding votes on any project matters.
Directors wishing to influence the technical work of a project must gain merit
and be voted in as a committer to that specific project, as is any other
contributor.  When the board as a whole makes a formal request, the director
conveying the request makes it clear it is an act of the board, not just of one director.</p>
<h2 id="meetings">Meetings<a class="headerlink" href="#meetings" title="Permalink">&para;</a></h2>
<p>The board exercises oversight of Apache Projects by reviewing project reports at
the monthly board meeting, and by monitoring changes to PMC membership. When
PMCs have voted in and nominated a new committer to serve on the PMC, they
notify the board of the addition. The appointement is official once the
canonical PMC membership roster is updated to reflect the change.</p>
<p>PMCs are expected to provide accurate and thorough reports to the board of their
community health and technical and software release activities. Projects that do
not report or have serious issues in their report will be contacted by that
month's shepherd or another director to find a resolution. In extreme cases,
where a PMC is dysfunctional or is not following required Apache policies, the
board may unilaterally make changes to the PMC or may dissolve a project to
correct the issue.</p>
<p>A detailed <a href="/foundation/board/meeting">description of the board meeting process</a> is published.</p>
<h2 id="merit">Merit<a class="headerlink" href="#merit" title="Permalink">&para;</a></h2>
<p><a href="/foundation/governance/meetings#boardvoting">Board elections</a> are held annually; currently, each board seat is for one year,
so all nine directorships are voted on annually. ASF Members are eligible to
nominate people for board seats and to vote in the board election.
Director candidates run individually, and Member votes are currently cast by
Single Transferable Vote (STV). All nominations, position statements, and
voting are conducted electronically either over private mailing lists or using
our own software for casting votes. Individual votes are kept anonymous,
although the full STV calculations are published privately amongst the
Membership.</p>
<p>In the past, only existing Members with some history within the ASF have been
nominated. While the bylaws allow for any person to be nominated for the board,
the amount of trust and expected experience with the Apache Way for directors
is such that nominees outside of the existing Membership are unlikely for the
time being.</p>
<p>For the first several years after incorporation the board was quite stable,
with a majority continuing to serve repeatedly. As the ASF grew in membership
around 2004, the board began to change somewhat, with a few new faces appearing
each year. Jim Jagielski, one of the founders of the ASF, has remained on the
board since its beginning.</p>
<p>Directors are expected to serve as individuals on the board, representing the
Membership and acting in the best interests of the ASF as a whole. Directors
are expected to disclose any conflicts of interest they may have due to their
current employment, and recuse themselves when necessary from votes or
potentially discussions on subjects they have a conflict with.</p>
<h2 id="community">Community<a class="headerlink" href="#community" title="Permalink">&para;</a></h2>
<p>While Directors participate in a variety of communities both within and outside
of the ASF, the primary community home for directors is the Membership. Most
directors follow the main private Members mailing list, where any ASF Member may
start discussions about a wide variety of topics, from new
technologies, policy ideas, questions about project communities, to
personal announcements of weddings and births.</p>
<p>From time to time Directors participate in the communities of various Apache
projects when a board-level issue or question is raised; however they do so
wearing their individual Director hat. Many Directors are separately committers
or PMC members on a variety of Apache projects, where they do technical and
community work just like any other committer, wearing a committer hat.</p>
<p>Many Directors also serve in the public community as spokespeople for
the Apache Way granting interviews about the ASF or our projects, or
reviewing other open source or charitable foundation works.</p>
<h2 id="technical">Technical<a class="headerlink" href="#technical" title="Permalink">&para;</a></h2>
<p>The board does not provide technical direction for any of its projects or
activities. The board does set broad policies -- for example, requiring that projects use source control systems that run on ASF hardware controlled by ASF
Infrastructure. Technical direction, in terms of how to implement
infrastructure or what code projects should work on, is all delegated to the
PMCs or relevant officers.</p>
<p>While this may be a surprise to some, it is a key reflection of how the ASF
is intentionally structured to provide maximum freedom to its projects. The
board and the ASF are happy to provide a home to any software project
communities that are willing to follow the Apache Way. The mission of the ASF
is to provide software for the common good: we help like-minded
communities provide that software, are confident that communities will form
around software that is useful, and understand that there are many different
ways to effectively and collaboratively build software.</p>
<h2 id="references">References<a class="headerlink" href="#references" title="Permalink">&para;</a></h2>
<ul>
<li>Who They Are: <a href="/foundation/board/">Current Directors</a></li>
<li>Who They Are: <a href="/foundation/">Current ASF Officers</a></li>
<li><a href="/foundation/bylaws.html">Bylaws of the ASF</a></li>
<li><a href="/foundation/board/calendar.html">Board Meeting Calendar And Past Minutes</a></li>
<li><a href="/history/directors.html">History of Past Directors</a></li>
<li><a href="/foundation/how-it-works.html">How the ASF Works: official documentation</a></li>
<li><a href="/foundation/governance/meetings#boardvoting">How Directors Are Elected</a></li>
</ul>

</div>  </main>

  <!-- Footer -->
  <footer class="bg-primary">
    <div class="container">
      <div class="row">
        <br />
        <div class="col-sm-2">
          <h5 class="white">Community</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="https://community.apache.org/" target="_blank">Contributor Getting Started</a></li>
            <li><a href="https://community.apache.org/contributors/" target="_blank">Becoming a Committer</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="/community-resources/">Community Resources</a></li>
            <li><a href="https://communityovercode.org/" target="_blank">Community Over Code</a></li>
            <li><a href="https://events.apache.org/" target="_blank">Events</a></li>
            <li><a href="https://www.redbubble.com/people/comdev/shop" target="_blank">Store</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Projects</h5>
          <ul class="list-unstyled white" role="menu">
              <li><a href="/projects">Projects</a></li>
              <li><a href="https://incubator.apache.org/" target="_blank">Incubator Projects</a></li>
              <li><a href="https://projects.apache.org/" target="_blank">Projects Directory </a></li>
              <li><a href="/foundation/mailinglists">Mailing Lists </a></li>
              <li><a href="/security">Report a Vulnerability</a></li>
          </ul>
        </div>
        <div class="col-sm-2">
          <h5 class="white">Downloads</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="https://downloads.apache.org/" target="_blank">Distributions</a></li>
            <li><a href="https://projects.apache.org/releases.html" target="_blank">Releases</a></li>
            <li><a href="https://status.apache.org/" target="_blank">Infrastructure Status</a></li>
            <li><a href="https://infra-reports.apache.org/#uptime" target="_blank">Infrastructure Statistics</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Learn</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="https://news.apache.org/" target="_blank">Blog</a></li>
            <li><a href="/foundation/how-it-works">How the ASF Works</a></li>
            <li><a href="/theapacheway/">The Apache Way</a></li>
            <li><a href="/legal/">Legal &amp; Trademark</a></li>
            <li><a href="/licenses">Licenses</a></li>
            <li><a href="/foundation/glossary">Glossary</a></li>
            <li><a href="/foundation/faq">FAQ</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Resources &amp; Tools</h5>
          <ul class="list-unstyled white" role="menu">
              <li><a href="/dev/">Developer Information</a></li>
              <li><a href="https://cwiki.apache.org/" target="_blank" >Wiki</a></li>
              <li><a href="https://issues.apache.org/" target="_blank" >Issues</a></li>
              <li><a href="https://infra.apache.org/slack.html" target="_blank" >Slack</a></li>
              <li><a href="https://selfserve.apache.org/" target="_blank" >Self Serve Portal</a></li>
              <li><a href="https://infra.apache.org/" target="_blank" >Infrastructure</a></li>
              <li><a href="https://whimsy.apache.org/" target="_blank" >Whimsy</a></li>
              <li><a href="/foundation/press/kit/">Brand Guidelines</a></li>
              <li><a href="/logos/">Project Logos</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">About</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/foundation/">About</a></li>
            <li><a href="/foundation/sponsors">Our Sponsors</a></li>
	    <li><a href="/foundation/sponsorship">Corporate Sponsorship</a></li>
            <li><a href="/foundation/individual-supporters">Individual Supporters</a></li>
            <li><a href="/foundation/leadership">Leadership</a></li>
            <li><a href="/foundation/members">Members</a></li>
            <li><a href="https://diversity.apache.org/" target="_blank">Diversity & Inclusion</a></li>
            <li><a href="/press/">Newsroom</a></li>
            <li><a href="/foundation/contact">Contact</a></li>
            <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="_blank">Privacy Policy</a></li>
          </ul>
        </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>