You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 28 Next »

How to create and announce a ServiceMix release.

Creating the ServiceMix Release

  1. Grab the latest Source
    svn co https://svn.apache.org/repos/asf/servicemix/trunk
    
  1. Make sure everything looks OK
  • no snapshot dependencies
  • everything builds fine
  • all samples and archetypes have the incubating repositories listed in the pom (in the generated pom for archetypes) so that users downloading the distribution can actually use them without having to build ServiceMix from sources.
  1. Create a branch for the release process
    svn mkdir https://svn.apache.org/repos/asf/servicemix/branches/servicemix-X.Y -m "ServiceMix X.Y Release Branch"
    svn copy . https://svn.apache.org/repos/asf/servicemix/branches/servicemix-X.Y -m "ServiceMix X.Y Release Branch"
    
  1. Now checkout the branch
    svn co https://svn.apache.org/repos/asf/servicemix/branches/servicemix-X.Y
    
  1. Change the version number:
    find . -type f -name 'pom.xml' -print | grep -v .svn | grep -v target |
    while read filename
    do (
       echo "Editing $filename"
       sed 's/3.1-incubating-SNAPSHOT<\/version>/3.1.2-incubating<\/version>/g;' $filename > $filename.sed
       mv $filename.sed $filename
    )
    done
    
  1. Edit the main pom.xml to add the new version to the version list in these files
  1. Create the release notes on the WIKI based on JIRA. Also add the release notes to the root directory

note that the release notes and list of versions are common to all releases, so there may be a need to backport these changes to the trunk somehow.

  1. Commit your changes to the subversion repo
    svn commit -m "Preparing release"
    
  1. Let Maven build, test, package on a clean repo
    rm -Rf ~/.m2/repository
    mvn -Dprofile=step1 install
    mvn install
    
  1. Test the release
mvn -Prelease,deploy -Dgpg.passphrase=smx -Ddeploy.altRepository=yyy

where yyy has the following syntax for example:

gnodet::default::scp://people.apache.org/home/gnodet/public_html/maven_staging

Make sure all artifacts are signed, the release manager's public key should be signed by antoher apache folk and should be exported to KEYS file

http://svn.apache.org/repos/asf/servicemix/KEYS

For the bug of GPG maven plugin, some of asc files have the wrong name, for example, loan-broker-lw-su-3.1.2-.zip.asc, which should just be:loan-broker-lw-su-3.1.2.zip.asc. Take of this issue until new version which address it is released (it would be fixed in 1.0-beta-4))

  1. Rerun the same command inside tooling/jbi-maven-plugin, as for an unknown reason, the plugin is incorrectly generated the first time (ant tasks are not added).
    cd tooling/jbi-maven-plugin
    mvn -Prelease,deploy -Dgpg.passphrase=smx -Ddeploy.altRepository=yyy
    
  1. Tag the release using your local workspace to a new servicemix-X.Y label
    svn mkdir https://svn.apache.org/repos/asf/servicemix/tags/servicemix-X.Y -m "ServiceMix X.Y Release"
    svn copy . https://svn.apache.org/repos/asf/servicemix/tags/servicemix-X.Y -m "ServiceMix X.Y Release"
    
  1. Check that the binaries look fine. Test the examples of the distribution, try to install the web app on a web container. Also check that the source distribution can actually build and that the archetypes work (using the smx-arch script).

Announcing the ServiceMix Release

  1. Perform a release in JIRA and create a new release version in JIRA
  2. Create a download page for the release in the WIKI similar like the ServiceMix 1.0 Release
  3. Update the Xml schemas page with a link to the HTML and XSD
  4. Start the VOTE thread on servicemix-dev

Post vote process

  1. Move the staging repo to the central repo
    mvn stage:copy \
       -Dsource="http://people.apache.org/~gnodet/maven-staging/servicemix-X.Y/maven" \
       -Dtarget="scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository" \
       -Dversion=X.Y
    
    Since maven-stage-plugin is not published, release manager should download this plugin and build it firstly.
    http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-stage-plugin/
    
  1. Mail the dev & user lists
  2. Post a news entry on the WIKI
  3. Have a beer! (smile)

Preparing for the next X.Y.Z-SNAPSHOT version development

  1. Add the version you just released to the project/properties/previous.releases element in the root pom.xml
  • No labels