|
Page Edited :
SLINGxSITE :
Release Management
Release Management has been edited by Felix Meschberger (May 18, 2009). Content:Release ManagementThis is a draft for a how to about releasing artifacts from Apache Sling. We are currently considering transferring to using Nexus Most of the work is done by Maven.
PrerequisitesTo prepare or perform a release you MUST BE at least a Apache Sling 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 E 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 (TBD) 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/incubator/sling/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=yourId -Dpassword=yourPassword svn up -r head mvn release:prepare -Dresume mvn -Prelease -Darguments="-Prelease ${REPO}" ${REPO} -DmavenExecutorId=forked-path release:perform Appendix D: Deploy bundles on the Sling OBRWe are mainting an OSGi Bundle Repository providing all release of the Sling Bundles. This repository is maintained as part of the Apache Sling site and is available at http://incubator.apache.org/sling/obr/sling.xml To update the OBR you may use the Apache Felix Maven Bundle Plugin which prepares the bundle descriptor to be added to the OBR file. Follow these steps to update the OBR: 1. Checkout or update the Site Source $ svn checkout https://svn.apache.org/repos/asf/incubator/sling/site
Note, that you have to checkout the site using the https URL, otherwise you will not be able to commit the changes later. 2. Deploy the Descriptor To deploy the project descriptor, checkout the tag of the bundle to deploy and run maven $ svn checkout http://svn.apache.org/repos/asf/incubator/sling/tags/the_module_tag $ mvn clean install \ org.apache.felix:maven-bundle-plugin:deploy \ -DprefixUrl=http://repo1.maven.org/maven2 \ -DremoteOBR=sling.xml \ -DaltDeploymentRepository=apache.releases::default::file:///path_to_site_checkout/obr This generates the bundle descriptor and adds it to the sling.xml file of your site checkout. 2a. Variant: Refer to Maven Repository Instead of checking out and building the project locally, you may also use the deploy-file goal of the Maven Bundle Plugin: $ wget http://repo1.maven.org/maven2/org/apache/sling/the_module/version/the_module-version.jar $ wget http://repo1.maven.org/maven2/org/apache/sling/the_module/version/the_module-version.pom $ mvn org.apache.felix:maven-bundle-plugin:deploy-file \ -Dfile=the_module-version.jar -DpomFile=the_module-version.pom \ -DbundleUrl=http://repo1.maven.org/maven2/org/apache/sling/the_module/version/the_module-version.jar \ -Durl=file:///path_to_site_checkout/obr \ -DprefixUrl=http://repo1.maven.org/maven2 \ -DremoteOBR=sling.xml $ rm the_module-version.jar the_module-version.pom 3. Commite the Site Changes In the Site checkout folder commit the changes to the obr/sling.xml files (you may also review the changes using the svn diff command). $ svn commit -m"Add Bundle XYZ Version ABC" obr/sling.xml
4. Update the Site on people.apache.org After committing the changes, you have to update the site source, which is getting mirrored to the web servers on people.apache.org $ ssh people.apache.org svn update /x1/www/incubator.apache.org/sling/obr/sling.xml After updating the site source it will generally take an hour or two until the changes are visible on the web. Appendix E: 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/....
[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
