<?xml version="1.0"?>

<!--
 * ========================================================================
 * 
 * Copyright 2001-2004,2006 The Apache Software Foundation.
 *
 * Licensed 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 id="participating">

  <properties>
    <title>Participating</title>
  </properties>

  <body>

  <section title="Introduction">

    <p>
      The Cactus Project is an <link href="ext:opensource">Open Source</link>
      volunteer project under the auspices of the
      <link href="ext:apache">Apache Software Foundation (ASF)</link>,
      and, in harmony with the Apache webserver itself, it is released under
      a very open license.
      This means there are many ways to contribute to the project
      (coding, documenting, answering questions,
      proposing ideas, reporting bugs, suggesting bug-fixes, etc..).
    </p>
    <p>
      To begin with, we suggest you to subscribe to the 
      <link href="site:mailinglist">Cactus mailing list</link>.
    </p>
    <p>
      Then you can download the <link href="site:downloads">latest Cactus
      release</link> or checkout the latest code from
      <link href="ext:cactus_viewcvs">SVN</link>.
    </p>
    <p>
      Last, you can check the <link href="ext:bug_database_cactus_open_issues">todo list</link> and 
      jump in.
    </p>

  </section>

  <section title="Help Wanted Here">

    <p>
      The rest of this document is mainly about
      contributing new or improved code and/or documentation, but we would also
      be glad to have extra help in any of the following areas:
    </p>
    <ul>
      <li>
        Answering questions on the 
        <link href="site:mailinglist">Cactus mailing list</link>;
        there is often a problem of having too many questioners and not enough
        experts to respond to all the questions.
      </li>
      <li>
        Testing Cactus (especially its less-frequently-used features) on
        various configurations and reporting back.
      </li>
      <li>
        Debugging - producing reproducable test cases and/or finding causes of
        bugs (bugs can be found in the
        <link href="ext:bug_database">bug database</link>).
      </li>
      <li>
        Specifying/analysing/designing new features for Cactus (If you wish to
        get involved with this, please join the <link href="site:mailinglist">
        Cactus mailing list</link>,
        install and try out Cactus and read some of the mailing list archives.
        In addition, please have a look at the 
        <link href="site:goals">Goals</link> page which gives a vision of 
        where Cactus is heading and provide some high level todos.
      </li>
      <li>
        Providing automated Ant scripts for new servlet engines/application
        servers. The list of supported servers can found in the
        <link href="site:features">features</link> list.
      </li>
      <li>
        ... and there is just one other thing - don't forget to tell everyone
        who asks how great Cactus is! ;-)
        The more people that know about and start to use Cactus, the larger the
        pool of potential contributors there will be.
      </li>
    </ul>
 
    <p>
      Thank you very much.
    </p>

  </section>

  <section title="Contributions of Code and Documentation">
  
    <p>
      We are starting to use an informal system for accepting contributions to
      Cactus. The process varies depending on whether the contribution is a
      modification (i.e. patch) or a fairly standalone item, and whether you 
      have commit access (committers have been granted access by a vote of 
      confidence, so they are assumed to be trustworthy enough
      to make changes directly in SVN. If you submit many good patches, you
      may be nominated as a committer yourself!)
    </p>

    <p>
      If your contribution requires changing more than a few lines of Cactus
      (code or documentation), then it counts as a <strong>patch</strong>. If 
      you have a patch and would like to see it incorporated into the Cactus
      distribution, take note of the Licensing Requirements listed below, and 
      then create a <link href="ext:bug_database">JIRA issue</link> and attach
      to it a unified diff (<code>svn diff</code>) of your changes against
      the latest SVN version of the code (SVN trunk).
    </p>
  
    <section title="Licensing Requirements for the Cactus Distribution">
  
      <p>
        To avoid legal problems, the Apache Project Management Committee (PMC) 
        have agreed on a policy for under what licensing code can be accepted 
        into Apache projects:
      </p>
      <ul>
        <li>
          Source code files must be under the Apache license and must have
          copyright assigned to the Apache Software Foundation.
        </li>
        <li>
          Jar files need only be released under a license that permits free 
          redistribution and does not cover new files added to the jar/library
          (so the GPL and LGPL are not allowed, but MPL and Apache licenses are,
          for example).
        </li>
      </ul>
      <p>
        <strong>By submitting a patch, you signify your understanding and 
        acceptance of these conditions</strong> - like most open source projects
        , we do not have the resources nor the inclination to obtain signed 
        statements from all contributors!
      </p>
   
    </section>
 
  </section>

  </body>

</document>
