THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Creating the ServiceMix Release
- Grab the latest Source
Code Block svn co https://svn.apache.org/repos/asf/incubator/servicemix/trunk
- 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.
- Create a branch for the release process
Code Block svn mkdir http://svn.apache.org/repos/asf/incubator/servicemix/branches/servicemix-X.Y -m "ServiceMix X.Y Release Branch" svn copy . http://svn.apache.org/repos/asf/incubator/servicemix/branches/servicemix-X.Y -m "ServiceMix X.Y Release Branch"
- Now checkout the branch
Code Block svn co https://svn.apache.org/repos/asf/incubator/servicemix/branches/servicemix-X.Y
- Change the version number:
Code Block change version in all xml files change version in distributions/apache-servicemix/src/main/release/bin/smx-arch(.bat)
...
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
- Edit the main pom.xml to add the new version to the version list in these files
- 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.
- Commit your changes to the subversion repo
Code Block svn commit -m "Preparing release"
- Let Maven build, test, package , and deploy the binaries on a clean repo
Code Block rm -Rf ~/.m2/repository mvn -Dprofile=step1 install mvn -Dprofile=step2 install
- Test the release
Code Block |
---|
mvn -DperformRelease=true -Dgpg.passphrase=xxx -DaltDeploymentRepository=yyy install gpg:sign site:site deploy site:deploy |
where yyy has the following syntax for example:
Code Block |
---|
gnodet::default::scp://people.apache.org/home/gnodet/public_html/maven_staging
|
- 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).Code Block cd tooling/jbi-maven-plugin mvn -DperformRelease=true -Dgpg.passphrase=xxx -DaltDeploymentRepository=yyy install gpg:sign site:site deploy site:deploy
- Tag the release using your local workspace to a new SERVICEMIX_
servicemix-X
_.Y
labelCode Block svn mkdir http://svn.apache.org/repos/asf/incubator/servicemix/tags/SERVICEMIX_servicemix-X_.Y -m "ServiceMix X.Y Release" svn copy . http://svn.apache.org/repos/asf/incubator/servicemix/tags/SERVICEMIX_servicemix-X_.Y -m "ServiceMix X.Y Release"
- 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
- Perform a release in JIRA and create a new release version in JIRA
- Create a download page for the release in the WIKI similar like the ServiceMix 1.0 Release
- Update the Xml schemas page with a link to the HTML and XSD
- Start the VOTE thread on servicemix-dev
Post vote process
- Move the staging repo to the incubating repo
Code Block 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-incubating-repository" \ -Dversion=X.Y