Reviews/R4E/Release Howto

From Eclipsepedia

< Reviews‎ | R4E
Revision as of 08:38, 22 July 2013 by Lmcbout.gmail.com (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Warning2.png
Draft Content
This page is currently under construction. Community members are encouraged to maintain the page, and make sure the information is accurate.


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.
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

  • 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

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

Update Eclipse Info Center (major release)

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

Project Plan Guide

  • 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
[2] Development Resources
[3] Project Plan Guide
[4] Eclipse portal
[5] p2.mirrorsURL
[6] Hudson R4E Release Job
[7] R4E approved CQs / IP log
[8] R4E Project plan
[9] R4E New & Noteworthy
[10] mylyn-reviews-dev mailing list
[11] mylyn-announce mailing list
[12] Mylyn news group forum
[13] R4E Blog
[14] Development Resources
[15] Release Review