Jump to: navigation, search

Difference between revisions of "Mylyn/Release Howto"

(Update Versions)
(14 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
 
= Before the Release =
 
= Before the Release =
 +
 +
== Prepare Build Environment ==
 +
* ''once'' Checkout releng on build.eclipse.org
 +
ssh build.eclipse.org
 +
git clone /gitroot/mylyn/org.eclipse.mylyn.git
 +
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:
 +
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64
 +
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse
 +
* ''once'' Run Maven on build.eclipse.org to download runtime
 +
cd org.eclipse.mylyn
 +
mvn package
 +
* ''once'' Create symlinks for convenience
 +
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive
 +
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng
  
 
== Create a Branch ==
 
== Create a Branch ==
* Branch cvs projects (major releases only)
+
* ''major release'' Branch integration repository
  cvs -b 3_7_m_3_6_x org.eclipse.mylyn*
+
  git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x
* Branch git (major releases only)
+
cd src-3_6_x
 
  git checkout -b 3_7_m_3_6_x
 
  git checkout -b 3_7_m_3_6_x
  git push 3_7_m_3_6_x
+
  git submodule init
 +
git submodule update
 +
* ''major release'' Branch each sub-project
 +
git submodule foreach git checkout -b 3_7_m_3_6_x master
 +
* ''major release'' Request mylyn-3.6.x-release job on Hudson cloning an existing release job
  
 
== Prepare Source Code ==
 
== Prepare Source Code ==
Line 17: Line 35:
  
 
=== Update 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 WikiText is checked out into your workspace)
* Review the user guide and commit changes to CVS
+
* Review the user guide and commit changes
  
 
=== Update Copyright Notices ===
 
=== Update Copyright Notices ===
Line 26: Line 44:
  
 
=== Backport changes to the Platform Specific Branches ===
 
=== Backport changes to the Platform Specific Branches ===
* Switch to branch
+
* Merge changes from master in each branched module
* Select branched plug-ins, Team > Merge
+
git merge master
** End tag: HEAD
+
 
** Start tag: Merged_e_3_4_m_3_x
+
== Update Integration Repository ==
** Select Preview the merge in the synchronize perspective
+
* Update integration repository to point to latest sub-project revisions
** Merge changes and resolve conflicts
+
cd src-3_6_x
** Commit
+
./update.sh
* Switch to head,
+
* Tag branched plug-ins as Merged_e_3_4_m_3_x
+
  
 
== Run Tests ==
 
== Run Tests ==
Line 42: Line 58:
  
 
== Update Target ==
 
== Update Target ==
* Update target files to point to release sites
+
* Update target files in org.eclipse.mylyn/org.eclipse.mylyn-target to point to release sites of dependencies to ensure builds are reproducible in the future
  
 
== Tag Sources ==
 
== Tag Sources ==
 
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)
 
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)
 
+
./foreach.sh git tag R_3_6_3
== Prepare Build Environment ==
+
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):
* Checkout sources on build.eclipse.org
+
  org.eclipse.mylyn.builds
ssh [user]@build.eclipse.org
+
org.eclipse.mylyn.docs
cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/mylyn co .
+
  org.eclipse.mylyn.reviews
  ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng
+
  org.eclipse.mylyn.versions
  org.eclipse.mylyn/org.eclipse.mylyn.releng/integration-build/prepare.sh
+
* Push tags
  cd org.eclipse.mylyn/org.eclipse.mylyn.releng
+
  git submodule foreach git push --tags
 
+
* 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 ==
 
== Build ==
 
* Release build (Hudson): [https://hudson.eclipse.org/hudson/job/mylyn-release/ https://hudson.eclipse.org/hudson/job/mylyn-release/]
 
* Release build (Hudson): [https://hudson.eclipse.org/hudson/job/mylyn-release/ https://hudson.eclipse.org/hudson/job/mylyn-release/]
 +
** Select release as the type
 +
** Check publish
 +
** Enter timestamp for qualifier
 
* Release build (manually):
 
* Release build (manually):
  TYPE=release TIMESTAMP=20110608-1400 mvn -f org.eclipse.mylyn/org.eclipse.mylyn.releng/pom.xml clean deploy
+
   
 +
mvn -Prelease -DforceContextQualifier=v20110304-0100 -Ppublish -Phudson.eclipse.org -Pindigo -Dexplicit-target -Dmaven.test.skip=true -Dtycho-version=0.12.0 -Dsign-dir=tools/mylyn/hudson/release clean install
 +
 
 
* Snapshot build (manually):
 
* Snapshot build (manually):
  TYPE=weekly mvn -f org.eclipse.mylyn/org.eclipse.mylyn.releng/pom.xml clean deploy
+
 
 +
  mvn -Psnapshot -Ppublish -Phudson.eclipse.org -Pindigo -Dexplicit-target -Dmaven.test.skip=true -Dtycho-version=0.12.0 -Dsign-dir=tools/mylyn/hudson/snapshot clean install
  
 
== Verify Update Site Contents ==
 
== Verify Update Site Contents ==
 
* Check that only approved features are on the update site
 
* Check that only approved features are on the update site
* Check that all Orbit bundles are tracked on [http://eclipse.org/projects/ip_log.php?projectid=mylyn,mylyn.builds,mylyn.commons,mylyn.context,mylyn.docs,mylyn.reviews,mylyn.tasks,mylyn.versions approved CQs]
+
* Check that all Orbit bundles are tracked in [http://eclipse.org/projects/ip_log.php?projectid=mylyn,mylyn.builds,mylyn.commons,mylyn.context,mylyn.docs,mylyn.reviews,mylyn.tasks,mylyn.versions approved CQs]
  
 
== Test Install ==
 
== Test Install ==
 
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly
 
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly
  
== Remove Old Integration Builds ==
+
== Prepare Download Area ==
  rm ~/downloads/mylyn/archive/3.6.0/I*
+
* Log into Eclipse.org
 
+
ssh build.eclipse.org
== Add Mirror URLs ==
+
* Remove Old Integration Builds
  cd ~/downloads/mylyn/archive/3.6.0/
+
  rm -rf ~/downloads/mylyn/drops/3.6.0/I*
 +
* Copy Release to archive.eclipes.org
 +
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops
 +
* Run script to add mirror URLs  
 +
  cd ~/downloads/mylyn/drops/3.6.0/
 
  ~/releng/bin/update-metadata.sh
 
  ~/releng/bin/update-metadata.sh
 
* Check that the content.jar contains the following property:
 
* 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.../&amp;protocol=http&amp;format=xml"/>
+
  <property name="p2.mirrorsURL" value="http://www.eclipse.org/downloads/download.php?file=/mylyn/drops/.../v.../&amp;protocol=http&amp;format=xml"/>
 
+
== Copy Release to archive.eclipes.org ==
+
cp ~/downloads/mylyn/archive/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/archive
+
  
 
== Update Release Repository Content ==
 
== Update Release Repository Content ==
 +
* Log into Eclipse.org
 +
ssh dev.eclipse.org
 
* Update filters in ~/downloads/mylyn/releases/*/composite.index
 
* Update filters in ~/downloads/mylyn/releases/*/composite.index
 
* Update release composite sites
 
* Update release composite sites
 
  cd ~/downloads/mylyn/releases/
 
  cd ~/downloads/mylyn/releases/
~/releng/bin/create-composite.sh -r
 
* Update snapshot composite sites
 
cd ~/downloads/mylyn/snapshots/
 
 
  ~/releng/bin/create-composite.sh -r
 
  ~/releng/bin/create-composite.sh -r
  
 
== Create API Baseline ==
 
== Create API Baseline ==
* Create an API baseline zip (major releases only)
+
* ''major releases'' Create an API baseline zip
 
   ~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400
 
   ~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400
  
Line 100: Line 119:
 
* Update the version number on download page
 
* Update the version number on download page
 
* Create a new section on download archive page
 
* Create a new section on download archive page
* Add a link to the new API baseline on the download archive page (major releases only)
 
 
* Create a new section in the New &amp; Noteworthy
 
* Create a new section in the New &amp; Noteworthy
 +
* ''major releases'' Add a link to the new API baseline on the download archive page and update the developer page
 +
* ''major releases'' Archive [http://www.eclipse.org/projects/project-plan.php?projectid=mylyn project plan] in mylyn/docs
  
 
== Update Babel ==
 
== Update Babel ==
Line 112: Line 132:
 
== Update http://eclipse.org/mylyn/updates.xml ==
 
== Update http://eclipse.org/mylyn/updates.xml ==
 
* Edit /mylyn/notification.xml in website CVS
 
* Edit /mylyn/notification.xml in website CVS
 +
 +
== Update Eclipse Info Center ==
 +
* Inform webmaster of new help plug-ins for the [http://help.eclipse.org Eclipse info center]
 +
 +
== Update Marketplace Listings ==
 +
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]
 +
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]
  
 
= After the Release =
 
= After the Release =
Line 118: Line 145:
 
* Edit versions in org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh
 
* Edit versions in org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh
 
  org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh
 
  org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh
 +
* Set versions of org.eclipse.mylyn.commons/org.eclipse.mylyn to the next release version
 +
* Update version in CoreUtil.FRAMEWORK_VERSION
 +
* Update URL in ConnectorDiscoveryWizardMainPage.DEFAULT_DIRECTORY_URL
 +
 +
== Update Repository URL ==
 +
* ''major release'' Edit URL in org.eclipse.mylyn-feature/feature.xml
  
 
== Create Download Area ==
 
== Create Download Area ==
* Create download directory in archive
+
* Create download directory
  mkdir ~/downloads/mylyn/archive/3.7.0/
+
  mkdir ~/downloads/mylyn/drops/3.7.0/
  setfacl -m user:hudsonBuild:rwx ~/downloads/mylyn/archive/3.7.0/
+
  setfacl -m user:hudsonBuild:rwx ~/downloads/mylyn/drops/3.7.0/
* Update snapshot sites
+
setfacl -R -x user:hudsonBuild ~/downloads/mylyn/drops/3.6.0/
 +
* ''major release'' Create snapshot site
 
  cp -a ~/downloads/mylyn/snapshots/3.6 ~/downloads/mylyn/snapshots/3.7
 
  cp -a ~/downloads/mylyn/snapshots/3.6 ~/downloads/mylyn/snapshots/3.7
* Edit 3.6 ~/downloads/mylyn/snapshots/*/composite.index
+
* ''major release'' Update composite site indices
 +
emacs ~/downloads/mylyn/snapshots/*/composite.index
 
* Update snapshot sites
 
* Update snapshot sites
 
  cd ~/downloads/mylyn/snapshots/
 
  cd ~/downloads/mylyn/snapshots/
 
  ~/releng/bin/create-composite.sh -r
 
  ~/releng/bin/create-composite.sh -r
  setfacl -R -m user:hudsonBuild:rwx ~/downloads/mylyn/snapshots/*
+
* ''major release'' Create Incubator download directory
* Update Incubator repository
+
  mkdir ~/downloads/mylyn/incubator/drops/3.7.0
  mkdir ~/downloads/mylyn/incubator/archive/3.7.0
+
  setfacl -m user:hudsonBuild:rwx ~/downloads/mylyn/incubator/drops/3.7.0/
  setfacl -m user:hudsonBuild:rwx ~/downloads/mylyn/incubator/archive/3.7.0
+
  setfacl -R -x user:hudsonBuild ~/downloads/mylyn/incubator/drops/3.6.0/
 +
* ''major release'' Create Incubator site
 
  cp -a ~/downloads/mylyn/incubator/3.6 cp -a ~/downloads/mylyn/incubator/3.7
 
  cp -a ~/downloads/mylyn/incubator/3.6 cp -a ~/downloads/mylyn/incubator/3.7
* Edit ~/downloads/mylyn/incubator/3.7/composite.index
+
emacs ~/downloads/mylyn/incubator/3.7/composite.index
 +
* Update composite site
 +
cd ~/downloads/mylyn/incubator
 
  ~/releng/bin/create-composite.sh -r
 
  ~/releng/bin/create-composite.sh -r
setfacl -R -m user:hudsonBuild:rwx ~/downloads/mylyn/incubator/3.*
+
 
 +
== Add Bugzilla Versions and Milestones ==
 +
* 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
 +
* ''major release'' Update release plans in [https://dev.eclipse.org/portal/myfoundation/portal/portal.php portal]

Revision as of 09:14, 5 June 2012


Before the Release

Prepare Build Environment

  • once Checkout releng on build.eclipse.org
ssh build.eclipse.org
git clone /gitroot/mylyn/org.eclipse.mylyn.git
  • once Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse
  • once Run Maven on build.eclipse.org to download runtime
cd org.eclipse.mylyn
mvn package
  • once Create symlinks for convenience
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng

Create a Branch

  • major release Branch integration repository
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x
cd src-3_6_x
git checkout -b 3_7_m_3_6_x
git submodule init
git submodule update
  • major release Branch each sub-project
git submodule foreach git checkout -b 3_7_m_3_6_x master
  • major release Request mylyn-3.6.x-release job on Hudson cloning an existing release job

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 WikiText is checked out into your workspace)
  • Review the user guide and commit changes

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

  • Merge changes from master in each branched module
git merge master

Update Integration Repository

  • Update integration repository to point to latest sub-project revisions
cd src-3_6_x
./update.sh

Run Tests

The Release

Update Target

  • Update target files in org.eclipse.mylyn/org.eclipse.mylyn-target to point to release sites of dependencies to ensure builds are reproducible in the future

Tag Sources

  • Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)
./foreach.sh git tag R_3_6_3
  • Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):
org.eclipse.mylyn.builds
org.eclipse.mylyn.docs
org.eclipse.mylyn.reviews
org.eclipse.mylyn.versions
  • Push tags
git submodule foreach git push --tags

Build

mvn -Prelease -DforceContextQualifier=v20110304-0100 -Ppublish -Phudson.eclipse.org -Pindigo -Dexplicit-target -Dmaven.test.skip=true -Dtycho-version=0.12.0 -Dsign-dir=tools/mylyn/hudson/release clean install
  • Snapshot build (manually):
mvn -Psnapshot -Ppublish -Phudson.eclipse.org -Pindigo -Dexplicit-target -Dmaven.test.skip=true -Dtycho-version=0.12.0 -Dsign-dir=tools/mylyn/hudson/snapshot clean install

Verify Update Site Contents

  • Check that only approved features are on the update site
  • Check that all Orbit bundles are tracked in approved CQs

Test Install

Prepare Download Area

  • Log into Eclipse.org
ssh build.eclipse.org
  • Remove Old Integration Builds
rm -rf ~/downloads/mylyn/drops/3.6.0/I*
  • Copy Release to archive.eclipes.org
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops
  • Run script to add mirror URLs
cd ~/downloads/mylyn/drops/3.6.0/
~/releng/bin/update-metadata.sh
  • Check that the content.jar contains the following property:
<property name="p2.mirrorsURL" value="http://www.eclipse.org/downloads/download.php?file=/mylyn/drops/.../v.../&protocol=http&format=xml"/>

Update Release Repository Content

  • Log into Eclipse.org
ssh dev.eclipse.org
  • Update filters in ~/downloads/mylyn/releases/*/composite.index
  • Update release composite sites
cd ~/downloads/mylyn/releases/
~/releng/bin/create-composite.sh -r

Create API Baseline

  • major releases Create an API baseline zip
 ~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400

Update Website

  • Update the version number on download page
  • Create a new section on download archive page
  • Create a new section in the New & Noteworthy
  • major releases Add a link to the new API baseline on the download archive page and update the developer page
  • major releases Archive project plan in mylyn/docs

Update Babel

  • Make release available in Eclipse Babel for translation (major releases only)

Announce Release

Update http://eclipse.org/mylyn/updates.xml

  • Edit /mylyn/notification.xml in website CVS

Update Eclipse Info Center

Update Marketplace Listings

After the Release

Update Versions

  • Edit versions in org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh
  • Set versions of org.eclipse.mylyn.commons/org.eclipse.mylyn to the next release version
  • Update version in CoreUtil.FRAMEWORK_VERSION
  • Update URL in ConnectorDiscoveryWizardMainPage.DEFAULT_DIRECTORY_URL

Update Repository URL

  • major release Edit URL in org.eclipse.mylyn-feature/feature.xml

Create Download Area

  • Create download directory
mkdir ~/downloads/mylyn/drops/3.7.0/
setfacl -m user:hudsonBuild:rwx ~/downloads/mylyn/drops/3.7.0/
setfacl -R -x user:hudsonBuild ~/downloads/mylyn/drops/3.6.0/
  • major release Create snapshot site
cp -a ~/downloads/mylyn/snapshots/3.6 ~/downloads/mylyn/snapshots/3.7
  • major release Update composite site indices
emacs ~/downloads/mylyn/snapshots/*/composite.index
  • Update snapshot sites
cd ~/downloads/mylyn/snapshots/
~/releng/bin/create-composite.sh -r
  • major release Create Incubator download directory
mkdir ~/downloads/mylyn/incubator/drops/3.7.0
setfacl -m user:hudsonBuild:rwx ~/downloads/mylyn/incubator/drops/3.7.0/
setfacl -R -x user:hudsonBuild ~/downloads/mylyn/incubator/drops/3.6.0/
  • major release Create Incubator site
cp -a ~/downloads/mylyn/incubator/3.6 cp -a ~/downloads/mylyn/incubator/3.7
emacs ~/downloads/mylyn/incubator/3.7/composite.index
  • Update composite site
cd ~/downloads/mylyn/incubator
~/releng/bin/create-composite.sh -r

Add Bugzilla Versions and Milestones

  • 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
  • major release Update release plans in portal