HttpComponentsCoreReleaseProcess

HttpComponents Core Release Process

Release preparation

mvn package
java -jar jardiff-0.2-uber.jar -f <previous-release>.jar -t <prerelease>-SNAPSHOT.jar -o text
HttpCore API changes (generated by JarDiff 0.2)
--------------------------------------
...

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

src/site/apt/download.apt 
src/site/apt/index.apt 
mvn clean clover:instrument clover:clover site:stage -Dclover.license=<path>/clover.license -DstagingDirectory=<path>/stage
mvn package assembly:assembly
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
#!/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`
}
mvn deploy -P release 

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 package assembly:assembly
httpcomponents-core-<version>-bin-unix.tar.gz -> httpcomponents-core-<version>-bin.tar.gz
httpcomponents-core-<version>-bin-win.zip -> httpcomponents-core-<version>-bin.zip
httpcomponents-core-<version>-src-unix.tar.gz -> httpcomponents-core-<version>-src.tar.gz
httpcomponents-core-<version>-src-win.zip -> httpcomponents-core-<version>-src.zip

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 clover:instrument clover:clover
mvn clover:instrument clover:clover site:site site:deploy -Dclover.license=<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
mvn site:site --non-recursive
mvn site:site site:stage -DstagingDirectory=<absolute path to a staging directory> 
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 -
The HttpCore components implement the most fundamental aspects of the
HTTP protocol. They are nonetheless sufficient to develop basic client
side and server side HTTP services with a minimal footprint and no
external dependencies. HttpCore NIO extensions can be used to build
asynchronous HTTP services based on non-blocking I/O model capable of
handling a great number of simultaneous connections with just a few I/O
threads.

Post-release JIRA admin tasks

last edited 2008-08-23 11:15:21 by OlegKalnichevski