|
Page Edited :
FELIX :
Release Management
Release Management has been edited by Marcel Offermans (Apr 05, 2009). Change summary: Incorporated Clement's suggestions on the mailing list. This is a draft for a how to about releasing artifacts from Apache Felix: Most of the work is done by Maven. PrerequisitesTo prepare or perform a release you MUST BE at least a Apache Felix Committer Each and every release must be signed; therefore the public key should be cross signed by other Apache committers (not required but suggested). When preparing the release on Mac OS X, check out Appendix F before trying the steps in the next chapter. Building the Release Candidates
For the last two tasks, it's better to give the mirrors some time to distribute the uploaded artifacts (one day should be fine). This ensures that once the website (news and download page) is updated, people can actually download the artifacts. Related LinksAppendix A: Create and Add your key to http://www.apache.org/dist/felix/KEYS
Considering that you are using a *nix system with a working OpenSSH, GnuPG, and bash you can create and add your own key with the following command:
Appendix B: Beautifying the checksumsThe checksum files generated by Maven are not directly usable with all tools. So the following scripts beautify these: for f in *.md5 ; do g=`echo $f | sed "s/\.md5//"` ; echo " $g" >> $f ; done for f in *.sha1 ; do g=`echo $f | sed "s/\.sha1//"` ; echo " $g" >> $f ; done Appendix C: Script to check releasesFelix Meschberger has developed a set of script aim at testing the file to release. You can find them here: For those, using the Felix's script to create their releases, the last maven-release-plugin has changed. So, it doesn't work anymore. You have to add the -DmavenExecutorId=forked-path I'm sure there is others turn around, but at least this one works. So, for mac users, it is something like: mvn -Prelease -Darguments="-Prelease ${REPO}" ${REPO} -DmavenExecutorId=forked-path release:prepare -Dusername=clement -Dpassword=********* svn up -r head mvn release:prepare -Dresume mvn -Prelease -Darguments="-Prelease ${REPO}" ${REPO} -DmavenExecutorId=forked-path release:perform Appendix D: Control the release process manuallyThe release process is a two-step process. First the release is prepared and the release candidates are performed. Preparation steps
Perform the release candidatesYou must create the release candidates from the created tags. You can do it by executing the following command: mvn -Prelease -Dtag=TAG_NAME -DtagBase=https://svn.apache.org/repos/asf/felix/releases -DconnectionUrl=scm:svn:https://svn.apache.org/repos/asf/felix/releases/ -Darguments="-Prelease -DaltDeploymentRepository=local::default::file:///tmp" -DaltDeploymentRepository=local::default::file:///tmp release:perform
Update the 'altDeploymentRepository' path (twice) to fit with your configuration (this works on Linux and MacOS X)
Don't forget to beautify .md5 and .sha1 files and check signatures of the generated files. Then you can upload those files on people.apache.org and call the vote... Prepare to the next development iterationGo back to your working copy of the trunk code. Edit the pom files to update the version number to the next development iteration version (don't forget the -SNAPSHOT). Prepares for next development iteration (NEW_VERSION)
That's all. Now you can control more finely how to prepare your release and demystify the maven-release-plugin. Appendix E: Deploy bundles on the Felix OBRIf you're releasing bundles, you can add it to the Felix Release OBR. To do this, you execute the following command: mvn clean install \
org.apache.felix:maven-bundle-plugin:deploy \
-DprefixUrl=http://repo1.maven.org/maven2 \
-DremoteOBR=releases.xml \
-DaltDeploymentRepository=apache.releases::default::scp://people.apache.org/www/felix.apache.org/obr
The http://felix.apache.org/obr/releases.xml Appendix F: Releasing on Mac OS XWhen running the mvn release:prepare command, you might get the following error: [INFO] Executing: svn --non-interactive commit --file /tmp/maven-scm-802409492.commit --targets /tmp/maven-scm-18804-targets
[INFO] Working directory: /homedir/dev/felix/dependencymanager
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Unable to commit files
Provider message:
The svn command failed.
Command output:
svn: Commit failed (details follow):
svn: MKACTIVITY of '/repos/asf/!svn/act/4f11ad5d-9161-0410-b4dd-cb727141ea8c': authorization failed (https://svn.apache.org)
There is a bug in svn on the Mac, as described by Brett Porter in his blog |
Unsubscribe or edit your notifications preferences
