mirror of https://github.com/apache/ant-ivy
138 lines
6.1 KiB
HTML
138 lines
6.1 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one
|
|
or more contributor license agreements. See the NOTICE file
|
|
distributed with this work for additional information
|
|
regarding copyright ownership. The ASF licenses this file
|
|
to you under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing,
|
|
software distributed under the License is distributed on an
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations
|
|
under the License.
|
|
-->
|
|
<html>
|
|
<head>
|
|
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
|
|
<script type="text/javascript">var xookiConfig = {level: 1};</script>
|
|
<script type="text/javascript" src="../xooki/xooki.js"></script>
|
|
</head>
|
|
<body>
|
|
<textarea id="xooki-source">
|
|
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 <a href="#setup">setup</a> of the updatesite which will be the candidate for the vote of the Ivy or IvyDE release, and the <a href="#deployment">final deployment</a> once the release is accepted.
|
|
|
|
<u>Important note:</u> 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 <tt>2.0.0-RC1</tt> but the OSGi one, and the one to use here is <tt>2.0.0.cr1</tt>.
|
|
|
|
<h1><a name="setup"></a>Build the updatesite</h1>
|
|
|
|
<h2>Push the new version</h2>
|
|
|
|
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.
|
|
|
|
<ul><li>For an <u>Ivy</u> release:
|
|
As you have a build jar for Ivy, just do:
|
|
<code>ant install-ivy -Divy.jar=...../path/to/ivy.jar</code>
|
|
<li>
|
|
For an <u>IvyDE</u> release:
|
|
The zip distribution needs to be unpacked into the updatesite directory:
|
|
<code>ant install-ivyde -Divyde.zip=...../path/to/org.apache.ivyde.feature-${VERSION}.zip</code>
|
|
</li>
|
|
</ul>
|
|
|
|
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 <tt>svn rm</tt> on those files.
|
|
|
|
<h2>Prepare the update site</h2>
|
|
|
|
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.
|
|
|
|
<b>Important note:</b> the following optimize tasks need to be run in <b>java 5 jre</b>. 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:
|
|
<ul>
|
|
<li>For an <u>Ivy</u> release:
|
|
<pre>
|
|
ant optimize-ivy
|
|
</pre></li>
|
|
<li>
|
|
For an <u>IvyDE</u> release:
|
|
<pre>
|
|
ant optimize-ivyde
|
|
</pre></li>
|
|
</ul>
|
|
|
|
The binary files then need to be signed and their checksum computed. For the checksums, run:
|
|
<pre>ant checksum</pre>
|
|
And sign the binaries:
|
|
|
|
<ul>
|
|
<li>For an <u>Ivy</u> release:
|
|
<pre>./signIvyArtifacts.sh</pre>
|
|
</li>
|
|
<li>
|
|
For an <u>IvyDE</u> release:
|
|
<pre>./signIvyDEArtifacts.sh</pre>
|
|
</li>
|
|
</ul>
|
|
|
|
<b>Note:</b> these previous targets may optimize, checksum and sign already released artifacts. Just so a <tt>svn status</tt> 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 <tt>svn revert <i>file</i></tt> 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:
|
|
<pre>
|
|
svn cp https://svn.apache.org/repos/asf/ant/ivy/updatesite/trunk https://svn.apache.org/repos/asf/ant/ivy/updatesite/tags/$TAGNAME
|
|
</pre>
|
|
with <tt>$TAGNAME</tt> the name of the release, so it would be either <tt>ivy-$VERSION</tt> or <tt>ivyde-$VERSION</tt>.
|
|
|
|
<h2>Test the updatesite</h2>
|
|
|
|
The updatesite is ready to be tested. You can deploy it where ever you want with the command:
|
|
<pre>svn export https://svn.apache.org/repos/asf/ant/ivy/updatesite/trunk/dist updatesite
|
|
</pre>
|
|
|
|
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 <tt>mirrorsURL</tt>.
|
|
|
|
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 .
|
|
|
|
<h1><a name="deployment"></a>Deployment of a release</h1>
|
|
|
|
Then backup and deploy. On people.apache.org:
|
|
<pre>
|
|
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
|
|
</pre>
|
|
|
|
<h2>Deprecated updatesite</h2>
|
|
|
|
The updatesite needs to be also deployed in its deprecated location, in the IvyDE website.
|
|
|
|
In your local svn working copy do:
|
|
<pre>
|
|
cp updatesite/trunk/dist/digest.zip* site/ivyde/updatesite
|
|
cp updatesite/trunk/dist/site.xml site/ivyde/updatesite
|
|
</pre>
|
|
And commit the changes of the website.
|
|
Next is the usual IvyDE website deployment:
|
|
<pre>
|
|
ant generate-site-ivyde
|
|
svn ci target/ivyde/updatesite
|
|
</pre>
|
|
And on people.apache.org:
|
|
<pre>
|
|
svn up /www/ant.apache.org/ivy/ivyde/updatesite
|
|
</pre>
|
|
</textarea>
|
|
<script type="text/javascript">xooki.postProcess();</script>
|
|
</body>
|
|
</html>
|