<?xml version="1.0"?>
<document url="./release-plan-1.1rc2.xml">

    <properties>
       <title>Struts Release Plan (Version 1.1)</title>
     </properties>

  <body>

      <section name="Objective" href="Objective">

          <p>
              $Id$
          </p>

          <p>
              The objective of the <strong>Struts 1.1 Final</strong> release is to provide
              an official release of all the bug fixes and documentation updates that have
              been made to the main trunk of the jakarta-struts CVS since the release of
              Struts 1.0.2.
          </p>

      </section>

      <section name="The Plan" href="Plan">

          <p>
              Only minor changes have been made to the codebase since the Struts 1.1
              RC2 release.
              Issues reported on the few oustanding tickets are either unconfirmed or
              may be categorized as enhancements and can be resolved in short order.
              Therefore it is time to make the latest code base available as the
              Struts 1.1 Final Release.
          </p>

          <p>
              The final release of Commons FileUpload has been approved and will be
              available for distribution with Struts 1.1 Final, as required by the
              Struts 1.1 RC2 release plan.
          </p>

          <p>
              Therefore, the following release plan is proposed for Struts 1.1 Final:
          </p>

          <ul>
              <li>
                  <em>Code Freeze / Tag Date</em> - Saturday, June 28, 2003, 23:59:59
              </li>
              <li>
                  <em>Release Manager</em> - Martin Cooper
              </li>
              <li>
                  <em>Release Announcement</em> - To the following mailing lists:
                  <ul>
                      <li>announcements@jakarta.apache.org</li>
                      <li>struts-dev@jakarta.apache.org</li>
                      <li>struts-user@jakarta.apache.org</li>
                  </ul>
              </li>
          </ul>

          <p>
              The release process shall follow the same
              <a href="http://jakarta.apache.org/commons/releases/">general procedures</a>
              established the Jakarta Commons products.
          </p>

      </section>

      <section name="Release Criteria" href="Criteria">

          <p>
              Prior to the release of Struts 1.1 Final Release, the following
              action items must be completed:
          </p>

          <ul>
              <li>
                  A release vote shall take place on the <em>struts-dev</em> mailing list
                  to approve this plan. The release vote MUST pass by "Majority Approval"
                  of Struts committers.
             </li>
             <li>
                The Struts 1.1 Release Notes document shall be updated to describe
                any substantial changes and improvements since the Struts 1.1 RC2 release,
                along with associated updates to the main Struts Documentation
                Application pages describing the new release.
             </li>
             <li>
                All of the Struts example applications that are included with the release
                shall operate successfully in the following servlet containers:
                <ul>
                    <li><a href="http://jakarta.apache.org/tomcat">Tomcat 3.3.1</a></li>
                    <li><a href="http://jakarta.apache.org/tomcat">Tomcat 4.0.6</a></li>
                    <li><a href="http://jakarta.apache.org/tomcat">Tomcat 4.1.18</a></li>
                 </ul>
             </li>
          </ul>

          <p>
            Prior to the release of a subsequent Struts 1.1 Final release, the
            following action items must be completed:
          </p>

          <ul>
            <li>
                All
                <a href="http://issues.apache.org/bugzilla/buglist.cgi?email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=Struts&amp;version=1.1RC2&amp;short_desc=&amp;short_desc_type=allwordssubstr&amp;long_desc=&amp;long_desc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_file_loc_type=allwordssubstr&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Bug+Number">
                Bugzilla bug reports</a>
                against Struts 1.1 RC2 MUST be marked as "Enhancement" or "Resolved", with any
                of the legal Bugzilla resolutions (FIXED, INVALID, WONTFIX, LATER,
                REMIND, WORKSFORME).
          </li>
          <li>
                Bug reports that are resolved as LATER or REMIND will include comments
                as to whether those specific issues will be dealt with in a subsequent
                beta, release candidate, or final release, or whether they will be
                scheduled for consideration in a subsequent release time frame.
         </li>
         <li>
                The final release of Commons-FileUpload 1.0 must be available
                and made part of the Struts 1.1 Final distribution.
          </li>
      </ul>

    </section>
    </body>
</document>
