Releasing
This documentation is defining every steps that needs to be accomplished when releasing IvyDE.
In this doc, the released version is denoted as $VERSION, so it HAVE to be replaced in the command line argument accordingly. There is also some $LOGIN which is referencing your login on the Apache machines.
Prepare
Jira
First in Jira make sure that no more issues are opened for the target release.Release branch
Some modifications of the branch are need to do the release. So a new branch is needed:svn copy https://svn.apache.org/repos/asf/ant/ivy/ivyde/trunk \and then checkout it:
https://svn.apache.org/repos/asf/ant/ivy/ivyde/branches/$VERSION \
-m "Creating a release branch for IvyDE $VERSION"
svn co https://svn.apache.org/repos/asf/ant/ivy/ivyde/branches/$VERSION ivyde-$VERSION
Documentation release
The documentation have to specify the correct version number:In the files:
- doc/template.html
<title>${title} | IvyDE $VERSION Documentation</title>
Release notes
Go edit the RELEASE_NOTES.txt files. There are two things to change, marked by some TODO WHEN RELEASING:- the list of contributors should be filled according to the "thanks to" in the CHANGE.txt file
- the list of bug/features fixed in the release should be filled from the one in the CHANGE.txt file
- Child page title: Release Notes
- Child page path: release-notes
Then you should improve the style of the page by adding some h1, h2, remove unwanted line break. Normally you shouldn't care about the http link or the jira issue, xooki will take care of them.
Commit your change
Don't forget to commit the changes you've done into the release branch.Building
Make sure you have a proper working copy with a svn status. You should have no modification.Then launch the build:
ant /release clean dist -DbaseLocation=/home/me/...../eclipse/And sign the artifacts:
./signArtifacts.shThen it is time to tag the release as soon as you are happy with your artifacts:
svn copy https://svn.apache.org/repos/asf/ant/ivy/ivyde/branches/$VERSION \And don't forget to set the svn:external on doc/xooki to a fixed revision. Edit the svn:external property on the folder doc/xooki in the tag and set it to the revision of the commit of the tag. It should look like:
https://svn.apache.org/repos/asf/ant/ivy/ivyde/tags/$VERSION \
-m "Tag IvyDE release $VERSION"
xooki -r790212 https://svn.apache.org/repos/asf/ant/ivy/site/xooki/And commit that modification.
Prepare the updatesite
The instructions to build the updatesite are there:http://ant.apache.org/ivy/history/trunk/dev/updatesite.html
Vote for the released artifacts
It is recommended to publish the distribution artifacts and the updatesite in your public_html on people.apache.org directory so not only committers can test it.On people.apache.org, create your "staging" directory:
mkdir ~/public_html/ivyde-$VERSION/And then the copy:
scp dist/* $LOGIN@people.apache.org:/home/$LOGIN/public_html/ivyde-$VERSION/It is recommended to also deploy a staging updatesite there. See that page to know how to proceed.
And launch the vote on the ant-dev mailing list:
Subject: [VOTE] IvyDE $VERSION ReleaseNote: this page is defining when and how a release can be accepted.
I have built a release candidate for IvyDE $VERSION
You can download the distribution from this URL: http://people.apache.org/~$LOGIN/ivyde-$VERSION/
And a staging update site has been setup there: http://people.apache.org/~$LOGIN/staging/updatesite
Do you vote for the release of these binaries?
[ ] Yes
[ ] No
Regards,
$ME, IvyDE $VERSION release manager
Deployment
Publish the artifacts
The binaries have to be pushed with their signatures and checksums in the apache dist directory. On people.apache.org:cp -R ~/public_html/ivyde-$VERSION /www/www.apache.org/dist/ant/ivyde/$VERSION
Deploy the updatesite
Follow the instructions of that page: http://ant.apache.org/ivy/history/latest-milestone/dev/updatesite.html#deploymentUpdate the documentation
Update the table of content
The table of content needs to be updated so that the last documentation point to that new release.First we need to update the external links. In svn/site/ivyde/history:
svn pe svn:externals .And:
- update latest-milestone:
latest-milestone https://svn.apache.org/repos/asf/ant/ivy/ivyde/tags/$VERSION/doc
- add an entry:
$VERSION https://svn.apache.org/repos/asf/ant/ivy/ivyde/tags/$VERSION/doc
- add the following data to the correct abstract node:
{
"title":"$VERSION",
"url":"http://ant.apache.org/ivy/ivyde/history/$VERSION/index.html"
} - update the title of the latest-milestone history entry:
"title":"Documentation ($VERSION)"
Update the download page
In the page svn/site/ivyde/download.html change every reference of the old version to the new one.Update the build script
In the build script which generate the website (svn/site/build.xml), add the fix for the history import of the new release.In the target init-imported-history-ivyde, add a line with:
<init-imported-version basepath="ivyde" version="$VERSION" />
Deploy
All site editing being done, commit your changes.And now let's generate the site and deploy it:
- generate the part of the site for the new version:
- generate the website with the new toc:
- you should verify that the site generated in target is OK. And once your happy with it, commit the changes in target (some svn add might be needed !)
- deploy the website: go on people.apache.org and svn up /www/ant.apache.org/ivy/ivyde
ant generate-history-ivyde -Dhistory.version=$VERSIONWARNING: that target is modifiying the toc.json in the imported branch so that the generated html have a proper version declared in the toc. You should not commit that change. Once the site has been generated, you may want to revert the changes so you won't commit it by mistake. (TODO: process to improve so we shouldn't worry).
ant /all generate-site-ivyde
Post release tasks
Jira
Update the IvyDE Jira project: mark the version as released.Bump the version
Update the versions needs to be updated in the following files:- build.properties (edit the qualifier)
- org.apache.ivyde.eclipse/META-INF/MANIFEST.MF
- org.apache.ivyde.feature/feature.xml
Printer Friendly