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)
(Service Releases)
 
(128 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[[category:Mylyn]]
 
[[category:Mylyn]]
  
= Before the Release =
+
= <font color=red>Before the Release</font> =
  
== Prepare Build Environment ==
+
== Prepare Source Code ==
* ''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
+
  
== Create a Branch (Major Release Only) ==
+
=== Internationalize Messages ===
* Branch integration repository
+
* Run Source > Find Broken Externalized Strings over all bundles
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x
+
* Run Source > Externalize Strings over all bundles
cd src-3_6_x
+
 
git checkout -b e_3_7_m_3_6_x
+
=== Update User Guide from the Wiki ===
git submodule init
+
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)
git submodule update
+
* Review the user guide and commit changes
* Branch each sub-project
+
 
git submodule foreach git pull
+
=== Update Copyright Notices ===
git submodule foreach git checkout -b e_3_7_m_3_6_x master
+
* Update the year in the about.ini to the current year
* Copy .gitmodules from previous branch and update the branches to the current branch
+
* Update the year in all feature.xml files to the current year for changed features
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch
+
* 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
* 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
+
* 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 ==
 
== Release Review & IP Log ==
  
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.
+
See https://www.eclipse.org/projects/handbook/#release for details. ''At least one release each year must have a release review, PMC approval, and IP log submission. These are not required for subsequent releases happening up to 1 year after the review.'' Note that a [https://projects.eclipse.org/projects/mylyn/governance release record] is always required (except for service releases).
  
 
=== Submit IP Log for Review ''at least 2 weeks before release'' ===
 
=== Submit IP Log for Review ''at least 2 weeks before release'' ===
* Check [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 the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area]. '''The tool is [https://dev.eclipse.org/mhonarc/lists/cross-project-issues-dev/msg15618.html deprecated] and a replacement is coming.'''
 
** Check that all Orbit bundles are tracked in approved CQs
 
** 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:
+
** The following missing CQ's are expected due to limitations of the project downloads scanner:
 
  axis-ant.jar (No CQ found)
 
  axis-ant.jar (No CQ found)
 
  axis.jar (No CQ found)
 
  axis.jar (No CQ found)
Line 52: Line 32:
 
  jaxrpc.jar (No CQ found)
 
  jaxrpc.jar (No CQ found)
 
  junit.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'' ===
 
=== 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]  
 
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org]  
 
=== Schedule Release Review ''at least 1 week before release'' ===
 
=== Schedule Release Review ''at least 1 week before release'' ===
 +
Note: reviews are supposed to conclude on the first and third Wednesdays of the month, so keep that timing in mind.
 
* 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]
 
* 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 Source Code ==
+
= <font color=red>Create Release Candidate Build</font> =
 
+
=== 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 <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
+
 
+
=== 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
+
 
+
=== Backport changes to the Platform Specific Branches ===
+
* Merge changes from master in each branched module
+
git merge master
+
 
+
= The Release =
+
  
 
== 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.
** Update versions of Eclipse Platform dependencies:
+
 
 +
* Orbit may provide multiple copies of the ''same version'' of a library with ''different qualifiers''. For each dependency consumed from Orbit, make sure we are consuming the latest qualifier of whatever version we are using, by updating the current and staging targets to the latest Orbit version from http://download.eclipse.org/tools/orbit/downloads/ and updating any '''qualifiers''' that have changed (do not update version numbers):
 
  cd ~/releng/bin
 
  cd ~/releng/bin
  ./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/releases/luna/201409261001/ junit
+
  ./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.
 
Copy the desired suggestions to the target file.
** To get version for org.eclipse.sdk.ide (a product IU)
+
 
  unzip ~/downloads/releases/luna/201409261001/content.jar; grep "id='org.eclipse.sdk.ide'" content.xml; rm content.xml
+
== Create a Branch (Major Release Only) ==
** Update to latest Orbit version and update dependency versions from http://download.eclipse.org/tools/orbit/downloads/
+
 
 +
* 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 m_3_6_x
 +
git submodule init
 +
git submodule update
 +
* Branch each sub-project. Remember to increment the Eclipse version each year.
 +
git submodule foreach git checkout master
 +
git submodule foreach git pull
 +
git submodule foreach git checkout -b m_3_6_x master
 +
* Copy .gitmodules from previous branch and update the branches to the current branch
 +
git checkout m_3_5_x .gitmodules
 +
* Push changed .gitmodules file to new m_3_6_x branch
 +
* Push submodule branches
 +
git submodule foreach git push origin m_3_6_x:m_3_6_x
 +
* configure mylyn-3.6.x-release job on Hudson
 +
** set BRANCH parameter m_3_6_x
 +
** 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 m_3_6_x branch
  
 
== Build ==
 
== Build ==
* If building from a branch, make sure the o.e.m.all repository is up to date. It usually updates automatically when changes are cherry-picked to submodule branches through Gerrit but may not when submodule branches are fast-forwarded.
+
* 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.
* [https://hudson.eclipse.org/hudson/user/spingel/my-views/view/Mylyn%20Release/ Release builds (Hudson)]
+
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]
** Select release as the type
+
 
** Check publish
 
** Check publish
 
** Once the build is complete, check the test results from the downstream jobs
 
** 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
+
* 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)
* 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 Discovery Jar ==
Line 111: Line 83:
 
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version
 
* 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 -->
 
* 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 -->
 +
* Commit the changes
 +
* Run https://ci.eclipse.org/mylyn/job/update-discovery/ to build and publish the jar
  
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.
+
== Test Install ==
  scp org.eclipse.mylyn.discovery.jar
+
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly or http://download.eclipse.org/mylyn/drops/ NOTE: These are only links to the zip files, the update site URL has the form http://download.eclipse.org/mylyn/drops/3.24.2/v20180905-2014/
      sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar
+
* 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])
  
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.
+
= <font color=red>Publish Release Build</font> =
  scp org.eclipse.mylyn.discovery.jar
+
      sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar
+
  
Commit the changes.
+
== Prepare Final Release Build ==
 
+
== Test Install ==
+
* 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])
+
  
== Update SimRel Contributions (Simultaneous Release Only) ==
+
If you want to include any changes made since the repository was branched:
* provide help bundles from final build for info center as on [https://bugs.eclipse.org/bugs/show_bug.cgi?id=408828 bug 408828]
+
* 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.
  
 
== Tag Sources ==
 
== Tag Sources ==
Line 135: Line 106:
 
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):
 
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):
 
  org.eclipse.mylyn.builds
 
  org.eclipse.mylyn.builds
org.eclipse.mylyn.docs
 
 
  org.eclipse.mylyn.reviews
 
  org.eclipse.mylyn.reviews
 
  org.eclipse.mylyn.versions
 
  org.eclipse.mylyn.versions
Line 143: Line 113:
  
 
== Prepare Download Area ==
 
== Prepare Download Area ==
* Log into Eclipse.org
+
* Run https://ci.eclipse.org/mylyn/job/prepare-download-area/
ssh build.eclipse.org
+
* Remove Old Integration Builds
+
rm -rf ~/downloads/mylyn/drops/3.6.0/I*
+
* Also remove all RC builds (builds starting with a 'v') other than the latest
+
* 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.../&amp;protocol=http&amp;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 ==
 
== 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 [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: 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'' Create composite for the release '''in the git repository, on the master branch''':
*  ''major releases'' Update filters in <tt>~/downloads/mylyn/releases/*/composite.index</tt>
+
  cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/
** 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/
+
 
  cp -r 3.5 3.6
 
  cp -r 3.5 3.6
 
  emacs 3.6/composite.index
 
  emacs 3.6/composite.index
* Update release composite sites
+
* ''major releases and SRs for the latest major release'' Update release composite sites '''in the git repository, on the master branch''':
  cd ~/downloads/mylyn/releases/
+
  cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/
~/releng/bin/create-composite.sh -r
+
 
  rm -rf latest; cp -r 3.6 latest
 
  rm -rf latest; cp -r 3.6 latest
 +
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to update the composite sites. '''You must run the job even if the composite.index did not change.'''
  
 
== 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 your development environment with the new baseline
 
* ''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
 
* 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 [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)
+
  
 
== Announce Release ==
 
== Announce Release ==
Line 201: Line 149:
 
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]
 
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]
  
= After the Release =
+
= <font color=red>After the Release</font> =
  
== Create Discovery Directory ==
+
== Update Targets ==
  
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 the targets if this was not already done above.
  
 
== Update Versions ==
 
== Update Versions ==
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/hudson/job/mylyn-snapshot-publish mylyn-snapshot-publish] "Branches to build"
+
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION
+
* Update local repositories, replacing "master" with the branch, e.g. "e_4_8_m_3_24_x":
* ''major release'' Edit 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>
+
 
  cd org.eclipse.mylyn.all
 
  cd org.eclipse.mylyn.all
 +
git checkout master
 +
git pull
 
  git submodule foreach git reset --hard
 
  git submodule foreach git reset --hard
 
  git submodule foreach git checkout master
 
  git submodule foreach git checkout master
 
  git submodule foreach git pull
 
  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 <VERSION>.
 +
** Update the bug number and version number variables in the script
 
  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 (for SRs, need to run the release build (e.g. 3.14.x) to publish snapshots). Push sets of reviews in this order:
+
* Push reviews to Gerrit (i.e. using EGit with Gerrit config or using "git push origin HEAD:refs/for/<branch>") 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)
 
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)
# docs, commons
+
# commons
 
# tasks, versions
 
# tasks, versions
 
# context, reviews
 
# context, reviews
# builds, incubator
+
# builds
  
* If an upcoming simultaneous release will include the new Mylyn version, use [[Eclipse_b3/aggregator/manual | b3 Aggregator editor]] to push version [[Simrel/Contributing_to_Simrel_Aggregation_Build|update]] to appropriate branch(es) of [http://git.eclipse.org/c/simrel/org.eclipse.simrel.build.git/ simrel.build repo]. If only changing versions, can use find and replace in text editor instead of b3 editor. Make sure there is a snapshot build before pushing the version update.
+
* ''major release'' 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-delimited list of other eclipse versions to contribute to. E.g. if the next Mylyn release will happen before the next Eclipse Neon update release, the parameter should be set to "master Neon_maintenance".
  
 
== Create Download Area ==
 
== Create Download Area ==
* Create download directory (omit last argument if this is not a major release)
+
* run https://ci.eclipse.org/mylyn/job/create-download-directory
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true
+
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''
* ''June release'' Create composite site for next Eclipse release
+
  cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars
  cp ~/downloads/mylyn/luna ~/downloads/mylyn/mars
+
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''
* ''major release'' Update composite site indices  
+
  emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index
  emacs ~/downloads/mylyn/snapshots/*/composite.index
+
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.
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 Job ==
+
== Create Build Jobs ==
  
* Request mylyn-3.7.x-release job on Hudson cloning the previous release job
+
* 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 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/
+
** 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
 +
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s>
 +
* 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
 +
 
 +
== Update Snapshot Sites ==
 +
 
 +
* wait for the new release build to complete
 +
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/
 +
 
 +
== Update Oomph Setup ==
 +
 
 +
* switch to the new API baseline
 +
* add new build jobs
  
 
== Add Bugzilla Versions and Milestones ==
 
== Add Bugzilla Versions and Milestones ==
Line 259: Line 219:
 
* ''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
 
* 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]
 +
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along
 +
 +
 +
----
 +
 +
= Service Releases =
 +
 +
The steps for service releases are as follows. See above for details on each step. If the major release being SRed has not been completed, ensure that the steps "Create a Branch" and "Prepare Download Area" are complete before beginning the SR process.
 +
 +
# [[Mylyn/Release_Howto#Create_Download_Area]]
 +
# [[Mylyn/Release_Howto#Update_Versions]]
 +
# Cherrypick changes
 +
# [[Mylyn/Release_Howto#Build]]
 +
# [[Mylyn/Release_Howto#Test_Install]]
 +
# Update SimRel: if SR will be contributed to SimRel, manually run http://ci.mylyn.org/view/Snapshots/job/update-simrel-contribution/ with the drop and branches that should get the SR.
 +
# [[Mylyn/Release_Howto#Tag_Sources]]
 +
# [[Mylyn/Release_Howto#Prepare_Download_Area]]
 +
# [[Mylyn/Release_Howto#Update_Release_Repository_Content]]
 +
#[[Mylyn/Release_Howto#Update_Website]]
 +
# [[Mylyn/Release_Howto#Announce_Release]]
  
 
= Notes =
 
= Notes =
  
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references
+
* https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/: 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
 
* 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
 
* 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")

Latest revision as of 12:34, 7 May 2020


Before the Release

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 https://www.eclipse.org/projects/handbook/#release for details. At least one release each year must have a release review, PMC approval, and IP log submission. These are not required for subsequent releases happening up to 1 year after the review. Note that a release record is always required (except for service releases).

Submit IP Log for Review at least 2 weeks before release

  • Check the downloads area. The tool is deprecated and a replacement is coming.
    • 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

Note: reviews are supposed to conclude on the first and third Wednesdays of the month, so keep that timing in mind.

  • 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.

  • Orbit may provide multiple copies of the same version of a library with different qualifiers. For each dependency consumed from Orbit, make sure we are consuming the latest qualifier of whatever version we are using, by updating the current and staging targets to the latest Orbit version from http://download.eclipse.org/tools/orbit/downloads/ and updating any qualifiers that have changed (do not update version numbers):
cd ~/releng/bin
./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 m_3_6_x
git submodule init
git submodule update
  • Branch each sub-project. Remember to increment the Eclipse version each year.
git submodule foreach git checkout master
git submodule foreach git pull
git submodule foreach git checkout -b m_3_6_x master
  • Copy .gitmodules from previous branch and update the branches to the current branch
git checkout m_3_5_x .gitmodules
  • Push changed .gitmodules file to new m_3_6_x branch
  • Push submodule branches
git submodule foreach git push origin m_3_6_x:m_3_6_x
  • configure mylyn-3.6.x-release job on Hudson
    • set BRANCH parameter m_3_6_x
    • 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 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)

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.
  • Commit the changes
  • Run https://ci.eclipse.org/mylyn/job/update-discovery/ to build and publish the jar

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.

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.reviews
org.eclipse.mylyn.versions
  • Push tags
git submodule foreach git push --tags
git push --tags

Prepare Download Area

Update Release Repository Content

Note: 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 in the git repository, on the master branch:
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/
cp -r 3.5 3.6
emacs 3.6/composite.index
  • major releases and SRs for the latest major release Update release composite sites in the git repository, on the master branch:
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/
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.

Announce Release

Update Marketplace Listings

After the Release

Update Targets

Update the targets if this was not already done above.

Update Versions

  • service release only Add SR branch to mylyn-snapshot-publish "Branches to build"
  • Update local repositories, replacing "master" with the branch, e.g. "e_4_8_m_3_24_x":
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 <VERSION>.
    • Update the bug number and version number variables in the script
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh
  • Push reviews to Gerrit (i.e. using EGit with Gerrit config or using "git push origin HEAD:refs/for/<branch>") 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. commons
  3. tasks, versions
  4. context, reviews
  5. builds
  • major release 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-delimited list of other eclipse versions to contribute to. E.g. if the next Mylyn release will happen before the next Eclipse Neon update release, the parameter should be set to "master Neon_maintenance".

Create Download Area

cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars
  • major release Update composite site indices in the git repository, on the master branch
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index

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
  • 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

Update Snapshot Sites

Update Oomph Setup

  • switch to the new API baseline
  • add new build jobs

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. If the major release being SRed has not been completed, ensure that the steps "Create a Branch" and "Prepare Download Area" are complete before beginning the SR process.

  1. Mylyn/Release_Howto#Create_Download_Area
  2. Mylyn/Release_Howto#Update_Versions
  3. Cherrypick changes
  4. Mylyn/Release_Howto#Build
  5. Mylyn/Release_Howto#Test_Install
  6. Update SimRel: if SR will be contributed to SimRel, manually run http://ci.mylyn.org/view/Snapshots/job/update-simrel-contribution/ with the drop and branches that should get the SR.
  7. Mylyn/Release_Howto#Tag_Sources
  8. Mylyn/Release_Howto#Prepare_Download_Area
  9. Mylyn/Release_Howto#Update_Release_Repository_Content
  10. Mylyn/Release_Howto#Update_Website
  11. Mylyn/Release_Howto#Announce_Release

Notes

Back to the top