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 [email protected] 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 [email protected] 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 [email protected] and [EMAIL PROTECTED] - - {{{ - [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: [EMAIL PROTECTED], [EMAIL PROTECTED], - [email protected], [EMAIL PROTECTED] - - {{{ - [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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
