https://wiki.eclipse.org/api.php?action=feedcontributions&user=Sam.davis.tasktop.com&feedformat=atomEclipsepedia - User contributions [en]2024-03-19T13:13:21ZUser contributionsMediaWiki 1.26.4https://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=439175Mylyn/Release Howto2020-05-07T16:34:50Z<p>Sam.davis.planview.com: /* Service Releases */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
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).<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
Note: reviews are supposed to conclude on the first and third Wednesdays of the month, so keep that timing in mind.<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
cd ~/releng/bin<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
git checkout m_3_5_x .gitmodules<br />
* Push changed .gitmodules file to new m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin m_3_6_x:m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
* Commit the changes<br />
* Run https://ci.eclipse.org/mylyn/job/update-discovery/ to build and publish the jar<br />
<br />
== Test Install ==<br />
* 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/<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Run https://ci.eclipse.org/mylyn/job/prepare-download-area/<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* ''major releases and SRs for the latest major release'' Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* 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.'''<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories, replacing "master" with the branch, e.g. "e_4_8_m_3_24_x":<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
** Update the bug number and version number variables in the script<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* run https://ci.eclipse.org/mylyn/job/create-download-directory<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# [[Mylyn/Release_Howto#Create_Download_Area]]<br />
# [[Mylyn/Release_Howto#Update_Versions]]<br />
# Cherrypick changes<br />
# [[Mylyn/Release_Howto#Build]]<br />
# [[Mylyn/Release_Howto#Test_Install]]<br />
# 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.<br />
# [[Mylyn/Release_Howto#Tag_Sources]]<br />
# [[Mylyn/Release_Howto#Prepare_Download_Area]]<br />
# [[Mylyn/Release_Howto#Update_Release_Repository_Content]]<br />
#[[Mylyn/Release_Howto#Update_Website]]<br />
# [[Mylyn/Release_Howto#Announce_Release]]<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=433111Mylyn/Release Howto2019-06-26T20:59:50Z<p>Sam.davis.planview.com: /* Schedule Release Review at least 1 week before release */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
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).<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
Note: reviews are supposed to conclude on the first and third Wednesdays of the month, so keep that timing in mind.<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
cd ~/releng/bin<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
git checkout m_3_5_x .gitmodules<br />
* Push changed .gitmodules file to new m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin m_3_6_x:m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
* Commit the changes<br />
* Run https://ci.eclipse.org/mylyn/job/update-discovery/ to build and publish the jar<br />
<br />
== Test Install ==<br />
* 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/<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Run https://ci.eclipse.org/mylyn/job/prepare-download-area/<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* ''major releases and SRs for the latest major release'' Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* 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.'''<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories, replacing "master" with the branch, e.g. "e_4_8_m_3_24_x":<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
** Update the bug number and version number variables in the script<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* run https://ci.eclipse.org/mylyn/job/create-download-directory<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=432901Mylyn/Release Howto2019-06-14T20:13:57Z<p>Sam.davis.planview.com: /* Release Review & IP Log */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
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).<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
cd ~/releng/bin<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
git checkout m_3_5_x .gitmodules<br />
* Push changed .gitmodules file to new m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin m_3_6_x:m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
* Commit the changes<br />
* Run https://ci.eclipse.org/mylyn/job/update-discovery/ to build and publish the jar<br />
<br />
== Test Install ==<br />
* 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/<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Run https://ci.eclipse.org/mylyn/job/prepare-download-area/<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* ''major releases and SRs for the latest major release'' Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* 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.'''<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories, replacing "master" with the branch, e.g. "e_4_8_m_3_24_x":<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
** Update the bug number and version number variables in the script<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* run https://ci.eclipse.org/mylyn/job/create-download-directory<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=432900Mylyn/Release Howto2019-06-14T20:04:06Z<p>Sam.davis.planview.com: /* Update Babel */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
cd ~/releng/bin<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
git checkout m_3_5_x .gitmodules<br />
* Push changed .gitmodules file to new m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin m_3_6_x:m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
* Commit the changes<br />
* Run https://ci.eclipse.org/mylyn/job/update-discovery/ to build and publish the jar<br />
<br />
== Test Install ==<br />
* 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/<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Run https://ci.eclipse.org/mylyn/job/prepare-download-area/<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* ''major releases and SRs for the latest major release'' Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* 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.'''<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories, replacing "master" with the branch, e.g. "e_4_8_m_3_24_x":<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
** Update the bug number and version number variables in the script<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* run https://ci.eclipse.org/mylyn/job/create-download-directory<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=432899Mylyn/Release Howto2019-06-14T19:52:28Z<p>Sam.davis.planview.com: /* Create a Branch (Major Release Only) */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
cd ~/releng/bin<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
git checkout m_3_5_x .gitmodules<br />
* Push changed .gitmodules file to new m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin m_3_6_x:m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
* Commit the changes<br />
* Run https://ci.eclipse.org/mylyn/job/update-discovery/ to build and publish the jar<br />
<br />
== Test Install ==<br />
* 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/<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Run https://ci.eclipse.org/mylyn/job/prepare-download-area/<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* ''major releases and SRs for the latest major release'' Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* 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.'''<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories, replacing "master" with the branch, e.g. "e_4_8_m_3_24_x":<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
** Update the bug number and version number variables in the script<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* run https://ci.eclipse.org/mylyn/job/create-download-directory<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=432897Mylyn/Release Howto2019-06-14T19:49:56Z<p>Sam.davis.planview.com: /* Create a Branch (Major Release Only) */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
cd ~/releng/bin<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin m_3_6_x:m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
* Commit the changes<br />
* Run https://ci.eclipse.org/mylyn/job/update-discovery/ to build and publish the jar<br />
<br />
== Test Install ==<br />
* 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/<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Run https://ci.eclipse.org/mylyn/job/prepare-download-area/<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* ''major releases and SRs for the latest major release'' Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* 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.'''<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories, replacing "master" with the branch, e.g. "e_4_8_m_3_24_x":<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
** Update the bug number and version number variables in the script<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* run https://ci.eclipse.org/mylyn/job/create-download-directory<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=432894Mylyn/Release Howto2019-06-14T18:02:17Z<p>Sam.davis.planview.com: /* Verify Update Site Contents */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
cd ~/releng/bin<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
* Commit the changes<br />
* Run https://ci.eclipse.org/mylyn/job/update-discovery/ to build and publish the jar<br />
<br />
== Test Install ==<br />
* 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/<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Run https://ci.eclipse.org/mylyn/job/prepare-download-area/<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* ''major releases and SRs for the latest major release'' Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* 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.'''<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories, replacing "master" with the branch, e.g. "e_4_8_m_3_24_x":<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
** Update the bug number and version number variables in the script<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* run https://ci.eclipse.org/mylyn/job/create-download-directory<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=432893Mylyn/Release Howto2019-06-14T17:52:46Z<p>Sam.davis.planview.com: /* Update Discovery Jar */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
cd ~/releng/bin<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
* Commit the changes<br />
* Run https://ci.eclipse.org/mylyn/job/update-discovery/ to build and publish the jar<br />
<br />
== Test Install ==<br />
* 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/<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Run https://ci.eclipse.org/mylyn/job/prepare-download-area/<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* ''major releases and SRs for the latest major release'' Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* 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.'''<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories, replacing "master" with the branch, e.g. "e_4_8_m_3_24_x":<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
** Update the bug number and version number variables in the script<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* run https://ci.eclipse.org/mylyn/job/create-download-directory<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=431590Mylyn/Release Howto2019-04-12T18:08:07Z<p>Sam.davis.planview.com: </p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
cd ~/releng/bin<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* 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/<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Run https://ci.eclipse.org/mylyn/job/prepare-download-area/<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* ''major releases and SRs for the latest major release'' Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* 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.'''<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories, replacing "master" with the branch, e.g. "e_4_8_m_3_24_x":<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
** Update the bug number and version number variables in the script<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* run https://ci.eclipse.org/mylyn/job/create-download-directory<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Build_Infrastructure&diff=429761Mylyn/Build Infrastructure2018-12-18T00:49:35Z<p>Sam.davis.planview.com: </p>
<hr />
<div>__NOTOC__<br />
<br />
This page describes how Mylyn is built and tested and how snapshot and release builds are published.<br />
<br />
The Mylyn project uses two Hudson servers with the following major classes of build jobs:<br />
<br />
=== http://ci.mylyn.org/ ===<br />
<br />
Hudson instance running on the same server that hosts the test repositories.<br />
==== Build Jobs ====<br />
* [http://ci.mylyn.org/view/Provisioning/ Provisioning jobs] that provision the test repositories<br />
* <span style="color:red">'''[*]'''</span> [http://ci.mylyn.org/view/Integration/ Weekly version-specific integration builds] that build and run all integration test fixtures on all supported Eclipse versions<br />
* [http://ci.mylyn.org/view/Snapshots/ Nightly test builds] that run one integration test fixture (1 build per connector) (exception: the reviews build runs all fixtures)<br />
* <s>[http://ci.mylyn.org/job/mylyn-all-snapshot/ Nightly mylyn-all-snapshot] that runs all integration test fixtures</s> Disabled.<br />
<br />
==== Maintenance ====<br />
<br />
To start Hudson if it has stopped:<br />
sudo su hudson<br />
cd /home/hudson<br />
./start.sh<br />
<br />
To stop or restart Hudson if it is still running, go to <nowiki>http://ci.mylyn.org/safeExit</nowiki> or <nowiki>http://ci.mylyn.org/safeRestart</nowiki>.<br />
<br />
It may be necessary to delete /home/hudson/nohup.out if it has grown very large.<br />
<br />
The test servers listed at mylyn.org are under /home/tools.<br />
<br />
=== https://hudson.eclipse.org/mylyn/ ===<br />
<br />
The Mylyn HIPP. There is some duplication with jobs on ci.mylyn.org because while those jobs are faster (due to co-location with test repositories), keep much longer histories, and tend to be more reliable, they cannot publish artifacts to download.eclipse.org and their test results are not linked from release builds.<br />
==== Build Jobs ====<br />
* [https://hudson.eclipse.org/mylyn/view/Gerrit/ Gerrit builds] that verify Gerrit reviews. See [[Mylyn/Contributor_Reference#Hudson]] for information about the contributor whitelist.<br />
* [https://hudson.eclipse.org/mylyn/view/Nightlies/ Nightly snapshot builds] that run one integration test fixture and publish nightly snapshots<br />
* <span style="color:red">'''[*]'''</span> [https://hudson.eclipse.org/mylyn/job/mylyn-integration/ Integration build] that builds and runs unit tests (no integration fixtures) against all supported Eclipse versions<br />
* [https://hudson.eclipse.org/mylyn/job/mylyn-integration-connectors/ Integration-connectors build] that runs all integration test fixtures<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds] that build and publish releases and trigger the integration builds<br />
<br />
==== Scheduling ====<br />
<br />
The release build for the current release runs weekly, and thus the integration and integration-connectors builds run weekly.<br />
<br />
<span style="color:red">'''[*]'''</span> indicates a matrix build<br />
<br />
== Snapshots ==<br />
<br />
Nightly snapshots are published to http://download.eclipse.org/mylyn/snapshots/nightly/ by the [https://hudson.eclipse.org/mylyn/view/Nightlies/ Nightly builds]. The [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds] publish releases and weekly snapshots to http://download.eclipse.org/mylyn/drops. These snapshots are used to build SRs via composite sites like http://download.eclipse.org/mylyn/snapshots/3.14/.<br />
<br />
== Build Configuration ==<br />
<br />
See [[Mylyn/FAQ#System_Properties]] for system properties used to control whether all fixtures are run and whether any are excluded.<br />
<br />
Integration and release builds run against the [http://git.eclipse.org/c/mylyn/org.eclipse.mylyn.all.git/ parent git repository] that includes all sub-projects as submodules.<br />
<br />
== Build Target Platforms ==<br />
<br />
The matrix builds build Mylyn against different Eclipse versions. The mylyn-eX.Y targets are used to build against the latest Eclipse release in the given stream (e.g. 4.4.2, 4.5) or the latest milestone build of the upcoming release; mylyn-emaintenance is used to build against the latest candidate for the next Eclipse update release (e.g. 4.5.1); mylyn-estaging is used to build against the latest candidate for the next Eclipse major release (e.g. 4.6). The maintenance, staging, and latest X.Y targets build against the latest plugin versions available on the Eclipse platform update site, whereas the released X.Y targets build against specific versions in the release.<br />
<br />
The targets should be updated at several points during the Eclipse release cycle.<br />
<br />
=== When a New Eclipse Version Becomes Available ===<br />
<br />
Once the update sites are available for the upcoming major release, a new target should be created for that release, and axes should be added for that target to the matrix builds marked with <span style="color:red">'''[*]'''</span> above:<br />
<br />
* create target by copying the latest X.Y target and changing the file name (eg. mylyn-e4.5.target -> mylyn-e4.6.target)<br />
* change the target name in the file to match the release (eg. mars -> neon)<br />
* change the update site URL to the release URL of the relevant version (eg. http://download.eclipse.org/releases/neon)<br />
* change Eclipse Platform dependency versions to 0.0.0<br />
* update target pom to attach the newly created target as a build artifact<br />
* update the parent pom to have a profile for the new version which specifies the new target<br />
* update the mylyn-estaging.target to refer to the staging site for the upcoming release (eg. http://download.eclipse.org/staging/neon)<br />
* update matrix build jobs to have staging, maintenance, latest release (eg. mars), upcoming release (eg. neon) as their axes<br />
<br />
=== When a New Eclipse Version is Released ===<br />
<br />
Once a major release occurs the default and alternate targets in the mylyn parent pom should be updated to be the newly released versions.<br />
<br />
=== Updating Eclipse Platform Dependency Versions ===<br />
<br />
After RC4 (of a major or an update release), update versions of Eclipse Platform dependencies to match those in the SimRel, for build reproducibility. If preparing a Mylyn release that will go out with a SimRel, this will need to be done after the final build (i.e. in preparation for the next release).<br />
cd ~/releng/bin<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/releases/luna/201409261001/ junit<br />
Copy the desired suggestions to the target file. To get version for org.eclipse.sdk.ide (a product IU)<br />
unzip ~/downloads/releases/luna/201409261001/content.jar; grep "id='org.eclipse.sdk.ide'" content.xml; rm content.xml</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=427516Mylyn/Release Howto2018-09-04T22:36:26Z<p>Sam.davis.planview.com: /* Update Versions */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
cd ~/releng/bin<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites by running https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* ''major releases and SRs for the latest major release'' Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* 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.'''<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories, replacing "master" with the branch, e.g. "e_4_8_m_3_24_x":<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
** Update the bug number and version number variables in the script<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=426269Mylyn/Release Howto2018-06-28T17:11:52Z<p>Sam.davis.planview.com: /* Update Target */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
cd ~/releng/bin<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites by running https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* ''major releases and SRs for the latest major release'' Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* 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.'''<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=426163Mylyn/Release Howto2018-06-25T17:12:42Z<p>Sam.davis.planview.com: /* Update Release Repository Content */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites by running https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* ''major releases and SRs for the latest major release'' Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* 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.'''<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=426162Mylyn/Release Howto2018-06-25T17:09:22Z<p>Sam.davis.planview.com: /* Update Release Repository Content */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites by running https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* ''major releases and SRs for the latest major release'' Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=426161Mylyn/Release Howto2018-06-25T17:08:44Z<p>Sam.davis.planview.com: /* Update Release Repository Content */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites by running https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* ''major releases'' Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=426160Mylyn/Release Howto2018-06-25T17:07:26Z<p>Sam.davis.planview.com: /* Create Download Area */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites by running https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository, on the master branch'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository, on the master branch'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=426159Mylyn/Release Howto2018-06-25T17:07:12Z<p>Sam.davis.planview.com: /* Update Release Repository Content */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites by running https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites '''in the git repository, on the master branch''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=426069Mylyn/Release Howto2018-06-20T16:50:27Z<p>Sam.davis.planview.com: /* Create Download Area */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites by running https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites '''in the git repository'''<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=426068Mylyn/Release Howto2018-06-20T16:46:08Z<p>Sam.davis.planview.com: /* Create Download Area */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites by running https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites '''in the git repository'''<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release '''in the git repository'''<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=426067Mylyn/Release Howto2018-06-20T16:45:32Z<p>Sam.davis.planview.com: /* Create Download Area */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites by running https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites '''in the git repository'''<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices '''in the git repository'''<br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=426066Mylyn/Release Howto2018-06-20T16:36:14Z<p>Sam.davis.planview.com: /* Notes */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites by running https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites '''in the git repository'''<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* 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<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=426065Mylyn/Release Howto2018-06-20T16:35:05Z<p>Sam.davis.planview.com: /* Prepare Download Area */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites by running https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites '''in the git repository'''<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=426057Mylyn/Release Howto2018-06-19T19:03:54Z<p>Sam.davis.planview.com: /* Service Releases */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites '''in the git repository'''<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
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.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=426056Mylyn/Release Howto2018-06-19T18:45:41Z<p>Sam.davis.planview.com: /* Create a Branch (Major Release Only) */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set BRANCH parameter e_3_7_m_3_6_x<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites '''in the git repository'''<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=425976Mylyn/Release Howto2018-06-13T20:01:24Z<p>Sam.davis.planview.com: /* Update Target */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to checkout e_3_7_m_3_6_x branch<br />
** update build step to pull from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites '''in the git repository'''<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=425606Mylyn/Release Howto2018-05-30T16:35:41Z<p>Sam.davis.planview.com: /* Submit IP Log for Review at least 2 weeks before release */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* 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.'''<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to checkout e_3_7_m_3_6_x branch<br />
** update build step to pull from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites '''in the git repository'''<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=418175Mylyn/Release Howto2017-06-29T18:18:44Z<p>Sam.davis.planview.com: /* After the Release */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to checkout e_3_7_m_3_6_x branch<br />
** update build step to pull from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites '''in the git repository'''<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=418174Mylyn/Release Howto2017-06-29T17:53:20Z<p>Sam.davis.planview.com: /* Create Download Area */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to checkout e_3_7_m_3_6_x branch<br />
** update build step to pull from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites '''in the git repository'''<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/luna org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs org.eclipse.mylyn/org.eclipse.mylyn-downloads/snapshots/*/composite.index<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=418173Mylyn/Release Howto2017-06-29T17:51:06Z<p>Sam.davis.planview.com: /* Update Release Repository Content */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to checkout e_3_7_m_3_6_x branch<br />
** update build step to pull from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
<br />
* ''major releases'' Create composite for the release '''in the git repository''':<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites '''in the git repository'''<br />
cd org.eclipse.mylyn/org.eclipse.mylyn-downloads/releases/<br />
rm -rf latest; cp -r 3.6 latest<br />
* Commit the changes and run https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/ to publish them.<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=418172Mylyn/Release Howto2017-06-29T17:27:43Z<p>Sam.davis.planview.com: /* Update Versions */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to checkout e_3_7_m_3_6_x branch<br />
** update build step to pull from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
'''These instructions are out of date. composite.index files are now managed in git and published using https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/.'''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=418171Mylyn/Release Howto2017-06-29T17:27:29Z<p>Sam.davis.planview.com: /* Tag Sources */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to checkout e_3_7_m_3_6_x branch<br />
** update build step to pull from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
'''These instructions are out of date. composite.index files are now managed in git and published using https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/.'''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=417834Mylyn/Release Howto2017-06-15T17:15:15Z<p>Sam.davis.planview.com: /* Create a Branch (Major Release Only) */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to checkout e_3_7_m_3_6_x branch<br />
** update build step to pull from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.docs<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
'''These instructions are out of date. composite.index files are now managed in git and published using https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/.'''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=415848Mylyn/Release Howto2017-04-11T21:22:40Z<p>Sam.davis.planview.com: /* Update Snapshot Sites */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to build from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.docs<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
'''These instructions are out of date. composite.index files are now managed in git and published using https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/.'''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* wait for the new release build to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=415845Mylyn/Release Howto2017-04-11T18:59:31Z<p>Sam.davis.planview.com: /* Create Build Jobs */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to build from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.docs<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
'''These instructions are out of date. composite.index files are now managed in git and published using https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/.'''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* <s>update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release</s><br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* run the new release build and wait for it to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=415844Mylyn/Release Howto2017-04-11T18:57:30Z<p>Sam.davis.planview.com: /* Create Build Jobs */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to build from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.docs<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
'''These instructions are out of date. composite.index files are now managed in git and published using https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/.'''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release<br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* run the new release build and wait for it to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=415788Mylyn/Release Howto2017-04-07T22:07:49Z<p>Sam.davis.planview.com: /* Update Release Repository Content */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to build from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.docs<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
'''These instructions are out of date. composite.index files are now managed in git and published using https://hudson.eclipse.org/mylyn/view/Releases/job/update-repositories/.'''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* Add both new jobs to /org.eclipse.mylyn.releng/oomph/Mylyn.setup<br />
* update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release<br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* run the new release build and wait for it to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=415783Mylyn/Release Howto2017-04-07T18:58:11Z<p>Sam.davis.planview.com: /* Update Snapshot Sites */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to build from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.docs<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* Add both new jobs to /org.eclipse.mylyn.releng/oomph/Mylyn.setup<br />
* update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release<br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* run the new release build and wait for it to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Update Oomph Setup ==<br />
<br />
* switch to the new API baseline<br />
* add new build jobs<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=415782Mylyn/Release Howto2017-04-07T18:57:11Z<p>Sam.davis.planview.com: /* Create API Baseline */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to build from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.docs<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* Add both new jobs to /org.eclipse.mylyn.releng/oomph/Mylyn.setup<br />
* update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release<br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* run the new release build and wait for it to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Repositories&diff=414336Mylyn/Repositories2017-02-16T18:35:05Z<p>Sam.davis.planview.com: /* Mylyn p2 Repositories */</p>
<hr />
<div>= Mylyn p2 Repositories =<br />
<br />
The repository links point to composite sites that cannot be displayed in a browser. See [http://wiki.eclipse.org/Mylyn/FAQ#Installation Mylyn FAQ] for installation instructions.<br />
<br />
== Releases ==<br />
<br />
<br />
See [http://eclipse.org/mylyn/downloads/archive.php download archive] for additional release sites.<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/releases/latest</b></code>&nbsp;&nbsp;&nbsp;Latest release<br />
* <code><b>http://download.eclipse.org/mylyn/releases/version</b></code>&nbsp;&nbsp;&nbsp;Mylyn release version <i>version</i>, e.g. '3.22'<br />
* <code><b>http://download.eclipse.org/mylyn/releases/name</b></code>&nbsp;&nbsp;&nbsp;Latest Mylyn release compatible with the Eclipse release named <i>name</i>, e.g. 'neon'<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly</b></code> Latest nightly snapshot build <br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/weekly</b></code>&nbsp;&nbsp;&nbsp;Latest weekly snapshot build<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/version</b></code>&nbsp;&nbsp;&nbsp;Snapshot builds for Mylyn version <i>version</i>, e.g. '3.22'<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/name</b></code>&nbsp;&nbsp;&nbsp;Latest Mylyn snapshot build compatible with the Eclipse release named <i>name</i>, e.g. 'neon'<br />
<br />
= Mylyn Builds p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly/builds</b></code>&nbsp;&nbsp;&nbsp;Latest nightly snapshot build<br />
<br />
= Mylyn Commons p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly/commons</b></code>&nbsp;&nbsp;&nbsp;Latest nightly snapshot build<br />
<br />
= Mylyn Context p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly/context</b></code>&nbsp;&nbsp;&nbsp;Latest nightly snapshot build<br />
<br />
= Mylyn Docs p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly/docs</b></code>&nbsp;&nbsp;&nbsp;Latest nightly snapshot build<br />
<br />
= Mylyn Incubator p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/incubator/3.5</b></code>&nbsp;&nbsp;&nbsp;Mylyn 3.5 compatible snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/incubator/3.6</b></code>&nbsp;&nbsp;&nbsp;Mylyn 3.6 compatible snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/incubator/3.7</b></code>&nbsp;&nbsp;&nbsp;Mylyn 3.7 compatible snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/incubator/3.8</b></code>&nbsp;&nbsp;&nbsp;Mylyn 3.8 compatible snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/incubator/3.9</b></code>&nbsp;&nbsp;&nbsp;Mylyn 3.9 compatible snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/incubator/3.10</b></code>&nbsp;&nbsp;&nbsp;Mylyn 3.10 compatible snapshot builds<br />
<br />
= Mylyn Reviews p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly/reviews</b></code>&nbsp;&nbsp;&nbsp;Latest nightly snapshot build<br />
<br />
= Mylyn Tasks p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly/tasks</b></code>&nbsp;&nbsp;&nbsp;Latest nightly snapshot build<br />
<br />
= Mylyn Versions p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly/versions</b></code>&nbsp;&nbsp;&nbsp;Latest nightly snapshot build<br />
<br />
= Maven Repository =<br />
<br />
The Maven repositories host common poms and target definitions.<br />
<br />
== Releases ==<br />
<br />
* <code><b>https://repo.eclipse.org/content/repositories/mylyn-releases/</b></code>&nbsp;&nbsp;&nbsp;Release artifacts<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>https://repo.eclipse.org/content/repositories/mylyn-snapshots/</b></code>&nbsp;&nbsp;&nbsp;Snapshots artifacts</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Repositories&diff=414335Mylyn/Repositories2017-02-16T18:23:55Z<p>Sam.davis.planview.com: /* Releases */</p>
<hr />
<div>= Mylyn p2 Repositories =<br />
<br />
The repository links point to composite sites that can not be displayed in a browser. See [http://wiki.eclipse.org/Mylyn/FAQ#Installation Mylyn FAQ] for installation instructions.<br />
<br />
== Releases ==<br />
<br />
The latest Mylyn release compatible with Eclipse version X can be found at http://download.eclipse.org/mylyn/releases/X, where X is the Eclipse release name. For exmaple, the latest Mylyn release for Eclipse Neon is at <b>http://download.eclipse.org/mylyn/releases/neon</b>. See [http://eclipse.org/mylyn/downloads/archive.php download archive] for additional release sites.<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly</b></code> Latest nightly snapshot build <br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/weekly</b></code>&nbsp;&nbsp;&nbsp;Latest weekly snapshot build<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/3.5</b></code>&nbsp;&nbsp;&nbsp;3.5.x snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/3.6</b></code>&nbsp;&nbsp;&nbsp;3.6.x snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/3.7</b></code>&nbsp;&nbsp;&nbsp;3.7.x snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/3.8</b></code>&nbsp;&nbsp;&nbsp;3.8.x snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/3.9</b></code>&nbsp;&nbsp;&nbsp;3.9.x snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/3.10</b></code>&nbsp;&nbsp;&nbsp;3.10.x snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/galileo</b></code>&nbsp;&nbsp;&nbsp;Latest Galileo compatible snapshot build<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/helios</b></code>&nbsp;&nbsp;&nbsp;Latest Helios compatible snapshot build<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/indigo</b></code>&nbsp;&nbsp;&nbsp;Latest Indigo compatible snapshot build<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/juno</b></code>&nbsp;&nbsp;&nbsp;Latest Juno compatible snapshot build<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/kepler</b></code>&nbsp;&nbsp;&nbsp;Latest Kepler compatible snapshot build<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/luna</b></code>&nbsp;&nbsp;&nbsp;Latest Luna compatible snapshot build<br />
<br />
= Mylyn Builds p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly/builds</b></code>&nbsp;&nbsp;&nbsp;Latest nightly snapshot build<br />
<br />
= Mylyn Commons p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly/commons</b></code>&nbsp;&nbsp;&nbsp;Latest nightly snapshot build<br />
<br />
= Mylyn Context p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly/context</b></code>&nbsp;&nbsp;&nbsp;Latest nightly snapshot build<br />
<br />
= Mylyn Docs p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly/docs</b></code>&nbsp;&nbsp;&nbsp;Latest nightly snapshot build<br />
<br />
= Mylyn Incubator p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/incubator/3.5</b></code>&nbsp;&nbsp;&nbsp;Mylyn 3.5 compatible snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/incubator/3.6</b></code>&nbsp;&nbsp;&nbsp;Mylyn 3.6 compatible snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/incubator/3.7</b></code>&nbsp;&nbsp;&nbsp;Mylyn 3.7 compatible snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/incubator/3.8</b></code>&nbsp;&nbsp;&nbsp;Mylyn 3.8 compatible snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/incubator/3.9</b></code>&nbsp;&nbsp;&nbsp;Mylyn 3.9 compatible snapshot builds<br />
* <code><b>http://download.eclipse.org/mylyn/incubator/3.10</b></code>&nbsp;&nbsp;&nbsp;Mylyn 3.10 compatible snapshot builds<br />
<br />
= Mylyn Reviews p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly/reviews</b></code>&nbsp;&nbsp;&nbsp;Latest nightly snapshot build<br />
<br />
= Mylyn Tasks p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly/tasks</b></code>&nbsp;&nbsp;&nbsp;Latest nightly snapshot build<br />
<br />
= Mylyn Versions p2 Repositories =<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>http://download.eclipse.org/mylyn/snapshots/nightly/versions</b></code>&nbsp;&nbsp;&nbsp;Latest nightly snapshot build<br />
<br />
= Maven Repository =<br />
<br />
The Maven repositories host common poms and target definitions.<br />
<br />
== Releases ==<br />
<br />
* <code><b>https://repo.eclipse.org/content/repositories/mylyn-releases/</b></code>&nbsp;&nbsp;&nbsp;Release artifacts<br />
<br />
== Snapshots ==<br />
<br />
* <code><b>https://repo.eclipse.org/content/repositories/mylyn-snapshots/</b></code>&nbsp;&nbsp;&nbsp;Snapshots artifacts</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Porting_Guide&diff=414036Mylyn/Porting Guide2017-02-07T18:59:12Z<p>Sam.davis.planview.com: /* Changes in 3.20 */</p>
<hr />
<div>[[Category:Mylyn]] <br />
<br />
= General =<br />
<br />
Mylyn follows the Eclipse conventions for [[Version_Numbering|version numbering]] and guarantees [[Evolving_Java-based_APIs|binary backwards compatibility]] for minor releases. Internals are binary backwards compatible between service releases.<br />
<br />
API enhancements can be tracked by searching the source code for the corresponding @since JavaDoc tags or by querying for bugs that have [api] in their summary.<br />
<br />
= Changes in 3.22 =<br />
<br />
* Connectors that do not provide a task key no longer have their task ID automatically used as the key. Connectors that rely on this behaviour should explicitly set the task key to the ID. This change actually occurred in Mylyn 3.21 but was not added to this page until the 3.22 release.<br />
<br />
= Changes in 3.20 =<br />
<br />
* <code>AbstractTaskListMigrator</code> and its related extension point have been deprecated. Contributed migrators will no longer be applied when loading the Task List ({{bug|493037}}).<br />
<br />
= Changes in 3.12 =<br />
<br />
* The SOAP transport was removed ({{bug|421379}}).<br />
<br />
= Changes in 3.11 =<br />
<br />
* The SOAP transport was deprecated ({{bug|423964}}).<br />
<br />
= Changes in 3.10 =<br />
<br />
None.<br />
<br />
= Porting from 3.8 to 3.9 =<br />
<br />
== Mylyn Reviews ==<br />
<br />
The Reviews framework has had a major update which resulted in changes to the core model and API. In consequence, the version was updated to 2.0.<br />
<br />
= Porting from 3.7 to 3.8 =<br />
<br />
No API changes that affect integrators.<br />
<br />
= Porting from 3.6 to 3.7 =<br />
<br />
== Mylyn Commons ==<br />
<br />
* {{bug|305782}} Restructuring of Mylyn Commons features<br />
<br />
The Mylyn Commons components were restructured and provisional packages were promoted to API. Several bundle IDs, package names and extension IDs were changed in the process. Classes in provisional packages were kept but marked as deprecated and will be removed in a future release. None of the changes break API backwards compatibility but integrations that consumed internal packages or extensions points may need to be adapted.<br />
<br />
The following bundles were renamed:<br />
<br />
org.eclipse.mylyn.commons.identity -> org.eclipse.mylyn.commons.identity.core<br />
org.eclipse.mylyn.commons.notifications -> org.eclipse.mylyn.commons.notifications.ui<br />
org.eclipse.mylyn.commons.repositories -> org.eclipse.mylyn.commons.repositories.core<br />
org.eclipse.mylyn.commons.team -> org.eclipse.mylyn.commons.repositories.ui<br />
<br />
A complete list of renamed and added bundles can be found on bug 305782 on [https://bugs.eclipse.org/bugs/show_bug.cgi?id=305782#c13 comment 13].<br />
<br />
The following packages were renamed:<br />
<br />
org.eclipse.mylyn.commons.identity -> org.eclipse.mylyn.commons.identity.core<br />
org.eclipse.mylyn.commons.repositories -> org.eclipse.mylyn.commons.repositories.core<br />
org.eclipse.mylyn.commons.ui.team -> org.eclipse.mylyn.commons.repositories.ui<br />
<br />
The following provisional packages were promoted to API (see {{bug|360301}}):<br />
<br />
org.eclipse.mylyn.internal.provisional.commons.core -> org.eclipse.mylyn.commons.core<br />
org.eclipse.mylyn.internal.provisional.commons.ui -> org.eclipse.mylyn.commons.ui<br />
-> org.eclipse.mylyn.commons.workbench<br />
-> org.eclipse.mylyn.commons.workbench.browser<br />
-> org.eclipse.mylyn.commons.workbench.editors<br />
-> org.eclipse.mylyn.commons.workbench.forms<br />
-> org.eclipse.mylyn.commons.workbench.search<br />
org.eclipse.mylyn.internal.provisional.commons.ui.actions -> org.eclipse.mylyn.commons.ui<br />
org.eclipse.mylyn.internal.provisional.commons.ui.commands -> org.eclipse.mylyn.commons.workbench.texteditor<br />
org.eclipse.mylyn.internal.provisional.commons.ui.dialogs -> org.eclipse.mylyn.commons.ui.dialogs<br />
org.eclipse.mylyn.internal.provisional.commons.ui.editor -> org.eclipse.mylyn.commons.workbench<br />
<br />
In some cases provisional packages do not map directly to API packages but classes were distributed among several packages.<br />
<br />
The following extension points have moved:<br />
<br />
org.eclipse.mylyn.commons.team.newWizards -> org.eclipse.mylyn.commons.repositories.ui.newWizards<br />
<br />
The following extension IDs have changed:<br />
<br />
org.eclipse.mylyn.commons.team.navigator.Repositories -> org.eclipse.mylyn.commons.repositories.ui.navigator.Repositories<br />
org.eclipse.mylyn.commons.team.category -> org.eclipse.mylyn.commons.repositories.ui.category.Team<br />
<br />
= Porting from 3.0 to 3.6 =<br />
<br />
See the <b>[[Mylyn/Porting Guide/3.x]]</b><br />
<br />
= Porting from 2.0 to 3.0 =<br />
<br />
See the <b>[[Mylyn/Porting Guide/3.0]]</b><br />
<br />
<br />
= Porting from 1.0 to 2.0 =<br />
<br />
See the <b>[[Mylyn Porting Guide 2.0]]</b></div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=SimRel/Simultaneous_Release_Requirements&diff=412840SimRel/Simultaneous Release Requirements2016-12-14T18:10:31Z<p>Sam.davis.planview.com: /* Document Yearly Update Policy */</p>
<hr />
<div>= The Eclipse Simultaneous Release Requirements =<br />
<br />
Updated September 8, 2016<br />
<br />
Authored and maintained by the [[Planning Council|Eclipse Planning Council]] <br />
<br />
Contact: [mailto:david.williams@acm.org David Williams] <br />
<br />
This document defines the rules and criteria for participating in the yearly Simultaneous Release. There are more criteria than when releasing at other times. There are more requirements partially because there are more projects releasing at once, so the workload needs to streamlined and made uniform. But also, the extra criteria are included by mutual agreement between projects (via their representatives to Planning Council) so that as a whole, the release will be of better quality, maintainability, and improved consumability. <br />
<br />
The spirit of this document is not be so much as a "contract" of what has to be done to release, but instead a statement of what minimally is necessary to make the Yearly Release good, if not great! While each Project does their individual things to make the Release great, this document describes how we, as a group, do that by our voluntary agreement to participate and provide these minimum requirements. We are always open to better documentation and more meaningful agreements, so please feel to make suggestions on how to make our yearly release better from year to year (preferably through your Planning Council representative). Changes may be made to this document throughout the development cycle for clarity or to improve reference links, but nothing new will be added after M4 (that is, things that would affect workload) so please plan accordingly for the extra work. <br />
<br />
To allow for some flexibility for special cases, exceptions to these requirements are allowed, but to provide balance and foster good communication, any exceptions to the items or deadlines must follow the [[SimRel/Simultaneous_Release_Requirements/Appendix#Planning_Council_Exception_Process | Planning Council Exception Process]]. <br />
<br />
The requirements are divided into three categories: <br />
# Mandatory requirements in order to participate in the yearly release. Some of those are required to be completed '''early in the release cycle'''.<br />
# Mandatory requirements to be part of the common software repository and, consequently, the minimum requirements to be part of an EPP package.<br />
# Optional requirements that improve adoption and demonstrate good Eclipse Citizenship, following "the Eclipse Way". These are requirements you do not have to fulfill, but are recommended, encouraged, and the thing that you do have to do is to document if and how you do them.<br />
<br />
== Mandatory Requirements for Participation ==<br />
<br />
The requirements and conditions stated in this section are the basic minimum required for a project to claim they are part of the yearly Simultaneous Release.<br />
Some of those are required to be completed '''earliy in the release cycle'''.<br />
<br />
=== State intent early (M4) ===<br />
<br />
How to announce your participation. To join a Simultaneous Release, Projects must have stated their intent to do so by M4, at the latest. The "statement of intent" is done by formally announcing participation on the [https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev cross-projects-issues-dev mailing list] ([mailto:emo@eclipse.org EMO] will update the participation page; such as, see [https://projects.eclipse.org/releases/mars Mars participation page] or [https://projects.eclipse.org/releases/neon Neon participation page]). Projects are expected to have a [https://www.eclipse.org/projects/handbook/#pmi-releases release record] completed that includes (at least tentative) plan information prior to announcing their intent to participate. The announcement must include the name of the project, a link to the release record, and the offset (+0, +1, +2 or +3). And remember, M4 is the latest to state intent, please do so as early as possible. <br />
<br />
If you have any questions, please contact your PMC's Planning Council Representative, or the [mailto:emo@eclipse.org EMO].<br />
<br />
=== Formal (standard format) plans, early (M4) ===<br />
<br />
All projects must have their project plan in the Eclipse Foundation standard format (i.e. create a [https://www.eclipse.org/projects/handbook/#pmi-releases release record] in the PMI for your project and add corresponding milestones in Bugzilla). Committing to be in the Simultaneous Release means you commit to having these plans available early: by M4 at the latest. Naturally, plans will change as development continues, and we encourage teams to update them periodically, such as every milestone, to reflect reality and progress, but an initial version is required by at least M4 and the final version, due by the release in June, should be a clear statement of what was planned, what was achieved, and what was deffered. Every plan, for any release, should have some specific items covered, such as ''Target Environments'' and ''Compatibility with Previous Releases'' but we give some specific guidance here since these are so important to adoption. In addition, we do ask for one extra "theme" item, <br />
that is technically required only for the Simultaneous Release. What you plan, is up to each project, we just want to be sure its clear for adopters and downstream projects.<br />
<br />
==== Target Environments ==== <br />
<br />
Exactly what platforms and runtimes a project supports is up to them and their community, but it is required all projects document what platforms they support, especially if they have native (non-Java) code and especially if it is<br />
different than the [http://www.eclipse.org/projects/project-plan.php?projectid=eclipse#target_environments set of platforms supported by the Eclipse Platform itself].<br />
<br />
For additional information see - [[SimRel/Simultaneous_Release_Requirements/Appendix#Target_Environments | Appendix: Target Environments]]<br />
<br />
==== Compatibility with Previous Releases ====<br />
<br />
It should be part of every project's plan to have a section detailing compatibility with previous releases. This should not only include commitments to API and binary compatibility, but ideally would also include plans for source compatibility, workspace compatibility, and project "coexistence" compatibility. See the template in [[Development_Resources/Project_Plan| standard plan reference]] and for examples, see the plans for the [http://www.eclipse.org/projects/project-plan.php?projectid=eclipse#compatibility| Eclipse Platform] and the [http://www.eclipse.org/projects/project-plan.php?projectid=webtools#compatibility| Web Tools Platform project]. <br />
<br />
For additional information see - [[SimRel/Simultaneous_Release_Requirements/Appendix#Compatibility_with_Previous_Releases | Appendix: Compatibility]]<br />
<br />
=== IP Documentation and Logs (RC1) ===<br />
<br />
Projects must have their IP logs approved (a normal Eclipse requirement) but follow the earlier deadlines set by EMO and IP staff. The IP log deadline is typically mid-week RC1. <br />
<br />
For additional information see - [[SimRel/Simultaneous_Release_Requirements/Appendix#IP_Documentation_and_Logs_.28RC1.29 | Appendix: IP Logs]]<br />
<br />
=== Release Review and compliance to requirements documentation (RC3) ===<br />
<br />
The release review documentation must be complete by the date specified by the EMO, which is earlier than it would be for other releases. (Typically mid-week during RC3.) In addition to normal release plan requirements, for a Simultaneous Release, Project Leads must document their verification that the project complies with all extra requirements of this Simultaneous Release document, as they apply to their project, and document any exceptions, there in the release review documentation. This is intended to be a few short sentences or paragraphs, not a detailed checklist.<br />
<br />
For additional information see - [[SimRel/Simultaneous_Release_Requirements/Appendix#Release_Review_and_compliance_to_requirements_documentation_.28RC3.29 | Appendix: Release Review]]<br />
<br />
== Mandatory Requirements for the Simultaneous Repository and EPP ==<br />
<br />
The requirements in this section were historically called "the must do" items -- they are a "must" not for the release, but must be met for a project to be on the common, central repository (e.g. /releases/kepler). The common repo is for end users to discover easily and therefore (per EPP Policy) are the minimum requirements to be included in EPP Packages. The criteria in this section are designed to make sure projects work relatively well, and work well together and can be installed together. This is especially required for adopters who may be using these projects in complicated, interwoven ways so each piece of the puzzle must fit together well and be dependable and be maintainable, as well as being on time and IP clean. <br />
<br />
=== Integrate Early and Often ===<br />
<br />
First-time participants are expected to be in an aggregation build by M4, at the latest. Then, once in, always in. This firstly means by agreeing to be in the yearly release, in June, you will also participate in the planned Simultaneous Update Releases. But, even more than that, it is assumed that once you are in one Simultaneous Release, you will continue to be, so the following year, it is assumed you will be in M1 ... that is, you should not wait until M4 every year, even though that is the deadline for first-timers. <br />
<br />
[added 09/2016] '''Note: ''' There is an implicit "opt-in" assumed when we start a new development stream. That is, projects will be left enabled when we start a new stream. But if projects appear to not be active, the Planning Coucil will first try to contact the Project and their PMC. If no response and no release record in place by M4, then they will be disabled or removed for M5. <br />
<br />
Put another way, being<br />
part of the Simultaneous Release is not a &quot;one time&quot;<br />
activity, covering only the release part of the development cycle. <br />
Instead, it is a commitment to stay<br />
&quot;simultaneous&quot; on an on-going basis. Once in, if a project<br />
decides to not be part of future simultaneous releases, they need<br />
to communicate that widely, and as early as possible, since could<br />
affect adopters or downstream projects.<br />
<br />
[added 12/2015, for Neon] While part of the mechanics of [[Simrel/Contributing_to_Simrel_Aggregation_Build#The_best_format_and_process_for_contributing_to_Sim._Release| contributing to the build]], it is required that any contribution to the Simultaneous Release repository be done by a unique change to the b3aggrcon file. There are two ways to do this. First, your contribution repository can point to a simple repository where you know for sure there is only one version of your contribution available. Second, your contribution repository can be a composite repository but then you name exactly which versions to include. That is you need to specify all 4 version fields. You can, of course, do both methods, simple repository and name exact versions if you want the safety of that redundancy.<br />
<br />
=== Communication ===<br />
<br />
At least one person from each project in a Simultaneous Release must subscribe to [https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev cross-project mailing list], since that is the primary communication channel for issues related to the Simultaneous Release. Also, at least one person from each project must subscribe to cross-project bugzilla inbox (add cross-project.inbox@eclipse.org to the "Add users to my watch list" box at the bottom of your [https://bugs.eclipse.org/bugs/userprefs.cgi?tab=email Bugzilla email preferences] page), as that is the primary bugzilla components for bugs that are truly cross-project, or bugs which are not known to be in one particular component. <br />
<br />
Your representative to the Planning Council, either from PMC or Strategic Member, must attend Planning Council meetings and represent you there. Presumably, of course, after meeting or communicating with you and the other projects they represent, so they can fairly bring forward concerns and vote on issues that affect all projects, if required. Put another way, by committing to be in the Simultaneous Release, you agree to abide by all the Planning Council decisions and rules, so be sure your representative understands your project and your situation. <br />
<br />
A build-team member or release engineer from each project must be "on call" during the aggregation or integration periods to make sure any issues can be addresses quickly.<br />
<br />
=== Required Bundle forms and formats ===<br />
<br />
==== Version Numbering ([[#Testing_of_Simultaneous_Release_Repository|tested]]) ====<br />
<br />
Projects must use 4-part version numbers following the common semantics described in the [[Version Numbering|Eclipse version numbering]] document.<br />
<br />
==== OSGi bundle format ====<br />
<br />
All plug-ins (bundles) must use the true bundle form. That is, provide a manifest.mf file, and not rely on the plugin.xml file being 'translated' into a manifest.mf file at initial startup. With that, empty plugin.xml files in the presence of a manifest.mf file should not be included in a bundle. (For some old history, see {{bug|130598}}.) <br />
<br />
==== Execution Environment ([[#Testing_of_Simultaneous_Release_Repository|tested]]) ====<br />
<br />
All plug-ins (that contain Java code) must correctly specify their [[Execution Environments|Bundle Required Execution Environment (BREE)]]. Resource-only bundles do not need a BREE since it doesn't matter which version of Java they are used with. <br />
<br />
==== Signing ([[#Testing_of_Simultaneous_Release_Repository|tested]]) ====<br />
<br />
Projects must use [[JAR Signing|signed plugins and features using the Eclipse certificate]]. <br />
<br />
[added 12/2015, for Neon]. Note: If a jar is already signed by the Eclipse certificate, then it must not be re-signed by projects for the release train.<br />
<br />
==== Jarred Bundles ====<br />
<br />
Projects must use jarred plug-ins (with unpack=false) unless there are technical reasons not to (i.e. require the directory form). <br />
<br />
==== License text consistency ([[#Testing_of_Simultaneous_Release_Repository|tested]]) ====<br />
<br />
Use standard forms of license documents so it is displayed in the most usable, and concise way during install and update. It is a normal requirement to use a standard [http://www.eclipse.org/legal/epl/about.php Eclipse Foundation "about" template], but where those templates are edited by each project, care must be taken to be sure they are edited in similar ways. That is, substantial differences are fine, if required, but we need to avoid minor differences based on case, dates, and formatting. Note that the Eclipse Foundation's license or user agreement files may change from year to year (such as, see {{bug|316152}} but since Indigo, it will be easier to point to a "symbolic" representation of the license, that is inserted at build time, so it will be accurate with less manual updates from each project (see {{bug|306818}}).<br />
<br />
=== Re-use and share common third party code (partially [[#Testing_of_Simultaneous_Release_Repository|tested]])===<br />
<br />
Any third-party plug-ins that are common between projects must be consumed via [http://www.eclipse.org/orbit/ Orbit]. The Simultaneous Release must not have duplicate third-party libraries (note that this only applies to versions of the libraries; thus if project A requires foo.jar 1.6 and project B uses foo.jar 1.7, that's normally ok, different service versions a little less ok, such as 1.7.1 vs 1.7.2 (those should be explained, if required), and a qualifier-only difference is definitely not ok).<br />
<br />
Note: the "partially tested", for this case, means there is a report of "Non Unique Versions used in repository" which can catch issues of not using common bundles. See [http://build.eclipse.org/simrel/kepler/reporeports/reports/nonUniqueVersions.txt current report] for an example.<br />
<br />
=== Provide optimized p2 repository ([[#Testing_of_Simultaneous_Release_Repository|partially tested]]) ===<br />
<br />
Projects must provide their own project p2 repository for their own project and updates. Projects must [http://help.eclipse.org/juno/topic/org.eclipse.platform.doc.isv/guide/p2_repositorytasks.htm optimize their p2 repositories] to reduce bandwidth utilization and provide a better install and update experience for users.<br />
<br />
In addition, they must provide their artifacts and metadata in a specified format and method to allow at least parts of their repository to be aggregated and mirrored to a common repository. The [[Simrel/Contributing_to_Simrel_Aggregation_Build|current process]] may be modified throughout the year, if improvements can be made. <br />
<br />
Note that a project's repositories must contain original (conditioned) jars, and pack.gz files (where original jar means the jar produced by the build, but which has been conditioned for pack200). This is mentioned since in some scenarios, only the pack.gz files needs to be left there ... but, that practice is controversial so for now we ask for both ... as one example, there are problems with Java 7 unpacking pack.gz files with nested jars ({{bug|361628}}). <br />
<br />
Feature "includes" must be strict, that is "include" an exact version of that other feature. This is required so installs and builds can be repeatable independent of the exact day of the install or the exact repos enabled. This is the way things are, and have been for years, and this statement is just making it explicit since technically it is possible for people to use some p2 publishers that don't have this predictability or repeatability (which can certainly be appropriate in some contexts, just not the Simultaneous Release repository). While there may, in the future, be new mechanisms that allow some "line up collection" to be specified, it will be something new, not changing the meaning of feature "includes" element via p2 metadata.<br />
<br />
For similar reasons, the repositories produced and contributed must use p2 publishers that produce greedy='false' in the content metadata for runtime-optional dependencies. See {{bug|247099}} and the [http://wiki.eclipse.org/Equinox/p2/Publisher p2 Publisher wiki] for some history and details on this issue of greedy vs. non-greedy requirements. But in brief, to have a runtime-optional dependency be non-greedy is important for several reasons, especially in an IDE environment. First it gives ultimate control over what is installed to the user, based on their feature selection, instead of depending on what happens to be available from the repositories they are pointing to at that moment it time. It also makes it much easier for adopters to be able to predict (and maintain) what their users have installed. In fact, if something is runtime-optional, but pulled into an install because someone did not specify greedy='false' meta-data, there is no way an adopter can provide a patch feature to one of their customers if that optional bundle causes a bug.<br />
<br />
Everyone's p2 repositories must make use the of p2.mirrorsURL property. For "how to" information, see [[Equinox/p2/p2.mirrorsURL|p2.mirrorsURL wiki]]. Note: this is not really a "Simultaneous Release Requirement" but is required of any p2 repository on Eclipse Foundation infrastructure, and is just documented here to help spread the word and educate newcomers.<br />
<br />
Similar to p2.mirrorsURL attribute, a well behaved, well optimized p2 repository should contain a p2.index file. This is especially important for "composite repos" and prevents unnecessary "round trips" to server looking for files. See {{bug|347448}} for history and for how-to instructions, see the [[Equinox/p2/p2_index| p2 wiki]]. Again, this is not so much a "Simultaneous Release Requirement" but is recommended of any p2 repository on Eclipse Foundation infrastructure, and is just documented here to help spread the word and educate newcomers.<br />
<br />
=== Branding ===<br />
<br />
Each major project (as determined by participating PMCs) must have an 'About' dialog icon with hover text that displays the provider name. Every plug-in and feature must specify a descriptive provider-name (for features), or Bundle-Vendor header (for plug-ins), as determined by the project's PMC (e.g. "Eclipse Modeling Project" rather than "Eclipse.org"). Also, Projects should contribute to the welcome page when appropriate.<br />
<br />
=== Do No Harm ===<br />
<br />
Projects must work together in any combination of any install. Put another way, this means that users can install any subset of the projects participating in Simultaneous Release, and each of the installed projects will work as well as if it had been installed independently. If such a problem is identified, the affected projects must track down and fix the problem, to be in the simultaneous release repository.<br />
<br />
=== Document Yearly Update Policy ===<br />
<br />
[draft of section added for Oxygen requirements. This "draft" note will be removed by M4.] <br />
<br />
It is required that participating projects document whether or not they support updating from one yearly release to the next. For example, from Neon (2016) to Oxygen (2017). There is [or soon will be] a field in the PMI Release Record that must be checked "Yes" or "No". To check "Yes" means:<br />
:- The project will accept bugs as valid if an update does not work, or there is a functional problem after updating. <br />
:- The project will test such updates. <br />
:- The project will document, such as in a "Migration Guide" or "Release Notes", any details about what does or does not work across yearly updates. For example, a user's workspace may be "migrated" to the new release and not be usable by the old release after the update (but projects freshly checked out or imported would continue to work with either). Or, perhaps there are some known cases where some preference setting would be lost and have to be set again by the user. <br />
<br />
Note: this requirement is about "documenting" a project's policy. As of this writing (for Oxygen) it is possible for a project to simply document "No, not supported". In the future, after more experience is gained, it is anticipated that it will be required to support "continuous updates" even across yearly boundaries. The only reason we do not make it required at this point in time is that we are not sure we understand all the implications. Accordingly, {{bug|509237}} has been opened to document "requirements" or "issues" that participating projects are aware of or find in support of this effort.<br />
<br />
Note: it is a given and documented elsewhere that "update releases" must be supported, such as updating from Neon to Neon.1, etc.<br />
<br />
== Optional Requirements ==<br />
<br />
The items in this category are, in a sense, optional. That is, what, exactly, is done by a project is optional, but <br />
it is required for projects to '''document''' what they do. These are often "best practices" that many projects have found essential at driving good adoption, plus the items sometimes speak to the quality of the project (quality as an Eclipse "good citizen", as opposed to their code quality or architecture). But, their importance is not as universally relevant to all projects and their adopters, hence it is only required that each project document what they do for these items, but exactly what they do is up to the best judgment of the project and their community. <br />
<br />
Please see the appendix for a detailed list of these items: [[SimRel/Simultaneous_Release_Requirements/Appendix#Required_for_good_adoption | Appendix: Required for good adoption]]<br />
<br />
= Additional Information =<br />
<br />
* [[SimRel/Simultaneous_Release_Requirements/Appendix#Planning_Council_Exception_Process | Planning Council Exception Process]]<br />
* [[SimRel/Simultaneous_Release_Policy_FAQ| Simultaneous Release Policy FAQ]]<br />
* [[SimRel/Simultaneous_Release_Requirements/Appendix#Testing_of_Simultaneous_Release_Repository | Testing of Simultaneous Release Repository]]<br />
<br />
<br/><br/><br />
<br />
[[Category:Oxygen| ]] [[Category:Neon| ]] [[Category:Mars| ]] [[Category:Luna| ]] [[Category:Kepler| ]] [[Category:Juno| ]]</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=412780Mylyn/Release Howto2016-12-13T17:24:10Z<p>Sam.davis.planview.com: /* Update SimRel Contributions (Simultaneous Release Only) */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to build from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.docs<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
* update the Oomph setup to use the new baseline<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* Add both new jobs to /org.eclipse.mylyn.releng/oomph/Mylyn.setup<br />
* update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release<br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* run the new release build and wait for it to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=412360Mylyn/Release Howto2016-11-29T19:34:23Z<p>Sam.davis.planview.com: /* Update Versions */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to build from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Update SimRel Contributions (Simultaneous Release Only) ==<br />
* provide help bundles from final build for info center as on [https://bugs.eclipse.org/bugs/show_bug.cgi?id=408828 bug 408828]<br />
find /home/data/httpd/download.eclipse.org/mylyn/drops/3.17.0/v20150909-1855/plugins/ -name "*.help*.jar" -not -name "*.source*"<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.docs<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
* update the Oomph setup to use the new baseline<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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>.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* Add both new jobs to /org.eclipse.mylyn.releng/oomph/Mylyn.setup<br />
* update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release<br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* run the new release build and wait for it to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=412359Mylyn/Release Howto2016-11-29T19:32:40Z<p>Sam.davis.planview.com: /* Service Releases */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to build from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Update SimRel Contributions (Simultaneous Release Only) ==<br />
* provide help bundles from final build for info center as on [https://bugs.eclipse.org/bugs/show_bug.cgi?id=408828 bug 408828]<br />
find /home/data/httpd/download.eclipse.org/mylyn/drops/3.17.0/v20150909-1855/plugins/ -name "*.help*.jar" -not -name "*.source*"<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.docs<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
* update the Oomph setup to use the new baseline<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* Add both new jobs to /org.eclipse.mylyn.releng/oomph/Mylyn.setup<br />
* update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release<br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* run the new release build and wait for it to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=412358Mylyn/Release Howto2016-11-29T19:32:10Z<p>Sam.davis.planview.com: /* Service Releases */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to build from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Update SimRel Contributions (Simultaneous Release Only) ==<br />
* provide help bundles from final build for info center as on [https://bugs.eclipse.org/bugs/show_bug.cgi?id=408828 bug 408828]<br />
find /home/data/httpd/download.eclipse.org/mylyn/drops/3.17.0/v20150909-1855/plugins/ -name "*.help*.jar" -not -name "*.source*"<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.docs<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
* update the Oomph setup to use the new baseline<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* Add both new jobs to /org.eclipse.mylyn.releng/oomph/Mylyn.setup<br />
* update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release<br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* run the new release build and wait for it to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# 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.<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=412357Mylyn/Release Howto2016-11-29T19:30:41Z<p>Sam.davis.planview.com: /* Update Versions */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to build from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Update SimRel Contributions (Simultaneous Release Only) ==<br />
* provide help bundles from final build for info center as on [https://bugs.eclipse.org/bugs/show_bug.cgi?id=408828 bug 408828]<br />
find /home/data/httpd/download.eclipse.org/mylyn/drops/3.17.0/v20150909-1855/plugins/ -name "*.help*.jar" -not -name "*.source*"<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.docs<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
* update the Oomph setup to use the new baseline<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* ''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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* Add both new jobs to /org.eclipse.mylyn.releng/oomph/Mylyn.setup<br />
* update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release<br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* run the new release build and wait for it to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=412352Mylyn/Release Howto2016-11-29T18:01:55Z<p>Sam.davis.planview.com: /* Update Versions */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to build from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Update SimRel Contributions (Simultaneous Release Only) ==<br />
* provide help bundles from final build for info center as on [https://bugs.eclipse.org/bugs/show_bug.cgi?id=408828 bug 408828]<br />
find /home/data/httpd/download.eclipse.org/mylyn/drops/3.17.0/v20150909-1855/plugins/ -name "*.help*.jar" -not -name "*.source*"<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.docs<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
* update the Oomph setup to use the new baseline<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* 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".<br />
* ''Service Releases'' It may be necessary to manually run http://ci.mylyn.org/view/Snapshots/job/update-simrel-contribution/ with the branches that should get the SR.<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* Add both new jobs to /org.eclipse.mylyn.releng/oomph/Mylyn.setup<br />
* update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release<br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* run the new release build and wait for it to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Release_Howto&diff=411995Mylyn/Release Howto2016-11-21T20:04:50Z<p>Sam.davis.planview.com: /* Update Project Plan */</p>
<hr />
<div>[[category:Mylyn]]<br />
<br />
= <font color=red>Before the Release</font> =<br />
<br />
== Prepare Build Environment ==<br />
* ''once'' Checkout releng on build.eclipse.org<br />
ssh build.eclipse.org<br />
git clone /gitroot/mylyn/org.eclipse.mylyn.git<br />
* Update releng on build.eclipse.org from Git<br />
cd ~/org.eclipse.mylyn/<br />
git pull<br />
* ''once'' Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:<br />
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64<br />
export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse<br />
* ''once'' Run Maven on build.eclipse.org to download runtime<br />
cd org.eclipse.mylyn<br />
mvn package<br />
* ''once'' Create symlinks for convenience<br />
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive<br />
ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng<br />
<br />
== Prepare Source Code ==<br />
<br />
=== Internationalize Messages ===<br />
* Run Source > Find Broken Externalized Strings over all bundles<br />
* Run Source > Externalize Strings over all bundles<br />
<br />
=== Update User Guide from the Wiki ===<br />
* Run <tt>org.eclipse.mylyn.help.ui/build-helper.xml</tt> as an Ant Build (ensure WikiText is checked out into your workspace)<br />
* Review the user guide and commit changes<br />
<br />
=== Update Copyright Notices ===<br />
* Update the year in the about.ini to the current year<br />
* Update the year in all feature.xml files to the current year for changed features<br />
* 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<br />
<br />
== Release Review & IP Log ==<br />
<br />
See [[Development_Resources/HOWTO/Release_Cycle#Release_Review | Release_Cycle#Release_Review]] for details.<br />
<br />
=== Submit IP Log for Review ''at least 2 weeks before release'' ===<br />
* Check the [http://eclipse.org/projects/tools/downloads.php?id=mylyn downloads area].<br />
** Check that all Orbit bundles are tracked in approved CQs<br />
** The following missing CQ's are expected due to limitations of the project downloads scanner:<br />
axis-ant.jar (No CQ found)<br />
axis.jar (No CQ found)<br />
epub-ant.jar (No CQ found)<br />
htmltext.jar (No CQ found)<br />
jaxrpc.jar (No CQ found)<br />
junit.jar (No CQ found)<br />
* Submit IP log by going to https://projects.eclipse.org/projects/mylyn/, logging in, expanding the "Committer Tools" block and clicking "Generate IP Log."<br />
<br />
=== Seek PMC Approval for Release ''at least 2 weeks before release'' ===<br />
* email link to review documentation to [mailto:mylyn-pmc@eclipse.org mylyn-pmc@eclipse.org] <br />
=== Schedule Release Review ''at least 1 week before release'' ===<br />
* 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]<br />
<br />
= <font color=red>Create Release Candidate Build</font> =<br />
<br />
== Update Target ==<br />
See [[Mylyn/Build_Infrastructure#Updating_Eclipse_Platform_Dependency_Versions]] to update versions of Eclipse Platform dependencies.<br />
<br />
* 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):<br />
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/tools/orbit/downloads/drops/R20150519210750/repository/<br />
Copy the desired suggestions to the target file.<br />
<br />
== Create a Branch (Major Release Only) ==<br />
<br />
* Branch integration repository. Note: replace clone command with "git pull" if repository is already cloned.<br />
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x<br />
cd src-3_6_x<br />
git checkout -b e_3_7_m_3_6_x<br />
git submodule init<br />
git submodule update<br />
* Branch each sub-project. Remember to increment the Eclipse version each year.<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
git submodule foreach git checkout -b e_3_7_m_3_6_x master<br />
* Copy .gitmodules from previous branch and update the branches to the current branch<br />
* Push changed .gitmodules file to new e_3_7_m_3_6_x branch<br />
* Push submodule branches<br />
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x<br />
* configure mylyn-3.6.x-release job on Hudson<br />
** set to build from e_3_7_m_3_6_x branch<br />
** set BRANCH parameter passed to downstream builds<br />
** edit the build schedule so it won't build automatically after this point<br />
* configure mylyn-3.6.x job at http://ci.mylyn.org/ to build from e_3_7_m_3_6_x branch<br />
<br />
== Build ==<br />
* 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.<br />
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds (Hudson)]<br />
** Check publish<br />
** Once the build is complete, check the test results from the downstream jobs<br />
* 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)<br />
<br />
== Verify Update Site Contents ==<br />
* Check that only approved features are on the update site<br />
<br />
== Update Discovery Jar ==<br />
<br />
* Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version<br />
* 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 --><br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.12.jar<br />
<br />
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.<br />
scp org.eclipse.mylyn.discovery.jar<br />
sdavis@build.eclipse.org:~/downloads/mylyn/discovery/org.eclipse.mylyn.discovery-3.13.jar<br />
<br />
Commit the changes.<br />
<br />
== Test Install ==<br />
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly<br />
* 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])<br />
<br />
= <font color=red>Publish Release Build</font> =<br />
<br />
== Prepare Final Release Build ==<br />
<br />
If you want to include any changes made since the repository was branched:<br />
* cherry-pick the changes or fast-forward the branches<br />
* update the submodule commit references on the o.e.m.all repository<br />
* do another [[#Build | build]]<br />
* verify that the build installs.<br />
<br />
== Update SimRel Contributions (Simultaneous Release Only) ==<br />
* provide help bundles from final build for info center as on [https://bugs.eclipse.org/bugs/show_bug.cgi?id=408828 bug 408828]<br />
find /home/data/httpd/download.eclipse.org/mylyn/drops/3.17.0/v20150909-1855/plugins/ -name "*.help*.jar" -not -name "*.source*"<br />
<br />
== Tag Sources ==<br />
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)<br />
git submodule foreach git tag R_3_6_3<br />
git tag R_3_6_3<br />
* Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):<br />
org.eclipse.mylyn.builds<br />
org.eclipse.mylyn.docs<br />
org.eclipse.mylyn.reviews<br />
org.eclipse.mylyn.versions<br />
* Push tags<br />
git submodule foreach git push --tags<br />
git push --tags<br />
<br />
== Prepare Download Area ==<br />
* Remove Old old RC builds (i.e. all builds other than the latest)<br />
cd ~/downloads/mylyn/drops/3.17.0/<br />
rm -rf `ls | head -n -1`<br />
* Update snapshot sites:<br />
(cd ~/downloads/mylyn/snapshots/; ~/releng/bin/create-composite.sh -r)<br />
* Copy Release to archive.eclipse.org<br />
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops<br />
* Run script to add mirror URLs <br />
cd ~/downloads/mylyn/drops/3.6.0/<br />
~/releng/bin/update-metadata.sh<br />
<br />
== Create API Baseline ==<br />
* ''major releases'' Create an API baseline zip<br />
cd ~/downloads/mylyn/drops/3.6.0<br />
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400<br />
* update the Oomph setup to use the new baseline<br />
<br />
== Update Release Repository Content ==<br />
<br />
''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.''<br />
<br />
* ''major releases'' Create composite for the release:<br />
cd ~/downloads/mylyn/releases/<br />
cp -r 3.5 3.6<br />
emacs 3.6/composite.index<br />
* Update release composite sites<br />
cd ~/downloads/mylyn/releases/<br />
~/releng/bin/create-composite.sh -r<br />
rm -rf latest; cp -r 3.6 latest<br />
<br />
== Update Website ==<br />
* Update the version number on download page<br />
* Create a new section on download archive page<br />
* ''major releases'' Add a link to the new API baseline on the download archive page and update your development environment with the new baseline<br />
* Create a New &amp; Noteworthy for the release<br />
** create new/new-3.7.html<br />
** add section to new/all.php<br />
** update version in new/index.php<br />
* Update the Releases section at http://eclipse.org/mylyn/<br />
* Update http://eclipse.org/mylyn/updates.xml<br />
* ''Major Release'' Create a discovery/directory-XX.xml for the next Mylyn version in the website Git.<br />
<br />
== Update Babel ==<br />
* Make release available in [http://babel.eclipse.org/babel/map_files.php Eclipse Babel] for translation (major releases only)<br />
<br />
== Announce Release ==<br />
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]<br />
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]<br />
<br />
== Update Marketplace Listings ==<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn]<br />
* ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector]<br />
<br />
= <font color=red>After the Release</font> =<br />
<br />
== Update Targets ==<br />
<br />
Update the targets if this was not already done above.<br />
<br />
== Update Versions ==<br />
* ''service release only'' Add SR branch to [https://hudson.eclipse.org/mylyn/job/mylyn-snapshot-publish/ mylyn-snapshot-publish] "Branches to build"<br />
* Update local repositories:<br />
cd org.eclipse.mylyn.all<br />
git checkout master<br />
git pull<br />
git submodule foreach git reset --hard<br />
git submodule foreach git checkout master<br />
git submodule foreach git pull<br />
* ''major release'' Update CoreUtil.FRAMEWORK_VERSION<br />
* ''major release'' Edit discovery label and URL in <tt>org.eclipse.mylyn-feature/feature.xml</tt><br />
* 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.<br />
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh<br />
* 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:<br />
# org.eclipse.mylyn, org.eclipse.mylyn.all (wait for or trigger mylyn-snapshot-publish before continuing)<br />
# docs, commons<br />
# tasks, versions<br />
# context, reviews<br />
# builds<br />
<br />
* 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".<br />
<br />
== Create Download Area ==<br />
* Create download directory (omit last argument if this is not a major release)<br />
~/releng/bin/create-download-directory.sh 3.6.0 3.7.0 true<br />
* ''June release'' Create composite site for next Eclipse release<br />
cp -r ~/downloads/mylyn/releases/luna ~/downloads/mylyn/releases/mars<br />
* ''major release'' Update composite site indices <br />
emacs ~/downloads/mylyn/snapshots/*/composite.index<br />
<br />
== Create Build Jobs ==<br />
<br />
* Create mylyn-3.7.x-release job on the HIPP by cloning the previous release job<br />
** Configure job to build from master branch, trigger downstream jobs on master branch, and run weekly<br />
** Configure job to use target for latest Eclipse version by specifying that profile in the goals (e.g. -Pmars)<br />
** start a build so the composite sites will be populated<br />
* Create a mylyn-3.7.x job at http://ci.mylyn.org/ and configure it to build from the master branch<br />
* Add both new jobs to /org.eclipse.mylyn.releng/oomph/Mylyn.setup<br />
* update default target of http://ci.mylyn.org/job/mylyn-all-snapshot/ to next Eclipse release<br />
* 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<br />
<br />
== Update Snapshot Sites ==<br />
<br />
* run the new release build and wait for it to complete<br />
* Update snapshot sites<br />
cd ~/downloads/mylyn/snapshots/<br />
~/releng/bin/create-composite.sh -r<br />
<br />
== Add Bugzilla Versions and Milestones ==<br />
* [https://dev.eclipse.org/committers/bugs/bugz_manager.php Add Bugzilla Milestones] for the next release<br />
* ''major release'' Add Bugzilla Version for the current release<br />
* ''major release'' move all bugs from "next" milestones to the new milestones:<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10853667&product=Mylyn&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10840631&product=Mylyn%20Tasks&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Commons&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152343&product=Mylyn%20Context&query_format=advanced&target_milestone=Next&tweak=1<br />
** https://bugs.eclipse.org/bugs/buglist.cgi?list_id=10152351&product=Mylyn%20Reviews&query_format=advanced&target_milestone=Next&tweak=1<br />
<br />
== Update Project Plan ==<br />
* ''major release'' Update release plans in https://projects.eclipse.org/projects/mylyn/documentation<br />
* Create release bug for the next release<br />
* Add release to [https://calendar.google.com/calendar/embed?src=kq3ed9c0latktst29lrl8nffu0@group.calendar.google.com&ctz=America/Vancouver Mylyn calendar]<br />
* Send announcement to the mylyn-dev list with the date and a link to the release bug so people can follow along<br />
<br />
<br />
----<br />
<br />
= Service Releases =<br />
<br />
The steps for service releases are as follows. See above for details on each step.<br />
<br />
# Prepare Build Environment<br />
# Create Download Area<br />
# Update Versions<br />
# Cherrypick changes<br />
# Build<br />
# Test Install<br />
# Tag Sources<br />
# Prepare Download Area <br />
# Update Release Repository Content<br />
# Update Website<br />
# Announce Release<br />
<br />
= Notes =<br />
<br />
* create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references<br />
* Most of the examples assume you are releasing Mylyn 3.6 and then preparing for the 3.7 release<br />
* In this document, ''major release'' generally means anything other than a service release<br />
* 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")</div>Sam.davis.planview.comhttps://wiki.eclipse.org/index.php?title=Mylyn/Extensions&diff=410690Mylyn/Extensions2016-10-17T22:05:03Z<p>Sam.davis.planview.com: /* Application Lifecycle Management Octane (by Tasktop) */</p>
<hr />
<div>''Integrators: if your tool builds on or integrates Mylyn please add it by editing this page. Order is alphabetical.'' <br />
<br />
Connectors bundled with Mylyn can be found on the '''[http://www.eclipse.org/mylyn/downloads/ Download Page]'''. You can [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=anywordssubstr&short_desc=%5Bconnector%5D&product=Mylyn&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= vote for other task repository connectors] on bug reports. <br />
<br />
= Distributions =<br />
<br />
== [http://www.codegear.com/products/jbuilder Embarcadero JBuilder] ==<br />
<br />
JBuilder 2008 bundles Mylyn and includes a task repository connector for XPlanner. For more information see the [http://dn.codegear.com/article/33880#31MylarXPlannerandBugzilla video documentation]. <br />
<br />
'''License:''' Commercial '''Status:''' mature '''Compatibility:''' Mylyn 3.0 <br />
<br />
== [http://springsource.com/products/suite/sts SpringSource Tool Suite] ==<br />
<br />
The SpringSource Tool Suite is an Eclipse and Mylyn-powered development environment for building enterprise applications using the Spring Portfolio. The tool incorporates a task-focused user interface to speed development, architecture review tools to guide developers toward best practices, and runtime error analysis with automated resolution lookup to help developers solve problems in running applications. <br />
<br />
'''License:''' Commercial '''Status:''' mature '''Compatibility:''' Mylyn 3.0 <br />
<br />
== [http://www.starstandard.org/ STAR Workbench Standards for Technology in Automotive Retail] ==<br />
<br />
The STAR Workbench 2.0 bundles Mylyn and includes a task repository connectors for Bugzilla and Mantis. The STAR Workbench is made available to members of STAR a business to business standards organization for the automotive, marine, powersports, and heavy duty/light truck industries. <br />
<br />
'''License:''' Non-Profit '''Status:''' mature '''Compatibility:''' Mylyn 3.0 <br />
<br />
== [http://tasktop.com Tasktop Dev] ==<br />
<br />
The task-focused desktop (Tasktop) is a commercial and supported version of Mylyn. Tasktop Dev extends the task-focused interface to web and file browsing and provides advanced planning and '''Time Tracking/Reporting''' facilities. Tasktop Pro includes the following additional connectors: '''Atlassian Jira, Zendesk, Microsoft Outlook Tasks, Calendar and Email, Google Calendar and GMail'''. Tasktop Enterprise additionally adds '''CA Agile Central and Planning, HPE PPM, HPE QC / ALM, IBM RQM and RTC, Microsoft TFS, Test Manager, and Visual Studio Team Services, Polarion, Serena Business Manager, and VersionOne'''. Tasktop also provides one-click install of certified partner connectors, including CollabNet. Integration with the Windows desktop enables focusing of external files and applications. Tasktop also includes advanced time tracking and reporting facilities, great for determining what tasks and projects you have been spending time on, helping to hone estimates, and complete time sheets. Tasktop also provides a full-featured web browser within Eclipse, as well as integration with web applications such as MediaWiki and del.icio.us. Tasktop can be installed into Eclipse or as a standalone RCP application.<br />
<br />
'''License:''' Commercial '''Status:''' mature '''Compatibility:''' Mylyn 3.1<br />
<br />
== [http://www.uml-lab.com UML Lab] ==<br />
<br />
UML Lab is the first Modeling IDE to seamlessly combine modeling and programming with an intuitive UML diagram editor and next-gen round-trip engineering. UML Lab extends Mylyn's task-focused interface to its UML models and class diagrams. In conjunction with its own next-gen Round-Trip-Engineering<sup>NG</sup> it keeps you focused on your active task both on code and model level. Automatically managed context class diagrams show all interesting artifacts in your active task for even better and faster overview. Task-focused diagrams keep you in the flow while modeling. Interacting with your code artifacts will increase interest in associated model elements and vice versa for a consistent modeling and programming experience. UML Lab is available as an Eclipse plug-in and as a standalone RCP application. <br />
<br />
'''License:''' Commercial '''Status:''' mature '''Compatibility:''' Mylyn 3.5<br />
<br />
== [http://www.eclipse.org/jubula Jubula] ==<br />
<br />
Jubula is a cross-platform automated GUI testing tool for a variety of application types. As well as offering in-tool reporting and test analysis options, it also offers integration to application lifecycle management (ALM) tools via Mylyn. Tasks from external repositories can be seen and edited directly within Jubula, new tasks can be created from test results, and test results can automatically be added to tasks in ALM tools after a test run. Using the Mylyn ALM integration in Jubula, teams can reduce the time it takes to provide feedback between development and test and ensure that information about testing can be seen by all stakeholders. <br />
<br />
'''License:''' EPL '''Status:''' mature '''Compatibility:''' Mylyn 3.8.0<br />
<br />
= Task Repository Connectors =<br />
<br />
== [http://www.atlassian.com/software/ideconnector/eclipse.jsp Atlassian JIRA (by Atlassian Connector for Eclipse)] ==<br />
<br />
Atlassian has ended support for the Atlassian JIRA connector. See [https://developer.atlassian.com/blog/2015/06/discontinuing-ide-connectors-support/ this blog post] for more details.<br />
<br />
'''Status:''' mature '''License:''' EPL '''Compatibility:''' Mylyn 3.3 '''Update sites:''' <br />
<br />
*Eclipse 3.6: http://update.atlassian.com/atlassian-eclipse-plugin/e3.6<br />
*Eclipse 3.5: http://update.atlassian.com/atlassian-eclipse-plugin/e3.5 <br />
*Eclipse 3.4: http://update.atlassian.com/atlassian-eclipse-plugin/e3.4 <br />
*Eclipse 3.3: http://update.atlassian.com/atlassian-eclipse-plugin/e3.3 (v1.2.0 is the last release compatible with Eclipse 3.3)<br />
<br />
== [https://www.tasktop.com/integrations/atlassian-jira-dev Atlassian JIRA (by Tasktop)] ==<br />
<br />
With the Tasktop Dev JIRA connector, you can query your JIRA server and access your issues from Eclipse and quickly view and update your issues using a rich editor. When someone modifies one of your tasks, you'll see an incoming change notification in your task list. There's no longer a need to use a web browser and email client to stay on top of your JIRA issues. Tasktop also provides task time tracking as well as personal, sophisticated scheduling for your JIRA tasks, so you can prioritize your work beyond what is available through JIRA.<br />
<br />
'''Status:''' Stable '''License:''' Commercial '''Compatibility:''' Mylyn 3.4+<br />
<br />
== [http://www.atlassian.com/software/ideconnector/eclipse.jsp Atlassian Bamboo (by Atlassian Connector for Eclipse)] ==<br />
<br />
Atlassian has ended support for the Atlassian JIRA connector. See [https://developer.atlassian.com/blog/2015/06/discontinuing-ide-connectors-support/ this blog post] for more details.<br />
<br />
Monitor Bamboo continuous integration server builds and create Mylyn tasks from failed builds. <br />
<br />
*Notifications and status at a glance <br />
*Drill into details without leaving IDE <br />
*Create tasks from failed builds <br />
*Re-run tests locally<br />
<br />
'''Status:''' stable '''License:''' EPL '''Compatibility:''' Mylyn 3.3 '''Update sites:''' <br />
<br />
*Eclipse 3.6: http://update.atlassian.com/atlassian-eclipse-plugin/e3.6<br />
*Eclipse 3.5: http://update.atlassian.com/atlassian-eclipse-plugin/e3.5 <br />
*Eclipse 3.4: http://update.atlassian.com/atlassian-eclipse-plugin/e3.4 <br />
*Eclipse 3.3: http://update.atlassian.com/atlassian-eclipse-plugin/e3.3 (v1.2.0 is the last release compatible with Eclipse 3.3)<br />
<br />
== [http://www.atlassian.com/software/ideconnector/eclipse.jsp Atlassian Crucible (by Atlassian Connector for Eclipse)] ==<br />
<br />
Atlassian has ended support for the Atlassian JIRA connector. See [https://developer.atlassian.com/blog/2015/06/discontinuing-ide-connectors-support/ this blog post] for more details.<br />
<br />
Complete entire code reviews in Eclipse by configuring Crucible as a Mylyn task repository. <br />
<br />
*Open reviews in rich editor or diff view <br />
*Navigate related code for greater context <br />
*Create and response comments in-line<br />
*Create post-commit and pre-commit review directly from Eclipse<br />
<br />
'''Status:''' stable '''License:''' EPL '''Compatibility:''' Mylyn 3.3 '''Update sites:''' <br />
<br />
*Eclipse 3.6: http://update.atlassian.com/atlassian-eclipse-plugin/e3.6<br />
*Eclipse 3.5: http://update.atlassian.com/atlassian-eclipse-plugin/e3.5 <br />
*Eclipse 3.4: http://update.atlassian.com/atlassian-eclipse-plugin/e3.4 <br />
*Eclipse 3.3: http://update.atlassian.com/atlassian-eclipse-plugin/e3.3 (v1.2.0 is the last release compatible with Eclipse 3.3)<br />
<br />
== [http://www.atlassian.com/software/ideconnector/eclipse.jsp Atlassian FishEye (by Atlassian Connector for Eclipse)] ==<br />
<br />
Atlassian has ended support for the Atlassian JIRA connector. See [https://developer.atlassian.com/blog/2015/06/discontinuing-ide-connectors-support/ this blog post] for more details.<br />
<br />
Complete entire code reviews in Eclipse by configuring Crucible as a Mylyn task repository. <br />
<br />
*Share links to FishEye directly from your code editor or various Eclipse views<br />
<br />
'''Status:''' stable '''License:''' EPL '''Compatibility:''' Mylyn 3.3 '''Update sites:''' <br />
<br />
*Eclipse 3.6: http://update.atlassian.com/atlassian-eclipse-plugin/e3.6<br />
*Eclipse 3.5: http://update.atlassian.com/atlassian-eclipse-plugin/e3.5 <br />
*Eclipse 3.4: http://update.atlassian.com/atlassian-eclipse-plugin/e3.4 <br />
*Eclipse 3.3: http://update.atlassian.com/atlassian-eclipse-plugin/e3.3 (v1.2.0 is the last release compatible with Eclipse 3.3)<br />
<br />
== [https://bitbucket.org/pplupo/bitbucket-mylyn-connector/wiki/Home Bitbucket Mylyn Connector] ==<br />
<br />
It's not complete yet but it is working with the most fundamental features.<br />
<br />
*Share links to FishEye directly from your code editor or various Eclipse views<br />
<br />
'''Status:''' alpha '''Compatibility:''' Currently working with Mylyn 3.3 and Eclipse Indigo but may work with previous versions. '''Update site:''' <br />
<br />
* http://babelserver.org/mylyn-bitbucket/<br />
<br />
== [http://www.bugzilla.org/ Bugzilla (Mylyn Project)] ==<br />
<br />
The Bugzilla Connector is bundled with Mylyn. <br />
<br />
'''Status:''' mature '''License:''' EPL '''Compatibility:''' Mylyn 3.0 '''Update sites:''' <br />
<br />
*Eclipse 3.6, 3.5, 3.4: http://download.eclipse.org/tools/mylyn/update/e3.4<br />
<br />
== [https://www.tasktop.com/tasktop-integration-network#CA CA Agile Central and Planning (by Tasktop)] ==<br />
<br />
With the connector installed, Tasktop Dev becomes a rich desktop client for CA Agile that enables you to manage your development stories, tasks and defects within Eclipse. CA Agile Integration enables both developers and testers to improve their overall efficiency because they can update their status more quickly and more often. The CA Agile connector supports offline editing and integrated notifications so you can easily scan changes to your artifacts without cluttering your email inbox with messages from the server. All Tasktop products enable an easy one-click install of the connector, which can be used with both CA Agile's on-demand and on-premise solutions.<br />
<br />
'''Status:''' Stable '''License:''' Commercial '''Compatibility:''' Mylyn 3.4+<br />
<br />
== [http://www.javaforge.com/project/CBES CodeBeamer Eclipse Studio] ==<br />
<br />
codeBeamer from [http://www.intland.com Intland Software] is a commercially available Collaborative Application Lifecycle Management Solution, also powering open source community sites like [http://www.javaforge.com JavaForge.com]. '''codeBeamer Eclipse Studio''' (CBES) gives reflectivity and mobility to codeBeamer users. <br />
<br />
* Query codeBeamer issues in Eclipse<br />
* Quickly create or edit bugs, tasks, requirements<br />
* See only the relevant code for each issue<br />
* Work Offline<br />
* Integrate with Mercurial, Subversion and CVS <br />
<br />
'''Status:''' stable '''License:''' EPL '''Compatibility:''' Mylyn 3.3 or newer '''Update sites:''' <br />
* http://cbes.javaforge.com/update<br />
<br />
== [http://eclipse.open.collab.net CollabNet Issue Tracker, formerly IssueZilla] ==<br />
<br />
Issue Tracker is spin off project from bugzilla and is part of the [http://www.collab.net/products/enterprise_edition/ CollabNet Enterprise Edition] tool suite. This connector allows users to access and manipulate Issue Tracker issues through Eclipse Mylyn. <br />
<br />
'''Status:''' mature '''License:''' [http://eclipse.open.collab.net/servlets/ProjectProcess?documentContainer=c2__License CollabNet Desktop Software End User License Agreement] '''Compatibility:''' Mylyn 3.0 '''Update sites:''' <br />
<br />
*Eclipse 3.4: http://downloads.open.collab.net/eclipse/update-site/e3.4/ <br />
*Eclipse 3.3: http://downloads.open.collab.net/eclipse/update-site/e3.3/ <br />
*Eclipse 3.2: http://downloads.open.collab.net/eclipse/update-site/e3.2/<br />
<br />
== [http://eclipse.open.collab.net CollabNet TeamForge, formerly SourceForge Enterprise Edition] ==<br />
<br />
Tracker is a flexible tracking system that is part of the [http://www.collab.net/products/sfee/ SourceForge Enterprise Edition (SFEE)] tool suite. Tracker's primary focus is on software artifacts such as defects and enhancements, but is suitable for handling many other record oriented artifacts. Tracker is fully integrated with version control tools. This connector allows users to access and manipulate Tracker artifacts through Eclipse Mylyn. <br />
<br />
'''Status:''' mature '''License:''' [http://eclipse.open.collab.net/servlets/ProjectProcess?documentContainer=c2__License CollabNet Desktop Software End User License Agreement] '''Compatibility:''' Mylyn 3.0 '''Update sites:''' <br />
<br />
*Eclipse 3.4: http://downloads.open.collab.net/eclipse/update-site/e3.4/ <br />
*Eclipse 3.3: http://downloads.open.collab.net/eclipse/update-site/e3.3/ <br />
*Eclipse 3.2: http://downloads.open.collab.net/eclipse/update-site/e3.2/<br />
<br />
== [http://eclipse.open.collab.net CollabNet Project Tracker] ==<br />
<br />
[http://project-tracker.open.collab.net/ Project Tracker] a flexible tracking system that is part of the [http://www.collab.net/products/enterprise_edition/ CollabNet Enterprise Edition] tool suite. Project Tracker's primary focus is on software artifacts such as defects and enhancements, but is suitable for handling many other record oriented artifacts. Project Tracker is fully integrated with version control tools. This connector allows users to access and manipulate Project Tracker artifacts through Eclipse Mylyn. <br />
<br />
'''Status:''' mature '''License:''' [http://eclipse.open.collab.net/servlets/ProjectProcess?documentContainer=c2__License CollabNet Desktop Software End User License Agreement] '''Compatibility:''' Mylyn 3.0 '''Update sites:''' <br />
<br />
*Eclipse 3.4: http://downloads.open.collab.net/eclipse/update-site/e3.4/ <br />
*Eclipse 3.3: http://downloads.open.collab.net/eclipse/update-site/e3.3/ <br />
*Eclipse 3.2: http://downloads.open.collab.net/eclipse/update-site/e3.2/<br />
<br />
== [http://www.emforge.org/project/EmForgeMyLynProvider EmForge] ==<br />
<br />
EmForge is open-source, workflow-based task management system integrated wiki, project &amp; task managment, source browser and reports (in many cases like trac) but allowed to configure tasks workflows with using another Eclipse plugin: [http://www.jboss.org/jbossjbpm/gpd/ GPD from jBoss]. A Mylyn connector is available for EmForge 0.24 or later with the following functionality: Connect to EmForge server; create queries with many options; Process the tasks, including working with attachments and comment, <br />
<br />
'''Status:''' beta '''License:''' EPL '''Compatibility:''' Mylyn 2.0 '''Update sites:''' <br />
<br />
*http://svn.emforge.org/svn/emforge/emforge-mylyn/trunk/update-site<br />
<br />
== [http://code.google.com/p/eplanner/ EPlanner] ==<br />
<br />
EPlanner is a Mylyn connector for use with ExtremePlanner [http://www.extremeplanner.com]. <br />
<br />
'''Status:''' alpha (still in design and development) '''License:''' EPL '''Compatibility:''' Mylyn 3.0 <br />
<br />
== [http://www.bugclipse.com/ FogBugz (by Bugclipse)] ==<br />
<br />
[http://www.fogcreek.com/FogBugz/ FogBugz] is a complete project management system for software teams. [http://www.bugclipse.com/ Bugclipse] is a Mylyn connector that enables import of FogBugz cases as Mylyn tasks within eclipse. It also allows for automatic time tracking and generates timesheet reports. Case details can be exported in convenient formats (html, pdf, excel, ps). The complete set of features can be found [http://www.bugclipse.com/features here]. A trial version is [http://www.bugclipse.com/downloadpage available] for download <br />
<br />
'''Status:''' Mature '''License:''' Commercial '''Compatibility:''' Mylyn 2.0 '''Update sites:''' <br />
<br />
*http://www.bugclipse.dreamhosters.com/update<br />
<br />
== [http://www.foglyn.com/ FogBugz (by Foglyn)] ==<br />
<br />
[http://www.foglyn.com/ Foglyn] is a [http://www.fogcreek.com/FogBugz/ FogBugz] connector for Mylyn which is aimed to work with Mylyn 3.0 (shipped in Eclipse 3.4 -- Ganymede, but also works with Eclipse 3.3 -- Europa) and future versions. <br />
<br />
'''Status:''' Stable '''License:''' Commercial '''Compatibility:''' Mylyn 3.0 '''Update sites:''' <br />
<br />
*http://update.foglyn.com/stable<br />
<br />
== [http://github.com/smilebase/org.eclipse.mylyn.github GitHub Connector (egit-github)] ==<br />
<br />
[http://www.github.com GitHub] Mylyn connector. Please see also [http://wiki.eclipse.org/EGit/GitHub/ContributorGuide#Contributing_Patches].<br />
<br />
'''Status:''' ALPHA '''License:''' EPL '''Compatibility:''' Mylyn 3.5 '''Update sites:''' http://download.eclipse.org/egit/github/updates-nightly<br />
<br />
== [http://tasktop.com/products/tour Google Calendar (by Tasktop)] ==<br />
<br />
Tasktop (the task-focused desktop) synchronizes tasks from your Task List to selected Goolge Calendars based on either Scheduled date or Due date. Task and non-task events from your Google calendars are displayed in Tasktop's agenda and present a notification popup when drawing near. <br />
<br />
'''Status:''' mature '''License:''' Commercial '''Compatibility:''' Mylyn 3.1<br />
<br />
== [http://code.google.com/projecthosting/ Google Code] ==<br />
<br />
[http://code.google.com/projecthosting/ Project hosting on Google Code] offers Subversion and Mercurial code hosting, source code browsing and code review tools, an issue tracker and a project wiki.<br />
<br />
The [http://code.google.com/p/googlecode-mylyn-connector Google Code Mylyn Connector] allows for creating queries and creating and editing tasks.<br />
<br />
'''Status:''' alpha '''License:''' EPL '''Compatibility:''' Mylyn 3.2 '''Update site:''' http://knittig.de/googlecode-mylyn-connector/update/<br />
<br />
The [http://code.google.com/a/eclipselabs.org/p/projecthosting-connector-for-mylyn/ Project Hosting Connector for Mylyn] says it only supports read-only access at the moment.<br />
<br />
'''Status:''' alpha '''License:''' Apache License 2.0 '''Update site:''' http://svn.codespot.com/a/eclipselabs.org/projecthosting-connector-for-mylyn/update/<br />
<br />
== [http://tasktop.com/products/tour Google Gmail (by Tasktop)] ==<br />
<br />
Tasktop (the task-focused desktop) makes creation of tasks in your Task List from Gmail as simple as tagging a Gmail message. Easily create a new task in your Task List from any web enabled device using Gmail's email filter/labeling. Just send yourself an email with a special prefix and Tasktop will sync it to your Task List. <br />
<br />
'''Status:''' mature '''License:''' Commercial '''Compatibility:''' Mylyn 3.1<br />
<br />
== [http://www.scrumvision.org/ Google SpreadSheet (by ScrumVision.org)] ==<br />
<br />
Scrum Vision is an Eclipse Mylyn connector that use Google SpreadSheets as a Scrum Product Backlog. The Backlog is an excel like tasklist (see the [https://spreadsheets.google.com/pub?key=0AnLWe3MMtAkJdFNIendVSmthbWtsSXBObmxOVVVtRWc spreadsheet template]). <br />
<br />
'''Status:''' Released '''License:''' GPL '''Compatibility:''' Mylyn 3.x<br />
<br />
== [https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&cp=1-11-127-24_4000_100__ HP ALM and Quality Center] ==<br />
<br />
The HP Quality Center Mylyn Connector enables you to retrieve Quality Center requirements and defects in the context of Mylyn tasks.<br />
You can update Quality Center entities from Eclipse, and create traceability between source code and the Quality Center entities.<br />
This connector is compatible with Eclipse 3.4 and 3.5 and currently available only for Microsoft Windows.<br />
<br />
*Mylyn Connector for HP Quality Center 9.2<br />
**Main page: http://update.external.hp.com/qualitycenter/qc90/others/mylynconnector/index.html<br />
**Update site: http://update.external.hp.com/qualitycenter/qc90/others/mylynconnector/update-site/<br />
'''Status:''' Released '''License:''' Free (HP End User License Agreement) '''Compatibility:''' Mylyn 3.0.5 and later.<br />
<br />
*Mylyn Connector for HP Quality Center 10.00<br />
**Main page: http://update.external.hp.com/qualitycenter/qc100/others/ideconnector/index.html<br />
<br />
*Mylyn Connector for HP ALM 11.00<br />
**Main page: http://update.external.hp.com/qualitycenter/qc110/others/ideconnector/index.html<br />
<br />
'''Status:''' Released '''License:''' Commercial '''Compatibility:''' Mylyn 3.0.5 and later.<br />
<br />
== [https://www.tasktop.com/integrations/hpe-alm-and-qc-dev HPE ALM and Quality Center (by Tasktop)] ==<br />
<br />
Tasktop Dev support for HPE ALM and Quality Center integrates Tasktop and Mylyn's task-focused interface technology with HPE ALM and Quality Center, resulting in improved developer productivity by providing Eclipse IDE and Visual Studio integration and interoperability with integrations of leading commercial and open source ALM platforms.<br />
<br />
'''Status:''' Released '''License:''' Commercial '''Compatibility:''' Mylyn 3.4 and later.<br />
<br />
== [https://www.tasktop.com/integrations/hpe-ppm-dev HPE PPM (by Tasktop)] ==<br />
<br />
Eclipse Mylyn revolutionized developer productivity by reducing information overload, making multi-tasking easier and far more intuitive, and improving recovery time from interruptions. Tasktop Dev extends Mylyn with key features like time trackingand integration with enterprise repositories. With the Dev integration for HPE PPM, developers can access tasks in HPE PPM directly from Eclipse and Visual Studio IDE, enabling them to update status and time worked, all without leaving their IDE.<br />
<br />
'''Status:''' Released '''License:''' Commercial '''Compatibility:''' Mylyn 3.4 and later.<br />
<br />
== [https://www.tasktop.com/tasktop-integration-network#HP HPE Application Lifecycle Management Octane (by Tasktop)] ==<br />
<br />
Quickly view and update lifecycle artifacts with the benefits of personal task management and task-focused interface technology for HPE Application Lifecycle Management Octane.<br />
<br />
'''Status:''' Released '''License:''' Commercial '''Compatibility:''' Mylyn 3.4 and later.<br />
<br />
== [http://tasktop.com/connectors/hudson-jenkins.php Hudson (by Tasktop)] ==<br />
<br />
The Hudson Mylyn Connector, which also supports Jenkins, improves project visibility and productivity by providing direct access to Hudson from within the Eclipse IDE. The connector makes it possible to work with Hudson day-to-day entirely from within the Eclipse IDE with support for running and monitoring builds as well as inspecting the results. The connector's rich integrated editor displays build information to provide a quick overview of test results, artifacts and changes for each build. The connector takes advantage of task-focused interface technology, which provides automatic change set tracking, to provide visibility into your hudson builds and the tasks that changed for a given build, creating traceability between tasks source and builds. The Hudson Connector is included in Tasktop Dev Pro. <br />
<br />
'''Status:''' Released '''License:''' Commercial '''Compatibility:''' Mylyn 3.4 and later.<br />
<br />
== [https://www.tasktop.com/integrations/ibm-rational-team-concert-dev IBM Rational Team Concert (by Tasktop)] ==<br />
<br />
Tasktop's Rational Team Concert (RTC) integration for Tasktop Dev brings the benefits of personal task management and task-focused interface technology to development teams using RTC. The connector enables developers to instantly resume their coding session when switching between RTC work items, automatically track and update time estimates on user stories, and seamlessly use RTC alongside dozens of other ALM systems. Tasktop's RTC integration reorganizes the IDE around RTC tasks such as work items, reducing information overload by displaying only the code, web pages and documents that are relevant for a given task.<br />
<br />
'''Status:''' Released '''License:''' Commercial '''Compatibility:''' Mylyn 3.3 and later<br />
<br />
== [http://code.google.com/a/eclipselabs.org/p/industrial-mylyn/ Industrial Connector (with SQL using Ibatis)] ==<br />
<br />
Industrial Connector for Mylyn 3.3 and higher allows out of the box connection to any JDBC accessible SQL database using [http://ibatis.apache.org/ Apache Ibatis SqlMap] configuration files. It can also be extended for any sort of persistence by implementing one Java interface IPersistor. This allows simple connection to XML, Microsoft Excel, etc to be implemented quickly. Includes an extensive local repository with comments and attachments example based on Derby. [http://www.industrial-tsi.com/ Industrial TSI] funded development and made this connector available under EPL. <br />
Included examples:<br />
*in memory connector<br />
*local Derby using JPA<br />
*local Derby using Ibatis<br />
*Twitter<br />
<br />
More info on [http://wiki.eclipse.org/Mylyn/Incubator/Generic_SQL_Connector wiki page] or [https://bugs.eclipse.org/bugs/show_bug.cgi?id=184532 Eclipse Bugzilla] or [http://code.google.com/a/eclipselabs.org/p/industrial-mylyn/ EclipseLabs]<br />
<br />
'''Status:''' Beta '''License:''' EPL '''Compatibility:''' Mylyn 3.4 and higher '''Update sites:''' <br />
<br />
*Eclipse 3.3/3.4: http://svn.codespot.com/a/eclipselabs.org/industrial-mylyn/trunk/com.industrialtsi.mylyn.site/<br />
<br />
== Lighthouse ==<br />
There are [http://help.lighthouseapp.com/discussions/tips-tricks/25-integrating-eclipse-mylyn-with-lighthouse instructions] for how to set up a generic connector for use with [http://lighthouseapp.com/ Lighthouse].<br />
<br />
== [http://mylyn-mantis.wiki.sourceforge.net/ Mantis] ==<br />
<br />
The Mylyn connector for MantisBT allows you to manage your bugs straight from Eclipse. Visit the [http://mylyn-mantis.sourceforge.net/ Mantis integration for Eclipse] site for more details.<br />
<br />
Supported features include:<br />
<br />
* creating and updating tasks;<br />
* synchronizing tasks;<br />
* commenting;<br />
* uploading and downloading attachments. <br />
<br />
'''Status:''' mature '''License:''' EPL '''Compatibility:''' Mylyn 3.x '''Update sites:''' <br />
<br />
*Eclipse 3.6,3.5,3.4: http://mylyn-mantis.sourceforge.net/eclipse/update/site.xml<br />
<br />
== [http://tasktop.com/products/tour Microsoft Outlook &amp; Exchange] (by Tasktop) ==<br />
<br />
Tasktop's Outlook Email Task integration allows you to easily create tasks from Outlook email and manage them along with all your other tasks Mylyn's Task List. Aside from the usual Mylyn benefits such as task scheduling, with Tasktop, documents and web sites are captured with the active task making multitasking that much easier. Tasktop also supports integration with Outlook tasks and provides synchronization and notification of tasks between the Mylyn Task List and Outlook Calendar. <br />
<br />
'''Status:''' Released '''License:''' Commercial '''Compatibility:''' Mylyn 3.1 <br />
<br />
== [https://www.tasktop.com/integrations/microsoft-tfs-dev Microsoft Team Foundation Server (by Tasktop)] ==<br />
<br />
This connector makes TFS a first-class citizen of the Eclipse Mylyn ALM ecosystem, enabling developers to access TFS from the Mylyn task list within Eclipse and providing interoperability with more than 50 ALM solutions. The TFS Connector also fully supports Mylyn's task-focused interface technology that tracks and displays only the source code, documents and web pages that are relevant for a given TFS work item. With the Connector and Tasktop for the Visual Studio IDE, development teams using Microsoft's ALM tools in heterogeneous environments now have access to Mylyn's integration and task-focused productivity benefits. The TFS Connector is bundled as part of Tasktop Dev Enterprise.<br />
<br />
'''Status:''' Released '''License:''' Commercial '''Compatibility:''' Mylyn 3.2+<br />
<br />
== [https://github.com/belaso/mongolyn/ Mongolyn] ==<br />
<br />
Mongolyn enables Mylyn to store tasks into MongoDB.<br />
<br />
Supported features include:<br />
<br />
* creating and updating tasks,<br />
* synchronizing tasks.<br />
<br />
'''Status:''' beta '''License:''' EPL '''Compatibility:''' Mylyn 3.7 '''Update sites:''' <br />
<br />
*Eclipse 3.7: http://www.belaso.de/updates<br />
<br />
== [http://origo.ethz.ch Origo] ==<br />
<br />
[http://origo.ethz.ch Origo] is an open-source software development platform developed at ETH Zurich. Users can host open-source as well as closed-source projects. The platform provides an issue tracker, wiki pages, a SVN repository, workitem notifications for various events (like commits and wiki edits), community features and much more. The Mylyn connector provides task list integration and rich editing for the Origo issue tracker. <br />
<br />
'''Status:''' stable (but not all Mylyn features are supported yet) '''License:''' [http://www.opensource.org/licenses/mit-license.php MIT] '''Compatibility:''' Mylyn 2.0 '''Update sites:''' <br />
<br />
*Eclipse 3.3: http://download.origo.ethz.ch/mylyn/update-site/<br />
<br />
== [http://qcmylyn.sourceforge.net/ QcMylyn] ==<br />
<br />
This project is an Eclipse Mylyn Repository connector for HP Quality Center. <br />
<br />
'''Status:''' Beta '''License:''' EPL '''Compatibility:''' Mylyn 3.0.5+ '''Update sites:''' <br />
<br />
*Eclipse 3.4.2/3.5: http://qcmylyn.sourceforge.net/update/<br />
<br />
== [http://tasktop.com/connectors/perforce.php Perforce (by Perforce)] ==<br />
<br />
P4Mylyn automatically tracks the context of Perforce-managed assets related to each Perforce Job or task in any defect or project management system with a Mylyn connector. This makes it easy to commit to Perforce only the relevant changes when working on multiple tasks. Automatically generated commit comments link to the active task, creating seamless code-to-task navigation and traceability. P4Mylyn also supports 'Jobs', Perforce's built-in defect tracking system, making it a first class part of the IDE.<br />
<br />
'''Status:''' Released '''License:''' Free (closed source) '''Compatibility:''' Mylyn 3.4+<br />
<br />
== [https://code.google.com/p/pivotal-tracker-mylyn-connector/ Pivotal Tracker] ==<br />
<br />
The Pivotal Tracker connector allows you to connect to the Pivotal Tracker project management system (www.pivotaltracker.com). See https://www.pivotaltracker.com/projects/201525 for the project stories.<br />
<br />
'''Status:''' Beta '''License:''' LGPL '''Compatibility:''' Mylyn 3.4+<br />
<br />
* Eclipse update site: http://ptmylyn.teamunify.com<br />
* Eclipse Juno update site: http://ptmylyn.teamunify.com/juno<br />
<br />
== [https://www.tasktop.com/integrations/polarion-alm-dev Polarion Track & Wiki and Polarion ALM (by Tasktop)] ==<br />
<br />
The Polarion Mylyn Connector improves project visibility and drives productivity by providing direct access to Polarion Track & Wiki and Polarion Application Lifecycle Management (ALM) from within the Eclipse IDE. <br />
<br />
Polarion Track & Wiki provides an all-in-one bug tracking, wiki collaboration and version control solution. Polarion ALM provides a full-featured ALM platform with support for requirements, tests, Agile development andmore. The Polarion Connector provides direct access to both Polarion Track & Wiki or Polarion ALM from within the Eclipse IDE or a standalone desktop application. The connector supports advanced features such as time tracking reports, work records, revision history, and flexible relationships between tasks. <br />
<br />
'''Status:''' Released '''License:''' Commercial '''Compatibility:''' Mylyn 3.4 and later<br />
<br />
== [http://www.projectkoach.com ProjectKoach] (GOOD Software Inc, Canada) ==<br />
<br />
The ProjectKoach Eclipse plug-in (also available as RCP application) adds a complete agile management solution to Eclipse, including backlog, iteration plans, and progress charts. It includes a built-in Mylyn connector that allows developers to use their familiar task management solution to report progress on their ProjectKoach tasks.<br />
<br />
'''Status:''' mature '''License:''' Free (closed source) '''Compatibility:''' Mylyn 3.4+<br />
<br />
== [http://www.rallydev.com/integrations.jsp Rally] ==<br />
<br />
Rally helps organizations of all sizes shorten their development cycles, minimize risk, and collaborate across teams with on-demand Agile lifecycle management products. The Rally Connector for Eclipse/Mylyn allows the display and editing of Rally artifacts along with the ability to share Mylyn contexts between developers. <br />
<br />
'''Status:''' mature '''License:''' Commercial '''Compatibility:''' Mylyn 3.0, Mylyn 2.0 (for Eclipse 3.2) '''Update sites:''' <br />
<br />
*Eclipse 3.4: http://www.rallydev.com/integrations/eclipse/update/v3.4 (Mylyn 3.0) <br />
*Eclipse 3.3: http://www.rallydev.com/integrations/eclipse/update/v3.3 (Mylyn 3.0) <br />
*Eclipse 3.2: http://www.rallydev.com/integrations/eclipse/update/archive/v3.2 (Mylyn 2.0)<br />
<br />
== [http://www.redmine.org Redmine] ==<br />
<br />
[http://www.redmine.org Redmine] is a flexible project management web application written using Ruby on Rails framework. The Redmine-Mylyn Connector is an eclipse Mylyn Repository plug-in for the Redmine bug tracking / project management application. This connector requires a server-side ruby plugin installed where you have Redmine running. <br />
<br />
[http://sourceforge.net/apps/wordpress/redmin-mylyncon/ Installation directions] are available on the [http://sourceforge.net/projects/redmin-mylyncon/ Sourceforge project site]. <br />
<br />
'''Status:''' Released '''License:''' EPL '''Compatibility:''' Mylyn 3.0 '''Update sites:''' <br />
<br />
*Eclipse 3.5 and 3.6: http://redmin-mylyncon.sourceforge.net/update-site/N/<br />
<br />
== Eclipse 3.7 and later and Redmine 2.x ==<br />
<br />
The original author is no more maintaining the above mylyn connector. However, a community effort is ongoing on github to maintain and evolve the plug-in to support more recent Redmine and Eclipse versions.<br />
<br />
'''Status:''' Released '''License:''' EPL '''Compatibility:''' Mylyn 3.0 '''Home page:''' <br />
<br />
*Eclipse 3.7, 3.8, 4.2 and 4.3, available at https://github.com/ljader/redmine-mylyn-plugin<br />
<br />
An updated server-side ruby plugin is requried for Redmine 2 and higher available at http://danmunn.github.io/redmine_mylyn_connector/<br />
<br />
Refer to the above sites for installation instructions.<br />
<br />
== [http://sourceforge.net/projects/mylyn-rt Request Tracker (RT)] ==<br />
<br />
N.B.: Works only with Mylyn 2. I stopped working on the connector due to massive API change from Mylyn 2 to 3. <br />
<br />
Quote from http://bestpractical.com/rt/: "RT is an enterprise-grade ticketing system which enables a group of people to intelligently and efficiently manage tasks, issues, and requests submitted by a community of users." <br />
<br />
The RT Connector supports adding a repository, creating queries, showing ticket data, editing (a large subset of) ticket data, creating new tickets, commenting and adding correspondence for tickets, resolving tickets, taking, stealing, merging tickets and displaying a ticket's history. <br />
<br />
'''Status:''' alpha (not for use in production environments) '''License:''' EPL '''Compatibility:''' Mylyn 2.0 '''Update sites:''' <br />
<br />
*Eclipse 3.3: http://mylyn-rt.sourceforge.net/eclipse/update/<br />
<br />
== [http://code.google.com/p/mylyn-rtm Remember The Milk] ==<br />
<br />
[http://www.rememberthemilk.com Remember The Milk (RTM)] is the best way to manage your tasks. Never forget the milk (or anything else) again. Remember the Milk combined with this connector is the perfect solution for managing your tasks across multiple Eclipse workspaces or machines. <br />
<br />
The RTM connector (http://mylyn-rtm.googlecode.com) allows for the adding of a repository, creating queries and creating and editing tasks. <br />
<br />
'''Status:''' alpha (not for use in production environments) '''License:''' EPL '''Compatibility:''' Mylyn 3.0 '''Update site:''' <br />
<br />
*Eclipse 3.4: http://mylyn-rtm.googlecode.com/svn/update-site/<br />
<br />
== [https://github.com/rombert/ereviewboard Reviewboard] ==<br />
<br />
A Mylyn-based Eclipse integration for Review Board. Supported features are:<br />
<br />
* query creation<br />
* display of review details in the rich task editor ( comments, patches, screenshots , reviewers )<br />
<br />
The connector can be installed from the listed update site or from the Eclipse Marketplace client.<br />
<br />
'''Status:''' beta '''License:''' EPL '''Compatibility:''' Mylyn 3.4 '''Update site:''' http://rombert.github.com/ereviewboard/update/<br />
<br />
== [http://code.google.com/p/scrumworks-basic-mylyn-connector/ ScrumWorks Basic] ==<br />
<br />
A Mylyn connector for a ScrumWorks Basic repository. <br />
<br />
'''Status:''' Beta '''License:''' EPL '''Compatibility:''' Mylyn 3.2 '''Update site:''' <br />
<br />
*Eclipse 3.3, 3.4, and 3.5: http://scrumworks-basic-mylyn-connector.googlecode.com/svn/trunk/update-site/<br />
<br />
== [http://www.tasktop.com/integrations/serena-business-manager-dev Serena Business Manager (by Tasktop)] ==<br />
<br />
Tasktop Dev for Serena Business Manager integrates Tasktop and Mylyn’s task-focused interface technology with SBM, resulting in improved developer productivity. Developers can access SBM from the comfort of their Eclipse or Visual Studio IDE and quickly view and update their tasks through the embedded SBM web UI. In addition, Tasktop Dev for SBM provides the ability to track context such as web pages and documents associated with each task and share that context with other developers who are also working on the same task.<br />
<br />
'''Status:''' Stable '''License:''' Commercial '''Compatibility:''' Mylyn 3.4+<br />
<br />
== [https://www.brutex.net/XServices/websvn/listing.php?repname=XServices Serena Business Mashups 2009 (by Brutex Networks)] ==<br />
<br />
The Serena Business Mashups connector allows software developers to access SBM items from Eclipse. It is using the web service interface of SBM to access the SBM instance. The connector is experimental and not intended for production use.<br />
<br />
The source code is available at https://www.brutex.net/XServices/websvn/listing.php?repname=XServices<br />
The bugtracker is available at https://www.brutex.net/XBugzilla/<br />
<br />
This version of the SBM connector applies to<br />
*Serena Business Mashups 2009R1<br />
*Serena Business Mashups 2009R2<br />
*Serena Business Mashups 2009R3<br />
*Serena Business Manager 2009R4 (Serena renamed the product) <br />
<br />
<br />
*Eclipse 3.5: http://brutex.net/updates (Galileo)<br />
*Eclipse 3.6: http://brutex.net/updates (Helios)<br />
<br />
<br />
'''Status:''' alpha '''License:''' Apache license 2.0 '''Compatibility:''' Mylyn 3.3<br />
<br />
== [https://code.intuit.com/sf/projects/mylyn_teamtrack_connector/ Serena TeamTrack 6] ==<br />
<br />
The TeamTrack 6 connector allows to connect to legacy (i.e., pre-SBM) TeamTrack 6 installations. The Mylyn connector for TeamTrack 6 is currently in alpha state with limited functionality. It is Open Source licensed under EPL.<br />
<br />
'''Status:''' alpha '''License:''' EPL '''Compatibility:''' Mylyn 3.0 '''Update sites:''' <br />
<br />
*Eclipse 3.6/3.7: http://forge.code.intuit.com/hudson/job/CI-mylyn.teamtrack.core-trunk/lastSuccessfulBuild/artifact/trunk/com.intuit.eclipse.mylyn.teamtrack-build/updates/<br />
<br />
== [http://sonar-ide.codehaus.org Sonar (by SonarSource.org)] ==<br />
<br />
Sonar for Eclipse provides comprehensive integration of [http://www.sonarsource.org/ Sonar] into Eclipse. Sonar Mylyn connector allows to track reviews.<br />
<br />
'''Status:''' Released '''License:''' LGPL '''Compatibility:''' Mylyn 3.2+<br />
<br />
== [http://targetprocess.com/Product.aspx TargetProcess] ==<br />
<br />
[http://targetprocess.com/Product.aspx TargetProcess] is Agile Project Management Software.<br />
<br />
Connector: http://targetprocess.com/Product/Features/v217_eclipse_prioritize.aspx#eclipse<br />
<br />
Very little other information.<br />
<br />
== [http://www.remainsoftware.com TD/OMS by Remain Software] ==<br />
<br />
[http://www.remainsoftware.com TD/OMS] is a System i based professional Application Lifecycle Management system. It manages the complete software lifecycle from incident to remote implementation. The Mylyn interface was created with the Database Connector by [http://www.industrial-tsi.com Industrial-TSI] and Maarten Meijer more information on the database connector can be found on the Mylyn incubator pages. <br />
<br />
'''Status:''' Mature '''License:''' Commercial '''Compatibility:''' Mylyn 3.1+<br />
<br />
== [https://www.tasktop.com/integrations/thoughtworks-mingle-dev ThoughtWorks Studios Mingle (by Tasktop)] ==<br />
<br />
Integrates with the Mingle Agile project management and collaboration solution from ThoughtWorks Studios, the products division of the global Agile consultancy, ThoughtWorks. Includes support for Mingle's "Murmurs" social networking technology. The Mingle connector is bundled as part of Tasktop Dev Pro and Tasktop Dev Enterprise.<br />
<br />
'''Status:''' Stable '''License:''' Commercial '''Compatibility:''' Mylyn 3.3+<br />
<br />
== [http://trac.edgewall.org/ Trac (by Eclipse Mylyn)] ==<br />
<br />
The Trac Connector is available as part of Mylyn.<br />
<br />
'''Status:''' mature '''License:''' EPL '''Compatibility:''' Mylyn 3.0 '''Update sites:''' <br />
<br />
*http://download.eclipse.org/tools/mylyn/update/e3.4<br />
<br />
== [http://www.trackplus.com/mylyn.html Track+] ==<br />
<br />
[http://www.trackplus.com Track+] is a web based professional project management and issue tracking system. [http://www.trackplus.com/mylyn.html Trackmylyn] is a Mylyn connector and user interface that permits to work with a Track+ server from within Eclipse. Input masks are completely configurable, and resemble those configured on the server. The adapter also allows for time and expense tracking. <br />
<br />
'''Status:''' Mature '''License:''' EPL '''Compatibility:''' Mylyn 3.0 '''Update sites:''' <br />
<br />
*http://www.trackplus.com/update-site/e3.4<br />
<br />
== [http://unfuddle.com/plugins/mylyn Unfuddle] ==<br />
<br />
[http://www.unfuddle.com Unfuddle] is a secure, hosted project management solution for software development teams. Using the [http://www.unfuddle.com/plugins/mylyn connector], developers can interact directly with all of their Unfuddle tickets right from within their Eclipse IDE.<br />
<br />
'''Status:''' Released '''License:''' EPL '''Compatibility:''' Mylyn 3.x '''Update sites:'''<br />
<br />
*Eclipse 3.5: http://unfuddle.com/downloads/plugins/mylyn/e3.5/update-site/<br />
<br />
*Eclipse 3.4: http://unfuddle.com/downloads/plugins/mylyn/e3.4/update-site/<br />
<br />
== [https://www.tasktop.com/integrations/versionone-dev VersionOne (by Tasktop)] ==<br />
<br />
The VersionOne Mylyn Connector integrates VersionOne's agile planning and project management platform with any Tasktop-enabled Eclipse-based IDE. Through integration with Tasktop Dev Pro, the VersionOne Connector also provides a standalone rich client application with offline access to VersionOne stories, defects and tasks. <br />
<br />
'''Status:''' Stable '''License:''' Commercial '''Compatibility:''' Mylyn 3.3+<br />
<br />
== [http://wiki.eclipse.org/Mylyn_User_Guide#Generic_Web_Repository_Connector Web Templates (by Eclipse Mylyn)] ==<br />
<br />
The Web Templates Connector is available as one of the Mylyn Incubator features. <br />
<br />
'''Status:''' incubation '''License:''' EPL '''Compatibility:''' Mylyn 3.0 '''Update sites:''' <br />
<br />
*http://download.eclipse.org/tools/mylyn/update/incubator<br />
<br />
== [http://xplanner.org/ XPlanner (by Eclipse Mylyn)] ==<br />
<br />
The XPlanner Connector is available as one of the Mylyn Incubator features. <br />
<br />
'''Status:''' incubation '''License:''' EPL '''Compatibility:''' Mylyn 3.0 '''Update sites:''' <br />
<br />
*http://download.eclipse.org/tools/mylyn/update/incubator<br />
<br />
== [https://www.tasktop.com/integrations/zendesk-dev Zendesk (by Tasktop)] ==<br />
<br />
Tasktop Dev offers IDE-based integration for Zendesk. The Zendesk Connector integrates Zendesk's customer service platform with the Eclipse and Visual Studio IDEs. Through integration with Tasktop Dev Pro and Tasktop Dev Enterprise, the Zendesk Connector also provides a standalone rich client application with offline access to Zendesk tickets.<br />
<br />
'''Status:''' Stable '''License:''' Commercial '''Compatibility:''' Mylyn 3.4+<br />
<br />
= Document Bridges =<br />
<br />
== [http://www.eclipse.org/dltk/ Dynamic Languages via DLTK] ==<br />
<br />
The Eclipse DLTK project provides structure bridges that support Mylyn's context model for languages such as Tcl, Ruby, Python and JavaScript. For more information see the [http://us.xored.com/~haiodo/EclipseCon07/dltk-mylar.mov Xored video documentation]. <br />
<br />
'''Status:''' beta '''License:''' EPL '''Compatibility:''' Mylyn 2.0 '''Update site:''' <br />
<br />
*http://download.eclipse.org/technology/dltk/updates<br />
<br />
== [http://pydev.sourceforge.net/ Pydev] ==<br />
<br />
The Pydev project provides a structure bridge that supports the Pydev Package Explorer and Python elements in the Project Explorer. It currently works at the resource-level. <br />
<br />
'''Status:''' beta '''License:''' EPL '''Compatibility:''' Mylyn 2.0 '''Update site:''' <br />
<br />
*http://pydev.sourceforge.net/updates/<br />
<br />
== [http://www.springsource.com/products/sts SpringSource ToolSuite, STS (by SpringSource)] ==<br />
<br />
The Spring IDE Mylyn Integration provides: <br />
<br />
*A Structure and UI Bridge for Spring elements that works on Spring-element level (<code>&lt;bean /&gt;</code>, <code>&lt;property /&gt;</code> or <code>&lt;constructor-arg /&gt;</code> elements) <br />
*Automatic code folding in XML editor based on current interest context (Code Folding for Structured Text Editors needs to be enabled) <br />
*Content assist proposal resorting based current interest context in the XML editor <br />
*Interest-level filtering in the Spring specific views, like Spring Explorer and Beans Cross References View<br />
<br />
'''Status:''' mature '''License:''' EPL '''Compatibility:''' Mylyn 3.0 '''Update site:''' <br />
<br />
*http://dist.springframework.org/release/IDE<br />
<br />
== [http://tasktop.com/products/tour Office Documents and Web Page (by Tasktop)] ==<br />
<br />
Tasktop (the task-focused desktop) extends Mylyn's reach beyond source code to the office documents and web pages interacted with during the workweek. Similar to how Mylyn reveals the important code artifacts associated, so does Tasktop reveal the important office documents and web pages interacted with as part of the active task. On some platforms, Tasktop also supports management of external application windows so they are opened and closed just as is expected of code documents. <br />
<br />
'''Status:''' mature '''License:''' Commercial '''Compatibility:''' Mylyn 3.1 <br />
<br />
== [http://www.uml-lab.com UML Lab (by Yatta Solutions)] ==<br />
<br />
The UML Lab Mylyn Integration leverages UML Lab's next-gen Round-Trip-Engineering<sup>NG</sup> capabilities to give you an overview of your important code and model artifacts with task-focussed class diagrams. Interacting with your code artifacts will increase the interest of associated model elements and vice versa to keep you focused on your active task on all levels.<br />
<br />
The UML Lab Mylyn Integration provides:<br />
<br />
* A Structure Bridge for UML models<br />
* Focussing of UML class diagrams and tree views<br />
* Synchronization of interest between code and model artifacts<br />
* Incremental Round-Trip-Engineering<sup>NG</sup> based on code interest<br />
* Context Class Diagrams for easy overview of any Mylyn task<br />
<br />
'''Status:''' mature '''License:''' Commercial '''Compatibility:''' Mylyn 3.5<br />
<br />
= Version Control =<br />
<br />
== [http://www.javaforge.com/project/CBES codeBeamer Eclipse Studio for Mercurial, SVN and CVS (by Intland Software)] ==<br />
<br />
codeBeamer Eclipse Studio incorporates support for Mercurial, Subversion and CVS, with the following features: <br />
<br />
* Associating change sets with issues <br />
* Navigating from source code to the relevant issues <br />
* Automatically generating commit messages based on Mylyn tasks<br />
* Automatically grouping source changes by change requests to easily commit or revert only the code for a given request <br />
<br />
'''Status:''' stable '''License:''' EPL '''Compatibility:''' Mylyn 3.3+ '''Update site:''' <br />
<br />
*http://cbes.javaforge.com/update<br />
<br />
== [http://subclipse.tigris.org Subclipse SVN (by CollabNet)] ==<br />
<br />
Subclipse is a Subversion client for Eclipse. Supported features: <br />
<br />
*automatic Change Set management (see [[Mylyn FAQ#Team_Support|Mylyn FAQ Team Support]]) <br />
*automatic commit messages <br />
*''Open Corresponding Task'' action to open Mylyn's task editor from the Change Set in ''Synchronize'' view and from entries in ''History'' view <br />
*automatic linking projects with issue trackers using bugraq:url svn property<br />
<br />
'''Status:''' mature '''License:''' EPL '''Compatibility:''' Mylyn 3.0 '''Update site:''' <br />
<br />
*http://subclipse.tigris.org/update_1.4.x<br />
<br />
== [http://www.eclipse.org/subversive/index.php Subversive SVN (by Polarion)] ==<br />
<br />
Subversive is a Subversion client for Eclipse. See [http://www.polarion.org/index.php?page=mylar&project=subversive Polarion's Mylyn Integration Quick Start] <br />
<br />
'''Status:''' mature '''License:''' EPL '''Compatibility:''' Mylyn 3.0 '''Subversive update site:''' <br />
<br />
*http://download.eclipse.org/technology/subversive/0.7/update-site/ <br />
*http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/ (Subversive connectors)<br />
<br />
= Integrations =<br />
<br />
== [http://m2eclipse.codehaus.org/ Maven Integration for Eclipse] ==<br />
<br />
Mylyn integration feature in the [http://m2eclipse.codehaus.org/ Maven Interation for Eclipse] provides automatic linking of Eclipse projects with task repositories. Maven project metadata is used as a single place to get information about issue tracking, source control and continuous integration system used by the project. <br />
<br />
'''Status:''' mature '''License:''' EPL '''Compatibility:''' Mylyn 2.x, 3.x '''Update sites:''' <br />
<br />
*http://m2eclipse.sonatype.org/update/<br />
<br />
== [https://www.tasktop.com/integrations/firefox-dev Mozilla Firefox (by Tasktop)]&nbsp; ==<br />
<br />
Tasktop (the task-focused desktop) extends Mylyn's reach to capture the web pages visited to as part of the active task. The Tasktop Firefox Add-On enables capture of browsing context as it happens in Firefox and management of Firefox browser tabs on a per-task-basis all from within Tasktop just as effectively as code pages are managed by Mylyn. <br />
<br />
'''Status:''' mature '''License:''' Commercial '''Compatibility:''' Mylyn 3.1<br />
<br />
= Utilities =<br />
<br />
== [http://wiki.eclipse.org/Mylyn/Incubator/WikiText WikiText (by EclipseMylyn)] ==<br />
<br />
[http://wiki.eclipse.org/Mylyn/Incubator/WikiText Mylyn WikiText] is a set of plug-ins for Eclipse that provide lightweight markup (wiki) parsing, editing and display capabilities to the Eclipse platform and Mylyn. WikiText provides a parser for wiki markup and converts the markup to HTML, Docbook, DITA, or Eclipse Help format, either via the API or by using Ant tasks. WikiText also provides UI components (such as an editor) integrating with Eclipse and the Mylyn task editor. <br />
<br />
See [[Mylyn/FAQ#WikiText]] for more details. <br />
<br />
'''Status:''' mature '''License:''' EPL '''Compatibility:''' Mylyn 3.0.2 <br />
<br />
'''Update sites:''' <br />
<br />
*Eclipse 3.5, 3.6, 3.7: http://download.eclipse.org/mylyn/releases/latest<br />
*Eclipse 3.4: http://download.eclipse.org/tools/mylyn/update/weekly/e3.4<br />
*Eclipse 3.3: http://download.eclipse.org/tools/mylyn/update/weekly/e3.3 <br />
<br />
'''Stand-Alone Download:''' http://www.eclipse.org/mylyn/downloads/<br />
<br />
== [http://www.cpuidle.de/blog/?p=59 Eclipse Timeline] ==<br />
<br />
[http://www.cpuidle.de/blog/?p=59 Eclipse Timeline] is a scrolling timeline view showing events from variant event sources include Mylyn tasks. The project has originally been developed by Chen on Mylyn 2.0 and hosted on [http://code.google.com/p/eclipsetimeline/ Google Code] but is no longer maintained. <br />
<br />
'''Status:''' beta '''License:''' BSD '''Compatibility:''' Mylyn 3.0 '''Update site:''' http://www.cpuidle.de/eclipse/site.xml/ <br />
<br />
== [http://cs.ubc.ca/labs/spl/projects/fishtail/ Fishtail] ==<br />
<br />
Fishtail uses the context of a currently active Mylyn task to formulate web searches about the code of interest. Searches are performed for a variety of categories, such as articles, tutorials, and examples of code use. Fishtail ranks the resultant hits, presenting the most context-relevant ones in its view. <br />
<br />
'''Status:''' beta '''License:''' EPL '''Compatibility:''' Mylyn 2.0 '''Update site:''' http://cs.ubc.ca/labs/spl/projects/fishtail/update/ <br />
<br />
== [http://xpmp.de/jaretcalendar.html Jaret Calendar] ==<br />
<br />
[http://xpmp.de/jaretcalendar.html Jaret Calendar] is a plugin integrating the google calendar and a local calendar and allows viewing and manipulating mylyn tasks in a gantt view. <br />
<br />
'''Status:''' alpha '''License:''' GPL '''Compatibility:''' Mylyn 2.0 '''Update site:''' to come <br />
<br />
[[Category:Mylyn]]</div>Sam.davis.planview.com