<!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>ASF Highlights: 1999-2019</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>

<!-- 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="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="asf-highlights-1999-2019">ASF Highlights: 1999-2019<a class="headerlink" href="#asf-highlights-1999-2019" title="Permalink">&para;</a></h1>
<p>Celebrating over two decades of open source leadership promoting Community Over Code.</p>
<div id="toc"><ul><li><a class="toc-href" href="#early" title="Highlights: pre-1999">Highlights: pre-1999</a></li><li><a class="toc-href" href="#1999" title="Highlights: 1999">Highlights: 1999</a></li><li><a class="toc-href" href="#2000" title="Highlights: 2000">Highlights: 2000</a></li><li><a class="toc-href" href="#2001" title="Highlights: 2001">Highlights: 2001</a></li><li><a class="toc-href" href="#2002" title="Highlights: 2002">Highlights: 2002</a></li><li><a class="toc-href" href="#2003" title="Highlights: 2003">Highlights: 2003</a></li><li><a class="toc-href" href="#2004" title="Highlights: 2004">Highlights: 2004</a></li><li><a class="toc-href" href="#2005" title="Highlights: 2005">Highlights: 2005</a></li><li><a class="toc-href" href="#2006" title="Highlights: 2006">Highlights: 2006</a></li><li><a class="toc-href" href="#2007" title="Highlights: 2007">Highlights: 2007</a></li><li><a class="toc-href" href="#2008" title="Highlights: 2008">Highlights: 2008</a></li><li><a class="toc-href" href="#2009" title="Highlights: 2009">Highlights: 2009</a></li><li><a class="toc-href" href="#2010" title="Highlights: 2010">Highlights: 2010</a></li><li><a class="toc-href" href="#2011" title="Highlights: 2011">Highlights: 2011</a></li><li><a class="toc-href" href="#2012" title="Highlights: 2012">Highlights: 2012</a></li><li><a class="toc-href" href="#2013" title="Highlights: 2013">Highlights: 2013</a></li><li><a class="toc-href" href="#2014" title="Highlights: 2014">Highlights: 2014</a></li><li><a class="toc-href" href="#2015" title="Highlights: 2015">Highlights: 2015</a></li><li><a class="toc-href" href="#2016" title="Highlights: 2016">Highlights: 2016</a></li><li><a class="toc-href" href="#2017" title="Highlights: 2017">Highlights: 2017</a></li><li><a class="toc-href" href="#2018" title="Highlights: 2018">Highlights: 2018</a></li><li><a class="toc-href" href="#2019" title="Highlights: 2019">Highlights: 2019</a></li><li><a class="toc-href" href="#learnmore" title="Learn More">Learn More</a></li><li><a class="toc-href" href="#contact" title="Contact Us">Contact Us</a></li></ul></div>
<h3 id="early">Highlights: pre-1999<a class="headerlink" href="#early" title="Permalink">&para;</a></h3>
<p>Brian Behlendorf started collecting patches to be applied to the
last version of the NCSA http server. The Apache Group, consisting of 8
individuals, traded patches on a mailing list set up for the purpose. In
<strong>April of 1995</strong> the first public release of Apache (version 0.6.2)
came out. Apache 1.0 released on <strong>December 1, 1995</strong>, and within a year surpassed
NCSA as the most-used web server.</p>
<h3 id="1999">Highlights: 1999<a class="headerlink" href="#1999" title="Permalink">&para;</a></h3>
<p>The ASF formally incorporates as a Delaware-based 501(c)(3)
non-profit corporation from The Apache Group on 1 June. Original
directors are: Brian Behlendorf (President), Ken Coar (VP Conferences),
Roy T. Fielding (Chairman), Ben Hyde (VP Apache HTTP Server Project),
Jim Jagielski (Secretary and EVP), Ben Laurie, Sameer Parekh, Randy
Terbush (Treasurer), and Dirk-Willem van Gulik. New Apache Jakarta
and XML Projects join the Apache HTTP Server Project. Board Committees on
ASF Conferences, Licenses, and Security are formed. Discussions
about ASF's role as an Open Source incubator address fostering new
technologies such as Cocoon. The ASF receives numerous industry awards,
including the ACM Software System Award, the Datamation Product of
the Year, and LinuxWorld Editor's Award. ASF is listed in the Industry
Standard's "100 Companies That Matter" and included in the
ServerWatch Hall of Fame.</p>
<h3 id="2000">Highlights: 2000<a class="headerlink" href="#2000" title="Permalink">&para;</a></h3>
<p>Perl-Apache Project, as well as Apache PHP, Apache/TCL Project, and Apache
Portable Runtime Project are established. Apache Struts, Batik, FOP,
and Ant undergo "incubation". The ASF draws record attendance at the
second ApacheCon in Orlando (the first-ever conference was held in
San Francisco in 1998), and launches its first European event in London
later that year.</p>
<h3 id="2001">Highlights: 2001<a class="headerlink" href="#2001" title="Permalink">&para;</a></h3>
<p>Apache Avalon, Commons, and Jetspeed/Portals undergo "incubation". Work
begins on next version of the Apache License. The fourth ApacheCon
is held in Santa Clara, where the ASF maxim of "Community Over Code" is
widespread and collaborators meet in person for the very first time.
The ASF receives the Internet Service Providers Association's
Internet Industry Awards for "Best Software Supplier" Apache XML's Xalan-Java
1.2.2 is a finalist in the Best Java-XML Application category in the
JavaWorld Editors' Choice Awards.</p>
<h3 id="2002">Highlights: 2002<a class="headerlink" href="#2002" title="Permalink">&para;</a></h3>
<p>Participation in The ASF booms; its process for community and collaborative
development becomes known as "the Apache Way". New Board is formed:
Greg Stein elected Chairman, Dirk-Willem van Gulik as President,
Randy Terbush as Treasurer (later replaced that year by Chuck Murko), and Jim
Jagielski as Executive Vice President/Secretary. Apache Jakarta
launches sub-project BSF; the Apache Incubator Project is born: new
projects include Apache Ant, Avalon, DB, Forrest, HC, POI, and TCL.
Apache HTTP Server and Portable Runtime Project Management
Committees are reestablished. New Board Committees on Infrastructure as well as
Fundraising are formed. The ASF participates in the Java Community
Process. The fifth ApacheCon takes place in Las Vegas. The first community-driven
Apache Cocoon GetTogether is held.</p>
<h3 id="2003">Highlights: 2003<a class="headerlink" href="#2003" title="Permalink">&para;</a></h3>
<p>"Web 2.0" comes to the ASF; the Apache Web Services Project is formed.
New projects in the Apache Incubator include Directory, Geronimo, Gump,
James, Logging Services, Maven, Pluto, SpamAssassin, Tapestry, and XML
Beans. Perl-Apache Project is renamed to the Apache Perl Project,
and Cocoon becomes a Top Level Project. The sixth ApacheCon is held in Las
Vegas, featuring an expo exchange with COMDEX. The Apache HTTP
Server wins Best Server Software by Linux Format; Apache Ant wins Software
Development Magazine Jolt Product Excellence and Productivity Award,
the Java Pro Readers' Choice Award for Most Valuable Java Deployment
Technology, as well as the JavaWorld Editors' Choice Award for "Most
Useful Java Community-Developed Technology". JavaWorld also awards
Apache Xerces-J Editors' Choice for "Best Java XML Tool".
SpamAssassin wins the OSDir Editor's Choice Award. The Apache License v.1.2 is
released; all products of the Foundation are required to be
released under the new license.</p>
<h3 id="2004">Highlights: 2004<a class="headerlink" href="#2004" title="Permalink">&para;</a></h3>
<p>ASF Board members are re-elected: Greg Stein as Chairman, Dirk-Willem
van Gulik as President, Chuck Murko as Treasurer, and Jim Jagielski as
Executive Vice President/Secretary. The stable Apache License v.2.0
is released, and the ASF Contributor License Agreement (CLA) is expanded
to accommodate corporate donations. New Apache projects in the
Incubator include Beehive, Excalibur, Forrest, Gump, Hivemind,
iBatis, Lenya, myFaces, Portals, SpamAssassin, Struts, wsrp4J (Portals
sub-project), Xalan, XMLBeans, and XML Graphics. The Apache Commons
project is terminated, as well as the Project Management Committee
for Avalon. A New Public Relations Committee is established, and The ASF
issues a formal response regarding alleged JBoss IP infringement in
Geronimo. The PHP project amicably separates from The ASF, granting
all rights and responsibilities pertaining to its codebases to the PHP
Group. ApacheCon returns to Las Vegas for its seventh conference.
Apache Ant wins the Java Developer's Journal "Editors Choice Award".</p>
<h3 id="2005">Highlights: 2005<a class="headerlink" href="#2005" title="Permalink">&para;</a></h3>
<p>The ASF continues to be the community of choice to spearhead new
innovations through its Incubator. Numerous projects in development
include activeMQ, Apollo, Bridges, Continuum, Derby, Directory,
Felix, Harmony, Roller, stdcxx, Synapse, and Xerces; Apache Lucene graduates
as a Top Level Project. ApacheCon returns to Europe with the eighth
conference held in Stuttgart, Germany, followed by ApacheCon US in
San Diego.  Tomcat receives the SD Software Development Readers' Choice Awards for
"Best Open Source Tool"; Software Development Magazine's JOLT! Awards
recognize Apache Jakarta and Tomcat.</p>
<h3 id="2006">Highlights: 2006<a class="headerlink" href="#2006" title="Permalink">&para;</a></h3>
<p>A new Board of Directors is elected: Greg Stein and Jim Jagielski are
re-elected as Chairman and Executive Vice President/Secretary
respectively; Sander Striker joins the Board as President, and
Justin Erenkrantz is elected Treasurer. The Incubator matures, with new
projects created to meet growing industry interest in Open Source
solutions for enterprise resource planning and manage related business
processes. Projects undergoing incubation are Abdera, Archiva,
Cayenne, CXF, Hadoop, Harmony, HiveMind, Jackrabbit, MINA, ODE, OfBIZ, Open JPA,
Open EJB, Qpid, Santuario, Shale, Tapestry, Tiles, and Velocity;
Apache Cayenne, OFBiz, and Tiles graduate to become Top Level Projects later
that year. The Apache Security Team is re-established, a new Testing
project is established to oversee the creation of software related
to the domain of software testing; in addition, and the ASF launches new
Innovation Laboratories for the experimentation of new ideas
without Project bylaws or community building requirements. The ASF hosts
its tenth ApacheCon in Dublin, Ireland, followed by ApacheCon US in Austin,
and launches ApacheCon Asia in Colombo, Sri Lanka. The Foundation
establishes the Sponsorship program to help offset day-to-day
operating expenses; donations are accepted by both individual and corporate
contributors. SpamAssassin wins the Linux New Media Award, and
Tapestry was awarded Sun's annual Duke's Choice Award for outstanding Java
product innovation.</p>
<h3 id="2007">Highlights: 2007<a class="headerlink" href="#2007" title="Permalink">&para;</a></h3>
<p>The breadth and capability of The ASF is reflected in the largest
changeover its Board members since its incorporation: Jim Jagielski
is elected Chairman, Justin Erenkrantz as President, J. Aaron Farr as
Treasurer, and Sam Ruby as Executive Vice President/Secretary. New
projects continue to germinate, including Buildr, Camel, C++
Standard Library, Pig, Quetzalcoatl, ServiceMix, Synapse, and Tiles entering the
Incubator; Apache ActiveMQ, Commons (Jakarta), Felix,
HttpComponents, ODE, OpenEJB, OpenJPA, POI, Quetzalcoatl, Roller, ServiceMix, Turbine,
and Wicket graduate as Top Level Projects. The ASF establishes a
Legal Affairs Committee to manage legal policies, as well as a Travel
Assistance Committee to provide financial support to select individuals
otherwise unable to attend ApacheCon. The twelfth ApacheCon is
successfully held in Amsterdam, The Netherlands, followed by
ApacheCon US in Atlanta.</p>
<h3 id="2008">Highlights: 2008<a class="headerlink" href="#2008" title="Permalink">&para;</a></h3>
<p>The ASF re-elects Jim Jagielski, Justin Erenkrantz, and Sam Ruby to the
Board as Chairman, President, and Secretary respectively; Sander
Striker is elected Executive Vice President, and J. Aaron Farr is
Treasurer. HBase, Hive, and Zookeeper enter the Incubator; Apache
Abdera, Archiva, Buildr, Continuum, CouchDB, CXF, Hadoop, Qpid, and
Tuscany become Top Level Projects. The Apache Attic is established
to retire ASF projects that have reached their end of life through a
scalable process. Apache user gatherings continue to gain popularity,
with events hosted by projects that include Cocoon, Derby, Forrest,
Hadoop, Jakarta, OfBIZ, Pig, Wicket, among others. The fourteenth
ApacheCon is held in Amsterdam, The Netherlands, followed by
ApacheCon US in New Orleans, where sixty members of the community participate in
voluntourism efforts to help rebuild the City still suffering from
the effects of Hurricane Katrina. ApacheCon US also marks the expansion of
ASF-wide developer and user community events to include
"unconferences" such as BarCamps, GetTogethers, Symposia, and the first ASF Meet Up in
Beijing. Apache tops the Software Development Times 100 list of
Industry Influencers for the third year running in the category of
Application Servers, The ASF wins its third Member of the Year prize
awarded by the Java Community Process Program Management Office,
Apache SpamAssassin won the InfoWorld "Best Of Open Source Software" BOSSIE
Award, Apache Directory Studio finishes as runner-up for the Eclipse
Community Award's Best Open Source RCP Application, and barely six
months under incubation, Sling wins the JAX Innovation Award.</p>
<h3 id="2009">Highlights: 2009<a class="headerlink" href="#2009" title="Permalink">&para;</a></h3>
<p>The ASF announces Ten Years of Apache; celebrates a decade of
innovation in Open Source software and community development. Nearly 300 ASF
Members collaborate successfully with more than 2,000 Committers; 68
Top Level Projects, 35 initiatives in the Incubator, and 23 Labs
concepts are currently active at the Foundation.
<a href="http://www.eu.apachecon.com/c/aceu2009/">ApacheCon Europe 2009</a>
was held 23-27 March in Amsterdam, with the Hackathon (face-to-face
Apache project-related collaboration/development with ASF Members
and Committers) open to the public and including another BarCamp. 10th
Anniversary celebrations continued at
<a href="http://www.us.apachecon.com/c/acus2009/">ApacheCon US 2009</a>,
in Oakland 2-6 November, where both the <a href="https://blogs.apache.org/foundation/entry/governor_schwarzenegger_and_mayor_dellums">Governor of California and
the Mayor of Oakland congratulated Apache</a> on its success.</p>
<h3 id="2010">Highlights: 2010<a class="headerlink" href="#2010" title="Permalink">&para;</a></h3>
<p>The ASF hits its millionth code commit with a revision milestone today with a commit by ASF Member Yonik Seeley on behalf of the Apache Lucene Project. Apache Aries, Avro, Cassandra, Click, ESME, HBase, Hive, jUDDI, Karaf, Mahout, Nutch, OODT, Pig, Pivot, Shindig, Shiro, Subversion, Thrift, Tika, Traffic Server, UIMA, ZooKeeper become Top-level Projects. Alois, Amber, Bean Validation, Celix, Chukwa, Deltacloud, Gora, Isis, Jena, Kitty, Lucy, ManifoldCF, Mesos, NPanday, Nuvem, OODT, OpenNLP, SIS, Stanbol, Wave, Whirr, and Zeta Components entered the Apache Incubator. Milestone project releases include Cassandra 0.6, Cayenne 3.0, FOP 1.0, Maven 3.0, SpamAssassin 3.3.0, and Tomcat 7.0. Apache Excalibur, iBatis, Quetzalcoatl, and WSIF Projects were retired to the Attic. The ASF launches "Apache Extras" (hosted by Google) to provide a "home-away-from-home" for code associated with Apache projects. The ASF issued Public Statements about Apache Harmony as well
as Oracle's decision on the Java SE Technology Compatibility Kit's Field Of Use, and resigns from the Java Community Process Executive Committee. Shane Curcuru, Doug Cutting, Bertrand Delacretaz, Roy T. Fielding, Jim Jagielski, Sam Ruby, Noirin Shirley, Greg Stein, and Henri Yandell have been elected to serve on the ASF Board of Directors; Geir Magnusson, Jr., is named as replacement for Henri Yandell. ASF Director Greg Stein awarded O'Reilly Open Source Award at OSCON. New role of Executive Assistant has been created and staffed. 30 new ASF Members were elected this year. ASF Platinum Sponsors are Google, Microsoft, and Yahoo!; IBM joins Gold Sponsor Hewlett-Packard; Silver Sponsors are Cloudera, Progress Software and Springsource/VMWare, and Bronze Sponsors are BlueNog, Intuit, Joost, and Matt Mullenweg. ApacheCon North America took place in Atlanta, Georgia. BarCampApache in Sydney, Australia, was the first ASF-backed event to take place in the
Southern Hemisphere.</p>
<h3 id="2011">Highlights: 2011<a class="headerlink" href="#2011" title="Permalink">&para;</a></h3>
<p>Apache ACE, Chemistry, Deltacloud, JMeter, Libcloud, River, Whirr became Top-level Projects. More projects than ever submitted to become part of the Apache community: Accumulo, Airavata, Ambari, Any23, AWF, Bigtop, Bloodhound, Cordova, DeltaSpike, DirectMemory, EasyAnt, Flex, Flume, Giraph, HCatalog, Kafka, Kalumet, Lucene.Net, MRUnit, ODF Toolkit, OGNL, Oozie,   OpenMeetings, OpenOffice, Rave, S4, and Sqoop entered the Incubator. Apache Alois retired from the Incubator. Apache Harmony, Jakarta, and Xindice moved to the Attic. Milestone project releases include Cassandra 0.7 and 1.0, Geronimo v3.0-beta-1, Pivot 2.0, Subversion 1.7.0, Tika 1.0, and Turbine 4.0-M1. Apache TomEE is certified as Java EE 6 Web Profile Compatible. Apache UIMA and Hadoop advance data intelligence and semantic capabilities of Watson, IBM's "Smartest Machine on Earth" demonstrated in first-ever man vs. machine competition on Jeopardy! quiz show. Apache Hadoop wins
MediaGuardian&rsquo;s "Innovator of the Year" award. The ASF accepted to become an Affiliate at the Open Source Initiative. New Executive Committee is appointed: Doug Cutting as Chair, Greg Stein as Vice Chair, Jim Jagielski as President, Noirin Plunkett as Executive Vice President, Sam Ruby as Vice President - Infrastructure, Craig L Russell as Secretary, Sam Ruby as Assistant Secretary, and Geir Magnusson, Jr., as Treasurer. The ASF is subpoenaed by the United Stated District Court to produce documents in Oracle America vs. Google related to the use of Apache Harmony code in the Android software platform, and the unsuccessful attempt by Apache to secure an acceptable license to the Java SE Technology Compatibility Kit. The ASF issues statement on Apache OpenOffice.org (the first mature, end-user-facing Apache project) and Open Letter to the Open Document Format Ecosystem clarifying that its code base was not pursued by the ASF prior to its acceptance into
the Apache Incubator, and articulating the project&rsquo;s vision within the wider Open Document Format ecosystem. 42 new ASF Members were elected, bringing the active membership to 370 individuals and 2,663 Apache Commiters world-wide. ASF Platinum Sponsors are Google, Microsoft, and Yahoo!; AMD, Facebook, and Hortonworks join Gold Sponsors Hewlett-Packard and IBM; PSW Group joins Silver Sponsors Cloudera, Progress Software and Springsource/VMWare; and Liip AG, Lucid Imagination, Talend, and WANdisco join Bronze Sponsors BlueNog, Intuit, Joost, and Matt Mullenweg. ApacheCon North America took place in Vancouver, Canada.</p>
<h3 id="2012">Highlights: 2012<a class="headerlink" href="#2012" title="Permalink">&para;</a></h3>
<p>The ASF celebrated the 17th Anniversary of the Apache HTTP Server with the release of v2.4; the project maintains its standing as the world's most popular Web server, powering nearly 400 million sites. The Apache Incubator continues to gain momentum, with 85 podlings graduating over the past decade. Apache Accumulo, Airavata, Any23, Bigtop, BVal, Cordova, Creadur, DirectMemory, Empire-db, Flex, Flume, Giraph, Gora, Hama, ISIS, Jena, Kafka, Lucene.Net, Lucy, ManifoldCF, MRUnit, Oozie, OpenNLP, OpenOffice, Rave, SIS, Sqoop, Stanbol, Steve, Syncope, VCL, Wink, Wookie become Top-level Projects. Allura, Blur, CloudStack, Crunch, cTAKES, DeviceMap, Drill, Hadoop Development Tools, Helix, Marmotta, Ripple, Streams, and Syncope entered the Incbuator. Apache AWF, HISE, Kato, Kitty, and PhotArk retired from the Incubator. Milestone project releases include Deltacloud 1.0, Hadoop 1.0, Nutch 2.0, TomEE 1.0, Traffic Server 3.2, and Wicket 6.0. New Executive Committee
is appointed: Doug Cutting as Chair, Greg Stein as Vice Chair, Jim Jagielski as President, Ross Gardler as Executive Vice President, Craig L Russell as Secretary, Chris Mattmann as Treasurer, and Sam Ruby as Assistant Secretary. ASF Officers that now serve at the direction of the President are: Vice President, Brand Management; Vice President, Fundraising; Vice President, Marketing and Publicity; and Vice President, Conference Planning. The office of Vice President, Java Community Process is dissolved. 46 new ASF Members were elected this year. Citrix became an ASF Sponsor, joining Facebook, Google, Microsoft, and Yahoo! at the Platinum level; AMD, Hortonworks, HP, IBM, and Matt Mullenweg at the Gold level; GoDaddy, Huawei, and In Motion Hosting joined Basis Technology, Cloudera, PSW GROUP, SpringSource, and WANdisco at the Silver level; and Intuit and Twitter joined BlueNog, Digital Primates, Intuit, Joost, Liip AG SA Ltd, Lucid Imagination, Talend,
and Two Sigma Investments at the Bronze level. The ASF returned to Europe with the ApacheCon Europe Community Edition in Sinsheim, Germany, underwritten and hosted by SAP.</p>
<h3 id="2013">Highlights: 2013<a class="headerlink" href="#2013" title="Permalink">&para;</a></h3>
<p>Apache Ambari, Bloodhound, Chukwa, Clerezza, CloudStack, Crunch, cTAKES, Curator, DeltaSpike, Etch, Helix, jclouds, JSPWiki, Marmotta, Mesos, Oltu, Onami, OpenMeetings, graduate as Top-level Projects. Aurora, BatchEE, Curator, Falcon, jclouds, Knox, log4cxx2, MetaModel, MRQL, Olingo, Open Climate Workbench, Phoenix, Provisionr, Samza, Sentry, Sirona, Spark, Storm, Stratos, Tajo, Tez, Twill, Usergrid entered the Apache Incubator. Apache Provisionr retired from the Incubator. Milestone project releases include Cassandra 1.2 and 2.0, OpenOffice 4.0, and Subversion 1.8.0. Apache Struts 1 announces End-Of-Life, and recommends Struts 2 as successor. Apache C++ Standard Library (STDCXX), ESME, and XMLBeans moved to the Attic. The ASF issues a statement on Oracle's Technology Compatibility Kit License. Shane Curcuru, Doug Cutting, Bertrand Delacretaz, Roy Fielding, Jim Jagielski, Chris Mattmann, Brett Porter, Sam Ruby, and Greg Stein were elected to the ASF
Board of Directors. The office of Vice President, Conference Planning, was dissolved; committee was renamed to Events Planning. 36 new ASF Members were elected, bringing the active membership to 468 individuals. ASF Sponsors are Citrix, Facebook, Google, Microsoft, and Yahoo! at the Platinum level; AMD, Hortonworks, HP, IBM, and Matt Mullenweg at the Gold level; Basis Technology, Cloudera, GoDaddy, Huawei, InMotion Hosting, PSW GROUP, SpringSource, and WANdisco at the Silver level; and BlueNog, Digital Primates, Intuit, Joost, Liip AG SA Ltd, Lucid Imagination, Talend, Twitter, and Two Sigma Investments at the Bronze level. Freie Universit&auml;t Berlin (FUB) committed to become the provider of Apache server hosting and bandwidth in Europe. The ASF was accepted into the Google Summer of Code (GSoC) as a mentoring organization for the eighth consecutive year; hundreds of students have been mentored in "The Apache Way" under the guidance of the ASF Community
Development Project, with many continuing to be long-term code committers on a variety of Apache projects, as well as some active program participants elected as ASF Members. ApacheCon North America took place in Vancouver, Canada, marking the 25th event in the conference series.</p>
<h3 id="2014">Highlights: 2014<a class="headerlink" href="#2014" title="Permalink">&para;</a></h3>
<p>The ASF exceeded 2 Million code commits: the two millionth revision was by ASF Member Daniel Kulp on behalf of the Apache CXF Project. The Apache HTTP Server remains the world's leading Web server: the Netcraft September Web Server Survey exceeded a billion Websites, stating "Apache truly dominates this market, with more than half of all active sites choosing to use Apache software". Interest in Apache's projects continued to boom, accelerating development and participation by 100% in four years: Apache Allura, Celix, Knox, Olingo, Open Climate Workbench, Phoenix, Spark, Storm, Stratos, Tajo, Tez, VXQuery became Top-level Projects. Argus, Brooklyn, Calcite, DataFu, Flink, HTrace, Ignite, Johnzon, Lens, Parquet, REEF, Slider, Tamaya, and Taverna entered the Apache Incubator. Milestone project releases included Cayenne 3.1, CloudStack 4.3, Log4j 2, SpamAssassin 3.4.0, and Spark 1.0. Apache Click was retired to the Attic. Apache OpenOffice reached a major
adoption milestone with 100 million downloads. Apache TomEE won a Duke's Choice and Geek Choice Award; DeltaSpike, dubbed &ldquo;the Swiss Army Knife of modern Java EE&rdquo; won a Duke's Choice Award. The ASF Celebrated Document Freedom Day, with numerous Apache Projects supporting standards-based document accessibility and interoperability. Rich Bowen, Doug Cutting, Bertrand Delacretaz, Ross Gardler, Jim Jagielski, Chris Mattmann, Brett Porter, Sam Ruby, and Greg Stein were elected to the ASF Board of Directors. The ASF boasts 505 active Members and 4,081 Apache Committers. The ASF Infrastructure team continues to keep the ASF's multi-datacenter, multi-cloud deployment running 24x7x365 on multiple continents, distributing terabytes of artifacts per week and archiving more than 11 million Apache email messages. Apache's repositories changed greatly with the introduction of Git to the source code management system four years ago; since then the original
Subversion repository had been decentralized and augmented with 268 Git repositories, and a robust GitHub presence with 564 different repositories. In addition, the Infrastructure team launched a new status service that provides extensive information about the health of the Apache infrastructure and activity within its projects, as well as a new code signing service for Java, Windows and Android applications for any Apache project to use to sign their releases. The ASF provided new "Powered by Apache" graphical assets for Apache projects, developers, and users to identify their affiliation with products and initiatives under the Apache umbrella. The ASF continues to flourish thanks to support from Platinum Sponsors Citrix, Facebook, Google, Matt Mullenweg, Microsoft, and Yahoo!; Gold Sponsors Cloudera, Comcast, HP, Hortonworks, and IBM; Silver Sponsors Budget Direct, Cerner, Huawei, InMotion Hosting, Pivotal, Produban, and WANdisco; and Bronze Sponsors
Accor, Basis Technology, Bluehost, Cloudsoft Corporation, Samsung, Talend, and Twitter. The ASF decided to accept donations using Bitcoin, and received more than 90 transactions within 48 hours of opening its Bitcoin wallet. ApacheCon North America took place in Denver, Colorado, and ApacheCon Europe was held in Budapest, Hungary.</p>
<h3 id="2015">Highlights: 2015<a class="headerlink" href="#2015" title="Permalink">&para;</a></h3>
<p>Apache Projects continue to gain visibility and command industry attention: Gartner Magic Quadrant reports featured Apache projects more than 400 times throughout the year. The Apache HTTP Server celebrated its 21st Anniversary. The Apache Hadoop ecosystem continues to dominate the Big Data marketplace. Millions of people worldwide access the ASF's two dozen servers and 75 distinct hosts each day. The ASF averaged 16,000 monthly code commits. 175 committees managed 291 Top-level Projects (TLPs) and dozens of sub-projects; Apache Aurora, Brooklyn, Calcite, Groovy, Ignite, Kylin, Lens, NiFi, Orc, Parquet, REEF, Samza, Serf, Usergrid, Whimsy, Yetus, and Zest become Top-Level Projects. A record 55 podlings undergo development in the Apache Incubator, with new entrants Milagro, Myriad, Rya, S2Graph, SINGA, and Toree. Apache Labs features 39 initiatives. Apache DeltaCloud, DirectMemory, Lenya, Shindig, and Whirr retire into the Attic. Apache projects now overseen by 2,000+ Project Management Committee (PMC) members, with 743 repositories under management, and a 33% increase in signed Individual Contributor License Agreements (CLAs).
3,425 ASF Committers and 5,922 Apache code contributors (21% increase) added nearly 20M lines of code; average 18,000 code commits per month, and total 315,533,038 Lines of code changed (65% increase) during the year. Apache services run 24x7x365 at near 100% uptime on an annual budget of less than US$5,000 per project. New experiment with Github initiated to automate user management and group permissions for 5,000+ Apache users. New "Help Wanted" service launched to match volunteers with Apache projects and activities seeking assistance. 58 new individual ASF Members were elected. The ASF continued its longstanding relationship with Google Summer of Code (GSoC), where it has served as a mentoring organization since the program's creation in 2005. Countless GSoC students mentored in &ldquo;The Apache Way&rdquo; continue as long-term code committers on a variety of Apache projects, and some active program participants were elected as Members of the ASF. Apache Projects and their communities participated in hundreds of events globally across countless conferences, workshops, and regional MeetUps. ApacheCon spins its Big Data tracks to a co-located event, Apache:Big Data, and holds both events in Europe in Budapest. ApacheCon North America was held in Austin. Marketing &amp; Publicity launched new ASF brand identity. Trademarks, brand management, and legal support grew to accommodate dozens of existing and new projects. Organizational backing bolstered, with 37 ASF Sponsors and 11 Infrastructure partners. The ASF exited FY 2015 with revenue at $996K, ahead of projected budget.</p>
<h3 id="2016">Highlights: 2016<a class="headerlink" href="#2016" title="Permalink">&para;</a></h3>
<p>"With hundreds of projects and thousands of committers, the Apache Foundation has found stunning success without knuckling under to the software titans."
--Matt Asay, InfoWorld</p>
<p>The ASF has scaled 35,000% since its incorporation with very limited resources. ASF Membership has grown to 588 individuals and the number of Apache Committers increased to 5,427 collaborating across six continents. Apache Apex, Arrow, AsterixDB, Bahir, Beam, Eagle, Geode, Johnzon, Sentry, Tinkerpop, Twill, and Zeppelin graduated as new Top-Level Projects. Annotator, Edgent, Hivemall, NetBeans, Omid, OpenWhisk, Pony Mail, Sensoft, Spot, Tephra, and Weex are accepted into the Apache Incubator. Apache Etch, Onami, Rave, and Wookie retired to the Attic. 3,648 committers changed 96,315,588 lines of code over 278,959 commits. The Top 5 individual Apache projects with the highest repository activity by commits are, in order: Ambari, Camel, Ignite, Sling, and Spark. NetBeans enters the Apache Incubator with the highest repository in size at the ASF that year, with nearly 8 million lines of code. To manage the influx of infrastructure support activity, Greg Stein resigned from the Board of Directors and as Vice President Subversion to assume the role of Infrastructure Administrator alongside Vice President Infrastructure. Rich Bowen was appointed Vice President Conferences, and oversaw the co-located ApacheCon and Apache:Big Data North America in Vancouver and ApacheCon and Apache:Big Data Europe events in Seville. ASF Sponsors are Platinum: Cloudera, Facebook, Google, LeaseWeb, Microsoft, Pivotal, and Yahoo; Gold: ARM, Bloomberg, Comcast, Hortonworks, HP, IBM, ODPi, and PhoenixNap; Silver: Alibaba Cloud Computing, Capital One, Cerner, Confluent, Budget Direct, Huawei, InMotion Hosting, iSIGMA, Private Internet Access, Produban, Red Hat, Serenata Flowers, and Wandisco. The number of Bronze sponsors has also increased to 19 organizations, and the ASF&rsquo;s infrastructure sponsors hold steady with the support of 11 organizations.</p>
<h3 id="2017">Highlights: 2017<a class="headerlink" href="#2017" title="Permalink">&para;</a></h3>
<p>The ASF closes out the year with 318 projects + sub-projects (excluding Apache Labs initiatives): 193 Top-Level Projects and 53 podlings undergoing development in the Apache Incubator. Apache Atlas, CarbonData, DRAT, Fineract, Fluo,Guacamole, Impala, Juneau Kibble, MADlib, Metron, Mnemonic, Mynewt, PredictionIO, Ranger, RocketMQ, Royale, Streams, SystemML, Trafodion graduated as Top-Level Projects. Amaterasu, Crail, Daffodil, Gobblin, Heron, Livy, MXNet, PageSpeed, PLC4X, Ratis, SDAP, SkyWalking, and Superset entered the Apache Incubator. Apache Abdera, Ace, Stratos, and Wink retired to the Attic. The ASF&rsquo;s  Membership grows to 683 individuals, with a whopping 64 new Members elected this year. The total number of Apache Committers is 6,504; 6,165 of whom are active. Over the year, 3,050 Committers changed 60,276,457 lines of code over 188,262 commits. Top 5 committers, in order, are Shad Storhaug (2,472 commits; 1,465,542 lines changed); Claus Ibsen (2,406 commits; 560,595 lines changed); Jean-Baptiste Onofr&eacute; (2,142 commits; 1,243,862 lines changed); Mark Thomas (1,954 commits; 113,266 lines changed); and Colm &Oacute; h&Eacute;igeartaigh (1,768 commits; 521,215 lines changed). The Top 5 Apache Project repositories by commits are: Hadoop, Ambari, Lucene-Solr, Camel, and Ignite; and by size (lines of code): OpenOffice (6,375,345), NetBeans (5,536,881), Flex (whiteboard: 5,164,279; SDK 3,919,006), Trafodion (3,077,781), and Mynewt (core: 2,748.040). "If it didn't happen on-list, it didn't happen": 21,772 authors sent 1,617,547 emails on 642,005 topics across 1,131 mailing lists. Top 10 most active Apache mailing lists (user@ + dev@) are, in order: Flex, Lucene, Ignite, Kafka, Geode, Flink, Tomcat, Cassandra, Beam, and Sentry. Nearly 300 new monthly code contributors have signed up and 300-400 new people filed issues each month. 860 Individual Contributor License Agreements (ICLAs) and 27 Corporate Contributor License Agreements (CCLAs) were signed, and 18 Software Grants submitted by individuals and corporations donating existing software or documentation to Apache projects. The ASF was among the charities selected by Amazon for early access to Alexa Donations with Amazon Pay ("Alexa: make a donation to the Apache Software Foundation"). The ASF&rsquo;s Guidestar profile was elevated to Gold status. ASF Sponsors include Platinum: Cloudera, Comcast, Facebook, Google, LeaseWeb, Microsoft, Oath, and Pineapple Fund; Gold: Anonymous, ARM, Bloomberg, Hortonworks, Huawei, IBM, Indeed, ODPi, and Pivotal; Silver: Aetna, Budget Direct, Capital One, Cerner, Inspur, Private Internet Access, Red Hat, Target, and Union Investment; Bronze: Airport Rentals, The Blog Starter, Casino Bonus, Bookmakers, Casino2k, Emerio, HostChecka.com, HostingAdvice.com, HostPapa Web Hosting, The Linux Foundation, Mobile Slots, SCAMS.info, Site Builder Report, Twitter, and Web Hosting Secret Revealed. Work is underway on formalizing a Targeted Sponsorship program. ApacheCon North America was held in Miami, and was the last contracted event held in partnership with the Linux Foundation. Numerous members of Apache Community Development supported the ASF at existing conferences with booth presence and/or presentations on The Apache Way at OpenExpo Madrid, Solutions Hamburg, MesosCon Europe, Open Source Summit Paris, FOSDEM, GOTO Chicago, and Re;publica. The results of the Apache Committers Diversity Survey were presented at the Diversity Empowerment Summit in Prague. To support the ASF&rsquo;s presence at various global events, volunteers translated the ASF brochure from English to Catalan, French, Italian, German, Spanish, Russian, and Japanese. ASF Marketing &amp; Publicity held Media &amp; Analyst Trainings for ASF Directors and Officers and led a rigorous 5-month crisis communications campaign to support Apache Struts during the exposure and unraveling of the Equifax breach.</p>
<h3 id="2018">Highlights: 2018<a class="headerlink" href="#2018" title="Permalink">&para;</a></h3>
<p>Nearly 200M lines of code are under the ASF's stewardship, reinforcing the ongoing success of community-led development "The Apache Way". Total number of Apache projects + sub-projects grew to 328 (excluding Apache Labs initiatives), with 198 Top-Level Projects and 51 podlings undergoing development in the Apache Incubator. Apache Airflow, DataFu, Freemarker, Griffin, HAWQ, Joshua, Pulsar, ServiceComb, and Traffic Control graduated as Top-Level Projects. Apache Lucy, Oltu, Polygene, and Tiles entered the Attic. 19,435 authors sent 1,497,005 emails on 505,793 topics across 1,131 mailing lists. Overall Apache Committers totaled 7,032 (6,693 active), 730 of whom are individual ASF Members. 44 individuals were elected as new Members. 3,208 Apache Committers changed 78,493,228 lines of code over 201,220 commits. We also welcomed 4,638 new code contributors and 15,861 new issue/pull request contributors. An average of 387 new code contributors and 1,250 new people filed issues each month. A total of 831 ICLAs and 35 CCLAs were signed, and 25 Software Grants submitted. At the annual Members&rsquo; Meeting, Rich Bowen, Shane Curcuru, Bertrand Delacretaz, Isabel Drost-Fromm, Ted Dunning, Brett Porter, Roman Shaposhnik, Phil Steitz, and Mark Thomas were elected to the ASF Board of Directors. The ASF thanked Chris Mattmann and Jim Jagielski, who chose not to stand for re-election this year, and celebrated Jagielski's service as a member of the ASF Board for the past 19 years. New positions of Assistant Vice President Legal Affairs, Vice President Finance, and Vice President Data Privacy were established. The Board published the ASF Vision Statement, which serves as the basis for the ASF&rsquo;s 5-Year Strategic Plan. In addition, it established an extended budget to map against the plan. The ASF completed and passed its first-ever financial audit: unqualified; and reported change in net assets for FY2017-2018 of $548,630. Apache Conferences held an Apache Roadshow Europe co-located with FOSS Backstage in Berlin, and ApacheCon North America took place in Montreal, Canada. ASF Fundraising yielded a positive net income, and raised 150% of goals. The position of VP Sponsor Relations was established by VP Fundraising to help with day-to-day liaison with ASF Sponsors, who include Platinum: Cloudera, Comcast, Facebook, Google, LeaseWeb, Microsoft, Oath, Pineapple Fund, and Tencent Cloud; Gold: Anonymous, ARM, Bloomberg, Handshake, Hortonworks, Huawei, IBM, Indeed, Pivotal, and Union Investment; Silver: Aetna, Alibaba Cloud Computing, Baidu, Budget Direct, Capital One, Cerner, Inspur, ODPi, Private Internet Access, Red Hat, and Target; Bronze: Airport Rentals, Best VPN, The Blog Starter, Bookmakers, Cash Store, Casino Bonus, Casino2k, Cloudsoft, Emerio, Footprints Recruiting, HostChecka.com, HostingAdvice.com, HostPapa Web Hosting, The Linux Foundation, Mobile Slots, Mutuo Kredit AG, Online Holland Casino, RX-M, SCAMS.info, Site Builder Report, Talend, The Best VPN, Twitter, and Web Hosting Secret Revealed. ASF Targeted Sponsors provide the Foundation with contributions for specific activities or programs. Targeted Platinum: DLA Piper, Microsoft, Oath, OSU Open Source Labs, and Sonatype; Targeted Gold: Atlassian, The CrytpoFund, Datadog, PhoenixNAP, and Quenda; Targeted Silver: Amazon Web Services, HotWax Systems, and Rackspace; Targeted Bronze: Bintray, Education Networks of America, Google, Hopsie, No-IP, PagerDuty, Peregrine Computer Consultants Corporation, Sonic.net, SURFnet, and Virtru; ASF Fundraising also launched dedicated, semi-annual, &ldquo;Support Apache&rdquo; campaigns for individual giving.</p>
<h3 id="2019">Highlights: 2019<a class="headerlink" href="#2019" title="Permalink">&para;</a></h3>
<p>2019 kicked off with the "Apache in 2018 - By The Digits" report, highlighting the ASF&rsquo;s booming growth and Open Source community leadership. The first quarter of the year saw 1,588 committers change 12,791,559 lines of code across 39,989 commits.Entering the Apache Incubator are Hudi (Big Data), Training (Education), and TVM (Deep Learning). Apache Unomi (Customer Data Platform) graduated as a Top-Level Project. Apache Xalan was rebooted, coming out of retirement from the Attic. The "Success at Apache" blog series continues, with the addition of new ASF Sponsor case studies published featuring profiles on Gold Sponsor Bloomberg and Platinum Sponsor Leaseweb. ASF operations teams, including Infrastructure, Marketing &amp; Publicity, Brand Management, Conferences, and Travel Assistance continue to plan new budgets to map against the ASF 5-Year Plan. The ASF Sponsorship program continues to bolster the ASF&rsquo;s operations, with thanks to ASF Platinum Sponsors: Amazon Web Services, Cloudera, Comcast, Facebook, Google, Leaseweb, Microsoft, Pineapple Fund, Tencent Cloud, and Verizon Media. Gold: Anonymous, ARM, Bloomberg, Handshake, Huawei, IBM, Indeed, Pivotal, Union Investment, Workday. Silver: Aetna, Alibaba Cloud Computing, Baidu, Budget Direct, Capital One, Cerner, Inspur, ODPi, Private Internet Access, Red Hat, Target. Bronze: Airport Rentals, Best VPN, The Blog Starter, Bookmakers, Cash Store, Casino Bonus, Casino2k, Cloudsoft, Emerio, Footprints Recruiting, HostChecka.com, Host Advice, HostingAdvice.com, HostPapa Web Hosting, Mobile Slots, Mutuo Kredit AG, Online Holland Casino, PureVPN, RX-M, SCAMS.info, Site Builder Report, Talend, The Best VPN, Twitter, Web Hosting Secret Revealed. ASF Targeted Sponsors continue to support the Foundation with in-kind contributions for specific activities or programs in support of Apache projects and general ASF operations. Targeted Platinum: DLA Piper, Microsoft, OSU Open Source Labs, Sonatype, and Verizon Media. Targeted Gold: Atlassian, The CrytpoFund, Datadog, PhoenixNAP, and Quenda. Targeted Silver: Amazon Web Services, HotWax Systems, and Rackspace; Targeted Bronze: Bintray, Education Networks of America, Google, Hopsie, No-IP, PagerDuty, Peregrine Computer Consultants Corporation, Sonic.net, SURFnet, and Virtru. The ASF is a Google Summer of Code mentoring organization for the 15th consecutive year and is in the process of accepting student project applications. Apache Roadshow/DC, the first of four official Apache events, took place in March 2019; Apache Roadshow/Chicago will take place in May, ApacheCon North America is scheduled for September in Las Vegas, and ApacheCon Europe is scheduled for October in Berlin. Preparations are underway for the ASF&rsquo;s 20th Anniversary on 26 March. The Annual ASF Members&rsquo; meeting will also take place that day, and will include elections for new Members and Board of Directors.</p>
<h3 id="learnmore">Learn More<a class="headerlink" href="#learnmore" title="Permalink">&para;</a></h3>
<p>As a non-profit corporation built upon collaborative consensus, we
strive to keep records open and to document what we do. Some other resources to
find out about the history of the ASF include:</p>
<ul>
<li><a href="/foundation/board/calendar.html">Board Minutes</a></li>
<li><a href="/foundation/records/">Formal Corporate Records</a></li>
<li><a href="/history/">ASF History</a></li>
<li><a href="/memorials/">Community Memorials</a></li>
</ul>
<h3 id="contact">Contact Us<a class="headerlink" href="#contact" title="Permalink">&para;</a></h3>
<p>For any issues not addressed in the individual links above, you may
<a href="mailto:press@apache.org?subject=[Highlights]%20I%20need%20more%20highlights">contact us</a>.
All technical questions or questions about
<a href="http://projects.apache.org/">individual projects</a>
should always be directed to the appropriate
<a href="/foundation/mailinglists.html">project mailing list</a>.
You may also
<a href="/foundation/contact.html">contact The ASF</a>
via hardcopy mail or fax as well.</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>