<!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>Becoming an Apache Forrest committer</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>
<a class="unselected" href="index.html">Welcome</a>
</li>
<li class="current">
<a class="selected" 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');">Getting involved</div>
<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="contrib.html" title="Everyone is a developer and has something to contribute">Contributing</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="issues.html" title="Issue tracker manages known issues and desired enhancements">Reporting bugs and issues</a>
</div>
<div class="menuitem">
<a href="forrest-friday.html" title="ForrestFriday monthly get-together">ForrestFriday IRC</a>
</div>
<div class="menuitem">
<a href="events.html" title="List of upcoming related conferences and meetings">Events</a>
</div>
<div onclick="SwitchMenu('menu_selected_1.1.6', 'skin/')" id="menu_selected_1.1.6Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Project</div>
<div id="menu_selected_1.1.6" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="guidelines.html" title="Open development guidelines to encourage participation">Project guidelines</a>
</div>
<div class="menupage">
<div class="menupagetitle">Being committed</div>
</div>
<div class="menuitem">
<a href="roles.html" title="Tasks to keep the project flowing">Project roles</a>
</div>
</div>
</div>
<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Resources and Infrastructure</div>
<div id="menu_1.2" class="menuitemgroup">
<div class="menuitem">
<a href="asf-infrastructure.html" title="Explain the ASF infrastructure">Introduction</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</a>
</div>
<div class="menuitem">
<a href="issues.html" title="Issue tracker manages known issues and desired enhancements">Issue management</a>
</div>
<div class="menuitem">
<a href="svn.html" title="Access to the Subversion (SVN) version control system">Version control</a>
</div>
<div class="menuitem">
<a href="http://forrest.zones.apache.org/" title="Demonstrations and testbed at forrest.zones.apache.org">Demonstrations</a>
</div>
<div class="menuitem">
<a href="gump.html">Gump integration</a>
</div>
<div onclick="SwitchMenu('menu_1.2.7', 'skin/')" id="menu_1.2.7Title" class="menutitle">Planning notes</div>
<div id="menu_1.2.7" class="menuitemgroup">
<div class="menuitem">
<a href="plan/index.html">Overview</a>
</div>
<div class="menuitem">
<a href="plan/internal-xhtml.html">Internal XHTML</a>
</div>
</div>
<div class="menuitem">
<a href="todo.html">Todo</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.3', 'skin/')" id="menu_1.3Title" class="menutitle">Best Practices and Procedures</div>
<div id="menu_1.3" class="menuitemgroup">
<div class="menuitem">
<a href="howto-dev.html" title="Describes tips and procedures for efficiently developing with Forrest.">Development tips</a>
</div>
<div class="menuitem">
<a href="subversion_bestpractices.html" title="Best practice notes for Subversion">Subversion</a>
</div>
<div class="menuitem">
<a href="documentation_bestpractices.html" title="Best practice notes for documentation">Documentation</a>
</div>
<div class="menuitem">
<a href="howto-howto.html" title="Instructions for writing             a new howto-document">Write a How-to</a>
</div>
<div onclick="SwitchMenu('menu_1.3.5', 'skin/')" id="menu_1.3.5Title" class="menutitle">Committer notes</div>
<div id="menu_1.3.5" class="menuitemgroup">
<div class="menuitem">
<a href="zone.html" title="Notes for committers to manage forrest.zones.apache.org">Zone management</a>
</div>
<div class="menuitem">
<a href="procedures/release/How_to_release.html" title="Instructions on preparing and creating a new Forrest release.">How to release</a>
</div>
<div class="menuitem">
<a href="procedures/How_to_publish_docs.html" title="Instructions on publishing the Forrest             Website">Publishing Forrest documentation</a>
</div>
</div>
</div>
<div onclick="SwitchMenu('menu_1.4', 'skin/')" id="menu_1.4Title" class="menutitle">Proposals</div>
<div id="menu_1.4" class="menuitemgroup">
<div class="menuitem">
<a href="proposal-asf-forrestbot.html">ASF Forrestbot</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="committed.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>Becoming an Apache Forrest committer</h1>
<div class="abstract">
      This is a discussion of how users can become committers within the Apache
      Forrest project.
    </div>
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#committers">What is a committer?</a>
</li>
<li>
<a href="#copdoc">Contributing to the Project - CoPDoC</a>
</li>
<li>
<a href="#becoming">Becoming a Committer</a>
</li>
<li>
<a href="#responsibility">Responsibilities</a>
</li>
<li>
<a href="#discussion">Adding to the discussions and contributing code</a>
</li>
<li>
<a href="#references">References</a>
</li>
</ul>
</div>
    
<a name="N10010"></a><a name="committers"></a>
<h2 class="underlined_10">What is a committer?</h2>
<div class="section">
<div class="warning">
<div class="label">Warning</div>
<div class="content">
        This document is under development and does not yet represent the view
        of our community.
      </div>
</div>
<div class="note">
<div class="label">Note</div>
<div class="content">
        Content is being gleaned from various current and past discussions on
        the Forrest dev mailing list, in particular
        <a href="http://marc.theaimsgroup.com/?l=forrest-dev&m=112239074108858">this</a>.
        Further editing of this page is needed and would be greatly appreciated.
      </div>
</div>
<p>
        Committer is an term used at the ASF to signify someone who is committed
        to a particular project and who is invited to be part of the core group
        within the project that ensures the project's vitality (represented by
        the PMC, Project Management Committee).
      </p>
<p>
        One thing that is sometimes hard to understand when you are new to the
        open development<sup>1</sup> process used at the ASF, is that we value
        the community more than the code. A strong and healthy community will be
        respectful and be a fun and rewarding place. Strong code will evolve.
      </p>
</div>
    
<a name="N1002A"></a><a name="copdoc"></a>
<h2 class="underlined_10">Contributing to the Project - CoPDoC</h2>
<div class="section">
<p>
        The foundation of a project and how the community contributes to it is
        known by the acronym CoPDoC:
      </p>
<ul>
        
<li>(Co)mmunity - one must interact with others, and share vision 
      and knowledge</li>
        
<li>(P)roject - a clear vision and consensus are needed</li>
        
<li>(Do)cumentation - without it, the stuff remains only in the 
      minds of the authors</li>
        
<li>(C)ode - discussion goes nowhere without code</li>
      
</ul>
</div>
    
<a name="N10043"></a><a name="becoming"></a>
<h2 class="underlined_10">Becoming a Committer</h2>
<div class="section">
<p>
        There is nothing at The Apache Software Foundation that says you must
        write code in order to be a committer. Anyone who is supportive of the
        community and works in any of the CoPDoC areas is a likely candidate for
        committership.
      </p>
<p>
        Apache is a meritocracy. That is, once someone has contributed
        sufficiently to any area of CoPDoC they can be voted in as a committer.
        Being a committer does not mean you commit code, it means you are
        committed to the project.
      </p>
<p>
        One of the key contributions people can make to the community is through
        the support of a wide user base by assisting users on the user list,
        writing user oriented docs and ensuring the user viewpoint is understood
        by all developers. A main idea behind being a committer is the ability
        to be a mentor and to work cooperatively with your peers.
      </p>
<p>
        The following diagram shows the progression of a user to a
        committer/mentor.
      </p>
<p>
        
<img alt="committer path" src="committed-1.png">
      </p>
<p>
        Meritocracy progresses this way <span class="codefrag">------------&gt;
        ------------------------&gt;</span>
      
</p>
<p>
        Note that this is not a hierarchy, it is a progression from a broad user
        base from which those that wish to to contribute to the ongoing
        development of the project (again, through any aspect of CoPDoC, not
        just coding) can become involved as developers. From these developers
        are those who take on additional roles of mentoring and more fully
        commit themselves to the project.
      </p>
</div>
    
<a name="N10066"></a><a name="responsibility"></a>
<h2 class="underlined_10">Responsibilities</h2>
<div class="section">
<p>
        The additional responsibilities of the PMC as a whole are outlined in
        the Apache Forrest project guidelines<sup>2</sup>. It should be noted
        though that Apache projects should be fun, not pressure. As a PMC
        member, just as a developer, you do as much work as you feel like doing.
        You do not need to participate in every discussion, just because it
        concerns the PMC. Neither do you need to participate in every vote or in
        every development issue. We like people to be involved and we reward
        contributions (meritocracy), but we do not punish a lack of
        contributions. People come and go as their needs change and we adapt to
        those changes.
      </p>
</div>
    
<a name="N10073"></a><a name="discussion"></a>
<h2 class="underlined_10">Adding to the discussions and contributing code</h2>
<div class="section">
<p>
        Discussion leads to a clearer community understanding of the project's
        goals and objectives and also of how the community works.
      </p>
<p>
        Of course, there needs to be a balance between too much chat and not
        enough code. If something is easy to do in code and does not impact the
        overall product (such as a bug fix) then just go ahead and do it.
        However, if something is to introduce a new feature, then it is best to
        introduce your idea to the community via an email to the dev mail list
        first. In this introduction you should outline why you want to do
        something, how you propose to do it (pseudo code is a good way of
        expressing this) and ask for comments. Any comments received will help
        to fine tune the design and, in many cases, produce a quicker, more
        elegant solution (this is the benefit of many eyes on a solution).
      </p>
<p>
        The absence of comments from others does not mean it is not a good idea,
        in fact the reverse is true, it means nobody has any objection or
        anything to add. It is only if people respond that you need to discuss
        further. Once the discussion reaches consensus then coding can
        accelerate. Once you have implicit or explicit approval for your
        contribution, just go ahead and do it. Be sure to document what you have
        done whilst you are at it. Without documentation (comments in code,
        mailing list discussion and user docs) your code is next to useless -
        nobody knows it is there and nobody knows how it works.
      </p>
<p>
        Online discussion is important for community building. Offline
        discussion and one-to-one conversations deny the community the chance to
        become involved and lead to solutions that are not ideal. So please do
        as much discussion as possible on the dev or user mailing list.
      </p>
</div>
    
<a name="N10086"></a><a name="references"></a>
<h2 class="underlined_10">References</h2>
<div class="section">
<p>
        
<sup>1</sup> <a href="guidelines.html#way">Open development</a> at
        Apache Forrest.
      </p>
<p>
        
<sup>2</sup> Apache Forrest <a href="guidelines.html">project
        guidelines</a>.
      </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>
