<?xml version="1.0"?>

<!--
 * ========================================================================
 * 
 * Copyright 2001-2004 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="release_checklist">

  <properties>
    <title>Release Checklist</title>
  </properties>

  <body>

    <section title="Release Checklist">

      <note>
        This checklist does not include how to release the Maven plugin
        for Cactus.
      </note>
      
      <p>
        Checklist of tasks to perform for each release:
      </p>
      <ol>
        <li>
          Ensure that all
          <link href="ext:bug_database_cactus_open_issues">open bugs</link> have 
          been either fixed, or added in the announcement file. Note that 
          improvements do not need to be added to the announcement file.
        </li>
        <li>
          Ensure that the Cactus tests have been run on several application
          servers and update the <link href="ext:cactus_testedon">Tested On</link>
          page accordingly.
        </li>
        <li>
          Ensure that Cactus works with the latest released versions of the
          external libraries it uses (Commons-logging, HttpClient, HttpUnit, 
          etc) and update the <code>dependencies.xml.default</code> file to 
          use these latest versions.
        </li>
        <li>
          Ensure that the 
          <link href="ext:bug_database_cactus_open_issues">Todo</link> page 
          has no more items for the current version.
        </li>
        <li>
          Update the <code>ANNOUNCEMENT.txt</code> file in CVS with the release
          notes. A <jump anchor="announcement_template">sample announcement 
          template</jump> is provided at the bottom of this page.
        </li>
        <li>
          Ensure you have added a news item for the new Cactus release on
          the <link href="site:news">News</link> page.
        </li>
        <li>
          Edit <code>changes.xml</code> and replace "<code>in CVS</code>" with
          the date of the release.
        </li>
        <li>
          Edit <code>build-common.xml</code> and
          modify the <code>project.version.*</code> Ant properties so that
          they reflect the version number for the release (no 
          <code>dev</code> suffix should remain). Commit the changes.
        </li>
        <li>
          CVS Checkout a clean copy of Cactus so that no local files are
          included in the distribution and to verify it really works.
        </li>
        <li>
          Build the Cactus release for all Servlet APIs (<code>ant
          release</code> at the top level). <em>Note: Make sure you are 
          connected to the internet when building the releases as the 
          documentation subproject needs the CVS logs for the changes 
          page.</em>
        </li>
        <li>
          Install each delivered release on your local computer and try running
          the Sample application tests for one application server.
        </li>
        <li>
          Upload the Cactus releases (for all Servlet APIs and the source one)
          and the zipped Ant distribution to <code>cvs.apache.org</code>,
          putting them in the
          <code>/www/www.apache.org/dist/jakarta/cactus</code>
          directory (binaries go in <code>binaries/</code> and sources in
          <code>source/</code>). Also make sure you link the latest versions
          to the <code>*-current.zip</code> files.
        </li>
        <li>
          Upload the Cactus website by running <code>ant upload</code> in the 
          Cactus <code>documentation/</code> project (after you have run
          <code>cactus release</code> from the top level).
        </li>
        <li>
          Tag the CVS HEAD with a new release tag named
          <code>CACTUS_&lt;version&gt;_RELEASE</code> (ex:
          <code>CACTUS_14_RELEASE</code>).
        </li>
        <li>
          Checkout the <code>jakarta-site2</code> CVS module. Modify the 
          following files and then run <code>ant</code>. Commit the modified
          files. Then log on <code>cvs.apache.org</code>, go to 
          <code>/www/jakarta.apache.org/site</code> and type 
          <code>cvs update</code>.
          <ul>
            <li>
              <code>news.xml</code>
            </li>
            <li>
              <code>binindex.xml</code>
            </li>
            <li>
              <code>sourceindex.xml</code>
            </li>
            <li>
              <code>index.xml</code>
            </li>
          </ul>
        </li>
        <li>
          Add a new version in JIRA so that users can enter bugs for the
          new version released.
        </li>
        <li>
          Prepare the next version by editing again the
          <code>build-common.xml</code> file and modifying the
          <code>project.*.version</code> properties with the new development 
          version (for example after releasing 1.5, the new development 
          version is 1.6dev).
        </li>
        <li>
          Announce the release on the following locations (using the
          <code>ANNOUNCEMENT.txt</code> as the email content):
          <ul>
            <li>
              Cactus user mailing list: Send the announcement there with a
              subject of <code>[ANN] Cactus &lt;version&gt; has been
              released</code>.
            </li>
            <li>
             Jakarta Announcement mailing list
             (<code>announcements@jakarta.apache.org</code>): Send the
             announcement there with a subject of <code>[ANN] Cactus
             &lt;version&gt; has been released</code>.
            </li>
          </ul>
        </li>
      </ol>

    </section>

    <anchor id="announcement_template"/>
    <section title="Announcement template">

<source><![CDATA[
The Cactus project is pleased to announce the release of version <v>.
Cactus is a unit testing framework for testing server side java code.

Goals
-----

[add description of main focus here]

Main new features
-----------------

[add main new features here]

Changes
-------

Please check the Changes page at
http://jakarta.apache.org/cactus/changes.html for a full list of the 
changes in version <v>. 

Known limitations and bugs:
---------------------------

[add main limitations and known bugs here]

For more information about Cactus, please visit
http://jakarta.apache.org/cactus/.

Have fun,
-The Cactus team
]]></source>

    </section>

  </body>
</document>
