You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by Apache Wiki <wi...@apache.org> on 2008/01/26 23:05:05 UTC

[Httpcomponents Wiki] Update of "CommonsHttpClientReleaseProcess" by RolandWeber

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Httpcomponents Wiki" for change notification.

The following page has been changed by RolandWeber:
http://wiki.apache.org/HttpComponents/CommonsHttpClientReleaseProcess

The comment on the change is:
moved page, updated announcement mail template

New page:
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 ==

   * Announce your proposed release to the httpcomponents-dev@jakarta.apache.org mailing list, and ask for a vote. Per the Jakarta Project charter, votes of Jakarta PMC members are considered binding.

   * Assuming the vote is successful send an email to httpcomponents-dev@jakarta.apache.org and private@jakarta.apache.org with the outcome of the vote. Something like the following:
{{{
Subject: [VOTE][RESULT] Commons HttpClient 3.0.1 released

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

+1

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:
http://www.mail-archive.com/httpclient-dev%40jakarta.apache.org/msg03653.html
}}}

== Building the Release ==

=== Documentation ===

   * 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 [http://jira.codehaus.org/browse/MPXDOC-186 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 [http://commons.apache.org/releases/release.html Commons release documentation].  Below is a quick Perl script to accomplish this. {{{
#!/usr/bin/perl -w
# 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`;
    chomp($testMd5); 
    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 [https://svn.apache.org/repos/asf/jakarta/site 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:
   * announcements@jakarta.apache.org
   * httpcomponents-dev@jakarta.apache.org
   * httpclient-user@jakarta.apache.org
   * private@jakarta.apache.org
  * 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 -
<http://www.apache.org/dist/httpcomponents/commons-httpclient/RELEASE_NOTES.txt>
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.

Enjoy,

HttpComponents Team
}}}

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org