Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In trunk/bin, there is a DoMerges.java program that wraps svnmerge.py to assist in the merging. If the branch is setup with snvmerge.py, if you run it from you checkout directory, it will prompt for every commit on trunk to see if you want to "Merge" it, "Block" it, or "Ignore" it. It displays the commit log first so you can see what was involved. You can also check the cxf-commits archive to see the full details of the commit to help decide what action to take. If you select "Merge", it will merge the change and then prompt before committing. That will allow you to look at the merge and resolve any conflicts. (or even revert it if you didn't mean to hit Merge)

Performing a release

For the most part, we now follow the same instructions that the maven team uses.
http://maven.apache.org/developers/release/releasing.html

There is one piece of poor wording or flat-out error on that page. At one point, it says, 'make sure that there are no SNAPSHOTS in your POM.' In fact, the situation is the opposite. The release plugin requires all the POM versions to be SNAPSHOTS, and proceeds to create and tag a revision in which the snapshot version is replaced by the actual release version.

One other caveat: if you use a Mac, you are prone to run into MRELEASE-355, a feud between Apple and Subversion. Whoever hits this first on CXF will have to modify the pom to ask for version 2.0-beta-8 of the maven-release-plugin, which seems to be the only way around it.

Basically, setup your settings.xml file as they described except for your gpg key. The version of the gpg plugin we use will ask for it.

The first step is to update the release_notes.txt in the distribution/src/main/release.

Then, to actually perform the relesae, run the below commands.

Warning

Make sure you use Maven 2.2.1, not Maven 3.x. There is a bug that causes the signatures of the projects of packaging "bundle" to not be deployed correctly with Maven 3.xAfter that is setup, you need to update the release_notes.txt in the distribution/src/main/release, and run the below commands.

No Format
mvn release:prepare -Peverything,jaxws22
mvn release:perform

That will tag the release, update the poms, etc... Then build it (off the tag) and deploy everything (including source jars and javadoc jars) to the Nexus repository location and gpg signs everything. When the build is done staging, you need to login to the Nexus repository and "close" the staging are. See the Maven page above for instructions. That is very important. After the staging are is closed, note the URL for the staging area as you will need that for the vote.

...