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 2007/06/25 10:57:13 UTC

[Jakarta-httpclient Wiki] Update of "HttpComponentsCoreReleaseProcess" by OlegKalnichevski

Dear Wiki user,

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

The following page has been changed by OlegKalnichevski:
http://wiki.apache.org/jakarta-httpclient/HttpComponentsCoreReleaseProcess

New page:
##language:en
#pragma section-numbers off

= HttpComponents Core Release Process =

== Release preparation ==

 * Make sure there are no open Jira issues targeted for this release

 https://issues.apache.org/jira/browse/HTTPCORE

 * Review RELEASE_NOTES.txt and make sure all important issues closed since the previous release are included in the release notes

 * Generate pre-release JARs by running 

{{{
mvn package
}}}

 * Download the latest JARDIFF (version 0.2 as of writing; requires Commons CLI 1.x and ASM 2.2.x)

 http://www.osjava.org/jardiff/

 * Create jardiff.sh shell script or its Windows equivalent

{{{  
#!/bin/sh

java -cp commons-cli.jar:asm.jar:jardiff.jar org.osjava.jardiff.Main $*
}}}

 * Run the following command for all components that have been previously released

{{{  
jardiff -f <previous-release>.jar -t <prerelease>-SNAPSHOT.jar -o text
}}}

 * Collect output (by redirecting it to a file) and add it to the 'API changes' of the release notes

{{{  
HttpCore API changes (generated by JarDiff 0.2)
--------------------------------------
...

HttpCore NIO API changes (generated by JarDiff 0.2)
--------------------------------------
...

HttpCore NIOSSL API changes (generated by JarDiff 0.2)
--------------------------------------
...
}}}

 * Remove 'API changes' section of the previous release to keep release notes file short

 * Write an opening statement for the release highlighting the most changes, bug fixed and improvements

 * Review the following pages

{{{  
src/site/apt/download.apt 
src/site/apt/index.apt 
}}}

 and make adjustments that are necessary

 * Generate clover reports

{{{  
mvn clean clover:instrument clover:clover
}}}

 * Deploy the site to a staging directory and review the resultant site before committing the changes  

{{{  
mvn site:site site:stage -DstagingDirectory=/home/oleg/stage
}}}

 You may need to re-build the site several times until fully satisfied with its content and appearance

 Remark: stagingDirectory MUST be an absolute path

 * Package the content of the staging directory

 * Generate release packages

{{{  
mvn assembly:assembly
}}}

 * Rename pre-release packages packages 

{{{  
httpcomponents-core-<version>-SNAPSHOT-bin-win.zip ->  httpcomponents-core-<version>-SNAPSHOT-bin.zip
httpcomponents-core-<version>-SNAPSHOT-src-win.zip ->  httpcomponents-core-<version>-SNAPSHOT-src.zip
httpcomponents-core-<version>-SNAPSHOT-bin-unix.tar.gz ->  httpcomponents-core-<version>-SNAPSHOT-bin.tar.gz
httpcomponents-core-<version>-SNAPSHOT-src-unix.tar.gz ->  httpcomponents-core-<version>-SNAPSHOT-src.tar.gz
}}}

 * Use this script to sign release packages

 The script assumes presence of a functional gpg setup on the local system 

{{{  
#!/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`
}
}}}

 * Upload the content of the staging directory, RELEASE_NOTES.txt, release packages and corresponding MD5 and signature files to a publicly accessible web space such as people.apache.org

 * Deploy pre-release snapshots to the Apache Maven snapshot repository

{{{  
mvn deploy -P release 
}}}

 The 'release' profile parameter will cause release artifacts to be signed prior to deployment to the remote repository

 The command assumes presence of a functional gpg setup on the local system

 * Invite people on the httpcomponents-dev@jakarta.apache.org list to review the site, release notes, release packages and report problems 

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