blob: 7ca9ca5fa5b8e50dc9912443e4b687e15e8d0c42 [file] [log] [blame]
////
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.
////
Once a release has been build for Ivy or IvyDE, it 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 link:#setup[setup] of the updatesite which will be the candidate for the vote of the Ivy or IvyDE release, and the link:#deployment[final deployment] once the release is accepted.
Important note: in this doc, the released version is denoted as $VERSION (and has to be replaced accordingly in every command), 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`.
== [[setup]]Build a p2 repository
The svn location of the updatesite builder is at: https://svn.apache.org/repos/asf/ant/ivy/updatesite/trunk .
Checkout that SVN repo and `cd` to the `trunk` directory. We will build the p2 repository dedicated to the version to release.
* For an IvyDE release:
The zip distribution needs to be unpacked into the updatesite directory:
[source]
----
ant build-ivyde-p2-repo -Divyde.zip=...../path/to/apache-ivyde-${VERSION}.zip
----
Now the binary files need to be signed.
* For an IvyDE release:
[source]
----
./signArtifacts.sh ivyde-${VERSION}
----
Example:
[source]
----
./signArtifacts.sh ivyde-2.3.0.beta1-201806131514-RELEASE
----
And finally commit your changes in `dist/dev` (this will put the p2 repository in the dev space of the dist repository).
=== Test the updatesite
The updatesite is ready to be tested at: `https://dist.apache.org/repos/dist/dev/ant/ivyde/updatesite/ivyde-${VERSION}`
*NOTE*: It's now time to wait for the release VOTE to pass before deciding on and following the rest of the steps in this document.
=== In case of an unaccepted release
In case the release has not been accepted by the PMC, don't forget to cleanup the svn repository. To do so, just run:
[source]
----
svn rm https://dist.apache.org/repos/dist/dev/ant/ivyde/updatesite/ivyde-$VERSION -m 'Remove rejected release'
----
== [[deployment]]Deployment of a release
=== Clean up old releases
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 restricting to only have the main stable released version available there; older are archived at https://archive.apache.org/dist/ant/.
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:
[source]
----
svn rm https://dist.apache.org/repos/dist/release/ant/ivyde/updatesite/ivyde-$OLD_VERSION -m 'Remove old version'
----
Then the versions listed in the updatesite are maintained in `https://svn.apache.org/repos/asf/ant/ivy/updatesite/trunk/versions.xml`
You have to decide if the version you removed should be still listed in the Eclipse updatesite or not.
To remove a version from the listed ones, edit the file `versions.xml`
* If the version should not appear anymore, just delete the line listing the deleted version.
* If the version should still be listed, prepend the reference to the old version by `https://archive.apache.org/dist/ant/ivyde/updatesite/`
NB: adding or removing lines in `versions.xml` infer that you should edit the `size` attribute in the `versions.xml`, it should correspond to the number of "child" tags.
=== Publish the p2 repository data
It is just about moving data (`svn rm` is not allowed, the two steps are required):
[source]
----
svn mv https://dist.apache.org/repos/dist/dev/ant/ivyde/updatesite/ivyde-$VERSION https://dist.apache.org/repos/dist/release/ant/ivyde/updatesite/ -m 'publishing the p2 repo of the release of IvyDE $VERSION'
----
=== Regenerate the main repo
Last but not least, the p2 repository should now list the new release.
Edit the file `versions.xml`, and add a line listing the released version:
[source]
----
<child location='ivyde-2.1.0'/>
----
NB: adding or removing lines in `versions.xml` infer that you should edit the `size` attribute in the `versions.xml`, it should correspond to the number of "child" tags.
And run:
[source]
----
ant build-main-p2-repo
----
And now commit every modification in `dist/release`.