Author: dfabulich Date: Tue Feb 5 23:55:13 2008 New Revision: 618921 URL: http://svn.apache.org/viewvc?rev=618921&view=rev Log: Make the "new" release process a complete reference, without referring back to steps from the old release process
Modified: maven/site/trunk/src/site/apt/developers/release/releasing.apt Modified: maven/site/trunk/src/site/apt/developers/release/releasing.apt URL: http://svn.apache.org/viewvc/maven/site/trunk/src/site/apt/developers/release/releasing.apt?rev=618921&r1=618920&r2=618921&view=diff ============================================================================== --- maven/site/trunk/src/site/apt/developers/release/releasing.apt (original) +++ maven/site/trunk/src/site/apt/developers/release/releasing.apt Tue Feb 5 23:55:13 2008 @@ -26,13 +26,21 @@ Releasing A Maven Project What follows is a description of releasing a Maven project to a staging repository, whereupon it is scruntized by - the community, approved, and transfered to a production repository. In order to release a project you must have the - following setup in your <<<$HOME/.m2/settings.xml>>> which is a profile which provides settings for: - - * Your GPG passphrase which will be used to sign all artifacts that are released. If you have no idea what your - GPG passphrase is then refer to {{{pmc-release-process.html}this document}}. - - * The staging repository that you want to deploy the release to. + the community, approved, and transfered to a production repository. + + +Prerequisite + + Be sure that: + + * you have all Maven servers defined in your settings.xml. For more information, please refer to + {{{../committer-settings.html}Committer settings}}. + + * you have created your GPG keys. For more information, please refer to {{{pmc-gpg-keys.html}Making GPG Keys}}. + + + In order to release a project you must also have the + following setup in your <<<$HOME/.m2/settings.xml>>> which is a profile that defines the staging repository. Here's what your <<<release>>> profile might look like in your <<<$HOME/.m2/settings.xml>>>: @@ -61,21 +69,38 @@ %{snippet|id=release-profile|url=http://svn.apache.org/repos/asf/maven/pom/trunk/maven/pom.xml} -* The New Steps +* Release Process for Part Of Maven - The following steps replace steps 2-7 in the - {{{./pmc-release-process.html}old release process}}. + [[1]] Prepare your poms for release: - [[1]] Prepare the release + [[a]] Make sure there are <<NO>> snapshots in the poms to be released. -+-----+ -mvn release:prepare -+-----+ + [[b]] Check that your poms will not lose content when they are rewritten + during the release process. + + * <<<mvn release:prepare -DdryRun=true>>> - [[2]] Perform the release + * 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. + + [[2]] Publish a snapshot: +-----+ -mvn release:perform +>mvn deploy +... +[INFO] [deploy:deploy] +[INFO] Retrieving previous build number from apache.snapshots +... +-----+ <<IMPORTANT NOTE:>> Be sure that the generated artifacts respect the @@ -83,6 +108,26 @@ the META-INF directory within the jar. For -sources artifacts, be sure that your pom does NOT use the maven-source-plugin:2.0.3 which is broken. The recommended version at this time is 2.0.4. + <<Note>>: You could verify the deployment under Maven Snapshot repository on Apache. + ++-----+ +http://people.apache.org/repo/m2-snapshot-repository/org/apache/maven/plugins/maven-XXX-plugin/2.1/ ++-----+ + + [[3]] Prepare the release + ++-----+ +mvn release:prepare ++-----+ + + <<Note>>: Preparing the release will create the new tag in SVN, automatically checking in on your behalf. + + [[4]] Perform the release + ++-----+ +mvn release:perform ++-----+ + [[3]] Propose a vote on the dev list with the closed issues, the issues left, the staging repository and the staging site. For instance: @@ -114,7 +159,7 @@ Once a vote is successful, post the result to the dev list and cc the pmc. - [[4]] Copy from the staging repo to the production repo + [[5]] Copy from the staging repo to the production repo Once the release is deemed fit for public consumption it can be transfered to a production repository where it will be available to all users. @@ -161,12 +206,64 @@ This will allow you to bypass the staging phase and push the release directly into a production repository. It is assume that you have pushed a snapshot somewhere that people have looked at and approved of. - [[5]] Deploy the project site. + [[6]] Deploy the project site. <<Note:>> Be sure to generate and deploy the site using the same version of the release. Typically, you need to check out the tag (or go to <<<target/checkout>>>) and call <<<mvn site -Preporting site:deploy>>>. - [] + [[7]] Review Website + + Wait for the files to arrive at + ++-----+ +http://maven.apache.org/plugins/maven-XXX-plugin ++-----+ + + [[8]] Update the plugins page + + If this is a plugin release, update the version number for the plugin on the + </plugins/index.html> page. + + [[9]] Update JIRA + + Go to Admin section in JIRA for the <<<maven-XXX-plugin>>> project and mark + the <<<2.1>>> version as released. Create version 2.2, if that hasn't already + been done. + + [[10]] Create an Announcement. For instance: + ++-----+ +From: YOUR_APACHE_EMAIL +To: [EMAIL PROTECTED], [EMAIL PROTECTED] +Cc: [EMAIL PROTECTED] +Subject: [ANN] Maven XXX Plugin Y.Y for Maven 2 Released + +The Maven team is pleased to announce the release of the Maven XXX Plugin, version Y.Y + +http://maven.apache.org/plugins/maven-XXX-plugin/ + +You can run mvn -up to get the latest version of the plugin, or specify +the version in your project's plugin configuration: + +<plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-XXX-plugin</artifactId> + <version>Y.Y</version> +</plugin> + +Release Notes - Maven 2.x XXX Plugin - Version Y.Y + +(Copy Here Release Notes in Text Format from Jira) + +Enjoy, + +-The Maven team + ++-----+ + + [[11]] Add the release to the next board report, in the private subversion area. + + [[12]] Add the release to the wiki, under the <Recent Releases> section of the + front page and on the <Releases> page. - After that you can continue with step 8 in the - {{{./pmc-release-process.html}old release process}}. + [[13]] Celebrate :o)