Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Mylyn/Release Howto"
(→Update Versions) |
(→Update Discovery Jar) |
||
Line 106: | Line 106: | ||
== Update Discovery Jar == | == Update Discovery Jar == | ||
− | + | Update siteUrls and statsUrls in <tt>org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml</tt> to have the correct version and check that the listings are up to date. <!-- We wait until now to update versions in case we need to update the jar mid-release --> | |
+ | |||
+ | 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. | ||
Make a second copy of the jar named with the next Mylyn version so that updating the framework version after the release (below) will not cause tests to fail. | Make a second copy of the jar named with the next Mylyn version so that updating the framework version after the release (below) will not cause tests to fail. |
Revision as of 11:08, 29 May 2014
Contents
- 1 Before the Release
- 2 The Release
- 2.1 Update Target
- 2.2 Tag Sources
- 2.3 Build
- 2.4 Verify Update Site Contents
- 2.5 Update Discovery Jar
- 2.6 Test Install
- 2.7 Prepare Download Area
- 2.8 Update Release Repository Content
- 2.9 Create API Baseline
- 2.10 Update Website
- 2.11 Update Babel
- 2.12 Announce Release
- 2.13 Update http://eclipse.org/mylyn/updates.xml
- 2.14 Update Eclipse Info Center
- 2.15 Update Marketplace Listings
- 3 After the Release
- 4 Notes
Before the Release
Prepare Build Environment
- once Checkout releng on build.eclipse.org
ssh build.eclipse.org git clone /gitroot/mylyn/org.eclipse.mylyn.git
- Update releng on build.eclipse.org from Git
cd ~/org.eclipse.mylyn/ git pull
- once Make sure your have Java 5.0 or later in your path. Settings for $HOME/.bashrc on build.eclipse.org:
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64 export ECLIPSE_HOME=~/.m2/repository/org/eclipse/tycho/tycho-p2-runtime/0.12.0/eclipse
- once Run Maven on build.eclipse.org to download runtime
cd org.eclipse.mylyn mvn package
- once Create symlinks for convenience
ln -s /home/data/httpd/archive.eclipse.org/ ~/archive ln -s org.eclipse.mylyn/org.eclipse.mylyn.releng ~/releng
Create a Branch (Major Release Only)
- Branch integration repository
git clone ssh://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.all src-3_6_x cd src-3_6_x git checkout -b e_3_7_m_3_6_x git submodule init git submodule update
- Branch each sub-project
git submodule foreach git pull git submodule foreach git checkout -b e_3_7_m_3_6_x master
- Update branches in .gitmodules (can do this by comparing with previous branch) so that each submodule looks like this:
[submodule "org.eclipse.mylyn.context"] path = org.eclipse.mylyn.context url = ../../mylyn/org.eclipse.mylyn.context.git revision = . branch = e_3_7_m_3_6_x
- Push changed .gitmodules file
- Push submodule branches
git submodule foreach git push origin e_3_7_m_3_6_x:e_3_7_m_3_6_x
- configure mylyn-3.6.x-release job on Hudson to build from e_3_7_m_3_6_x branch
Release Review
See Release_Cycle#Release_Review for details.
- Submit IP log for review at least 2 weeks before release
- Seek PMC approval for release by emailing link to review documentation to mylyn-pmc@eclipse.org at least 2 weeks before release
- Once PMC and IP log approval are secured, schedule release review at least 1 week before release
Prepare Source Code
Internationalize Messages
- Run Source > Find Broken Externalized Strings over all bundles
- Run Source > Externalize Strings over all bundles
Update User Guide from the Wiki
- Run org.eclipse.mylyn.help.ui/build-helper.xml as an Ant Build (ensure WikiText is checked out into your workspace)
- Review the user guide and commit changes
Update Copyright Notices
- Update the year in the about.ini to the current year
- Update the year in all feature.xml files to the current year for changed features
- Update the year in copyright notices of changed source files: Install platform releng tools (available from the update site http://download.eclipse.org/eclipse/updates/4.3), Project context menu > Fix Copyrights
Backport changes to the Platform Specific Branches
- Merge changes from master in each branched module
git merge master
Run Tests
- Trigger a nightly build or run the AllTests suite
The Release
Update Target
- Update target files in org.eclipse.mylyn/org.eclipse.mylyn-target to point to release sites of dependencies to ensure builds are reproducible in the future
Tag Sources
- Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched)
./foreach.sh git tag R_3_6_3
- Tag sub-projects with their respective versions as vx.y.z (e.g. v0.8.1):
org.eclipse.mylyn.builds org.eclipse.mylyn.docs org.eclipse.mylyn.reviews org.eclipse.mylyn.versions
- Push tags
git submodule foreach git push --tags
Build
- Release build (Hudson): https://hudson.eclipse.org/hudson/job/mylyn-release/
- Select release as the type
- Check publish
- Enter timestamp for qualifier
- Release build (manually):
mvn -Prelease -DforceContextQualifier=v20110304-0100 -Ppublish -Phudson.eclipse.org -Pindigo -Dexplicit-target -Dmaven.test.skip=true -Dtycho-version=0.12.0 -Dsign-dir=tools/mylyn/hudson/release clean install
- Snapshot build (manually):
mvn -Psnapshot -Ppublish -Phudson.eclipse.org -Pindigo -Dexplicit-target -Dmaven.test.skip=true -Dtycho-version=0.12.0 -Dsign-dir=tools/mylyn/hudson/snapshot clean install
Verify Update Site Contents
- Check that only approved features are on the update site
- Check that all Orbit bundles are tracked in approved CQs
Update Discovery Jar
Update siteUrls and statsUrls in org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory/plugin.xml to have the correct version and check that the listings are up to date.
Run org.eclipse.mylyn.discovery-directory/build-helper.xml to produce a new jar. Then copy org.eclipse.mylyn.discovery.jar to ~/downloads/mylyn/discovery/, renaming it with the Mylyn version.
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.
Test Install
- Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly
- Test that any changes to discovery show up
Prepare Download Area
- Log into Eclipse.org
ssh build.eclipse.org
- Remove Old Integration Builds
rm -rf ~/downloads/mylyn/drops/3.6.0/I*
- Also remove all RC builds (builds starting with a 'v') other than the latest
- Copy Release to archive.eclipse.org
cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops
- Run script to add mirror URLs
cd ~/downloads/mylyn/drops/3.6.0/ ~/releng/bin/update-metadata.sh
- Check that the content.jar contains the following property:
<property name="p2.mirrorsURL" value="http://www.eclipse.org/downloads/download.php?file=/mylyn/drops/.../v.../&protocol=http&format=xml"/>
Update Release Repository Content
- Log into Eclipse.org
ssh build.eclipse.org
- Update filters in ~/downloads/mylyn/releases/*/composite.index
- Ensure that ~/downloads/mylyn/releases/3.6 exists, where 3.6 is the version to be released, and that it contains a composite.index with appropriate content
- Update release composite sites
cd ~/downloads/mylyn/releases/ ~/releng/bin/create-composite.sh -r cp -r 3.6 latest
Create API Baseline
- major releases Create an API baseline zip
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400
Update Website
- Update the version number on download page
- Update the snapshot section on the download page
- Create a new section on download archive page
- major releases Add a link to the new API baseline on the download archive page and update the developer page
- Create a new section in the New & Noteworthy
- Update the News section at http://eclipse.org/mylyn/
Update Babel
- Make release available in Eclipse Babel for translation (major releases only)
Announce Release
- Send announcement to mylyn-announce
- Post announcement to news group
Update http://eclipse.org/mylyn/updates.xml
- Edit updates.xml in website Git repository
Update Eclipse Info Center
- Inform webmaster of new help plug-ins for the Eclipse info center
Update Marketplace Listings
- major releases Mylyn
- major releases Trac Connector
After the Release
Create Discovery Directory
Create a discovery/directory-XX.xml for the new Mylyn version in the website Git, commenting out any 3rd party jars that haven't been created yet.
Update Versions
- Edit versions in org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh
org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh
- Push reviews in dependency order. After each set of reviews is merged, wait for the corresponding nightly builds to publish new snapshots before pushing the next set of reviews. Push sets of reviews in this order:
- docs, commons, org.eclipse.mylyn, , org.eclipse.mylyn.all
- tasks, versions
- context, reviews, builds
- incubator
- Update versions in org.eclipse.mylyn.commons.ui/.settings/.api_filters
- Update CoreUtil.FRAMEWORK_VERSION
Update Repository URL
- major release Edit URL in org.eclipse.mylyn-feature/feature.xml
Create Download Area
- Create download directory
mkdir ~/downloads/mylyn/drops/3.7.0/ setfacl -m user:hudsonBuild:rwx ~/downloads/mylyn/drops/3.7.0/ setfacl -R -x user:hudsonBuild ~/downloads/mylyn/drops/3.6.0/
- major release Create snapshot site
cp -a ~/downloads/mylyn/snapshots/3.6 ~/downloads/mylyn/snapshots/3.7
- major release Update composite site indices
emacs ~/downloads/mylyn/snapshots/*/composite.index
- Update snapshot sites
cd ~/downloads/mylyn/snapshots/ ~/releng/bin/create-composite.sh -r
- major release Create Incubator download directory
mkdir ~/downloads/mylyn/incubator/drops/3.7.0 setfacl -m user:hudsonBuild:rwx ~/downloads/mylyn/incubator/drops/3.7.0/ setfacl -R -x user:hudsonBuild ~/downloads/mylyn/incubator/drops/3.6.0/
- major release Create Incubator site
cp -a ~/downloads/mylyn/incubator/3.6 ~/downloads/mylyn/incubator/3.7 emacs ~/downloads/mylyn/incubator/3.7/composite.index
- Update composite site
cd ~/downloads/mylyn/incubator ~/releng/bin/create-composite.sh -r
Create Build Job
- Request mylyn-3.7.x-release job on Hudson cloning an existing release job
- ensure job is configured to build from master branch
Add Bugzilla Versions and Milestones
- Add Bugzilla Milestones for the next release
- major release Add Bugzilla Version for the current release
Update Project Plan
- major release Update release plans in https://projects.eclipse.org/projects/mylyn/documentation
Notes
- create-composite.sh: need to run this every time after deleting drops to make sure there are no stale references