Dear Wiki user, You have subscribed to a wiki page or wiki category on "Httpcomponents Wiki" for change notification.
The "HttpComponentsCoreReleaseProcess" page has been changed by OlegKalnichevski: http://wiki.apache.org/HttpComponents/HttpComponentsCoreReleaseProcess?action=diff&rev1=28&rev2=29 {{{ mvn -version }}} - - * Generate pre-release JARs by running - - {{{ - mvn [clean] package [-Pjava-1.3 | -Pjava-1.4] - }}} - - !HttpCore is currently targetted at Java 1.3+, whereas the the rest of the code requires Java 1.5+. - If you are building/testing !HttpCore, and have got JDK 1.3 or JDK 1.4 installed on your system, - then you can use the java-1.x profiles to change the version of Java used when running the compile/test stages. - Read the httpcore/pom.xml for details of how to define the JDK locations. - Note: the profiles don't need to be used for all !HttpCore builds, but should used at least once on the final code to check compliance. - - * Test the contents of Maven artifacts (e.g. do all the jars contain suitable NOTICE, LICENSE and MANIFEST files?) by doing a test deploy. - The artifacts are saved to the relevant ''target/deploy'' directory. - (Note: the ''gpg.skip'' and ''skipTests'' qualifiers can be used to speed up the command.) - - {{{ - mvn deploy -Ptest-deploy -Prelease [-Dgpg.skip -DskipTests] - }}} - * If this is a non-ALPHA release, verify binary compatibility with the previous stable baseline version. Baseline version is the latest stable xx.yy.00 release @@ -71, +50 @@ and make adjustments that are necessary - * Deploy the site to a staging directory and review the resultant site before committing the changes - - {{{ - mvn site site:stage -Dmaven.clover.licenseLocation=<path>/clover.license -DstagingDirectory=<path>/stage - }}} - - You may need to re-build the site several times until fully satisfied with its content and appearance - - Remark: ASF committers can obtain a copy of Clover2 license donated to the ASF at this location - https://svn.apache.org/repos/private/committers/donated-licenses/clover - - Remark: stagingDirectory MUST be an absolute path - - Remark: due to limitations of the docbkx plugin the tutorial will not be copied to the staging directory - - * Package the content of the staging directory - * Generate release javadocs {{{ @@ -106, +68 @@ mvn package assembly:assembly antrun:run }}} + * Deploy pre-release snapshots to the Apache Nexus snapshot repository. + The snapshots will appear at https://repository.apache.org/content/repositories/snapshots/org/apache/httpcomponents/ + (This is also where the Hudson snapshots appear) + + {{{ + mvn deploy + }}} + + The command assumes presence of a functional gpg setup on the local system + + * Review site, release notes, release packages and release artefacts + + == Building release packages == + + Rather than making the necessary changes in the current SVN tree, and then creating the tag from that, + we create a clean workspace from the current tree. + The version and SCM changes are applied to the new workspace, which is then used to create the tag. + This approach means that the current tree is never in a transitional state. + Also, ongoing changes to the current tree cannot affect the new workspace. + + * Make sure all the workspace is up to date + + {{{ + svn -u st + }}} + + * Checkout the current SVN tree (usually trunk) into a fresh directory + + {{{ + svn co https://svn.apache.org/repos/asf/httpcomponents/httpcore/trunk httpcore-4.2-beta3-RC1 + }}} + + * Manually update the top-level pom.xml of the project: put the release version (e.g. 4.2-beta3) as the artifact version and update the SCM details to refer to the final release tag (without the -RC1 suffix, as the tag will be renamed later). + + ''TODO - can this be done using the versions plugin?'' + + {{{ + pom.xml + }}} + + * Manually update pom.xml of all modules in the project to refer to the updated parent version + + {{{ + httpcore/pom.xml + httpcore-nio/pom.xml + httpcore-osgi/pom.xml + httpcore-ab/pom.xml + httpcore-benchmark/pom.xml + }}} + + * Double-check that the changes to the workspace look OK. + The diff command should only show changes to the version and scm tags. + + {{{ + svn diff + }}} + + * Commit the changes, creating the release tag in the process. + Note: this preserves history, and the commit message will show just the version and SCM changes as above + + {{{ + svn cp . https://svn.apache.org/repos/asf/httpcomponents/httpcore/tags/4.2-beta3-RC1 + }}} + + '''IMPORTANT''' the workspace is still attached to trunk, so do not perform a checkin. + + * Install release artifacts to the local Maven repository + + {{{ + mvn install + }}} + + * Generate release javadocs + + {{{ + mvn javadoc:aggregate + }}} + + * Generate tutorial + + {{{ + mvn docbkx:generate-pdf docbkx:generate-html + }}} + + * Build release packages + + {{{ + mvn package assembly:assembly antrun:run + }}} + * Use this script to sign release packages + All official ASF release artifacts MUST be signed. + - The script assumes presence of a functional gpg setup on the local system + The script assumes presence of a functional gpg setup on the local system {{{ #!/usr/bin/perl -w @@ -132, +186 @@ } }}} - * 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 Nexus snapshot repository. - The snapshots will appear at https://repository.apache.org/content/repositories/snapshots/org/apache/httpcomponents/ - (This is also where the Hudson snapshots appear) - - {{{ - mvn deploy - }}} - - 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 == - - Rather than making the necessary changes in the current SVN tree, and then creating the tag from that, - we create a clean workspace from the current tree. - The version and SCM changes are applied to the new workspace, which is then used to create the tag. - This approach means that the current tree is never in a transitional state. - Also, ongoing changes to the current tree cannot affect the new workspace. - - * Make sure all the workspace is up to date - - {{{ - svn -u st - }}} - - * Checkout the current SVN tree (usually trunk) into a fresh directory - - {{{ - svn co https://svn.apache.org/repos/asf/httpcomponents/httpcore/trunk httpcore-4.2-beta3-RC1 - }}} - - * Manually update the top-level pom.xml of the project: put the release version (e.g. 4.2-beta3) as the artifact version and update the SCM details to refer to the final release tag (without the -RC1 suffix, as the tag will be renamed later). - - ''TODO - can this be done using the versions plugin?'' - - {{{ - pom.xml - }}} - - * Manually update pom.xml of all modules in the project to refer to the updated parent version - - {{{ - httpcore/pom.xml - httpcore-nio/pom.xml - httpcore-osgi/pom.xml - httpcore-ab/pom.xml - httpcore-benchmark/pom.xml - }}} - - * Double-check that the changes to the workspace look OK. - The diff command should only show changes to the version and scm tags. - - {{{ - svn diff - }}} - - * Commit the changes, creating the release tag in the process. - Note: this preserves history, and the commit message will show just the version and SCM changes as above - - {{{ - svn cp . https://svn.apache.org/repos/asf/httpcomponents/httpcore/tags/4.2-beta3-RC1 - }}} - - '''IMPORTANT''' the workspace is still attached to trunk, so do not perform a checkin. - - * Install release artifacts to the local Maven repository - - {{{ - mvn install - }}} - - * Generate release javadocs - - {{{ - mvn javadoc:aggregate - }}} - - * Generate tutorial - - {{{ - mvn docbkx:generate-pdf docbkx:generate-html - }}} - - * Build release packages - - {{{ - mvn package assembly:assembly antrun:run - }}} - - * Sign packages using the helper script (see previous section) - * Deploy the Maven artefacts to the Nexus staging repository {{{ @@ -236, +196 @@ where will be held in the staging repository until they are promoted or deleted. The command assumes presence of a functional gpg setup on the local system. - - All official ASF release artifacts MUST be signed. * Login to Nexus (same login/password as for SVN and people), and navigate to the staging repository * Check that the correct files are present (e.g. binary, source, Javadoc), and "Close" the upload directory. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
