Differences between revisions 3 and 4
Revision 3 as of 2010-09-30 01:26:35
Size: 6982
Editor: adsl-177-232-119
Comment: minor edit
Revision 4 as of 2010-09-30 02:48:47
Size: 6931
Comment: spam
Deletions are marked like this. Additions are marked like this.
Line 56: Line 56:
https://svn.apache.org/repos/asf/jakarta/commons/proper/httpclient/branches/HTTPCLIENT_3_0_BRANCH https://svn.apache.org/repos/asf/jakarta/commons/proper/httpclient/tags/HTTPCLIENT_3_0_1 [[http://www.islimphonewallet.com|iphone wallet]] }}} https://svn.apache.org/repos/asf/jakarta/commons/proper/httpclient/branches/HTTPCLIENT_3_0_BRANCH https://svn.apache.org/repos/asf/jakarta/commons/proper/httpclient/tags/HTTPCLIENT_3_0_1}}}

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

Pre Release

Subject: [VOTE][RESULT] Commons HttpClient 3.0.1 released

The vote to release Commons HttpClient 3.0.1 has passed with
the following results


Michael Becke <mbecke -at- apache.org>
Ortwin Glück <oglueck -at- apache.org>
Oleg Kalnichevski <olegk -at- apache.org>
Roland Weber <rolandw -at- apache.org>

Original thread:

Building the Release


  • Update release_notes.txt - This file should be updated when patches are committed, but sometimes is 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.
  • Update the project version number.
    • build.xml - change the property component.version

    • project.xml - change <currentVersion/> and add a <version/> element

    • src/java/org/apache/commons/httpclient/params/DefaultHttpParamsFactory.java - update the useragent string
    • doap_httpclient.rdf - update the <release> section

  • Update project site documentation.
    • xdocs/status.xml - change the current status text, the link to next release bugs, and the release info link
    • xdocs/downloads.xml - change the release number and date and the Maven dependency xml
    • xdocs/news.xml - add a news item for the release. This can be reused in the announcement email and the Jakarta site news.
  • Make sure you have at least version 1.10 of the maven-xdoc-plugin as previous versions are affected by a bug. If not, update:

    • maven plugin:download -DartifactId=maven-xdoc-plugin -DgroupId=maven -Dversion=1.10

  • Generate the HttpClient site locally and validate.

    • maven site:generate

  • Checkin all changes.
    • svn commit -m 'Changes for 3.0.1 release'

Release Package

  • Tag the code in SVN.
    • When releasing off a branch

      {{{svn copy -m "HttpClient release 3.0.1"

https://svn.apache.org/repos/asf/jakarta/commons/proper/httpclient/branches/HTTPCLIENT_3_0_BRANCH https://svn.apache.org/repos/asf/jakarta/commons/proper/httpclient/tags/HTTPCLIENT_3_0_1}}}

  • When releasing off the trunk

    {{{svn copy -m "HttpClient release 3.1-alpha1"

https://svn.apache.org/repos/asf/jakarta/commons/proper/httpclient/trunk https://svn.apache.org/repos/asf/jakarta/commons/proper/httpclient/tags/HTTPCLIENT_3_1_ALPHA1}}}

  • Make sure you running a 1.2 JVM. This is necessary to ensure that the generated binaries are 1.2 compatible.
  • Generate the binary packages.
    • maven httpclient:dist

  • Verify the contents of the generated packages.
  • Sign and checksum the generated packages (*.zip, *.tar.gz, and *.jar). Details for this are covered in the Commons release documentation. Below is a quick Perl script to accomplish this.

    # signs and checksums all files given as command line args
    foreach my $file (@ARGV) {
        print $file."\n";
        my $md5 = `md5sum $file`;
        `echo "$md5" > $file.md5`;    
        $md5 =~ /(\w+)\s+/;
        $md5 = $1;
        # verify md5
        my $testMd5 = `openssl md5 < $file`;
        if ($testMd5 ne $md5) { die 'md5 does not equal'; }
        `gpg --armor --output $file.asc --detach-sig $file`;
        # verify signature
        `gpg --verify $file.asc $file`
  • Copy the release materials to your personal Apache web directory and invite the other HttpClient committers to test out the release packages before you continue.

Publishing the Release

  • Copy binary and source distributions into the HttpClient dist directory.

       export DIST_DIR=/www/www.apache.org/dist/jakarta/commons/httpclient
       cp commons-httpclient-3.0.1-src* $DIST_DIR/source/
       cp commons-httpclient-3.0.1.tar* commons-httpclient-3.0.1.zip* $DIST_DIR/binary/
       cp release-notes.txt $DIST_DIR/RELEASE_NOTES.txt
  • Copy the jar and POM to the ibiblio dist directory.

       export IBIBLIO_DIR=/www/people.apache.org/repo/m1-ibiblio-rsync-repository/commons-httpclient
       cp commons-httpclient-3.0.1.jar* $IBIBLIO_DIR/jars/
       cp project.xml $IBIBLIO_DIR/poms/commons-httpclient-3.0.1.pom
  • Be sure that all files belong to the jakarta group and that they are group writable.

Updating the Jakarta website

  • Check out the jakarta site directory from SVN.

  • Update news.xml and xdocs/downloads/downloads.xml to.

  • Run ant from the site directory to regenerate the site docs.

  • Checkin the modified docs.
    • svn commit -m "Updates for the HttpClient 3.0.1 release"

  • From people.apache.org update the Jakarta site.

    •    cd /www/jakarta.apache.org/
         svn update

Redeploy the HttpClient site

  • maven -Dmaven.username=mbecke site:deploy

Accounce the release

  • Send an email announcing the release to the following lists:
  • The email should look something like the following:

    Subject: [ANNOUNCEMENT] Commons HttpClient 3.1.1 Released
    The HttpComponents project is pleased to announce the release of
    HttpClient 3.1.1. This version fixes a number of bugs found since 
    the release of 3.1. All users of the Commons HttpClient are
    encouraged to upgrade. Please download and enjoy.
    Download - <http://hc.apache.org/downloads.cgi>
    Release notes -
    HttpClient site - <http://hc.apache.org/httpclient-3.x/>
    About Commons HttpClient -
    Although the java.net package provides basic functionality for
    accessing resources via HTTP, it doesn't provide the full flexibility
    or functionality needed by many applications. The Commons HttpClient
    seeks to fill this void by providing an efficient, up-to-date, and
    feature-rich package implementing the client side of the most recent
    HTTP standards and recommendations.
    HttpComponents Team

CommonsHttpClientReleaseProcess (last edited 2010-09-30 02:48:47 by SebastianBazley)