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"

m (The Release)
(Update Versions)
(45 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[[category:Mylyn]]
 
[[category:Mylyn]]
  
==== Before the Release ====
+
= Before the Release =
  
  * Backport changes to the 3.3 branch
+
== 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
  
==== The Release ====
+
== 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
  
* Change the qualifier to v20YYMMDD-HHMM in all MANIFEST.MF and feature.xml files
+
== Prepare Source Code ==
* Tag the release as R_x_y_z and R_x_y_y_e_3_3
+
  
* ''Make sure the build uses the correct qualifier'' (?)
+
=== Internationalize Messages ===
 +
* Run Source > Find Broken Externalized Strings over all bundles
 +
* Run Source > Externalize Strings over all bundles
  
* Build the release by running the org.eclipse.mylyn.releng/build.sh script
+
=== Update User Guide from the Wiki ===
* Upload the release by running the org.eclipse.mylyn.releng/upload.sh script
+
* Run org.eclipse.mylyn.help.ui/build-helper.xml as an Ant Build (ensure WikiText is checked out into your workspace)
* Move the release to the main update site
+
* Review the user guide and commit changes
* Move site and source zips into position (details?)
+
* Update web site to reference new build, site, source urls
+
  
==== When the build has propagated to mirrors ====
+
=== 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
  
* Add the mirror attribute to all site.xml files:
+
=== Backport changes to the Platform Specific Branches ===
<source lang="xml">
+
* Merge changes from master in each branched module
  mirrorsURL="http://www.eclipse.org/downloads/download.php?file=/tools/mylyn/update/[location]/site.xml&amp;protocol=http&amp;format=xml"
+
git merge master
</source>
+
  
==== After the release ====
+
== Update Integration Repository ==
 +
* Update integration repository to point to latest sub-project revisions
 +
cd src-3_6_x
 +
./update.sh
  
* Replace version numbers in all MANIFEST.MF and feature.xml files, e.g. 2.3.0.qualifier -> 2.3.1.qualifier
+
== Run Tests ==
  * Make sure changes are applied to the 3.3 branch as well as the 3.4 branch
+
* 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
 +
* ''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
 +
 
 +
== 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 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

Copyright © Eclipse Foundation, Inc. All Rights Reserved.