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 22:57:14 UTC

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

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 RolandWeber:
http://wiki.apache.org/jakarta-httpclient/HttpComponentsCoreReleaseProcess

The comment on the change is:
moved to new wiki

------------------------------------------------------------------------------
+ #DEPRECATED
- ##language:en
- #pragma section-numbers off
  
- = HttpComponents Core Release Process =
+ This page has been [http://wiki.apache.org/HttpComponents/HttpComponentsCoreReleaseProcess moved]
+ to the new [http://wiki.apache.org/HttpComponents/ HttpComponents Wiki].
  
- == 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-x.x-uber.jar (version 0.2 as of writing)
- 
-  http://www.osjava.org/jardiff/
- 
-  * Run the following command for all components that have been previously released
- 
- {{{  
- java -jar jardiff-0.2-uber.jar -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)
- --------------------------------------
- ...
- 
- }}}
- 
-  * 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 package 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 dev@hc.apache.org list to review the site, release notes, release packages and report problems 
- 
- == Building release packages ==
- 
-  * Make sure you have the latest SVN content
- 
- {{{  
- svn up
- }}}
- 
-  * Just in case do
- 
- {{{  
- mvn release:clean
- }}}
- 
-  * Prepare release by updating the POMs and creating a release tag
- 
- {{{  
- mvn -Dusername=<username> -Dpassword=<password> release:prepare
- 
- Where 
-  <username> is your apache account name
-  <password> is your apache SVN password
- }}}
- 
-   Follow instructions displayed at the console
- 
- {{{  
- 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:
- }}}
- 
-   Select default unless this release transitions the development process from one phase (such as ALPHA) to the next one (for instance BETA) 
- 
- {{{  
- What is SCM release tag or label for "HttpComponents Core"? (org.apache.httpcomponents:httpcomponents-core) httpcomponents-core-4.0-alpha5
- }}}
- 
-   DO NOT select the default value. Enter the release version such as 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
- }}}
- 
-   Select default
- 
-  * If for whatever reason release:prepare fails before making another attempt make sure you do 
- 
- {{{  
- mvn release:clean
- svn -R revert .
- }}}
- 
-  * You may want to clear shell history at this point to make sure it does not contain your SVN password in clear text
- 
- {{{  
- history -c
- }}}
- 
-  * Make a clean checkout off the release tag
- 
- {{{  
- svn co http://svn.apache.org/repos/asf/httpcomponents/httpcore/tags/<version>/ httpcore-<version>
- }}}
- 
-  * Install release artifacts to the local Maven repository
- 
- {{{  
- mvn install
- }}}
- 
-  * Generate release javadocs
- 
- {{{  
- mvn javadoc:javadoc
- }}}
- 
-  * Build release packages
- 
- {{{  
- mvn package assembly:assembly
- }}}
- 
-  * Rename packages
- 
- {{{  
- 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
- }}}
- 
-  * Sign packages using the helper script (see previous section)
- 
- == Release vote ==
- 
-  * Upload RELEASE_NOTES.txt, release packages and corresponding MD5 and signature files to a publicly accessible web space such as people.apache.org
- 
-  * Call release vote on the dev@hc.apache.org list
- 
- {{{  
- [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.
- 
- 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 ==
- 
-  * Tally votes after the voting deadline elapsed (usually 72 hours)
- 
-  * If the vote fails, address concerns / problems stated as reasons for negative votes and re-vote
- 
-  * If the vote succeeds, send results to dev@hc.apache.org and private@hc.apache.org
- 
- {{{  
- [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 ==
- 
-  * Review your local Maven settings (usually located in ~/.m2/settings.xml)
- 
-  It will make your life _infinitely_ easier if you have a functional GPG system installed and are able 
-  to login into people.apache.org using your private key. If you are not comfortable with the idea of 
-  having your phase stored in clear text on your disk either remove it from  settings.xml once you 
-  are done with the release deployment or consider storing settings.xml on an encrypted partition.
- 
- {{{  
- ...
-   <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>
- ...
- }}}
- 
-  * Deploy release artifacts to the Maven2 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
- 
-   Make sure to enter your GPG Passphrase when prompted for while deploying the artifacts. All official ASF 
-   release artifacts MUST be signed
- 
- {{{
- [INFO] [gpg:sign {execution: sign-artifacts}]
- GPG Passphrase:****************
- }}}
- 
-  * Manually copy those artifacts to the Maven1 repository (we'll probably discontinue M1 support at some point of 
-  time, as this manual process is a MAJOR pain in the rectum)
- 
- {{{
- ssh <your-apache-id>@people.apache.org
- }}}
- 
- {{{
- cd /www/people.apache.org/repo/m1-ibiblio-rsync-repository/httpcomponents-httpcore/jars
- 
- export HC_M2_HOME=/www/people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/httpcomponents
- cp ${HC_M2_HOME}/httpcore/<version>/httpcore-<version>.jar* .
- cp ${HC_M2_HOME}/httpcore-nio/<version>/httpcore-nio-<version>.jar* .
- }}}
- 
-   Make sure files are group writable
- 
- {{{
- cd /www/people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/httpcomponents
- chmod -R g+w *
- cd /www/people.apache.org/repo/m1-ibiblio-rsync-repository/httpcomponents-httpcore
- chmod -R g+w *
- }}}
- 
-  * Deploy release packages
- 
- {{{
- 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 
- }}}
- 
-   Make sure files are group writable
- 
- {{{
- chmod -R g+w *
- }}}
- 
-  * This may also be a good occasion to delete old release packages
- 
- == Update HttpCore module site ==
- 
-  * Regenerate clover reports
- 
- {{{
- mvn clean clover:instrument clover:clover
- }}}
- 
-  * Build and deploy the site
- 
- {{{
- mvn site:site site:deploy
- }}}
- 
- == Update HttpComponents project site ==
- 
-  * Make sure you have the project folder checked out and updated (located at https://svn.apache.org/repos/asf/httpcomponents/project)
- 
- {{{
- svn co https://svn.apache.org/repos/asf/httpcomponents/project project
- svn up
- }}}
- 
-  This folder contains global project data that apples to all !HttpComponents modules. The folder MUST be put to the same root directory
-  as other !HttpComponents modules, as the global pom.xml contains relative paths to those module folders 
- 
-  * Review and update News, Status, Download pages 
- 
- {{{
- src/site/apt/news.apt
- src/site/apt/status.apt
- src/site/apt/download.apt
- }}}
- 
-  * Generate the site locally and review its content
- 
- {{{
- mvn site:site --non-recursive
- }}}
- 
-  You may want to run Maven in the non-recursive mode to skip individual project modules
- 
-  * If you want to generate the complete project site with all individual project modules execute
- 
- {{{
- mvn site:site site:stage -DstagingDirectory=<absolute path to a staging directory> 
- }}}
- 
-  * Once happy with the content of the site commit the changes
- 
-  * Deploy the site 
- 
- {{{
- mvn site:deploy --non-recursive
- }}}
- 
- == Announce release ==
- 
-  * Send out an announcement to the following lists: announce@apache.org, private@hc.apache.org, 
-    dev@hc.apache.org, httpclient-user@hc.apache.org
- 
- {{{
- [ANNOUNCEMENT] HttpComponents HttpCore ${VERSION} Released
- 
- The Jakarta HttpComponents project is pleased to announce the release of 
- HttpComponents HttpCore ${VERSION}. This version ${release specific content}.
- 
- Download -
- <http://jakarta.apache.org/site/downloads/downloads_httpcomponents-httpcore.cgi>
- Release notes -
- <http://www.apache.org/dist/jakarta/httpcomponents/httpcore/RELEASE_NOTES.txt>
- HttpComponents site - <http://jakarta.apache.org/httpcomponents/>
- 
- 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.
- 
- HttpCore will form the foundation of the future releases of Apache HttpClient.
- }}}
- 
- == Post-release JIRA admin tasks ==
- 
-  * Goto !HttpComponents Core -> Administer project -> Versions: Manage
- 
-  * Mark current version as Released
- 
-  * This may also be a good moment to mark old unsupported release versions as Archived 
-  and to add new release targets
- 

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