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"

(Create Download Area)
(Build)
(132 intermediate revisions by 2 users not shown)
Line 19: Line 19:
 
  ln -s /home/data/httpd/archive.eclipse.org/ ~/archive
 
  ln -s /home/data/httpd/archive.eclipse.org/ ~/archive
 
  ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng
 
  ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng
 
== 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
 
* Update branches in .gitmodules (can do this by comparing with previous branch) so that each submodule looks like this:
 
[submodule "org.eclipse.mylyn.context"]
 
    path = org.eclipse.mylyn.context
 
    url = ../../mylyn/org.eclipse.mylyn.context.git
 
    revision = .
 
    branch = e_3_7_m_3_6_x
 
* Push changed .gitmodules file
 
* 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
 
 
== Release Review ==
 
 
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.
 
 
* Submit IP log for review ''at least 2 weeks before release''
 
* Seek PMC approval for release by emailing link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] ''at least 2 weeks before release''
 
* Once PMC and IP log approval are secured, schedule release review ''at least 1 week before release''
 
  
 
== Prepare Source Code ==
 
== Prepare Source Code ==
Line 64: Line 35:
 
* 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
 
* 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 ===
+
== Release Review & IP Log ==
* Merge changes from master in each branched module
+
git merge master
+
  
== Run Tests ==
+
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.
* Trigger a [https://hudson.eclipse.org/hudson/job/mylyn-nightly/ nightly build] or run the AllTests suite
+
 
 +
=== Submit IP Log for Review ''at least 2 weeks before release'' ===
 +
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].
 +
** Check that all Orbit bundles are tracked in approved CQs
 +
** 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)
 +
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."
 +
 
 +
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===
 +
* 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]
  
= The Release =
+
= Create Release Candidate Build =
  
 
== Update Target ==
 
== Update Target ==
* Update target files in <tt>org.eclipse.mylyn/org.eclipse.mylyn-target</tt> to point to release sites of dependencies to ensure builds are reproducible in the future
+
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.
  
== Tag Sources ==
+
* Update current and staging targets to latest Orbit version from http://download.eclipse.org/tools/orbit/downloads/ and update changed '''qualifiers''' (do not update version numbers):
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)
+
  ./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/
  git submodule foreach git tag R_3_6_3
+
Copy the desired suggestions to the target file.
git tag R_3_6_3
+
 
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):
+
== Create a Branch (Major Release Only) ==
org.eclipse.mylyn.builds
+
 
org.eclipse.mylyn.docs
+
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.
  org.eclipse.mylyn.reviews
+
  git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x
org.eclipse.mylyn.versions
+
cd src-3_6_x
* Push tags
+
git checkout -b e_3_7_m_3_6_x
  git submodule foreach git push --tags
+
git submodule init
  git push --tags
+
git submodule update
 +
* Branch each sub-project
 +
  git submodule foreach git checkout master
 +
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
 +
** set 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
  
 
== 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 that all needed changes are on the branch and that the o.e.m.all repository is up to date. It doesn't always update automatically.
** Select release as the type
+
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]
 
** Check publish
 
** Check publish
** Enter timestamp for qualifier
+
** Once the build is complete, check the test results from the downstream jobs
* Release build (manually):
+
* ensure that http://ci.mylyn.org/job/update-simrel-contribution/ build runs and resulting review(s) are merged to update the B3 aggregation file before the SimRel +3 build cutoff (Wednesdays around 5pm EST)
+
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 ==
 
== 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 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]
 
  
 
== Update Discovery Jar ==
 
== 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 and check that the listings are up to date. <!-- We wait until now to update versions in case we need to update the jar mid-release -->
+
* 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.
 
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.
Line 115: Line 107:
  
 
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.
 
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.
   cp org.eclipse.mylyn.discovery-3.12.jar org.eclipse.mylyn.discovery-3.13.jar
+
   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
+
* 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])
 +
 
 +
= Publish Release Build =
 +
 
 +
== Prepare Final Release Build ==
 +
 
 +
If you want to include any changes made since the repository was branched:
 +
* cherry-pick the changes or fast-forward the branches
 +
* update the submodule commit references on the o.e.m.all repository
 +
* do another [[#Build | build]]
 +
* verify that the build installs.
 +
 
 +
== Update SimRel Contributions (Simultaneous Release Only) ==
 +
* 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*"
 +
 
 +
== 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 ==
 
== Prepare Download Area ==
 
* Log into Eclipse.org  
 
* Log into Eclipse.org  
 
  ssh build.eclipse.org
 
  ssh build.eclipse.org
* Remove Old Integration Builds
+
* Remove Old old RC builds (i.e. all builds other than the latest)
  rm -rf ~/downloads/mylyn/drops/3.6.0/I*
+
  cd ~/downloads/mylyn/drops/3.17.0/
* Also remove all RC builds (builds starting with a 'v') other than the latest
+
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
 
* Copy Release to archive.eclipse.org
 
  cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops
 
  cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops
Line 132: Line 157:
 
  cd ~/downloads/mylyn/drops/3.6.0/
 
  cd ~/downloads/mylyn/drops/3.6.0/
 
  ~/releng/bin/update-metadata.sh
 
  ~/releng/bin/update-metadata.sh
* Check that the content.jar contains the p2.mirrorsURL property:
+
 
check-metadata.sh v20140609-1648
+
== Create API Baseline ==
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"/>
+
* ''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 the Oomph setup to use the new baseline
  
 
== Update Release Repository Content ==
 
== Update Release Repository Content ==
Line 140: Line 168:
 
''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.''
 
''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
+
''major releases'' Create composite for the release:
  ssh build.eclipse.org
+
* Update filters in <tt>~/downloads/mylyn/releases/*/composite.index</tt>
+
** Ensure that ~/downloads/mylyn/releases/3.6 exists, where 3.6 is the version to be released, and that it contains a composite.index with appropriate content
+
 
  cd ~/downloads/mylyn/releases/
 
  cd ~/downloads/mylyn/releases/
 
  cp -r 3.5 3.6
 
  cp -r 3.5 3.6
Line 151: Line 176:
 
  ~/releng/bin/create-composite.sh -r
 
  ~/releng/bin/create-composite.sh -r
 
  rm -rf latest; cp -r 3.6 latest
 
  rm -rf latest; cp -r 3.6 latest
 
== Update SimRel Contributions (Simultaneous Release Only) ==
 
* provide help bundles from final build for info center as on [https://bugs.eclipse.org/bugs/show_bug.cgi?id=408828 bug 408828]
 
 
== 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 Website ==
 
== Update Website ==
 
* Update the version number on download page
 
* Update the version number on download page
* Update the snapshot section on the download page
 
 
* Create a new section on download archive 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 the developer 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 &amp; Noteworthy
+
* Create a New &amp; Noteworthy for the release
* Update the News section at http://eclipse.org/mylyn/
+
** create new/new-3.7.html
 +
** add section to new/all.php
 +
** update version in new/index.php
 +
* Update the Releases section at http://eclipse.org/mylyn/
 +
* Update http://eclipse.org/mylyn/updates.xml
 +
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.
  
 
== Update Babel ==
 
== Update Babel ==
Line 174: Line 195:
 
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]
 
* 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]
 
* 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 updates.xml in website Git repository
 
 
== Update Eclipse Info Center ==
 
* Inform webmaster of new help plug-ins for the [http://help.eclipse.org Eclipse info center]
 
  
 
== Update Marketplace Listings ==
 
== Update Marketplace Listings ==
Line 187: Line 202:
 
= After the Release =
 
= After the Release =
  
== Create Discovery Directory ==
+
== Update Targets ==
  
Create a discovery/directory-XX.xml for the new Mylyn version in the website Git, commenting out any 3rd party jars that haven't been created yet.
+
Update the targets if this was not already done above.
  
 
== Update Versions ==
 
== Update Versions ==
* Edit versions in <tt>org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh</tt>
+
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/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>. For ''first Service Release on the branch only'', also uncomment updateSnapshotSitesForSR 3.20.
 
  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/hudson/view/Mylyn/ nightly builds] to publish new snapshots before pushing the next set of reviews. Push sets of reviews in this order:
+
* 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
+
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)
 
# docs, commons
 
# docs, commons
 
# tasks, versions
 
# tasks, versions
# context, reviews, builds
+
# context, reviews
# incubator
+
# builds
* Update versions in <tt>org.eclipse.mylyn.commons.ui/.settings/.api_filters</tt>
+
 
* Update CoreUtil.FRAMEWORK_VERSION
+
* Update the default value of the BRANCH parameter of http://ci.mylyn.org/view/Snapshots/job/update-simrel-contribution/ with the branches that should get the next Mylyn version, or disable the job if no SimRel will include this version. This will normally be "master" (contribute to the next release of Eclipse), but can have a space-delmited list of other eclipse versions to contribute to. As soon as the new Eclipse version is released in June, we need to include master and the new release branch (for example, "master Neon_maintenance").
* ''major release'' Edit URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt>
+
  
 
== Create Download Area ==
 
== Create Download Area ==
* Create download directory
+
* Create download directory (omit last argument if this is not a major release)
  mkdir ~/downloads/mylyn/drops/3.7.0/
+
  ~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true
setfacl -m user:hudsonBuild:rwx ~/downloads/mylyn/drops/3.7.0/
+
* ''June release'' Create composite site for next Eclipse release
# change ownership to current user so that setfacl will be allowed
+
  cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars
cp -r ~/downloads/mylyn/drops/3.6.0 ~/downloads/mylyn/drops/3.6.0_copy
+
rm -rf ~/downloads/mylyn/drops/3.6.0
+
mv ~/downloads/mylyn/drops/3.6.0_copy/ ~/downloads/mylyn/drops/3.6.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  
 
* ''major release'' Update composite site indices  
 
  emacs ~/downloads/mylyn/snapshots/*/composite.index
 
  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
 
* ''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/
 
# change ownership to current user so that setfacl will be allowed
 
cp -r ~/downloads/mylyn/incubator/drops/3.6.0 ~/downloads/mylyn/incubator/drops/3.6.0_copy
 
rm -rf ~/downloads/mylyn/incubator/drops/3.6.0
 
mv ~/downloads/mylyn/incubator/drops/3.6.0_copy ~/downloads/mylyn/incubator/drops/3.6.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 ~/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
 
  ~/releng/bin/create-composite.sh -r
  
== Create Build Job ==
+
== Create Build Jobs ==
  
* Request mylyn-3.7.x-release job on Hudson cloning an existing release job
+
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job
* ensure job is configured to build from master branch
+
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly
 +
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)
 +
** start a build so the composite sites will be populated
 +
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch
 +
* Add both new jobs to /org.eclipse.mylyn.releng/oomph/Mylyn.setup
 +
* update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release
 +
* update targets of https://hudson.eclipse.org/mylyn/job/mylyn-integration/ and http://ci.mylyn.org/job/mylyn-3.20.x to have the last Eclipse major version, the next Eclipse major version, staging, and maintenance (when the maintenance repository exists), e.g. mars neon maintenance staging
  
 
== Add Bugzilla Versions and Milestones ==
 
== Add Bugzilla Versions and Milestones ==
 
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release
 
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release
 
* ''major release'' Add Bugzilla Version for the current 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 ==
 
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation
 
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation
 +
* 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]
 +
 +
= Service Releases =
 +
 +
The steps for service releases are as follows. See above for details on each step.
 +
 +
# Prepare Build Environment
 +
# Create Download Area
 +
# Update Versions
 +
# Cherrypick changes
 +
# Build
 +
# Test Install
 +
# Tag Sources
 +
# Prepare Download Area
 +
# Update Release Repository Content
 +
# Update Website
 +
# Announce Release
  
 
= Notes =
 
= Notes =
  
 
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references
 
* 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
 +
* A version of this document including instructions specific to Mylyn Incubator is available at https://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&oldid=404098 (search the page for "incubator")

Revision as of 14:36, 18 July 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

Release Review & IP Log

See Release_Cycle#Release_Review for details.

Submit IP Log for Review at least 2 weeks before release

  • Check the downloads area.
    • Check that all Orbit bundles are tracked in approved CQs
    • 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

Create Release Candidate Build

Update Target

See Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions 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.

Create a Branch (Major Release Only)

  • Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.
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 checkout master
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
    • set 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

Build

  • If building from a branch, make sure that all needed changes are on the branch and that the o.e.m.all repository is up to date. It doesn't always update automatically.
  • Release builds (Hudson)
    • Check publish
    • Once the build is complete, check the test results from the downstream jobs
  • ensure that http://ci.mylyn.org/job/update-simrel-contribution/ build runs and resulting review(s) are merged to update the B3 aggregation file before the SimRel +3 build cutoff (Wednesdays around 5pm EST)

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

Publish Release Build

Prepare Final Release Build

If you want to include any changes made since the repository was branched:

  • cherry-pick the changes or fast-forward the branches
  • update the submodule commit references on the o.e.m.all repository
  • do another build
  • verify that the build installs.

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

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 the Oomph setup to use the new baseline

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.

  • major releases Create composite for the release:
cd ~/downloads/mylyn/releases/
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

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 & Noteworthy for the release
    • create new/new-3.7.html
    • add section to new/all.php
    • update version in new/index.php
  • Update the Releases section at http://eclipse.org/mylyn/
  • Update http://eclipse.org/mylyn/updates.xml
  • Major Release Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.

Update Babel

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

Announce Release

Update Marketplace Listings

After the Release

Update Targets

Update the targets if this was not already done above.

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. For first Service Release on the branch only, also uncomment updateSnapshotSitesForSR 3.20.
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
  • Update the default value of the BRANCH parameter of http://ci.mylyn.org/view/Snapshots/job/update-simrel-contribution/ with the branches that should get the next Mylyn version, or disable the job if no SimRel will include this version. This will normally be "master" (contribute to the next release of Eclipse), but can have a space-delmited list of other eclipse versions to contribute to. As soon as the new Eclipse version is released in June, we need to include master and the new release branch (for example, "master Neon_maintenance").

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
  • Update snapshot sites
cd ~/downloads/mylyn/snapshots/
~/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
    • Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)
    • start a build so the composite sites will be populated
  • Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch
  • Add both new jobs to /org.eclipse.mylyn.releng/oomph/Mylyn.setup
  • update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release
  • update targets of https://hudson.eclipse.org/mylyn/job/mylyn-integration/ and http://ci.mylyn.org/job/mylyn-3.20.x to have the last Eclipse major version, the next Eclipse major version, staging, and maintenance (when the maintenance repository exists), e.g. mars neon maintenance staging

Add Bugzilla Versions and Milestones

Update Project Plan

Service Releases

The steps for service releases are as follows. See above for details on each step.

  1. Prepare Build Environment
  2. Create Download Area
  3. Update Versions
  4. Cherrypick changes
  5. Build
  6. Test Install
  7. Tag Sources
  8. Prepare Download Area
  9. Update Release Repository Content
  10. Update Website
  11. Announce Release

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
  • A version of this document including instructions specific to Mylyn Incubator is available at https://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&oldid=404098 (search the page for "incubator")

Back to the top