<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.8-dev">
<meta name="Forrest-skin-name" content="pelt">
<title>Who we are</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
<link type="text/css" href="skin/profile.css" rel="stylesheet">
<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
    |breadtrail
    +-->
<div class="breadtrail">
<a href="http://www.apache.org/">apache</a> &gt; <a href="http://forrest.apache.org/">forrest</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
    |header
    +-->
<div class="header">
<!--+
    |start group logo
    +-->
<div class="grouplogo">
<a href="http://www.apache.org/"><img class="logoImage" alt="Apache" src="images/apache-forrest.png" title="The Apache Software Foundation"></a>
</div>
<!--+
    |end group logo
    +-->
<!--+
    |start Project Logo
    +-->
<div class="projectlogo">
<a href="http://forrest.apache.org/"><img class="logoImage" alt="Forrest" src="images/project-logo.gif" title="Apache Forrest"></a>
</div>
<!--+
    |end Project Logo
    +-->
<!--+
    |start Search
    +-->
<div class="searchbox">
<form action="http://www.google.com/search" method="get" class="roundtopsmall">
<input value="forrest.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
                    <input name="Search" value="Search" type="submit">
</form>
</div>
<!--+
    |end search
    +-->
<!--+
    |start Tabs
    +-->
<ul id="tabs">
<li class="current">
<a class="selected" href="index.html">Welcome</a>
</li>
<li>
<a class="unselected" href="contrib.html">Developers</a>
</li>
<li>
<a class="unselected" href="versions/index.html">Versioned Docs</a>
</li>
<li>
<a class="unselected" href="pluginDocs/index.html">Plugins</a>
</li>
<li>
<a class="unselected" href="tools/index.html">Tools</a>
</li>
</ul>
<!--+
    |end Tabs
    +-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
    |start Subtabs
    +-->
<div id="level2tabs"></div>
<!--+
    |end Endtabs
    +-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
//  --></script>
</div>
<!--+
    |breadtrail
    +-->
<div class="breadtrail">

             &nbsp;
           </div>
<!--+
    |start Menu, mainarea
    +-->
<!--+
    |start Menu
    +-->
<div id="menu">
<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">About</div>
<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="index.html" title="Welcome and introduction">About Forrest</a>
</div>
<div class="menuitem">
<a href="linkmap.html" title="Table of Contents for all Forrest documentation">Documentation ToC</a>
</div>
<div class="menuitem">
<a href="http://forrest.apache.org/mirrors.cgi" title="Download a release from your nearest mirror or get the latest from SVN">Download</a>
</div>
<div class="menuitem">
<a href="mail-lists.html" title="Discussion mail lists are the heart of the project: dev, user, svn">Mail lists and discussion</a>
</div>
<div class="menuitem">
<a href="license.html" title="Notes and FAQs about the licensing">License</a>
</div>
<div class="menuitem">
<a href="forrest-contract.html" title="What each party can expect">Our contract</a>
</div>
<div class="menuitem">
<a href="compliance.html" title="Declare the status of HTML, WAI, CSS compliance">Standards compliance</a>
</div>
<div class="menuitem">
<a href="forrest-issues.html" title="List of currently open issues">Open issues</a>
</div>
<div class="menupage">
<div class="menupagetitle">Who we are</div>
</div>
<div class="menuitem">
<a href="flyer.html" title="One-page description">Flyer</a>
</div>
<div class="menuitem">
<a href="live-sites.html" title="Some sites created using Apache Forrest technology">Example sites</a>
</div>
<div class="menuitem">
<a href="thanks.html" title="Acknowledgment to those who have become involved">Thanks</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Related projects</div>
<div id="menu_1.2" class="menuitemgroup">
<div class="menuitem">
<a href="http://gump.apache.org/">Apache Gump</a>
</div>
<div class="menuitem">
<a href="http://cocoon.apache.org/">Apache Cocoon</a>
</div>
<div class="menuitem">
<a href="http://lenya.apache.org/">Apache Lenya</a>
</div>
<div class="menuitem">
<a href="http://xml.apache.org/">Apache XML</a>
</div>
<div class="menuitem">
<a href="http://projects.apache.org/">projects.apache.org</a>
</div>
</div>
<div id="credit"></div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
  |alternative credits
  +-->
<div id="credit2">
<a href="http://apachecon.com/2007/EU/"><img border="0" title="ApacheCon Europe 2007" alt="ApacheCon Europe 2007 - logo" src="http://apache.org/ads/ApacheCon/2007-europe-125x125.png" style="width: 125px;height: 125px;"></a><a href="http://people.apache.org/calendar.html#200711"><img border="0" title="ApacheCon US 2007" alt="ApacheCon US 2007 - logo" src="http://apache.org/ads/ApacheCon/2007-usa-125x125.png" style="width: 125px;height: 125px;"></a>
</div>
</div>
<!--+
    |end Menu
    +-->
<!--+
    |start content
    +-->
<div id="content">
<div title="Portable Document Format" class="pdflink">
<a class="dida" href="who.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
        PDF</a>
</div>
<div class="trail">Font size: 
	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Who we are</h1>
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#community">The Forrest Community</a>
</li>
<li>
<a href="#committers">List of committers</a>
</li>
<li>
<a href="#notes">Notes</a>
</li>
</ul>
</div>
    
<a name="N1000D"></a><a name="community"></a>
<h2 class="underlined_10">The Forrest Community</h2>
<div class="section">
<p>
        The Forrest Project operates as a meritocracy: the more you do, the more
        responsibility you will obtain. This page lists all of the people who
        have gone the extra mile and are Committers. If you would like to get
        involved, the first step is to join the mailing lists.
      </p>
<p>
        Of course the committers are not the only people involved in the
        community. Thanks to the many people for their contributions of patches,
        assistance, ideas, and email discussion. Some are mentioned at the
        <a href="docs_0_80/changes.html">changes</a> page. See how we
        <a href="guidelines.html#contribution">acknowledge</a> contributions.
      </p>
<p>
        Please do not send emails directly to individual developers asking for
        free support - see the Important Notices at the
        <a href="mail-lists.html">mailing lists</a> page.
      </p>
</div>
    
<a name="N10029"></a><a name="committers"></a>
<h2 class="underlined_10">List of committers</h2>
<div class="section">
<p>
        List of all people who have ever been committers at Apache Forrest,
        sorted alphabetically.
      </p>
<ul>
        
<li>
<em>[NKB] - Nicola Ken Barozzi (nicolaken.at.apache.org)</em>
</li>
        
<li>
<strong>[DB] - Dave Brondsema (brondsem.at.apache.org)</strong>
</li>
        
<li>
<strong>[DC] - David Crossley (crossley.at.apache.org)</strong> - PMC Chair</li>
        
<li>
<strong>[CD] - Cyriaque Dupoirieux (cdupoirieux.at.apache.org)</strong>
</li>
        
<li>
<strong>[AG] - Antonio Gallardo (antonio.at.apache.org)</strong>
</li>
        
<li>
<strong>[RG] - Ross Gardler (rgardler.at.apache.org)</strong>
</li>
        
<li>
<strong>[DG] - Diwaker Gupta (diwaker.at.apache.org)</strong>
</li>
        
<li>[SM] - Stefano Mazzocchi (stefano.at.apache.org)</li>
        
<li>
<strong>[GM] - Gavin McDonald (gmcdonald.at.apache.org)</strong>
</li>
        
<li>
<strong>[SNM] - Sjur Moshagen (sjur.at.apache.org)</strong>
</li>
        
<li>[JM] - John Morrison (morrijr.at.apache.org)</li>
        
<li>[SN] - Steven Noels (stevenn.at.apache.org)</li>
        
<li>
<strong>[JJP] - Juan Jose Pablos (cheche.at.apache.org)</strong>
</li>
        
<li>[KP] - Konstantin Piroumian (kpiroumian.at.apache.org)</li>
        
<li>[MP] - Marc Portier (mpo.at.apache.org)</li>
        
<li>[SR] - Sam Ruby (rubys.at.apache.org)</li>
        
<li>
<strong>[JS] - Johannes Schaefer (josch.at.apache.org)</strong>
</li>
        
<li>
<strong>[TS] - Thorsten Scherler (thorsten.at.apache.org)</strong>
</li>
        
<li>
<strong>[FSO] - Ferdinand Soethe (ferdinand.at.apache.org)</strong>
</li>
        
<li>
<strong>[RFT] - Rick F. Tessner (rick.at.apache.org)</strong>
</li>
        
<li>[JT] - Jeff Turner (jefft.at.apache.org)</li>
        
<li>
<strong>[TW] - Tim Williams (twilliams.at.apache.org)</strong>
</li>
      
</ul>
</div>
    
<a name="N10088"></a><a name="notes"></a>
<h2 class="underlined_10">Notes</h2>
<div class="section">
<p>
        Strong type denotes "Project Management Committee
        (<a href="guidelines.html#pmc">PMC</a>) member". Emphasis type denotes
        "emeritus PMC member". See the <a href="guidelines.html#roles">ASF role
        definitions</a> for detailed role information. The actual list of PMC
        members is in the SVN "committers" repository at
        /board/committee-info.txt
      </p>
<p>
        Some people were committers prior to Forrest becoming a top-level
        project and so gaining a PMC. They were not around since then, so have
        never been on the PMC. All new committers are
        <a href="guidelines.html#pmc-committers">encouraged</a> to be PMC
        members.
      </p>
<p>
        Committers can be as active as they choose and there is no performance
        pressure from the project. For those who are interested in the work that
        each paticular committer has done, see the
        <a href="guidelines.html#contribution">acknowledgements</a> section.
      </p>
<p>
        All <a href="http://cocoon.apache.org/community/members.html">Apache
        Cocoon committers</a> and
        <a href="http://lenya.apache.org/community/acknowledgements.html">Apache
        Lenya committers</a> also have rights to commit to Forrest.
      </p>
</div>
  
</div>
<!--+
    |end content
    +-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
    |start bottomstrip
    +-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
//  --></script>
</div>
<div class="copyright">
        Copyright &copy;
         2002-2007 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<!--+
    |end bottomstrip
    +-->
</div>
</body>
</html>
