Reviews/R4E/Release Howto
Contents
General
This document is based on Mylyn Release Howto
This document is targeting minor releases and needs to be completed to cover Major releases as R4E moves out of incubation.
NOTE: In contrast to Mylyn Release Howto, this "Howto" document does not perform the actual source repository updates in a cloned copy at build.eclipse.org. <br\>Any changes need to be performed in a local cloned source repository and pushed to the server before the actual build takes place.
Before the Release
Prepare Release Review
Before performing the actual release, you will have to plan in advance for the Eclipse Release Review as part of the Eclipse Release process, you can find the details at Release Review and Release Requirements
NOTE: Simultaneous releases may specify deviations of the general requirements for the scope of the review. In general is necessary to subscribe to the Eclipse cross project issues mailing list to be aware of any changes.
See the following bug as an example of an earlier tracking bug to the activities performed for the release of R4E 0.11.0 383894: Perform R4E 0.11 release
Prepare Build Environment
It's recommended to perform all build activities on a Linux environment in order to take advantage of the utility scripts available.. Ideally this utility scripts can be converted to maven java utilities in order to make the build activities portable.
clone a fresh copy of the source repository:
> git clone ssh://aUser@git.eclipse.org/gitroot/r4e/org.eclipse.mylyn.reviews.r4e.git r4e_build_version > cd r4e_build_version
Create a Branch
TBD for major releases
Prepare Source Code
Internationalize Messages
- Run Source > Find Broken Externalized Strings over all bundles
- Run Source > Externalize Strings over all bundles
Update User Guide
- Adjust org.eclipse.mylyn.reviews.r4e.help/build-r4e-help.xml to set proxies as well as the plugin directory of the eclipse installation to use to find the Mylyn wikitext plug-ins
- Run org.eclipse.mylyn.reviews.r4e.help/build-r4e-help.xml as an Ant Build
- Review the user guide changes and then commit
Update Copyright Notices
- Update the year in the about.ini to the current year
- Update the year in all feature.xml files to the current year for changed features
- Update the year in copyright notices of changed source files: Install platform releng tools, Project context menu > Fix Copyrights
- Use the following script (under the r4e source repository) to find files without copyrights
tools/findNotCopyRight
Backport changes to the Platform Specific Branches
TBD
Update Integration Repository
TBD (No subprojects under R4E)
Update Targets
- Update target files in org.eclipse.mylyn.reviews.r4e-target to point to release sites of dependencies e.g. Mylyn, Egit/Jgit to ensure builds are reproducible in the future
Run Tests
Make sure all tests pass
Push Updates
Commit and push any updates performed during preparation to eclipse.org e.g. "origin"
The Release
Build
- Release build (Hudson): https://hudson.eclipse.org/hudson/job/mylyn-reviews-r4e-release/
- Update configuration
- Under Build-> Invoke Maven, update the -DforceContextQualifier to reflect the time stamp associated to the release version
- Build and make sure all tests pass
Verify Update Site Contents
From the artifact(s) produced by the build
- Check that only approved features are on the update site
- Check that all Orbit bundles are tracked in r4e approved CQs
Prepare Download Area
The build job will publish the update site to "build.eclipse.org" at /shared/download-staging.priv/r4e/staging/
- Download the Release on your machine
- Update artifacts.xml
- Add the "p2.mirrorsURL" property to artifacts.xml (in artifacts.jar) and update the "properties size" to 3:
<properties size='3'> <property name='p2.timestamp value='xxxxxxxxxxxx'/> <property name='p2.compressed value='true'/> <property name="p2.mirrorsURL value="http://www.eclipse.org/downloads/download.php?file=/r4e/drops/0.x.y.v.../&format=xml"/> </properties>
- Log into build.eclipse.org i.e. using and SFTP or SCP client (such as WinSCP, CoreFTP) in SSH mode
- Copy the Release to /home/data/httpd/download.eclipse.org/r4e/staging
- Test install from http://download.eclipse.org/r4e/staging/
- Move /home/data/httpd/download.eclipse.org/r4e/updates to /home/data/httpd/download.eclipse.org/r4e/updates_prev
- Copy the Release to /home/data/httpd/download.eclipse.org/r4e/updates
- Copy the Release to /home/data/httpd/download.eclipse.org/r4e/drops
Remove any preliminary integration builds if any e.g. /home/data/httpd/download.eclipse.org/r4e/drops/0.13.0.I* - Copy Release to archive.eclipse.org
E.g. /home/data/httpd/archive.eclipse.org/r4e/drops/....v.../
- Make sure that the permissions are set correctly (644 for files, 2775 for directories)
- There is certainly a simpler way to do it, but here's a simple example of how to transfer the Release to a given folder:
> cd <local directory containing the Release> > scp -r * user@build.eclipse.org > Password:... > lcd <local directory containing the Release> > cd /home/data/httpd/download.eclipse.org/r4e/staging > rm plugins/* > rm features/* > rmdir plugins > rmdir features > rm * > put -r * > chmod 664 * > chmod 664 features/* > chmod 664 plugins/* > chmod 2775 features > chmod 2775 plugins
Test Install
- Do a test install from http://download.eclipse.org/r4e/updates/
Tag Sources
- Tag with the version as vx.y.z (e.g. v0.13.0):
org.eclipse.mylyn.reviews.r4e
- Push tags
git push --tags
Update Release Repository Content
TBD - Not using composite repositories at the moment
Create API Baseline
- major releases Create an API baseline zip
An API baseline is in essence a zip file of the release update site "plugins" folder excluding *source*.jar and documentation jar files.
See an example script at
git repo url = http://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.git path: org.eclipse.mylyn.releng/bin/create-api-profile.sh
Place the new API baselines at
/home/data/httpd/download.eclipse.org/r4e/drops/api_baseline/
Update Website
- The project documents are stored in "git.eclipse.org/gitroot/www.eclipse.org/r4e.git".
- Update the version number on download page (download/index.php)
- Create a new section on download archive page [TBD]
- Create a new section in the New & Noteworthy (news/index.php and new/new-n.nn.n.html)
- Archive project plan in the r4e web repository under "plans"
- major releases Add a link to the new API baseline on the download archive page and update the developer page
Update Babel
- Make release available in Eclipse Babel for translation (major releases only)
Announce Release
- Send announcement to mylyn-reviews-dev
- Send announcement to mylyn-announce
- Post announcement to news group Adjust the document page "_index.html". Get the message info from "http://dev.eclipse.org/mhonarc/lists/mylyn-reviews-dev/"
- Post announcement to r4e blog
Update Eclipse Info Center (major release)
- Inform webmaster of new help plug-ins for the Eclipse info center
After the Release
Update Versions
- Bump up versions to next release using the following script available from the r4e source repository->tools/update-versions.sh
To use this script, copy it to the root directory of the repository, change the permissions to make it executable, and edit it to change the base and target versions e.g. 0.13.0 0.20.0
Create New Download Area
TBD - The following steps are not being used at the moment although might be needed as we maintain release branches see base document for details
- Create download directory (TBD)
- major release Create snapshot site
Add Bugzilla Versions and Milestones
From the Eclipse portal
- Add Bugzilla Milestones for the next release
- major release Add Bugzilla Version for the current release
Update Project Plan
- major release Update versions and queries in all plan.xml documents (from web repository)
- major release Update release plans in portal
References
[1] Mylyn Release Howto<br\> [2] Development Resources<br\> [3] Project Plan Guide<br\> [4] Eclipse portal<br\> [5] p2.mirrorsURL<br\> [6] Hudson R4E Release Job<br\> [7] R4E approved CQs / IP log<br\> [8] R4E Project plan<br\> [9] R4E New & Noteworthy<br\> [10] mylyn-reviews-dev mailing list<br\> [11] mylyn-announce mailing list<br\> [12] Mylyn news group forum<br\> [13] R4E Blog<br\> [14] Development Resources<br\> [15] Release Review<br\>