<?xml version="1.0"?>

<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-->

<document>

 <properties>
  <title>Contact us</title>
  <author email="seade@backstagetech.com.au">Scott Eade</author>
 </properties>

<body>

<section name="Contact us">

<p>
The communication between the developers and the user community in the Apache
Turbine project is intended to be as open and accessible as possible. This is
why we prefer to have <a href="#Mailing lists">public mailing lists</a> to which
everyone can subscribe and which are archived.
</p>

<p>
For bug reporting and issue tracking, Turbine uses the <a href="#Issue tracking">
JIRA bug tracker</a> at the Apache Software Foundation. Please report bugs using
the tracker, if you send them to the mailing lists, most of the times a member of
the Turbine Community will point you there anyway. Using the bug tracker makes
sure that your bug report is recorded and processed in a timely manner.
</p>

</section>

<section name="Mailing lists">

<p>
Please be aware that sending confidential or private data to these lists is strongly
discouraged and if this happens, we can not do anything to remove or erase this
information from public archives.
</p>

<p>
We also strongly frown upon disclaimers attached to mails sent to these lists
that declare the contents to be confidential, private or only intended for the
recipient. But we understand that these disclaimers are often beyond your control.
However, by sending mail to a Turbine mailing list, the intended recipient is
the general public.
</p>

<table class="bodyTable">
    <thead>
        <tr class="a">
            <th>List name</th>
            <th>Address</th>
            <th>Archives</th>
            <th>Subscribe</th>
            <th>Unsubscribe</th>
            <th>Purpose</th>
          </tr>
    </thead>
    <tbody>
        <tr class="b">
            <td><a name="general">general</a></td>
            <td><a href="mailto:general@turbine.apache.org">Send a message</a></td>
            <td>
              <a href="http://mail-archives.apache.org/mod_mbox/turbine-general/" class="externalLink">Main archive</a>
              <a href="http://markmail.org/search/list:org.apache.turbine.general" class="externalLink">Mark Mail archive</a>
            </td>
            <td><a href="mailto:general-subscribe@turbine.apache.org">Subscribe</a></td>
            <td><a href="mailto:general-unsubscribe@turbine.apache.org">Unsubscribe</a></td>
            <td>
              Discuss matters relating to the Turbine project as a whole (e.g. matters relating
              to possible changes to procedures, the project website, etc.).
            </td>
        </tr>
        <tr class="a">
            <td><a name="user">user</a></td>
            <td><a href="mailto:user@turbine.apache.org">Send a message</a></td>
            <td>
              <a href="http://mail-archives.apache.org/mod_mbox/turbine-user/" class="externalLink">Main archive</a>
              <a href="http://markmail.org/search/list:org.apache.turbine.user" class="externalLink">Mark Mail archive</a>
            </td>
            <td><a href="mailto:user-subscribe@turbine.apache.org">Subscribe</a></td>
            <td><a href="mailto:user-unsubscribe@turbine.apache.org">Unsubscribe</a></td>
            <td>
              General discussion for developers wanting to use Apache Turbine or components of it.
            </td>
        </tr>
        <tr class="b">
            <td><a name="dev">dev</a></td>
            <td><a href="mailto:dev@turbine.apache.org">Send a message</a></td>
            <td>
              <a href="http://mail-archives.apache.org/mod_mbox/turbine-dev/" class="externalLink">Main archive</a>
              <a href="http://markmail.org/search/list:org.apache.turbine.dev" class="externalLink">Mark Mail archive</a>
            </td>
            <td><a href="mailto:dev-subscribe@turbine.apache.org">Subscribe</a></td>
            <td><a href="mailto:dev-unsubscribe@turbine.apache.org">Unsubscribe</a></td>
            <td>
              Watch the Turbine development process. Participate in Turbine development yourself.
            </td>
        </tr>
        <tr class="a">
            <td><a name="commits">commits</a></td>
            <td>&#160;</td>
            <td>
              <a href="http://mail-archives.apache.org/mod_mbox/turbine-commits/" class="externalLink">Main archive</a>
              <a href="http://markmail.org/search/list:org.apache.turbine.commits" class="externalLink">Mark Mail archive</a>
            </td>
            <td><a href="mailto:commits-subscribe@turbine.apache.org">Subscribe</a></td>
            <td><a href="mailto:commits-unsubscribe@turbine.apache.org">Unsubscribe</a></td>
            <td>
                Monitor the changes to the Turbine Source Code repository.
            </td>
        </tr>
        <tr class="b">
            <td><a name="tdk-dev">tdk-dev</a></td>
            <td>&#160;</td>
            <td>
              <a href="http://mail-archives.apache.org/mod_mbox/turbine-tdk-dev/" class="externalLink">Main archive</a>
              <a href="http://markmail.org/search/list:org.apache.turbine.tdk-dev" class="externalLink">Mark Mail archive</a>
            </td>
            <td>&#160;</td>
            <td>&#160;</td>
            <td>
              Decommissioned list relating to the now closed TDK sub-project.
            </td>
        </tr>
    </tbody>
</table>

<table class="bodyTable">
    <thead>
        <tr class="b">
            <th>List name</th>
            <th>Description</th>
        </tr>
    </thead>
    <tbody>
        <tr class="a">
            <td><a href="#general">general</a></td>
            <td>
              This list is used for general, Turbine project related,
              discussion and announcements. This list is not for
              specific questions on how to do something using Turbine
              but for questions about Turbine. Usually very low
              volume.
            </td>
        </tr>
        <tr class="b">
            <td><a href="#user">user</a></td>
            <td>
              This mailing list is intended for questions around using Apache Turbine and its
              sub projects in your own code and pretty much everything else related to Turbine.
              If you are a developer and want to use Turbine, subscribe here. This list has a moderate volume.
            </td>
        </tr>
        <tr class="a">
            <td><a href="#dev">dev</a></td>
            <td>
              Found a bug, have a patch, want to improve Turbine? Subscribe to this mailing list, this is where
              all the developers hang out. Please do not ask questions on how to use Turbine
              unless it is related to a problem with Turbine itself. This list has low to moderate volume.
            </td>
        </tr>
        <tr class="b">
            <td><a href="#commits">commits</a></td>
            <td>
              This list reflects all the commit messages to the Turbine Subversion source code repository.
            </td>
        </tr>
    </tbody>
</table>

</section>

<section name="Issue Tracking">

<p>
Currently Turbine uses a single issue tracker with the various Turbine sub projects
configured as components:
</p>

<table class="bodyTable">
    <thead>
        <tr class="a">
            <th>Project</th>
            <th>Issue tracker</th>
            <th>Component</th>
        </tr>
    </thead>
    <tbody>
        <tr class="b">
            <td>Turbine core - trunk</td>
            <td><a href="https://issues.apache.org/jira/browse/TRB" class="externalLink">JIRA</a></td>
            <td>Core</td>
        </tr>
        <tr class="a">
            <td>Turbine core - 2.3 branch</td>
            <td><a href="https://issues.apache.org/jira/browse/TRB" class="externalLink">JIRA</a></td>
            <td>Turbine 2.3</td>
        </tr>
        <tr class="b">
            <td>Fulcrum - all components</td>
            <td><a href="https://issues.apache.org/jira/browse/TRB" class="externalLink">JIRA</a></td>
            <td>Fulcrum</td>
        </tr>
        <tr class="a">
            <td>M.E.T.A.</td>
            <td><a href="https://issues.apache.org/jira/browse/TRB" class="externalLink">JIRA</a></td>
            <td>M.E.T.A.</td>
        </tr>
        <tr class="b">
            <td>Turbine Site</td>
            <td><a href="https://issues.apache.org/jira/browse/TRB" class="externalLink">JIRA</a></td>
            <td>Site</td>
        </tr>
    </tbody>
</table>

</section>

<section name="Contacting the Apache Turbine PMC">

<p>
The Apache Turbine Project Management Committee (PMC) provides oversight to the
project and is legally responsible for all software releases. It reports to the
<a href="http://www.apache.org/foundation/board/">Board of the Apache Software
Foundation</a> quarterly. The reports are <a href="board-reports.html">archived
and public</a>.
</p>

<p>
The Apache Turbine PMC can be reached at
<a href="mailto:private@turbine.apache.org">private@turbine.apache.org</a>.
</p>

</section>

</body>
</document>
