Introduction

The Jakarta Commons HttpClient project is following the new wave of projects that are using Maven to assist in building the packages and all the documentation including javadoc and the website. These instructions describe the release process for HttpClient. While other commons projects may be similar, these instructions are HttpClient specific, but can be adapted to suit other projects.

Step By Step Instructions

The following steps are required to create and deploy a release version of a Commons library package. The example text consistently assumes that we are releasing version 2.0 of the httpclient package.

  1. Announce your proposed release of a particular package to the commons-httpclient-dev@jakarta.apache.org mailing list, and ask for a vote. Per the Commons Project charter, votes of committers on the particular package in question (as listed in the project.xml file) are binding.



  2. Check out and thoroughly test the package code that you plan to release.



  3. Update the project version number in the build.xml, project.xml, status.xml, downloads.xml, and the HttpMethodBase useragent string. There is an Ant property named component.version that would be updated to 2.0. Check in any files you have modified.



  4. Update release_notes.txt. This file should be updated in CVS when patches are committed, but it is frequently not. Be sure all relevant changes since the last release are included. This file should be published along with the release source and binary distributions.



  5. In your local repository (or on cvs.apache.org) tag only the files in the subdirectory for this package with the package name (in caps) and version number for the package you are creating. For example,
                cd $JAKARTA_COMMONS_HOME/httpclient
                cvs tag HTTPCLIENT_2_0_BETA1
              
  6. Regenerate the binary distribution of the code by running maven dist. Ensure that you use the lowest reasonable jdk to do the build, 1.2.2. Review the generated documentation to ensure that it correctly reflects the functionality (and the version number) of this code.



  7. Create a news item. This should be added to httpclient/xdocs/news.xml and the jakarta-site2/xdocs/site/news.xml as well as a one liner in jakarta-site2/xdocs/index.html



  8. Run maven site:generate to generate the website documentation. Browse the generated docs in the target directory to ensure that they are correct and complete. Modify the xdocs as required and when satisfied run maven -Dmaven.username=your.apache.id@ site:deploy to deploy the site to daedalus.



  9. Upload the binary and source distribution files to www.apache.org.
                scp target/distributions/commons-httpclient-2.0-src.* \
                  your_apache_id@jakarta.apache.org:\
                  /www/www.apache.org/dist/jakarta/commons/httpclient/source
                scp target/distributions/commons-httpclient-2.0.* \
                  your_apache_id@jakarta.apache.org:\
                  /www/www.apache.org/dist/jakarta/commons/httpclient/binary
              
    NOTE: Make sure that the files you copy are group writable.
  10. Follow standard procedures to update the Jakarta web site (stored in CVS repository jakarta-site2 to reflect the availability of the new release. Generally, you will be updating the following pages:
    • xdocs/site/binindex.xml - Create a link to the release directory under the Release Builds heading.
    • xdocs/site/sourceindex.xml - Create a link to the release directory under the Release Builds heading.
    • xdocs/site/news.xml - Create a news item that describes the new release, and includes hyperlinks to the release directory.
    • xdocs/index.xml - Create a one line news item that links to the full item in site/news.xml.
    • Then run ant at the base to generate the new docs and commit the changes to jakarta-site2. You will be committing the updated xdocs and html.
                      ant
                      cvs commit -m "update to reflect release of commons-httpclient"
                  
    • If you have an account on daedalus, log in and update the web site:
                      cd /www/jakarta.apache.org
                      cvs update index.html site
                  
  11. Update components.xml in the jakarta-commons/xdocs CVS and then build the docs by running ant (this may require some configuration). CVS commit, then if you have an account on daedalus, update the commons website with a cvs udpate in /www/jakarta.apache.org/commons.

  12. Announce the availability of the new package on the following mailing lists:
    • announcements@jakarta.apache.org
    • commons-dev@jakarta.apache.org
    • commons-user@jakarta.apache.org
    • commons-httpclient-dev@jakarta.apache.org


  13. Check in bugzilla for all bugs which have been marked LATER and update their status appropriately. If you need to have some changes made to bugzilla you can contact mvdb@apache.org



  14. Deploy the jar file to the ibiblio repository.
                scp target/commons-httpclient-2.0.jar \
                  your_apache_id@jakarta.apache.org:\
                  /www/www.apache.org/dist/java-repository/commons-httpclient/jars/