Dear Wiki user, You have subscribed to a wiki page or wiki category on "Commons Wiki" for change notification.
The following page has been changed by SiegfriedGoeschl: http://wiki.apache.org/commons/CreatingReleases ------------------------------------------------------------------------------ = DRAFT Procedure for creating a release using M2 = '''This is currently a discussion page, and is not (yet) policy''' - - == Background == - - See Maven documentation: [http://maven.apache.org/developers/release/releasing.html Releasing A Maven Project]. - - '''Please prepare the POM(s) for the release, quoting from the above page:''' - - Check that your poms will not lose content when they are rewritten during the release process. - - * mvn release:prepare -!DdryRun=true - - * Diff the original file pom.xml with the one called pom.xml.tag to see if the license or any other info has been removed. '''This has been known to happen if the starting <project> tag is not on a single line.''' The only things that should be different between these files are the <version> and <scm> elements. Any other changes, you must backport yourself to the original pom.xml file and commit before proceeding with the release. - - * Remember to do 'mvn release:clean ' before you start the real release process. - - ---- == Maven2 Release Procedure == @@ -28, +12 @@ * The Apache {{{m2-snapshot-repository}}} if a SNAPSHOT version is used (to permit easy testing of RCs by community, for instance) * A staging repository under {{{p.a.o/builds/commons/{component.id}/}}} if a final version is used - === A. Maven Setup (one time) === + === A. Infrastructure Setup (one time) === + ==== A.1 Get Familiar with Maven ==== + + Reading the Maven documentation is a good start - [http://maven.apache.org/developers/release/releasing.html Releasing A Maven Project]. + + ==== A.2 Signature Keys ==== + + You need to sign the released artifact using your PGP key which implies + + * you generated one + * it is uploaded to a key server + * it is signed on a key signing party + * it is found in the KEY file (see https://svn.apache.org/repos/asf/commons/trunks-proper) + + ==== A.3 Maven Installation ==== + + Currently Maven 2.0.8 or better is required to run the release process + - ==== A.1 Maven Server Settings ==== + ==== A.4 Maven Server Settings ==== It is a good idea to check your ''settings.xml'' that it contains the corresponding server entries for the repositories and websites defined in the commons parent pom. If you have a different user name on your box than on ''people.apache.org'' you local user name will be used for authentication. Therefore the authentication will fail and after a few retries your are locked out from ''people.apache.org'' for a day - which in turn makes cutting a release rather lengthy. In theory you could also provide your password in the server section below but this unsafe and did not work in my case. @@ -57, +58 @@ </servers> }}} - === B. Release prep === + === B. Release Preparation === ==== B.1 Check Your Project ==== Here you find a list of reminders what to double-check before cutting a release candidate - * Make sure that you are not referencing any SNAPSHOT version otherwise the release will fail + * Make sure that you are not referencing any SNAPSHOT version (dependencies and plugins) otherwise the release will fail * Make sure that you update your ''changes.xml'' to reflect your release * Make sure that all your files contain a ASF licence header (look at the ''RAT'' report when in doubt) * Make sure that you make a test build using a clean checkout @@ -105, +106 @@ }}} + ==== B.4 Prepare Your Assembly Descriptors ==== + + If you are declaring/using your own assembly descriptors make sure that they are not using ${version} but ${commons.release.version} - there seems to be an odd bug which results in an incorrectly expanded version string, e.g. {{{commons-exec-2.4.1-src}}}. If in doubt look at {{{./src/assembly/src.xml}}} + + ==== B.5 Dry Run Your Maven Release ==== + + Check that your poms will not lose content when they are rewritten during the release process. + + * mvn release:prepare -!DdryRun=true + + * Diff the original file pom.xml with the one called pom.xml.tag to see if the license or any other info has been removed. '''This has been known to happen if the starting <project> tag is not on a single line.''' The only things that should be different between these files are the <version> and <scm> elements. Any other changes, you must backport yourself to the original pom.xml file and commit before proceeding with the release. + + * Remember to do 'mvn release:clean ' before you start the real release process. + === C. Stage artifacts and site === 1. {{{mvn -Prc release:prepare}}} @@ -160, +175 @@ 1. {{{mvn site-deploy}}} + === F. Celebrate === + + ==== F.1 Send an Announcement ==== + + Send an announcement to the developer and user mailing list. Since you have dutifully updated your {{{changes.xml}}} you can generate the announcement in {{{./target/announcement/}}} + + {{{ + > mvn changes:announcement-generate + }}} + ---- == Releasing commons-parent pom == --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org