HttpComponents Core Release Process

Release preparation

mvn package

src/site/apt/download.apt 
src/site/apt/index.apt 

mvn clean site site:stage -Dmaven.clover.licenseLocation=<path>/clover.license -DstagingDirectory=<path>/stage

mvn javadoc:javadoc

mvn docbkx:generate-pdf docbkx:generate-html

mvn package assembly:assembly antrun:run

# 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`
}

mvn deploy

Building release packages

svn up

mvn release:clean

mvn -Dusername=<username> -Dpassword=<password> release:prepare

Where 
 <username> is your apache account name
 <password> is your apache SVN password

What is the release version for "HttpComponents Core"? (org.apache.httpcomponents:httpcomponents-core) 4.0-alpha5:
What is the release version for "HttpCore (base module)"? (org.apache.httpcomponents:httpcore) 4.0-alpha5:
What is the release version for "HttpCore (NIO extensions module)"? (org.apache.httpcomponents:httpcore-nio) 4.0-alpha5:

What is SCM release tag or label for "HttpComponents Core"? (org.apache.httpcomponents:httpcomponents-core) httpcomponents-core-4.0-alpha5

What is the new development version for "HttpComponents Core"? (org.apache.httpcomponents:httpcomponents-core) 4.0-alpha6-SNAPSHOT
What is the new development version for "HttpCore (base module)"? (org.apache.httpcomponents:httpcore) 4.0-alpha6-SNAPSHOT
What is the new development version for "HttpCore (NIO extensions module)"? (org.apache.httpcomponents:httpcore-nio) 4.0-alpha6-SNAPSHOT

mvn release:clean
svn -R revert .

history -c

svn co http://svn.apache.org/repos/asf/httpcomponents/httpcore/tags/<version>/ httpcore-<version>

mvn install

mvn javadoc:javadoc

mvn docbkx:generate-pdf docbkx:generate-html

mvn package assembly:assembly antrun:run

Release vote

[VOTE] HttpComponents Core ${VERSION} release

Please vote on releasing these packages as HttpComponents Core ${VERSION}. The vote is open for the 
next 72 hours, and only votes from HttpComponents PMC members are binding. The vote passes if at least 
three binding +1 votes are cast and there are more +1 than -1 votes.

Packages:
[link]

Release notes:
[link]

--------------------------------------------------------------------------
 Vote:  HttpComponents Core ${VERSION} release
 [ ] +1 Release the packages as HttpComponents Core ${VERSION}.
 [ ] -1 I am against releasing the packages (must include a reason). 

Release vote result

[VOTE][RESULT] HttpComponents Core ${VERSION} release

The vote to release HttpComponents Core ${VERSION} has passed with the following results

+1 (4 binding votes in total)
aaaa <aaaa -at- apache.org> *
bbbb <bbbb -at- apache.org>
cccc <cccc -at- apache.org> *
dddd <dddd -at- apache.org> *
eeee <eeee -at- apache.org> *

-1 (1 binding vote in total)

ffff <ffff -at- apache.org> *

* binding votes

Original voting thread:
[link]

Release deployment

...
  <servers>
    <server>
      <id>apache.website</id>
      <username>${your apache id}</username>
      <passphrase>${your GPG pass phrase}</passphrase>
      <directoryPermissions>775</directoryPermissions>
      <filePermissions>644</filePermissions>
    </server>
    <server>
      <id>apache.releases</id>
      <username>${your apache id}</username>
      <passphrase>${your GPG pass phrase}</passphrase>
      <directoryPermissions>775</directoryPermissions>
      <filePermissions>644</filePermissions>
    </server>
    <server>
      <id>apache.snapshots</id>
      <username>${your apache id}</username>
      <passphrase>${your GPG pass phrase}</passphrase>
      <directoryPermissions>775</directoryPermissions>
      <filePermissions>644</filePermissions>
    </server>
  </servers>
...

mvn deploy -P release

[INFO] [gpg:sign {execution: sign-artifacts}]
GPG Passphrase:****************

cd /www/www.apache.org/dist/httpcomponents/httpcore

cp ~/public_html/httpcore-<version>/RELEASE_NOTES.txt .
cp ~/public_html/httpcore-<version>/packages/httpcomponents-core-<version>-src.* source
cp ~/public_html/httpcore-<version>/packages/httpcomponents-core-<version>-bin.* binary 

chmod -R g+w *

Update HttpCore module site

mvn clean site site:deploy -Dmaven.clover.licenseLocation=<path>/clover.license

Update HttpComponents project site

svn co https://svn.apache.org/repos/asf/httpcomponents/project project
svn up

src/site/apt/news.apt
src/site/apt/status.apt
src/site/apt/download.apt
src/site/resources/css/hc-maven.css

mvn site:site --non-recursive

mvn site:deploy --non-recursive

Announce release

[ANNOUNCEMENT] HttpComponents HttpCore ${VERSION} Released

The Apache HttpComponents project is pleased to announce the release of 
HttpComponents HttpCore ${VERSION}. This version ${release specific content}.

Download -
<http://hc.apache.org/downloads.cgi>
Release notes -
<http://www.apache.org/dist/httpcomponents/httpcore/RELEASE_NOTES.txt>
HttpComponents site - 
<http://hc.apache.org/>

About HttpComponents Core -
HttpCore is a set of low level HTTP transport components that can be used to build 
custom client and server side HTTP services with a minimal footprint. HttpCore supports 
two I/O models: blocking I/O model based on the classic Java I/O and non-blocking, 
event driven I/O model based on Java NIO.  The blocking I/O model may be more appropriate 
for data intensive, low latency scenarios, whereas the non-blocking model may be more 
appropriate for high latency scenarios where raw data throughput is less important than 
the ability to handle thousands of simultaneous HTTP connections in a resource efficient 
manner.

Post-release JIRA admin tasks

HttpComponentsCoreReleaseProcess (last edited 2009-09-20 21:44:18 by localhost)