ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hi...@apache.org
Subject svn commit: r1293916 - in /ant/ivy/updatesite/branches/p2repo-only: build.xml doc/ doc/index.html
Date Sun, 26 Feb 2012 19:12:54 GMT
Author: hibou
Date: Sun Feb 26 19:12:53 2012
New Revision: 1293916

URL: http://svn.apache.org/viewvc?rev=1293916&view=rev
Log:
- update the build to work with a dist in svn
- add a doc about how to release

Added:
    ant/ivy/updatesite/branches/p2repo-only/doc/
    ant/ivy/updatesite/branches/p2repo-only/doc/index.html   (with props)
Modified:
    ant/ivy/updatesite/branches/p2repo-only/build.xml

Modified: ant/ivy/updatesite/branches/p2repo-only/build.xml
URL: http://svn.apache.org/viewvc/ant/ivy/updatesite/branches/p2repo-only/build.xml?rev=1293916&r1=1293915&r2=1293916&view=diff
==============================================================================
--- ant/ivy/updatesite/branches/p2repo-only/build.xml (original)
+++ ant/ivy/updatesite/branches/p2repo-only/build.xml Sun Feb 26 19:12:53 2012
@@ -23,11 +23,11 @@
     <property environment="env" />
 
     <property name="work.dir" value="${basedir}/work" />
-    <property name="dist.dir" value="${basedir}/dist" />
+    <property name="dist.dev.dir" value="${basedir}/dist/dev" />
+    <property name="dist.release.dir" value="${basedir}/dist/release" />
 
     <target name="clean" description="Clean the folders generated during the build">
         <delete dir="${work.dir}" />
-        <delete dir="${dist.dir}" />
     </target>
 
     <!-- ==================================================================================
@@ -99,11 +99,11 @@
     </macrodef>
 
     <target name="build-main-p2-repo" description="Build the main P2 repository">
-        <mkdir dir="${dist.dir}/main" />
+        <mkdir dir="${dist.release.dir}" />
         <script language="javascript">project.setProperty("timestamp",java.lang.System.currentTimeMillis());</script>
         <loadfile property="ASL2-header" srcFile="${basedir}/ASL2-header.xml"/>
 
-        <echo file="${dist.dir}/main/compositeArtifacts.xml"><![CDATA[<?xml version='1.0'
encoding='UTF-8'?>
+        <echo file="${dist.release.dir}/compositeArtifacts.xml"><![CDATA[<?xml
version='1.0' encoding='UTF-8'?>
 <?compositeArtifactRepository version='1.0.0'?>
 ${ASL2-header}
 <repository name='Apache IvyDE Repository' type='org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository'
version='1.0.0'>
@@ -112,13 +112,13 @@ ${ASL2-header}
     <property name='p2.compressed' value='false'/>
   </properties>
 ]]></echo>
-        <concat append="true" destfile="${dist.dir}/main/compositeArtifacts.xml">
+        <concat append="true" destfile="${dist.release.dir}/compositeArtifacts.xml">
             <fileset dir="${basedir}" includes="versions.xml" />
         </concat>
-        <echo append="true" file="${dist.dir}/main/compositeArtifacts.xml"><![CDATA[</repository>
+        <echo append="true" file="${dist.release.dir}/compositeArtifacts.xml"><![CDATA[</repository>
 ]]></echo>
 
-        <echo file="${dist.dir}/main/compositeContent.xml"><![CDATA[<?xml version='1.0'
encoding='UTF-8'?>
+        <echo file="${dist.release.dir}/compositeContent.xml"><![CDATA[<?xml
version='1.0' encoding='UTF-8'?>
 <?compositeArtifactRepository version='1.0.0'?>
 ${ASL2-header}
 <repository name='Apache IvyDE Repository' type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository'
version='1.0.0'>
@@ -127,10 +127,10 @@ ${ASL2-header}
     <property name='p2.compressed' value='false'/>
   </properties>
 ]]></echo>
-        <concat append="true" destfile="${dist.dir}/main/compositeContent.xml">
+        <concat append="true" destfile="${dist.release.dir}/compositeContent.xml">
             <fileset dir="${basedir}" includes="versions.xml" />
         </concat>
-        <echo append="true" file="${dist.dir}/main/compositeContent.xml"><![CDATA[</repository>
+        <echo append="true" file="${dist.release.dir}/compositeContent.xml"><![CDATA[</repository>
 ]]></echo>
     </target>
 
@@ -164,16 +164,16 @@ ${ASL2-header}
         <!-- get the version of ivyde -->
         <osgi-version jar="${ivyde.jar.path}" outputproperty="ivyde.version" />
         <!-- install the new binaries -->
-        <delete dir="${dist.dir}/ivyde-${ivyde.version}" />
-        <mkdir dir="${dist.dir}/ivyde-${ivyde.version}" />
-        <copy todir="${dist.dir}/ivyde-${ivyde.version}">
+        <delete dir="${dist.dev.dir}/ivyde-${ivyde.version}" />
+        <mkdir dir="${dist.dev.dir}/ivyde-${ivyde.version}" />
+        <copy todir="${dist.dev.dir}/ivyde-${ivyde.version}">
             <fileset dir="${ivyde.distrib.path}">
                 <include name="plugins/**" />
                 <include name="features/**" />
                 <include name="*.xml" />
             </fileset>
         </copy>
-        <xslt in="${ivyde.distrib.path}/artifacts.xml" out="${dist.dir}/ivyde-${ivyde.version}/artifacts.xml"
style="${basedir}/p2-mirrors.xsl" force="true">
+        <xslt in="${ivyde.distrib.path}/artifacts.xml" out="${dist.dev.dir}/ivyde-${ivyde.version}/artifacts.xml"
style="${basedir}/p2-mirrors.xsl" force="true">
           <param name="path" expression="ivyde-${ivyde.version}" />
         </xslt>
     </target>
@@ -191,9 +191,9 @@ ${ASL2-header}
         <!-- get the real OSGi version of the bundle -->
         <osgi-version jar="${ivy.jar}" outputproperty="ivy.version" />
         <!-- install the plugin -->
-        <delete dir="${dist.dir}/ivy-${ivy.version}/plugins" />
-        <mkdir dir="${dist.dir}/ivy-${ivy.version}/plugins" />
-        <copy file="${ivy.jar}" tofile="${dist.dir}/ivy-${ivy.version}/plugins/org.apache.ivy_${ivy.version}.jar"
overwrite="true" />
+        <delete dir="${dist.dev.dir}/ivy-${ivy.version}/plugins" />
+        <mkdir dir="${dist.dev.dir}/ivy-${ivy.version}/plugins" />
+        <copy file="${ivy.jar}" tofile="${dist.dev.dir}/ivy-${ivy.version}/plugins/org.apache.ivy_${ivy.version}.jar"
overwrite="true" />
     </target>
 
     <target name="generate-ivy-feature" depends="get-ivy-plugin">
@@ -206,8 +206,8 @@ ${ASL2-header}
             </filterset>
         </copy>
         <!-- package the feature -->
-        <mkdir dir="${dist.dir}/ivy-${ivy.version}/features" />
-        <jar destfile="${dist.dir}/ivy-${ivy.version}/features/org.apache.ivy.feature_${ivy.version}.jar">
+        <mkdir dir="${dist.dev.dir}/ivy-${ivy.version}/features" />
+        <jar destfile="${dist.dev.dir}/ivy-${ivy.version}/features/org.apache.ivy.feature_${ivy.version}.jar">
             <fileset dir="${basedir}/ivy-feature-template">
                 <include name="feature.properties" />
                 <include name="LICENSE" />
@@ -229,8 +229,8 @@ ${ASL2-header}
             </filterset>
         </copy>
         <!-- package the feature -->
-        <mkdir dir="${dist.dir}/ivy-${ivy.version}/features" />
-        <jar destfile="${dist.dir}/ivy-${ivy.version}/features/org.apache.ivy.eclipse.ant.feature_${ivy.version}.jar">
+        <mkdir dir="${dist.dev.dir}/ivy-${ivy.version}/features" />
+        <jar destfile="${dist.dev.dir}/ivy-${ivy.version}/features/org.apache.ivy.eclipse.ant.feature_${ivy.version}.jar">
             <fileset dir="${basedir}/ivy-ant-feature-template">
                 <include name="feature.properties" />
                 <include name="LICENSE" />
@@ -258,7 +258,7 @@ ${ASL2-header}
             </filterset>
         </copy>
         <!-- package the jar -->
-        <jar destfile="${dist.dir}/ivy-${ivy.version}/plugins/org.apache.ivy.eclipse.ant_${ivy.version}.jar"
manifest="${work.dir}/ivy-ant-plugin/MANIFEST.MF">
+        <jar destfile="${dist.dev.dir}/ivy-${ivy.version}/plugins/org.apache.ivy.eclipse.ant_${ivy.version}.jar"
manifest="${work.dir}/ivy-ant-plugin/MANIFEST.MF">
             <fileset dir="${work.dir}/ivy-ant-plugin">
                 <include name="plugin.xml" />
                 <include name="ivy.jar" />
@@ -271,7 +271,7 @@ ${ASL2-header}
     </target>
 
     <target name="generate-ivy-p2-repo" depends="eclipse-classpath,get-ivy-plugin">
-        <makeurl file="${dist.dir}/ivy-${ivy.version}" property="p2repo.url"/>
+        <makeurl file="${dist.dev.dir}/ivy-${ivy.version}" property="p2repo.url"/>
         <java classpath="${eclipse.classpath}" classname="org.eclipse.core.launcher.Main"
fork="true" failonerror="true">
             <arg line="-clean" />
             <arg line="-application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher"
/>
@@ -279,7 +279,7 @@ ${ASL2-header}
             <arg line="-artifactRepository ${p2repo.url}" />
             <arg line="-metadataRepositoryName 'Apache Ivy P2 Eclipse repository'" />
             <arg line="-artifactRepositoryName 'Apache Ivy P2 Eclipse repository'" />
-            <arg line="-source ${dist.dir}/ivy-${ivy.version}" />
+            <arg line="-source ${dist.dev.dir}/ivy-${ivy.version}" />
             <sysproperty key="eclipse.consoleLog" value="${eclipse.consoleLog}" />
         </java>        
     </target>
@@ -297,7 +297,7 @@ ${ASL2-header}
     </feature>
 </site>
 ]]></echo>
-        <makeurl file="${dist.dir}/ivy-${ivy.version}" property="p2repo.url"/>
+        <makeurl file="${dist.dev.dir}/ivy-${ivy.version}" property="p2repo.url"/>
         <makeurl file="${work.dir}/category.xml" property="p2repo.category.url"/>
         <java classpath="${eclipse.classpath}" classname="org.eclipse.core.launcher.Main"
fork="true" failonerror="true">
             <arg line="-clean" />
@@ -309,13 +309,13 @@ ${ASL2-header}
         </java>
         <!-- as we're at it, let's put the ASL header -->
         <replaceregexp match="&lt;repository name='" replace="${ASL2-header}&lt;repository
name='" flags="g">
-            <fileset dir="${dist.dir}/ivy-${ivy.version}" includes="*.xml" />
+            <fileset dir="${dist.dev.dir}/ivy-${ivy.version}" includes="*.xml" />
         </replaceregexp>
     </target>
 
     <target name="add-ivy-p2-mirrors" depends="generate-ivy-p2-repo">
-        <copy file="${dist.dir}/ivy-${ivy.version}/artifacts.xml" todir="${work.dir}"
/>
-        <xslt in="${work.dir}/artifacts.xml" out="${dist.dir}/ivy-${ivy.version}/artifacts.xml"
style="${basedir}/p2-mirrors.xsl" force="true">
+        <copy file="${dist.dev.dir}/ivy-${ivy.version}/artifacts.xml" todir="${work.dir}"
/>
+        <xslt in="${work.dir}/artifacts.xml" out="${dist.dev.dir}/ivy-${ivy.version}/artifacts.xml"
style="${basedir}/p2-mirrors.xsl" force="true">
           <param name="path" expression="ivy-${ivy.version}" />
         </xslt>
     </target>

Added: ant/ivy/updatesite/branches/p2repo-only/doc/index.html
URL: http://svn.apache.org/viewvc/ant/ivy/updatesite/branches/p2repo-only/doc/index.html?rev=1293916&view=auto
==============================================================================
--- ant/ivy/updatesite/branches/p2repo-only/doc/index.html (added)
+++ ant/ivy/updatesite/branches/p2repo-only/doc/index.html Sun Feb 26 19:12:53 2012
@@ -0,0 +1,119 @@
+<!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: 0};</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 a p2 repository</h1>
+
+The svn location of the updatesite builder is there: https://svn.apache.org/repos/asf/ant/ivy/updatesite/trunk
. We will build the p2 repository dedicated to the version to release.
+
+<ul><li>For an <u>Ivy</u> release:
+As you have a build jar for Ivy, just do:
+<code>ant build-ivy-p2-repo -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 build-ivyde-p2-repo -Divyde.zip=...../path/to/org.apache.ivyde.feature-${VERSION}.zip</code>
+</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>
+
+And finally commit your changesin <tt>dist/dev</tt>.
+
+<h2>Test the updatesite</h2>
+
+The updatesite is ready to be tested at: <tt>https://dist.apache.org/repos/dist/dev/ant/eclipse-updatesite/ivyde-${VERSION}</tt>
+
+<h2>In case of an unaccepted release</h2>
+
+In case the release has not been accepted by the PMC, don't forget to cleanup the svn repository.
To do so, just run:
+<pre>svn rm https://dist.apache.org/repos/dist/dev/ant/eclipse-updatesite/ivyde-$VERSION
-m 'Remove rejected release'
+</pre>
+
+<h1><a name="deployment"></a>Deployment of a release</h1>
+
+<h2>Clean up old releases</h2>
+
+First, you may want to remove from the main repository references to the older releases.
Note also that the ASF policy regarding the space occupied by the main dist is about rectricting
to only have the main stable released version available there; older are archived on archiche.apache.org.
+
+To remove a version from the main dist, you'll need to remove the data and remove its reference
in the main updatesite.
+
+To remove the data:
+<pre>svn rm https://dist.apache.org/repos/dist/release/ant/ivyde/updatesite/ivyde-$OLD_VERSION
-m 'Remove old version'
+</pre>
+
+Then the version listed in the updatesite are maintained in 
+
+Then you have to decide if the version you removed should be still listed in the Eclipse
updatesite or not.
+
+<ul>To remove a version from the listed one, edit the file <tt>versions.xml</tt>
+<li>If the version should no appear anymore, just delete the line about the deleted
version.</li>
+<li>If the version should still be listed, prepend the reference to the old version
by <tt>http://archive.apache.org/dist/ant/ivy/updatesite/</tt></li>
+</ul>
+
+<h2>Publish the p2 repository data</h2>
+
+It is just about moving data (svn rm is not allowed, the two steps are required): 
+<pre>svn cp https://dist.apache.org/repos/dist/dev/ant/eclipse-updatesite/ivyde-$VERSION
https://dist.apache.org/repos/dist/release/ant/ivyde/updatesite/ivyde-$VERSION -m 'publishing
the p2 repo of the release of IvyDE $VERSION'
+svn rm https://dist.apache.org/repos/dist/dev/ant/eclipse-updatesite/ivyde-$VERSION -m 'Remove
accepted release'
+</pre>
+
+<h2>Regenerate the main repo</h2>
+
+Last but not least, the p2 repository should now list the new release.
+
+Edit the file <tt>versions.xml</tt>, and add a line about the released version:
+<code><child location='ivyde-2.1.0'/>
+</code>
+
+And run:
+<pre>ant build-main-p2-repo
+</pre>
+
+And now commit every modification in <tt>dist/release</tt>.
+
+</textarea>
+<script type="text/javascript">xooki.postProcess();</script>
+</body>
+</html>

Propchange: ant/ivy/updatesite/branches/p2repo-only/doc/index.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ant/ivy/updatesite/branches/p2repo-only/doc/index.html
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: ant/ivy/updatesite/branches/p2repo-only/doc/index.html
------------------------------------------------------------------------------
    svn:mime-type = text/html



Mime
View raw message