Updating the updatesite


Once a release have been build for Ivy or IvyDE, they should be pushed to the Eclipse updatesite so that Eclipse users will be able to update automatically their installed version of Ivy or IvyDE.

This doc is in two parts, the setup of the updatesite which will be the candidate for the vote of the Ivy or IvyDE release, and the final deployment once the release is accepted.

Important note: in this doc, the released version is denoted as $VERSION (and have to be replaced accordingly in every commands), but this is the OSGi one, not the usually shown one, in particular for release candidate versions. For instance an Ivy version can be 2.0.0-RC1 but the OSGi one, and the one to use here is 2.0.0.cr1.

Build the updatesite

Push the new version

The update site svn location is there: https://svn.apache.org/repos/asf/ant/ivy/updatesite/trunk . You will update it so it will contain the new artifacts.
  • For an Ivy release:
    As you have a build jar for Ivy, just do:
    ant install-ivy -Divy.jar=...../path/to/ivy.jar
  • For an IvyDE release:
    The zip distribution needs to be unpacked into the updatesite directory:
    ant install-ivyde -Divyde.zip=...../path/to/org.apache.ivyde.feature-${VERSION}.zip
Those previous tasks should have deleted some files, but not using the svn command: you should see some ! in your svn status log. Then do some svn rm on those files.

Prepare the update site

The update site is optimized: the metadata of the features are aggregated into the digest.zip, and the jar of the plugins are compressed with a better algorithm.

Important note: the following optimize tasks need to be run in java 5 jre. The pack200 didn't existed before java 5 and the jar compressed with java 6 can not be uncompressed by some java 5 jre (at least the IBM one).

To accomplish this task, just run at the root of your working copy of the updatesite:
  • For an Ivy release:
    ant optimize-ivy
    
  • For an IvyDE release:
    ant optimize-ivyde
    
The binary files then need to be signed and their checksum computed. For the checksums, run:
ant checksum
And sign the binaries:
  • For an Ivy release:
    ./signIvyArtifacts.sh
  • For an IvyDE release:
    ./signIvyDEArtifacts.sh
Note: these previous targets may optimize, checksum and sign already released artifacts. Just so a svn status to check the modified artifacts; the only modified files should be the digest.zip (with its signature and checksum) and the site.xml; then there should be the added files of the release. Then do some svn revert file to revert the unexpected changes.

And finally commit your changes.

As soon as you ar happy with the committed artifacts, we can tag the updatesite:
svn cp https://svn.apache.org/repos/asf/ant/ivy/updatesite/trunk https://svn.apache.org/repos/asf/ant/ivy/updatesite/tags/$TAGNAME
with $TAGNAME the name of the release, so it would be either ivy-$VERSION or ivyde-$VERSION.

Test the updatesite

The updatesite is ready to be tested. You can deploy it where ever you want with the command:
svn export https://svn.apache.org/repos/asf/ant/ivy/updatesite/trunk/dist updatesite
For both local and remote testing, as the new jars are not yet deployed on Apache mirrors, the updatesite mirroring have to be disable.
Basically it is just about modifying the site.xml and remove the reference to the eclipse-update--xml files: remove the attribute mirrorsURL.

To let the developper community test the updatesite, you can setup a staging updatesite in your public_html directory on people.apache.org. So if you deploy it on people.apache.org, in the directory ~/public_html/staging, then the developpers should setup the updatesite with the URL http://people.apache.org/~LOGIN/staging/updatesite .

Deployment of a release

Then backup and deploy. On people.apache.org:
cd /www/www.apache.org/dist/ant/ivyde/
mv updatesite ~/updatesite.backup
svn export https://svn.apache.org/repos/asf/ant/ivy/updatesite/tags/$TAGNAME/dist updatesite

Deprecated updatesite

The updatesite needs to be also deployed in its deprecated location, in the IvyDE website.

In your local svn working copy do:
cp updatesite/trunk/dist/digest.zip* site/ivyde/updatesite
cp updatesite/trunk/dist/site.xml site/ivyde/updatesite
And commit the changes of the website.
Next is the usual IvyDE website deployment:
ant generate-site-ivyde
svn ci target/ivyde/updatesite
And on people.apache.org:
svn up /www/ant.apache.org/ivy/ivyde/updatesite