Author: hibou
Date: Wed Oct 1 08:22:41 2008
New Revision: 700807
URL: http://svn.apache.org/viewvc?rev=700807&view=rev
Log:
Update of the release process of the updatesite
Modified:
ant/ivy/core/trunk/doc/dev/updatesite.html
Modified: ant/ivy/core/trunk/doc/dev/updatesite.html
URL:
http://svn.apache.org/viewvc/ant/ivy/core/trunk/doc/dev/updatesite.html?rev=700807&r1=700806&r2=700807&view=diff
==============================================================================
--- ant/ivy/core/trunk/doc/dev/updatesite.html (original)
+++ ant/ivy/core/trunk/doc/dev/updatesite.html Wed Oct 1 08:22:41 2008
@@ -25,62 +25,152 @@
</head>
<body>
<textarea id="xooki-source">
-Once a release have been build for Ivy or IvyDE, they should be push to the
Eclipse updatesite so that Eclipse users will be able to update automatically
their installed version of Ivy or IvyDE.
+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.
-<h1>Push the new version</h1>
+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.
-The update site svn location is there:
https://svn.apache.org/repos/asf/ant/ivy/site/ivyde/updatesite/
+<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>.
-<ul>
-<li>For an <u>Ivy release</u>:
-the new ivy bundle have to be placed in the plugins directory of the
updatesite. The convention is to name the bundle
org.apache.ivy_${BUNDLE-VERSION}.jar.
-Eclipse needs a feature, it can be generated at the right place with an ant
target. From the <a
href="https://svn.apache.org/repos/asf/ant/ivy/site/build.xml">build file of
the site</a>, run: <pre>ant updatesite:generate-ivy-feature
-Divy.version=${BUNDLE-VERSION}</pre>
-</li>
-<li>For an <u>IvyDE release</u>:
-it contains a plugin and a feature, so they have to be place respectivly in
the plugins directory and in the features directory. </li>
-</ul>
-
-Then the deprecated versions of the plugins and the features should be removed.
-
-And the site.xml file should be edited. The version number should be updated
accordingly to the release.
-
-<h1>Prepare the update site</h1>
-
-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.
+<h1><a name="setup"></a>Build the updatesite</h1>
-To accomplish this task, from the <a
href="https://svn.apache.org/repos/asf/ant/ivy/site/build.xml">build file of
the site</a>, run:
-<pre>ant updatesite:optimize</pre>
+<h2>Push the new version</h2>
-The binary files then need to be signed and their checksum computed. For the
checksums, run:
-<pre>ant updatesite:checksum</pre>
-To sign the binaries, you can use the signArtifacts.sh scripts which is in the
updatesite directory.
+The update site svn location is there:
https://svn.apache.org/repos/asf/ant/ivy/site/ivyde/updatesite/ . You will
update it so it will contain the new artifacts.
-<b>Note:</b> these previous tasks 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 do some "svn revert <i>file</i>" to revert the
unexpected changes.
+<ul><li>For an <u>Ivy release</u>:
+The new ivy bundle have to be placed in the plugins directory of the
updatesite. So you should do something like:
+<code>cp folder/ivy.jar dist/plugins/org.apache.ivy_$VERSION.jar</code>
-<h1>Test the updatesite</h1>
+Then Eclipse needs a feature, which will be generated at the right place with
an ant target. At the root of your working copy of the website, run:
+<pre>
+ant generate-ivy-feature -Divy.version=$VERSION</pre>
+</li><li>
+For an <u>IvyDE release:</u>
+The zip distribution needs to be unpacked into the updatesite directory:
+<pre>
+cd dist
+unzip ..../org.apache.ivyde.feature-$VERSION.zip
+</pre>
+</li>
+</ul>
-The updatesite is ready to be tested. In order to test the new artifacts, as
they are not yet deployed on Apache mirrors, the updatesite mirroring have to
be disable. Basically it is just about not deploying the eclipse-update--xml
files.
+Then the deprecated versions of the plugins and the features should be removed.
-If you are willing to just test yourself, you can setup in Eclipse a local
updatesite. Wherever you want on your local filesystem, make a clone of you
working copy of the updatesite directory, but <u>without</u> the
eclipse-update--xml files.
+<h2>Update the site.xml</h2>
-To let the developper community test the updatesite, you can copy the new
local updatesite <u>without</u> the eclipse-update--xml files to your
public_html directory on people.apache.org:
-<pre>scp -r digest.zip features plugins site.xml [EMAIL
PROTECTED]:/home/LOGIN/public_html/updatesite</pre>
+The site.xml file should be edited so it will reference the new artifacts. You
should just change the version number accordingly to the release.
-<h1>Deployment</h1>
+<h2>Prepare the update site</h2>
-Two deployments are needed. One will be part of the website deployment, it
will deploy the main updatesite, where there are only the metadata. The second
is about pushing the binaries in the Apache dist directory.
+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.
-To deploy the main updatesite, juste regenerate the IvyDE site:
-<pre>ant generate-site-ivyde</pre>
-and commit the changes of the "target" directory.
+To accomplish this task, just run an ant task at the root of your working copy
of the updatesite:
+<pre>
+ant optimize
+</pre>
-For the mirrors udpate site which contains the actual binaries, every binaries
have to be copied, with their signatures and checksums, and the site.xml. So on
people.apache.org, first do a backup of the current updatesite
-<pre>mv /www/www.apache.org/dist/ant/ivyde/updatesite
/www/www.apache.org/dist/ant/ivyde/updatesite.bak</pre>
-Then we recreate the updatesite:
-<pre>mkdir /www/www.apache.org/dist/ant/ivyde/updatesite</pre>
-And publish the new updatesite:
-<pre>cd site/ivyde/updatesite
-scp -r digest* plugins features site.xml [EMAIL
PROTECTED]:/www/www.apache.org/dist/ant/ivyde/updatesite</pre>
+The binary files then need to be signed and their checksum computed. For the
checksums, run:
+<pre>ant checksum</pre>
+And sign the binaries:
+<pre>./signArtifacts.sh</pre>
+
+<b>Note:</b> these previous tasks 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 do some <tt>svn revert <i>file</i></tt> to
revert the unexpected changes.
+
+<h2>Test the updatesite</h2>
+
+The updatesite is ready to be tested.
+
+<h3>Local test:</h3>
+
+If you are willing to just test yourself, you can setup in Eclipse a local
updatesite. Wherever you want on your local filesystem, make a clone of you
working copy of the updatesite directory.
+
+<h3>On people.apache.org</h3>
+
+To let the developper community test the updatesite, you can copy the new
local updatesite to your public_html directory on people.apache.org. You should
also avoid copying the .svn directories. So on people.apache.org:
+<pre>mkdir ~/public_html/staging-updatesite
~/public_html/staging-updatesite/plugins
~/public_html/staging-updatesite/features</pre>
+And then in your working copy:
+<pre>
+scp dist/digest.zip* dist/site.xml [EMAIL
PROTECTED]:/home/$LOGIN/public_html/staging-updatesite
+scp dist/features/org.apache.ivy* [EMAIL
PROTECTED]:/home/$LOGIN/public_html/staging-updatesite/features
+scp dist/plugins/org.apache.ivy* [EMAIL
PROTECTED]:/home/$LOGIN/public_html/staging-updatesite/plugins
+</pre>
+
+<h3>Disable mirrors</h3>
+
+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:
+<code>
+Index: site.xml
+===================================================================
+--- site.xml (révision 700482)
++++ site.xml (copie de travail)
+@@ -18,7 +18,6 @@
+ under the License.
+ -->
+ <site pack200="true"
+-
mirrorsURL="http://ant.apache.org/ivy/ivyde/updatesite/eclipse-update--xml.cgi"
+ digestURL="./">
+ <description url="http://ant.apache.org/ivy/ivyde/updatesite">
+ Eclipse update site for Apache IvyDE.
+</code>
+
+<h1><a name="deployment"></a>Deployment of a release</h1>
+
+The release is accepeted, so 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 $TAGNAME the name of the release, so it would be either ivy-$VERSION or
ivyde-$VERSION
+
+First backup the current updatesite. On people.apache.org:
+<pre>
+mkdir ~/updatesite.backup
+cp -R /www/ant.apache.org/ivy/ivyde/updatesite ~/updatesite.backup
+</pre>
+
+Then, upload the new updatesite from your working copy to people.apache.org.
On people.apache.org
+<pre>
+mkdir ~/updatesite ~/updatesite/features ~/updatesite/plugins
+</pre>
+And then the copy (it basically copies every file in dist without the .svn
directories):
+<pre>
+scp dist/digest.zip* dist/site.xml [EMAIL PROTECTED]:/home/$LOGIN/updatesite
+scp dist/features/org.apache.ivy* [EMAIL
PROTECTED]:/home/$LOGIN/updatesite/features
+scp dist/plugins/org.apache.ivy* [EMAIL
PROTECTED]:/home/$LOGIN/updatesite/plugins
+</pre>
+
+Once you checked that the copy in your home directory is OK (basically check
that every file is here), deploy it in dist. On people.apache.org:
+<pre>
+rm -rf /www/ant.apache.org/ivy/ivyde/updatesite
+cp -R ~/updatesite /www/ant.apache.org/ivy/ivyde/
+</pre>
+
+And finally you might want to make it writable for the ant group:
+<pre>
+chown -R $LOGIN:ant /www/ant.apache.org/ivy/ivyde/updatesite
+chmod -R g+w /www/ant.apache.org/ivy/ivyde/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
+chmod -R g+w /www/ant.apache.org/ivy/ivyde/updatesite
+</pre>
</textarea>
<script type="text/javascript">xooki.postProcess();</script>
</body>