Jump to: navigation, search

Difference between revisions of "Mylyn/Release Howto"

Line 1: Line 1:
 
[[category:Mylyn]]
 
[[category:Mylyn]]
  
==== Before the Release ====
+
= Before the Release =
'''Run AllTests'''
+
  
'''Update copyright notices'''
+
== Prepare Source Code ==
** 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
+
  
'''Internationalize source code'''
+
=== Internationalize Messages ===
** Run Source > Find Broken Externalized Strings over all bundles
+
* Run Source > Find Broken Externalized Strings over all bundles
** Run Source > Externalize Strings over all bundles
+
* Run Source > Externalize Strings over all bundles
  
'''Update the user guide from the wiki'''
+
=== Update User Guide from the Wiki ===
** Run org.eclipse.mylyn.help.ui/build-helper.xml as an Ant Build (ensure org.eclipse.mylyn.wikitext* is checked out into your workspace)
+
* Run org.eclipse.mylyn.help.ui/build-helper.xml as an Ant Build (ensure org.eclipse.mylyn.wikitext* is checked out into your workspace)
** Review the user guide and commit changes to CVS
+
* Review the user guide and commit changes to CVS
  
'''Backport changes to the Eclipse branches if necessary''''
+
=== Update Copyright Notices ===
** Update 3.4 workspace to the latest
+
* Update the year in the about.ini to the current year
** Select branched plug-ins
+
* Update the year in all feature.xml files to the current year for changed features
** Team > Merge
+
* Update the year in copyright notices of changed source files: Install platform releng tools, Project context menu > Fix Copyrights
*** end tag: HEAD
+
 
*** start tag: Merged_e_3_4_m_3_x
+
=== Backport changes to the Platform Specific Branches ===
*** select Preview the merge in the synchronize perspective
+
* Switch to branch
 +
* Select branched plug-ins, Team > Merge
 +
** End tag: HEAD
 +
** Start tag: Merged_e_3_4_m_3_x
 +
** Select Preview the merge in the synchronize perspective
 
** Merge changes and resolve conflicts
 
** Merge changes and resolve conflicts
** Tag branched plug-ins in '''3.6''' workspace (i.e. cvs head) with Merged_e_3_4_m_3_x
+
** Commit
*** select Move tag if already exists
+
* Switch to head,
** Repeat for 3.5 workspace
+
* Tag branched plug-ins as Merged_e_3_4_m_3_x
  
'''Tag projects and map files'''
+
== Run Tests ==
 +
* Trigger a [https://hudson.eclipse.org/hudson/job/mylyn-nightly/ nightly build] or run the AllTests suite
  
==== The Release ====
+
= The Release =
''Major releases only''
+
 
* Tag the release as R_x_y_z and R_x_y_y_e_3_3
+
== Tag Sources ==
----
+
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)
* Prepare the build environment
+
 
 +
== Prepare Build Environment ==
 +
 
 +
=== Checkout Sources ===
 
  ssh [user]@build.eclipse.org
 
  ssh [user]@build.eclipse.org
  cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/tools co org.eclipse.mylyn/org.eclipse.mylyn.releng
+
  cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/mylyn co .
 +
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng
 +
org.eclipse.mylyn/org.eclipse.mylyn.releng/integration-build/prepare.sh
 
  cd org.eclipse.mylyn/org.eclipse.mylyn.releng
 
  cd org.eclipse.mylyn/org.eclipse.mylyn.releng
  
* Adjust settings in local.properties as necessary. Settings for build.eclipse.org:
 
eclipse.base=/shared/tools/mylyn/tools
 
build.home=/shared/tools/mylyn/build
 
dist.home=/home/data/httpd/download.eclipse.org/tools/mylyn
 
 
* Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:
 
* Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:
 
  export JAVA_HOME=/shared/tools/mylyn/tools/jdk
 
  export JAVA_HOME=/shared/tools/mylyn/tools/jdk
  
* Build the release:
+
== Build ==
  ant weekly  # weekly builds
+
* Release build:
ant helios # signed integration builds that are published to the weekly and Helios update site
+
  TYPE=release TIMESTAMP=20110608-1400 mvn -f org.eclipse.mylyn/org.eclipse.mylyn.releng/pom.xml clean deploy
ant -Dqualifier=v20090909-0900 -Drelease=true helios # releases built from map files
+
* Snapshot build:
* If signing times out:
+
  TYPE=weekly mvn -f org.eclipse.mylyn/org.eclipse.mylyn.releng/pom.xml clean deploy
  ant sign
+
 
ant -Dtodir=weekly promote
+
== Update Release Repository Content ==
ant -Dtodir=galileo promote-main
+
* Update filters in ~/downloads/mylyn/releases/*/composite.index
* Update mylyn.build file for Helios builds
+
* Update composite sites
----
+
  cd ~/downloads/mylyn/releases/
''Major releases only''
+
  ~/releng/bin/create-composite.sh -r
* Move the release from the weekly site to the main update site:
+
 
ssh [username]@build.eclipse.org
+
== Update Website ==
  cd /shared/tools/mylyn/weekly
+
* Update the version number on download page
  ./promote.sh [major] [build]
+
* Create a new section on download archive page
* Update the version number on the download page
+
* Add a link to the new API baseline on the download archive page (for major releases)
* Create a new section on the download archive page
+
* Add a link to the new API baseline on the download archive page if necessary
+
 
* Create a new section in the New & Noteworthy
 
* Create a new section in the New & Noteworthy
  
==== When the build has propagated to mirrors ====
+
== Add Mirror URLs ==
''Major releases only''
+
  cd ~/downloads/mylyn/archive/3.6.0/v20110608-1400
* Add the mirror attribute to all site.xml files and regenerate meta-data with correct update site identifiers:
+
  ~/releng/bin/add-mirrors.sh 3.6.0
ssh [username]@build.eclipse.org
+
* Check that the content.jar contains the following property:
  cd /shared/tools/mylyn/weekly
+
<property name="p2.mirrorsURL" value="http://www.eclipse.org/downloads/download.php?file=/mylyn/archive/.../v.../&amp;protocol=http&amp;format=xml"/>
  ./add-mirrors.sh
+
 
./generate-p2-metadata.sh
+
= After the Release =
* Check that the site.xml files have the following URL set:
+
<source lang="xml">
+
  mirrorsURL="http://www.eclipse.org/downloads/download.php?file=/tools/mylyn/update/[location]/site.xml&amp;protocol=http&amp;format=xml"
+
</source>
+
  
==== After the release ====
+
== Update Versions ==
''Major releases only''
+
* For head and e3.3 branch: Replace version numbers in all MANIFEST.MF and feature.xml files, e.g. 2.3.0.qualifier -> 2.3.1.qualifier and 2.3.0.mylynQualifier -> 2.3.1.mylynQualifier
+
* Make sure changes are applied to the 3.3 branch as well as the 3.4 branch
+

Revision as of 17:09, 15 June 2011


Before the Release

Prepare Source Code

Internationalize Messages

  • Run Source > Find Broken Externalized Strings over all bundles
  • Run Source > Externalize Strings over all bundles

Update User Guide from the Wiki

  • Run org.eclipse.mylyn.help.ui/build-helper.xml as an Ant Build (ensure org.eclipse.mylyn.wikitext* is checked out into your workspace)
  • Review the user guide and commit changes to CVS

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

Backport changes to the Platform Specific Branches

  • Switch to branch
  • Select branched plug-ins, Team > Merge
    • End tag: HEAD
    • Start tag: Merged_e_3_4_m_3_x
    • Select Preview the merge in the synchronize perspective
    • Merge changes and resolve conflicts
    • Commit
  • Switch to head,
  • Tag branched plug-ins as Merged_e_3_4_m_3_x

Run Tests

The Release

Tag Sources

  • Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)

Prepare Build Environment

Checkout Sources

ssh [user]@build.eclipse.org
cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/mylyn co .
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng
org.eclipse.mylyn/org.eclipse.mylyn.releng/integration-build/prepare.sh
cd org.eclipse.mylyn/org.eclipse.mylyn.releng
  • Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:
export JAVA_HOME=/shared/tools/mylyn/tools/jdk

Build

  • Release build:
TYPE=release TIMESTAMP=20110608-1400 mvn -f org.eclipse.mylyn/org.eclipse.mylyn.releng/pom.xml clean deploy 
  • Snapshot build:
TYPE=weekly mvn -f org.eclipse.mylyn/org.eclipse.mylyn.releng/pom.xml clean deploy

Update Release Repository Content

  • Update filters in ~/downloads/mylyn/releases/*/composite.index
  • Update composite sites
cd ~/downloads/mylyn/releases/
~/releng/bin/create-composite.sh -r

Update Website

  • Update the version number on download page
  • Create a new section on download archive page
  • Add a link to the new API baseline on the download archive page (for major releases)
  • Create a new section in the New & Noteworthy

Add Mirror URLs

cd ~/downloads/mylyn/archive/3.6.0/v20110608-1400
~/releng/bin/add-mirrors.sh 3.6.0
  • Check that the content.jar contains the following property:
<property name="p2.mirrorsURL" value="http://www.eclipse.org/downloads/download.php?file=/mylyn/archive/.../v.../&protocol=http&format=xml"/>

After the Release

Update Versions