Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Mylyn/Release Howto"
< Mylyn
(→After the Release) |
(→Update Versions) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
= Before the Release = | = 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 | ||
+ | * ''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 == | == Create a Branch == | ||
− | * | + | * ''major release'' 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 3_7_m_3_6_x | git checkout -b 3_7_m_3_6_x | ||
− | git | + | git submodule init |
+ | git submodule update | ||
+ | * ''major release'' Branch each sub-project | ||
+ | git submodule foreach git checkout -b 3_7_m_3_6_x master | ||
+ | * ''major release'' Request mylyn-3.6.x-release job on Hudson cloning an existing release job | ||
== Prepare Source Code == | == Prepare Source Code == | ||
Line 17: | Line 35: | ||
=== Update User Guide from the Wiki === | === Update User Guide from the Wiki === | ||
− | * Run org.eclipse.mylyn.help.ui/build-helper.xml as an Ant Build (ensure | + | * 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 | + | * Review the user guide and commit changes |
=== Update Copyright Notices === | === Update Copyright Notices === | ||
Line 26: | Line 44: | ||
=== Backport changes to the Platform Specific Branches === | === Backport changes to the Platform Specific Branches === | ||
− | * | + | * Merge changes from master in each branched module |
− | + | git merge master | |
− | + | ||
− | + | == Update Integration Repository == | |
− | + | * Update integration repository to point to latest sub-project revisions | |
− | + | cd src-3_6_x | |
− | + | ./update.sh | |
− | * | + | |
− | + | ||
== Run Tests == | == Run Tests == | ||
Line 42: | Line 58: | ||
== Update Target == | == Update Target == | ||
− | * Update target files to point to release sites | + | * 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 Sources == | ||
* Tag the release as R_x_y_z (and R_x_y_z_e_3_3 if plug-ins are branched) | * 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 | |
− | org.eclipse.mylyn | + | * Push tags |
− | + | git submodule foreach git push --tags | |
− | + | ||
− | * | + | |
− | + | ||
== Build == | == Build == | ||
* Release build (Hudson): [https://hudson.eclipse.org/hudson/job/mylyn-release/ https://hudson.eclipse.org/hudson/job/mylyn-release/] | * Release build (Hudson): [https://hudson.eclipse.org/hudson/job/mylyn-release/ https://hudson.eclipse.org/hudson/job/mylyn-release/] | ||
+ | ** Select release as the type | ||
+ | ** Check publish | ||
+ | ** Enter timestamp for qualifier | ||
* Release build (manually): | * 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): | * Snapshot build (manually): | ||
− | + | ||
+ | mvn -Psnapshot -Ppublish -Phudson.eclipse.org -Pindigo -Dexplicit-target -Dmaven.test.skip=true -Dtycho-version=0.12.0 -Dsign-dir=tools/mylyn/hudson/snapshot clean install | ||
== Verify Update Site Contents == | == Verify Update Site Contents == | ||
* Check that only approved features are on the update site | * Check that only approved features are on the update site | ||
− | * Check that all Orbit bundles are tracked | + | * Check that all Orbit bundles are tracked in [http://eclipse.org/projects/ip_log.php?projectid=mylyn,mylyn.builds,mylyn.commons,mylyn.context,mylyn.docs,mylyn.reviews,mylyn.tasks,mylyn.versions approved CQs] |
== Test Install == | == Test Install == | ||
* Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly | * Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly | ||
− | == Remove Old Integration Builds | + | == Prepare Download Area == |
− | rm ~/downloads/mylyn/ | + | * Log into Eclipse.org |
− | + | ssh build.eclipse.org | |
− | + | * Remove Old Integration Builds | |
− | cd ~/downloads/mylyn/ | + | rm -rf ~/downloads/mylyn/drops/3.6.0/I* |
+ | * Copy Release to archive.eclipes.org | ||
+ | cp -a ~/downloads/mylyn/drops/3.6.0 /home/data/httpd/archive.eclipse.org/mylyn/drops | ||
+ | * Run script to add mirror URLs | ||
+ | cd ~/downloads/mylyn/drops/3.6.0/ | ||
~/releng/bin/update-metadata.sh | ~/releng/bin/update-metadata.sh | ||
* Check that the content.jar contains the following property: | * Check that the content.jar contains the following property: | ||
− | <property name="p2.mirrorsURL" value="http://www.eclipse.org/downloads/download.php?file=/mylyn/ | + | <property name="p2.mirrorsURL" value="http://www.eclipse.org/downloads/download.php?file=/mylyn/drops/.../v.../&protocol=http&format=xml"/> |
− | + | ||
− | + | ||
− | + | ||
== Update Release Repository Content == | == Update Release Repository Content == | ||
+ | * Log into Eclipse.org | ||
+ | ssh dev.eclipse.org | ||
* Update filters in ~/downloads/mylyn/releases/*/composite.index | * Update filters in ~/downloads/mylyn/releases/*/composite.index | ||
* Update release composite sites | * Update release composite sites | ||
cd ~/downloads/mylyn/releases/ | cd ~/downloads/mylyn/releases/ | ||
− | |||
− | |||
− | |||
~/releng/bin/create-composite.sh -r | ~/releng/bin/create-composite.sh -r | ||
== Create API Baseline == | == Create API Baseline == | ||
− | * Create an API baseline zip | + | * ''major releases'' Create an API baseline zip |
~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400 | ~/releng/bin/create-api-profile.sh 3.6.0 v20110608-1400 | ||
== Update Website == | == Update Website == | ||
− | |||
* Update the version number on download page | * Update the version number on download page | ||
* Create a new section on download archive page | * Create a new section on download archive page | ||
− | |||
* Create a new section in the New & Noteworthy | * Create a new section in the New & Noteworthy | ||
+ | * ''major releases'' Add a link to the new API baseline on the download archive page and update the developer page | ||
+ | * ''major releases'' Archive [http://www.eclipse.org/projects/project-plan.php?projectid=mylyn project plan] in mylyn/docs | ||
== Update Babel == | == Update Babel == | ||
Line 116: | Line 135: | ||
== Update Eclipse Info Center == | == Update Eclipse Info Center == | ||
* Inform webmaster of new help plug-ins for the [http://help.eclipse.org Eclipse info center] | * Inform webmaster of new help plug-ins for the [http://help.eclipse.org Eclipse info center] | ||
+ | |||
+ | == Update Marketplace Listings == | ||
+ | * ''major releases'' [http://marketplace.eclipse.org/content/mylyn Mylyn] | ||
+ | * ''major releases'' [http://marketplace.eclipse.org/content/mylyn-trac-connector Trac Connector] | ||
= After the Release = | = After the Release = | ||
Line 122: | Line 145: | ||
* Edit versions in org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh | * 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 | org.eclipse.mylyn/org.eclipse.mylyn.releng/bin/update-versions.sh | ||
+ | * Set versions of org.eclipse.mylyn.commons/org.eclipse.mylyn to the next release version | ||
+ | * Update version in CoreUtil.FRAMEWORK_VERSION | ||
+ | * Update URL in ConnectorDiscoveryWizardMainPage.DEFAULT_DIRECTORY_URL | ||
== Update Repository URL == | == Update Repository URL == | ||
− | * Edit URL in org.eclipse.mylyn-feature/feature.xml | + | * ''major release'' Edit URL in org.eclipse.mylyn-feature/feature.xml |
== Create Download Area == | == Create Download Area == | ||
− | * Create download directory | + | * Create download directory |
− | mkdir ~/downloads/mylyn/ | + | mkdir ~/downloads/mylyn/drops/3.7.0/ |
− | setfacl -m user:hudsonBuild:rwx ~/downloads/mylyn/ | + | 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 | 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 | * Update snapshot sites | ||
cd ~/downloads/mylyn/snapshots/ | cd ~/downloads/mylyn/snapshots/ | ||
~/releng/bin/create-composite.sh -r | ~/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 - | + | setfacl -R -x user:hudsonBuild ~/downloads/mylyn/incubator/drops/3.6.0/ |
+ | * ''major release'' Create Incubator site | ||
cp -a ~/downloads/mylyn/incubator/3.6 cp -a ~/downloads/mylyn/incubator/3.7 | cp -a ~/downloads/mylyn/incubator/3.6 cp -a ~/downloads/mylyn/incubator/3.7 | ||
− | + | emacs ~/downloads/mylyn/incubator/3.7/composite.index | |
+ | * Update composite site | ||
+ | cd ~/downloads/mylyn/incubator | ||
~/releng/bin/create-composite.sh -r | ~/releng/bin/create-composite.sh -r | ||
− | |||
== Add Bugzilla Versions and Milestones == | == Add Bugzilla Versions and Milestones == | ||
− | |||
* Add Bugzilla Milestones for the next release | * Add Bugzilla Milestones for the next release | ||
+ | * ''major release'' Add Bugzilla Version for the current release | ||
== Update Project Plan == | == Update Project Plan == | ||
− | * Update versions and queries in all plan.xml documents | + | * ''major release'' Update versions and queries in all plan.xml documents |
− | * Update release plans in [https://dev.eclipse.org/portal/myfoundation/portal/portal.php portal] | + | * ''major release'' Update release plans in [https://dev.eclipse.org/portal/myfoundation/portal/portal.php portal] |
Revision as of 10:14, 5 June 2012
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 Test Install
- 2.6 Prepare Download Area
- 2.7 Update Release Repository Content
- 2.8 Create API Baseline
- 2.9 Update Website
- 2.10 Update Babel
- 2.11 Announce Release
- 2.12 Update http://eclipse.org/mylyn/updates.xml
- 2.13 Update Eclipse Info Center
- 2.14 Update Marketplace Listings
- 3 After the Release
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
- 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 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 3_7_m_3_6_x git submodule init git submodule update
- major release Branch each sub-project
git submodule foreach git checkout -b 3_7_m_3_6_x master
- major release Request mylyn-3.6.x-release job on Hudson cloning an existing release job
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, Project context menu > Fix Copyrights
Backport changes to the Platform Specific Branches
- Merge changes from master in each branched module
git merge master
Update Integration Repository
- Update integration repository to point to latest sub-project revisions
cd src-3_6_x ./update.sh
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
Test Install
- Do a test install from http://download.eclipse.org/mylyn/snapshots/weekly
Prepare Download Area
- Log into Eclipse.org
ssh build.eclipse.org
- Remove Old Integration Builds
rm -rf ~/downloads/mylyn/drops/3.6.0/I*
- Copy Release to archive.eclipes.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 dev.eclipse.org
- Update filters in ~/downloads/mylyn/releases/*/composite.index
- Update release composite sites
cd ~/downloads/mylyn/releases/ ~/releng/bin/create-composite.sh -r
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
- Create a new section on download archive page
- Create a new section in the New & Noteworthy
- major releases Add a link to the new API baseline on the download archive page and update the developer page
- major releases Archive project plan in mylyn/docs
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 /mylyn/notification.xml in website CVS
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
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
- Set versions of org.eclipse.mylyn.commons/org.eclipse.mylyn to the next release version
- Update version in CoreUtil.FRAMEWORK_VERSION
- Update URL in ConnectorDiscoveryWizardMainPage.DEFAULT_DIRECTORY_URL
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 cp -a ~/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
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 versions and queries in all plan.xml documents
- major release Update release plans in portal