Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Mylyn/Release Howto"

(The Release)
(Update Versions)
(29 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
[[category:Mylyn]]
 
[[category:Mylyn]]
  
==== Before the Release ====
+
= Before the Release =
* Run AllTests
+
* Update the 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
+
* Backport changes to the 3.3 branch
+
** Update 3.3 workspace to the latest
+
** Select branched plug-ins
+
** Team > Merge
+
*** end tag: HEAD
+
*** start tag: Merged_e_3_3_m_3_x
+
*** select Preview the merge in the synchronize perspective
+
** Merge changes and resolve conflicts
+
** Tag branched plug-ins in '''3.4''' workspace (i.e. cvs head) with Merged_e_3_3_m_3_x
+
*** select Move tag if already exists
+
  
==== The Release ====
+
== Prepare Build Environment ==
''Major releases only''
+
* ''once'' Checkout releng on build.eclipse.org
* Tag the release as R_x_y_z and R_x_y_y_e_3_3
+
  ssh build.eclipse.org
----
+
  git clone /gitroot/mylyn/org.eclipse.mylyn.git
* Prepare the build environment
+
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:
  ssh [user]@build.eclipse.org
+
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64
  cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/tools co org.eclipse.mylyn/org.eclipse.mylyn.releng
+
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse
  cd org.eclipse.mylyn/org.eclipse.mylyn.releng
+
* ''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
  
* Adjust settings in local.properties as necessary, settings for build.eclipse.org:
+
== Create a Branch ==
  eclipse.base=/shared/tools/mylyn/tools
+
* ''major release'' Branch integration repository
build.home=/shared/tools/mylyn/build
+
  git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x
  dist.home=/home/data/httpd/download.eclipse.org/tools/mylyn
+
  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
  
* Build the release:
+
== Prepare Source Code ==
  ant weekly # weekly builds
+
 
  ant galileo # signed builds that are published to the weekly and Galileo update site
+
=== Internationalize Messages ===
  ant -Dqualifier=v20090909-0900 # to set a release qualifier
+
* Run Source > Find Broken Externalized Strings over all bundles
* If signing times out:
+
* Run Source > Externalize Strings over all bundles
  ant sign
+
 
  ant -Dtodir=weekly promote
+
=== Update User Guide from the Wiki ===
ant -Dtodir=galileo promote-main
+
* Run org.eclipse.mylyn.help.ui/build-helper.xml as an Ant Build (ensure WikiText is checked out into your workspace)
* Update mylyn.build file for Galileo builds
+
* Review the user guide and commit changes
----
+
 
''Major releases only''
+
=== Update Copyright Notices ===
* Move the release from the weekly site to the main update site:
+
* Update the year in the about.ini to the current year
  ssh [username]@build.eclipse.org
+
* Update the year in all feature.xml files to the current year for changed features
  cd /shared/tools/mylyn/weekly
+
* Update the year in copyright notices of changed source files: Install platform releng tools, Project context menu > Fix Copyrights
  ./promote.sh [major] [build]
+
 
* Update the version number on the download page
+
=== Backport changes to the Platform Specific Branches ===
* Create a new section on the download archive page
+
* Merge changes from master in each branched module
* Add a link to the new API baseline on the download archive page if necessary
+
  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 ==
 +
* Trigger a [https://hudson.eclipse.org/hudson/job/mylyn-nightly/ nightly build] or run the AllTests suite
 +
 
 +
= 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 ==
 +
* 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):
 +
   
 +
  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 [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 ==
 +
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly
 +
 
 +
== 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.../&amp;protocol=http&amp;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 &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 ==
 +
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)
 +
 +
== Announce Release ==
 +
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]
 +
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]
 +
 +
== Update http://eclipse.org/mylyn/updates.xml ==
 +
* 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 =
 +
 +
== 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
  
==== When the build has propagated to mirrors ====
+
== Add Bugzilla Versions and Milestones ==
''Major releases only''
+
* Add Bugzilla Milestones for the next release
* Add the mirror attribute to all site.xml files and regenerate meta-data with correct update site identifiers:
+
* ''major release'' Add Bugzilla Version for the current release
ssh [username]@build.eclipse.org
+
cd /shared/tools/mylyn/weekly
+
./add-mirrors.sh
+
./generate-p2-metadata.sh
+
* 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 Project Plan ==
''Major releases only''
+
* ''major release'' Update versions and queries in all plan.xml documents
* 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
+
* ''major release'' Update release plans in [https://dev.eclipse.org/portal/myfoundation/portal/portal.php portal]
* Make sure changes are applied to the 3.3 branch as well as the 3.4 branch
+

Revision as of 10: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

Back to the top