blob: ebb2f306f34e955225d05a79130bd5d4d5da60a3 [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>Project tasks</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="menuitem">
<a href="committed.html" title="Notes about contribution">Being committed</a>
</div>
<div class="menupage">
<div class="menupagetitle">Project tasks</div>
</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>Project tasks</h1>
<div id="front-matter">
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#overview">Overview</a>
</li>
<li>
<a href="#tasks">The tasks</a>
<ul class="minitoc">
<li>
<a href="#pmc-member">PMC Member</a>
</li>
<li>
<a href="#pmc-chair">PMC Chair</a>
</li>
<li>
<a href="#release-manager">Release Manager</a>
</li>
<li>
<a href="#forrest-friday-coordination">ForrestFriday Coordination</a>
</li>
<li>
<a href="#issue-tracker-coordination">Issue Tracker Coordination</a>
</li>
<li>
<a href="#documentation-coordination">Documentation Coordination</a>
</li>
<li>
<a href="#subversion-monitoring">Subversion Monitoring</a>
</li>
<li>
<a href="#legal-monitoring">Legal Monitoring</a>
</li>
<li>
<a href="#developer">Developer</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<a name="overview"></a>
<h2 class="underlined_10">Overview</h2>
<div class="section">
<p>
There are many tasks that need to be done to keep the project flowing.
With the tasks being well-defined, the hope is that various people will
be able to assist to carry out the tasks and so not rely on a couple of
individuals to do all the work.
</p>
<p>
There are no roles for "leadership" of technical areas. We don't have
the concept of leadership at the ASF. Rather these are "functional
tasks".
</p>
<p>
This is not intended to put pressure on people to force them to do work
nor "pull their weight". If they do not manage to do a task, then
someone else will be able to do it. Of course, shared load means a
healthy project.
</p>
<p>
Most tasks are not too onerous. For example, for
the "Documentation Coordination", the only job might be to publish the
documentation every Friday. Sure it can be done at other times and other
people can do it too, but at least it gets done once per week.
</p>
<p>
Having a person doing a task does not mean that everyone can leave it to
them and rely on them. Anyone else can dive in and do the job (for
example, publish the docs twice per week). The more people who are
familiar with the task, the better. Perhaps the person who is primarily
doing that task will notice that there can be improvements to how they
are doing it.
</p>
<p>
If a person is dissatisfied with the way a particular task is being done
then find a way to offer constructive criticism, perhaps by assisting or
by enhancing the task documentation.
</p>
<p>
Most of the tasks (except of course the Developer tasks) can only be
carried out by PMC members because commit access is required.
</p>
</div>
<a name="tasks"></a>
<h2 class="underlined_10">The tasks</h2>
<div class="section">
<p>
These are the main tasks, including the obvious ones. There are probably
other tasks that need to be defined also. Each task should have some
continually enhanced documentation about it, so that any person can do
the tasks.
</p>
<a name="pmc-member"></a>
<h3 class="underlined_5">PMC Member</h3>
<p>
This is well-defined in our <a href="guidelines.html">project
guidelines</a> and in the top-level ASF docs.
</p>
<a name="pmc-chair"></a>
<h3 class="underlined_5">PMC Chair</h3>
<p>
This is well-defined in our <a href="guidelines.html">project
guidelines</a> and in the top-level ASF docs.
</p>
<a name="release-manager"></a>
<h3 class="underlined_5">Release Manager</h3>
<p>
Tasks are defined in <a href="procedures/release/How_to_release.html">How to Release
Forrest</a>
</p>
<p>
Only one person can do this task, although other people can assist.
There is a lot of knowledge invested in this RM role. Document it as much
as possible.
</p>
<a name="forrest-friday-coordination"></a>
<h3 class="underlined_5">ForrestFriday Coordination</h3>
<p>
The tasks are defined in
<a href="forrest-friday.html">ForrestFriday</a>.
</p>
<p>
Each month someone needs to co-ordinate the IRC session and be the
main channel operator, maintain the logfile and commit it to the
events SVN.
</p>
<p>
Ensure that the session is summarised.
</p>
<p>
This task can possibly be done by someone who is not a committer.
However, a logfile and summary need to be committed to SVN.
</p>
<a name="issue-tracker-coordination"></a>
<h3 class="underlined_5">Issue Tracker Coordination</h3>
<p>
Add new Components, e.g. for each new plugin.
</p>
<p>
Other general Admin tasks.
</p>
<p>
Add new committers to the forrest-administrators group.
</p>
<p>
Add/enhance <a href="issues.html">Filters</a>.
</p>
<p>
Review issues to ensure that they are properly categorised. This is
best done as soon as a new issue comes in.
</p>
<p>
Review the list of unscheduled issues.
</p>
<p>
Each month get the project to review the outstanding major issues that
are scheduled for the upcoming release.
</p>
<a name="documentation-coordination"></a>
<h3 class="underlined_5">Documentation Coordination</h3>
<p>
Publish the documentation at least once per week.
</p>
<p>
Various people make edits to the source files, but often the
documentation is not generated and published. Also people add new
entries to site-author/status.xml but the changes.html needs to be
regularly generated from it.
</p>
<p>
This task is not actually about doing the documentation. That should
be up to everyone.
</p>
<p>
Generating and publishing the main docs is very easy using a local
forrestbot: See <a href="procedures/How_to_publish_docs.html">How to publish Forrest
documentation</a>.
</p>
<a name="subversion-monitoring"></a>
<h3 class="underlined_5">Subversion Monitoring</h3>
<p>
The issue of whitespace is important in projects which have developers
on both Windows and UNIX-based operating systems. The unnecessary
differences obscure the real changes and so make it difficult for
people to be aware.
</p>
<p>
Ensure that svn:eol-style settings are "native" for all text files.
Encourage people to properly
<a href="http://www.apache.org/dev/version-control.html#https-svn-config">configure</a>
their SVN client.
Detect such issues using a script like
<a href="https://svn.apache.org/repos/private/committers/tools/report_svn_text.pl">committers/tools/report_svn_text.pl</a>
See also some tips in
<a href="https://issues.apache.org/jira/browse/FOR-124">FOR-124</a>.
</p>
<p>
Ensure no line-endings issues. This is coupled with the abovementioned
"svn:eol-style" issue.
Detect such issues using a script like
<a href="https://svn.apache.org/repos/private/committers/tools/find_carriage_returns.sh">committers/tools/find_carriage_returns.sh</a>
</p>
<p>
Regularly tidy the whitespace in xml files.
See the script
<a href="http://svn.apache.org/repos/asf/forrest/trunk/etc/tidy-xml.pl">$FORREST_HOME/etc/tidy-xml.pl</a>
and the
<a href="http://svn.apache.org/repos/asf/forrest/trunk/etc/tidy-config.txt">$FORREST_HOME/etc/tidy-config.txt</a> configuration file.
This is best done as part of the release process, when everyone should
have already committed any outstanding changes. With such an operation,
there is a high chance of conflicts.
See also some tips in
<a href="https://issues.apache.org/jira/browse/FOR-644">FOR-644</a>.
</p>
<p>
Regularly run java-tidy. (Not yet ready.)
</p>
<a name="legal-monitoring"></a>
<h3 class="underlined_5">Legal Monitoring</h3>
<p>
Regularly run a script which verifies and inserts missing license
headers to source files. Review the output and fix issues.
For example:
<a href="https://svn.apache.org/repos/private/committers/relicense/src/perl/">committers/relicense/src/perl/</a>
and other tools at
<a href="https://svn.apache.org/repos/private/committers/tools/">committers/tools/</a>
and
<a href="http://incubator.apache.org/rat/">Apache RAT</a> (currently in Incubator)
and some other suggestions at
<a href="http://labs.apache.org/">Apache Labs</a>.
See also some tips in
<a href="https://issues.apache.org/jira/browse/FOR-855">FOR-855</a>
and
<a href="https://issues.apache.org/jira/browse/FOR-123">FOR-123</a>.
Also see $FORREST_HOME/etc/relicense.txt and
$FORREST_HOME/etc/relicense-avoid.txt files.
</p>
<p>
RAT is automatically run on our sources. See the reports via
<a href="gump.html">Gump</a> and
<a href="http://ci.apache.org/projects/forrest/rat-output.html">Buildbot</a>.
We are not being notified about errors, so need to look.
</p>
<p>
Regularly ensure that there are appropriate matching licenses to
accompany each supporting product that we redistribute.
(Use the filename pattern: product-version[.-]license.txt or uppercase.)
</p>
<p>
For each such license, also ensure that it is referred to in
$FORREST_HOME/LICENSE.txt file. If their license required attribution,
then add to $FORREST_HOME/NOTICE.txt file. Also replicate any NOTICE
which accompanies a supporting product.
See <a href="https://issues.apache.org/jira/browse/FOR-857">FOR-857</a>.
</p>
<p>
See some guidelines at
<a href="http://www.apache.org/dev/#licenses">ASF Legal</a>.
</p>
<p>
This should have continual oversight by the PMC as a whole, but the
monitoring is something that needs to be done regularly, and
definitely prior to each release.
</p>
<a name="developer"></a>
<h3 class="underlined_5">Developer</h3>
<p>
The above tasks are only for PMC Members. How can any Developer be
involved? That is easy: do the Developer tasks.
</p>
<p>
Help out with commenting on the Issue Tracker, fixing the issues,
contributing to discussion, contributing patches, turning discussion
into clear documentation.
</p>
<p>
This is incredibly valuable and will enable the project to grow. After
time, you will probably be elected as Committer/PMC Member and when
comfortable, can take on one of the Project Management tasks.
</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>