blob: 198dbc0a9449021a270ece029760882b5a91c69f [file] [log] [blame]
<!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.9-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 Software Foundation</a> &gt; <a href="http://forrest.apache.org/">Apache 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="tasks.html" title="Tasks to keep the project flowing">Project tasks</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="howto-forrestbot-svn.html" title="Publish documentation with Forrestbot svn workstage">Forrestbot svn</a>
</div>
<div class="menuitem">
<a href="howto-forrestbot-scp.html" title="Publish documentation with Forrestbot scp workstage">Forrestbot scp</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.7', 'skin/')" id="menu_1.3.7Title" class="menutitle">Committer notes</div>
<div id="menu_1.3.7" 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://www.apache.org/events/current-event.html"><img border="0" title="ApacheCon" alt="ApacheCon - logo" src="http://www.apache.org/events/current-event-125x125.png" style="width: 125px;height: 125px;"></a>
</div>
</div>
<!--+
|end Menu
+-->
<!--+
|start content
+-->
<div id="content">
<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 id="front-matter">
<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>
</div>
<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&amp;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="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="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="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="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="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-2011 <a href="http://www.apache.org/licenses/">The Apache Software Foundation. Licensed under Apache License 2.0</a>
<br>
Apache, Apache Forrest, the Apache feather logo, and the Apache Forrest
logos are trademarks of The Apache Software Foundation.
</div>
<!--+
|end bottomstrip
+-->
</div>
</body>
</html>