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"

(After the Release)
(Update Project Plan)
(148 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
= Before the Release =
 
= Before the Release =
  
== Create a Branch ==
+
== Prepare Build Environment ==
* Branch cvs projects (major releases only)
+
* ''once'' Checkout releng on build.eclipse.org
  cvs -b 3_7_m_3_6_x org.eclipse.mylyn*
+
  ssh build.eclipse.org
* Branch git (major releases only)
+
git clone /gitroot/mylyn/org.eclipse.mylyn.git
  git checkout -b 3_7_m_3_6_x
+
* Update releng on build.eclipse.org from Git
  git push 3_7_m_3_6_x
+
cd ~/org.eclipse.mylyn/
 +
  git pull
 +
* ''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
  
 
== Prepare Source Code ==
 
== Prepare Source Code ==
Line 17: Line 27:
  
 
=== 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 <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> 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 ===
 
* Update the year in the about.ini to the current year
 
* 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 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
+
* Update the year in copyright notices of changed source files: Install platform releng tools (available from the update site http://download.eclipse.org/eclipse/updates/4.3), Project context menu > Fix Copyrights
  
=== Backport changes to the Platform Specific Branches ===
+
== Create a Branch (Major Release Only) ==
* Switch to branch
+
* Branch integration repository
* Select branched plug-ins, Team > Merge
+
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x
** End tag: HEAD
+
cd src-3_6_x
** Start tag: Merged_e_3_4_m_3_x
+
git checkout -b e_3_7_m_3_6_x
** Select Preview the merge in the synchronize perspective
+
git submodule init
** Merge changes and resolve conflicts
+
git submodule update
** Commit
+
* Branch each sub-project
* Switch to head,
+
git submodule foreach git pull
* Tag branched plug-ins as Merged_e_3_4_m_3_x
+
git submodule foreach git checkout -b e_3_7_m_3_6_x master
 +
* Copy .gitmodules from previous branch and update the branches to the current branch
 +
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch
 +
* Push submodule branches
 +
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x
 +
* configure mylyn-3.6.x-release job on Hudson to build from e_3_7_m_3_6_x branch
 +
** set BRANCH parameter passed to downstream builds
 +
** edit the build schedule so it won't build automatically after this point
 +
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch
  
== Run Tests ==
+
== Release Review & IP Log ==
* Trigger a [https://hudson.eclipse.org/hudson/job/mylyn-nightly/ nightly build] or run the AllTests suite
+
  
= The Release =
+
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.
  
== Update Target ==
+
=== Submit IP Log for Review ''at least 2 weeks before release'' ===
* Update target files to point to release sites
+
* Submit [http://www.eclipse.org/projects/ip_log.php?id=mylyn,mylyn.builds,mylyn.commons,mylyn.context,mylyn.docs,mylyn.reviews,mylyn.tasks,mylyn.versions IP log]
 +
** Check that all Orbit bundles are tracked in approved CQs
 +
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area]. The following missing CQ's are expected due to limitations of the project downloads scanner:
 +
axis-ant.jar (No CQ found)
 +
axis.jar (No CQ found)
 +
epub-ant.jar (No CQ found)
 +
htmltext.jar (No CQ found)
 +
jaxrpc.jar (No CQ found)
 +
junit.jar (No CQ found)
  
== Tag Sources ==
+
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)
+
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org]
 +
=== Schedule Release Review ''at least 1 week before release'' ===
 +
* Once PMC and IP log approval are secured, send links to review document and mailing list discussion showing PMC approval to [mailto:emo@eclipse.org emo@eclipse.org]
  
== Prepare Build Environment ==
+
= The Release =
* Checkout sources on build.eclipse.org
+
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:
+
== Update Target ==
  export JAVA_HOME=/shared/tools/mylyn/tools/jdk
+
See [[Mylyn/Build_Infrastructure#Build_Target_Platforms]] to update versions of Eclipse Platform dependencies.
 +
 
 +
* Update to latest Orbit version from http://download.eclipse.org/tools/orbit/downloads/ and update changed qualifiers:
 +
  ./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/
 +
Copy the desired suggestions to the target file.
  
 
== Build ==
 
== Build ==
* Release build (Hudson): [https://hudson.eclipse.org/hudson/job/mylyn-release/ https://hudson.eclipse.org/hudson/job/mylyn-release/]
+
* If building from a branch, make sure the o.e.m.all repository is up to date. It doesn't always update automatically.
 +
* [https://hudson.eclipse.org/hudson/user/spingel/my-views/view/Mylyn%20Release/ Release builds (Hudson)]
 +
** Select release as the type
 +
** Check publish
 +
** Once the build is complete, check the test results from the downstream jobs
 +
* Send a message to mylyn-dev with the location of the build inviting people to test it
 
* 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]
+
 
 +
== Update Discovery Jar ==
 +
 
 +
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version
 +
* Check that the listings (supported versions) are up to date. <!-- We wait until now to update versions in case we need to update the jar mid-release -->
 +
 
 +
Run <tt>org.eclipse.mylyn.discovery-directory/build-helper.xml</tt> to produce a new jar. Then copy org.eclipse.mylyn.discovery.jar to <tt>~/downloads/mylyn/discovery/</tt>, renaming it with the Mylyn version.
 +
  scp org.eclipse.mylyn.discovery.jar
 +
      sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar
 +
 
 +
Make a second copy of the jar named with the next Mylyn version so that updating the framework version after the release (below) will not cause tests to fail.
 +
  scp org.eclipse.mylyn.discovery.jar
 +
      sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar
 +
 
 +
Commit the changes.
  
 
== 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
 +
* Test that any changes to discovery show up (it may take a while for the new jar to propagate to [https://www.eclipse.org/downloads/download.php?file=/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar mirrors])
  
== Remove Old Integration Builds ==
+
== Update SimRel Contributions (Simultaneous Release Only) ==
  rm ~/downloads/mylyn/archive/3.6.0/I*
+
* provide help bundles from final build for info center as on [https://bugs.eclipse.org/bugs/show_bug.cgi?id=408828 bug 408828]
 +
  find /home/data/httpd/download.eclipse.org/mylyn/drops/3.17.0/v20150909-1855/plugins/ -name "*.help*.jar" -not -name "*.source*"
  
== Add Mirror URLs ==
+
== Tag Sources ==
  cd ~/downloads/mylyn/archive/3.6.0/
+
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)
 +
git submodule foreach git tag R_3_6_3
 +
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
 +
git push --tags
 +
 
 +
== Prepare Download Area ==
 +
* Log into Eclipse.org
 +
ssh build.eclipse.org
 +
* Remove Old old RC builds (i.e. all builds other than the latest)
 +
  cd ~/downloads/mylyn/drops/3.17.0/
 +
rm -rf v20150710-2256  v20150715-0010  v20150729-0011  v20150805-1738  v20150812-1640  v20150826-0009  v20150902-2226
 +
* Update snapshot sites:
 +
cd ~/downloads/mylyn/snapshots/
 +
~/releng/bin/create-composite.sh -r
 +
* Copy Release to archive.eclipse.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 p2.mirrorsURL property:
  <property name="p2.mirrorsURL" value="http://www.eclipse.org/downloads/download.php?file=/mylyn/archive/.../v.../&amp;protocol=http&amp;format=xml"/>
+
  ~/releng/bin/check-metadata.sh v20140609-1648
 +
It should look like <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 ==
+
== Create API Baseline ==
cp ~/downloads/mylyn/archive/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/archive
+
* ''major releases'' Create an API baseline zip
 +
  cd ~/downloads/mylyn/drops/3.6.0
 +
  ~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400
  
 
== Update Release Repository Content ==
 
== Update Release Repository Content ==
* Update filters in ~/downloads/mylyn/releases/*/composite.index
+
 
 +
''Note: If the release is part of the Simultaneous Release, this is the step that should wait until the official release day. That way the artifacts can be published early so they have time to mirror, but they won't be [https://wiki.eclipse.org/SimRel/Simultaneous_Release_FAQ#How_is_a_final_build_made_.22invisible.22_until_release.3F visible] until this step is done.''
 +
 
 +
* Log into Eclipse.org
 +
ssh build.eclipse.org
 +
*  ''major releases'' Update filters in <tt>~/downloads/mylyn/releases/*/composite.index</tt>
 +
** Ensure that composites for the release exist:
 +
cd ~/downloads/mylyn/releases/
 +
cp -r 3.5 3.6
 +
emacs 3.6/composite.index
 +
 +
cd ~/downloads/mylyn/incubator/
 +
cp -r 3.5 3.6
 +
emacs 3.6/composite.index
 
* Update release composite sites
 
* Update release composite sites
 
  cd ~/downloads/mylyn/releases/
 
  cd ~/downloads/mylyn/releases/
 
  ~/releng/bin/create-composite.sh -r
 
  ~/releng/bin/create-composite.sh -r
* Update snapshot composite sites
+
rm -rf latest; cp -r 3.6 latest
  cd ~/downloads/mylyn/snapshots/
+
 +
  cd ~/downloads/mylyn/incubator/
 
  ~/releng/bin/create-composite.sh -r
 
  ~/releng/bin/create-composite.sh -r
 
+
rm -rf latest; cp -r 3.6 latest
== Create API Baseline ==
+
* Create an API baseline zip (major releases only)
+
  ~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400
+
  
 
== Update Website ==
 
== Update Website ==
* Archive [http://www.eclipse.org/projects/project-plan.php?projectid=mylyn project plan] in mylyn/doc
 
 
* 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)
+
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline
 
* Create a new section in the New &amp; Noteworthy
 
* Create a new section in the New &amp; Noteworthy
 +
* Update the News section at http://eclipse.org/mylyn/
 +
* Update http://eclipse.org/mylyn/updates.xml
 +
* Create a discovery/directory-XX.xml for the next Mylyn version in the website Git, commenting out any 3rd party jars that haven't been created yet.
  
 
== Update Babel ==
 
== Update Babel ==
Line 111: Line 200:
 
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]
 
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]
  
== Update http://eclipse.org/mylyn/updates.xml ==
+
== Update Marketplace Listings ==
* Edit /mylyn/notification.xml in website CVS
+
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]
 
+
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]
== Update Eclipse Info Center ==
+
* Inform webmaster of new help plug-ins for the [http://help.eclipse.org Eclipse info center]
+
  
 
= After the Release =
 
= After the Release =
  
 
== Update Versions ==
 
== Update Versions ==
* Edit versions in org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh
+
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/hudson/job/mylyn-snapshot-publish mylyn-snapshot-publish] "Branches to build"
 +
* Update local repositories:
 +
cd org.eclipse.mylyn.all
 +
git checkout master
 +
git pull
 +
git submodule foreach git reset --hard
 +
git submodule foreach git checkout master
 +
git submodule foreach git pull
 +
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION
 +
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt>
 +
* Edit versions in <tt>org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh</tt>
 
  org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh
 
  org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh
 +
* Push reviews in dependency order. After each set of reviews is merged, wait for the corresponding [https://hudson.eclipse.org/mylyn/view/Nightlies/ nightly builds] to publish new snapshots before pushing the next set of reviews (for SRs, need to run the release build (e.g. 3.14.x) to publish snapshots). Push sets of reviews in this order:
 +
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)
 +
# docs, commons
 +
# tasks, versions
 +
# context, reviews
 +
# builds, incubator
  
== Update Repository URL ==
+
* If an upcoming simultaneous release will include the new Mylyn version, use [[Eclipse_b3/aggregator/manual | b3 Aggregator editor]] to [[Simrel/Contributing_to_Simrel_Aggregation_Build|update]] versions and push a review to the appropriate branch(es) (e.g. Mars_maintenance and master) of [http://git.eclipse.org/c/simrel/org.eclipse.simrel.build.git/ simrel.build repo]. The build will not pass until a Mylyn snapshot is built. If only changing versions, can use find and replace in text editor instead of b3 editor.
* Edit URL in org.eclipse.mylyn-feature/feature.xml
+
  
 
== Create Download Area ==
 
== Create Download Area ==
* Create download directory in archive
+
* Create download directory (omit last argument if this is not a major release)
  mkdir ~/downloads/mylyn/archive/3.7.0/
+
  ~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true
  setfacl -m user:hudsonBuild:rwx ~/downloads/mylyn/archive/3.7.0/
+
* ''June release'' Create composite site for next Eclipse release
* Update snapshot sites
+
  cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars
  cp -a ~/downloads/mylyn/snapshots/3.6 ~/downloads/mylyn/snapshots/3.7
+
* ''major release'' Update composite site indices
* Edit 3.6 ~/downloads/mylyn/snapshots/*/composite.index
+
  emacs ~/downloads/mylyn/snapshots/*/composite.index
 +
emacs ~/downloads/mylyn/incubator/3.7/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/*
+
  cd ~/downloads/mylyn/incubator
* Update Incubator repository
+
mkdir ~/downloads/mylyn/incubator/archive/3.7.0
+
setfacl -m user:hudsonBuild:rwx ~/downloads/mylyn/incubator/archive/3.7.0
+
cp -a ~/downloads/mylyn/incubator/3.6 cp -a ~/downloads/mylyn/incubator/3.7
+
* Edit ~/downloads/mylyn/incubator/3.7/composite.index
+
 
  ~/releng/bin/create-composite.sh -r
 
  ~/releng/bin/create-composite.sh -r
setfacl -R -m user:hudsonBuild:rwx ~/downloads/mylyn/incubator/3.*
+
 
 +
== Create Build Jobs ==
 +
 
 +
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job
 +
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly
 +
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch
  
 
== Add Bugzilla Versions and Milestones ==
 
== Add Bugzilla Versions and Milestones ==
* Add Bugzilla Version for the current release (major releases only)
+
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release
* Add Bugzilla Milestones for the next release
+
* ''major release'' Add Bugzilla Version for the current release
 +
* ''major release'' move all bugs from "next" milestones to the new milestones:
 +
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1
 +
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1
 +
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1
 +
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1
 +
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1
  
 
== Update Project Plan ==
 
== Update Project Plan ==
* Update versions and queries in all plan.xml documents
+
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation
* Update release plans in [https://dev.eclipse.org/portal/myfoundation/portal/portal.php portal]
+
* Create release bug for the next release
 +
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]
 +
 
 +
= Notes =
 +
 
 +
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references
 +
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release
 +
* In this document, ''major release'' generally means anything other than a service release

Revision as of 16:01, 12 January 2016


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
  • Update releng on build.eclipse.org from Git
cd ~/org.eclipse.mylyn/
git pull
  • 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

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 (available from the update site http://download.eclipse.org/eclipse/updates/4.3), Project context menu > Fix Copyrights

Create a Branch (Major Release Only)

  • 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 e_3_7_m_3_6_x
git submodule init
git submodule update
  • Branch each sub-project
git submodule foreach git pull
git submodule foreach git checkout -b e_3_7_m_3_6_x master
  • Copy .gitmodules from previous branch and update the branches to the current branch
  • Push changed .gitmodules file to new e_3_7_m_3_6_x branch
  • Push submodule branches
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x
  • configure mylyn-3.6.x-release job on Hudson to build from e_3_7_m_3_6_x branch
    • set BRANCH parameter passed to downstream builds
    • edit the build schedule so it won't build automatically after this point
  • configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch

Release Review & IP Log

See Release_Cycle#Release_Review for details.

Submit IP Log for Review at least 2 weeks before release

  • Submit IP log
    • Check that all Orbit bundles are tracked in approved CQs
  • Check the downloads area. The following missing CQ's are expected due to limitations of the project downloads scanner:
axis-ant.jar (No CQ found)
axis.jar (No CQ found)
epub-ant.jar (No CQ found)
htmltext.jar (No CQ found)
jaxrpc.jar (No CQ found)
junit.jar (No CQ found)

Seek PMC Approval for Release at least 2 weeks before release

Schedule Release Review at least 1 week before release

  • Once PMC and IP log approval are secured, send links to review document and mailing list discussion showing PMC approval to emo@eclipse.org

The Release

Update Target

See Mylyn/Build_Infrastructure#Build_Target_Platforms to update versions of Eclipse Platform dependencies.

./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/

Copy the desired suggestions to the target file.

Build

  • If building from a branch, make sure the o.e.m.all repository is up to date. It doesn't always update automatically.
  • Release builds (Hudson)
    • Select release as the type
    • Check publish
    • Once the build is complete, check the test results from the downstream jobs
  • Send a message to mylyn-dev with the location of the build inviting people to test it
  • 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

Update Discovery Jar

  • Update siteUrls and statsUrls in org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml to have the correct version
  • Check that the listings (supported versions) are up to date.

Run org.eclipse.mylyn.discovery-directory/build-helper.xml to produce a new jar. Then copy org.eclipse.mylyn.discovery.jar to ~/downloads/mylyn/discovery/, renaming it with the Mylyn version.

 scp org.eclipse.mylyn.discovery.jar
     sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar

Make a second copy of the jar named with the next Mylyn version so that updating the framework version after the release (below) will not cause tests to fail.

 scp org.eclipse.mylyn.discovery.jar
     sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar

Commit the changes.

Test Install

Update SimRel Contributions (Simultaneous Release Only)

  • provide help bundles from final build for info center as on bug 408828
find /home/data/httpd/download.eclipse.org/mylyn/drops/3.17.0/v20150909-1855/plugins/ -name "*.help*.jar" -not -name "*.source*"

Tag Sources

  • Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)
git submodule foreach git tag R_3_6_3
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
git push --tags

Prepare Download Area

  • Log into Eclipse.org
ssh build.eclipse.org
  • Remove Old old RC builds (i.e. all builds other than the latest)
cd ~/downloads/mylyn/drops/3.17.0/
rm -rf v20150710-2256  v20150715-0010  v20150729-0011  v20150805-1738  v20150812-1640  v20150826-0009  v20150902-2226
  • Update snapshot sites:
cd ~/downloads/mylyn/snapshots/
~/releng/bin/create-composite.sh -r
  • Copy Release to archive.eclipse.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 p2.mirrorsURL property:
~/releng/bin/check-metadata.sh v20140609-1648

It should look like <property name="p2.mirrorsURL" value="http://www.eclipse.org/downloads/download.php?file=/mylyn/drops/.../v.../&protocol=http&format=xml"/>

Create API Baseline

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

Update Release Repository Content

Note: If the release is part of the Simultaneous Release, this is the step that should wait until the official release day. That way the artifacts can be published early so they have time to mirror, but they won't be visible until this step is done.

  • Log into Eclipse.org
ssh build.eclipse.org
  • major releases Update filters in ~/downloads/mylyn/releases/*/composite.index
    • Ensure that composites for the release exist:
cd ~/downloads/mylyn/releases/
cp -r 3.5 3.6
emacs 3.6/composite.index

cd ~/downloads/mylyn/incubator/
cp -r 3.5 3.6
emacs 3.6/composite.index
  • Update release composite sites
cd ~/downloads/mylyn/releases/
~/releng/bin/create-composite.sh -r
rm -rf latest; cp -r 3.6 latest

cd ~/downloads/mylyn/incubator/
~/releng/bin/create-composite.sh -r
rm -rf latest; cp -r 3.6 latest

Update Website

  • Update the version number on download page
  • Create a new section on download archive page
  • major releases Add a link to the new API baseline on the download archive page and update your development environment with the new baseline
  • Create a new section in the New & Noteworthy
  • Update the News section at http://eclipse.org/mylyn/
  • Update http://eclipse.org/mylyn/updates.xml
  • Create a discovery/directory-XX.xml for the next Mylyn version in the website Git, commenting out any 3rd party jars that haven't been created yet.

Update Babel

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

Announce Release

Update Marketplace Listings

After the Release

Update Versions

cd org.eclipse.mylyn.all
git checkout master
git pull
git submodule foreach git reset --hard
git submodule foreach git checkout master
git submodule foreach git pull
  • major release Update CoreUtil.FRAMEWORK_VERSION
  • major release Edit discovery label and URL in org.eclipse.mylyn-feature/feature.xml
  • 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
  • Push reviews in dependency order. After each set of reviews is merged, wait for the corresponding nightly builds to publish new snapshots before pushing the next set of reviews (for SRs, need to run the release build (e.g. 3.14.x) to publish snapshots). Push sets of reviews in this order:
  1. org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)
  2. docs, commons
  3. tasks, versions
  4. context, reviews
  5. builds, incubator
  • If an upcoming simultaneous release will include the new Mylyn version, use b3 Aggregator editor to update versions and push a review to the appropriate branch(es) (e.g. Mars_maintenance and master) of simrel.build repo. The build will not pass until a Mylyn snapshot is built. If only changing versions, can use find and replace in text editor instead of b3 editor.

Create Download Area

  • Create download directory (omit last argument if this is not a major release)
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true
  • June release Create composite site for next Eclipse release
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars
  • major release Update composite site indices
emacs ~/downloads/mylyn/snapshots/*/composite.index
emacs ~/downloads/mylyn/incubator/3.7/composite.index
  • Update snapshot sites
cd ~/downloads/mylyn/snapshots/
~/releng/bin/create-composite.sh -r
cd ~/downloads/mylyn/incubator
~/releng/bin/create-composite.sh -r

Create Build Jobs

  • Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job
    • Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly
  • Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch

Add Bugzilla Versions and Milestones

Update Project Plan

Notes

  • create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references
  • Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release
  • In this document, major release generally means anything other than a service release

Back to the top