930 likes | 1.06k Views
Creating an RTC Hot Fix. September 18, 2013. Steps for creating a hot fix. Find the work item where the defect is resolved. Check for existing hot fixes. Create a target release installation. Create a repository workspace for the target release. Build. Merge. Rebuild. Create the hot fix.
E N D
Creating an RTC Hot Fix September 18, 2013
Steps for creating a hot fix • Find the work item where the defect is resolved. • Check for existing hot fixes. • Create a target release installation. • Create a repository workspace for the target release. • Build. • Merge. • Rebuild. • Create the hot fix. • Test. • Deliver.
Find the work item where the defect is resolved. • Often is will be mentioned in the hot fix summary or description. • Example • Hot fix request 275925 • Summary: Defect 255803 backport to 3.0.1.3
Check for existing hot fixes • Sometimes a hot fix will be requested, and such a hot fix will already exist. The first step should be to see if a hot for already exists. • Look for links on the original defect. • If no links found, run a query.
Example • Hot Fix 275925 requested • Defect 255803 backport to 3.0.1.3 • Look at defect 255803 • Links tab • Link tab shows Hot Fix 259824 under Related.
Example • But, I added it after the fact! It wasn’t there before. So, don’t give up if you don’t see a link. • Search • Jazz Support (Private) project area • I queried for all delivered source control hot fixes • Type is “Hot Fix” • Status is “Delivered” • Filed against in RTC-CCM->Source Control • This returned 36 work items • One of them is 259824: Hotfix request for wi 255803 User without permission can unlock file
Create a target release installation. • If the hot fix is client only, you might be able to get by creating only a client installation, if you can find a compatible server. • For server hot fixes, you will need to create a server installation, and probably a client installation as well.
Example • Hot fix request 277616 • Summary: PM95023 - Cannot browse baselines before the latest 1024 • Customer requested hot fix for 4.0.1. • I did the fix for 4.0.5, so I know that the fix is client only. • So, I installed a 4.0.1 client. • C:\RTC\RTC-Client-Win-4.0.1
Create a repository workspace for the target release. • First create a new Eclipse workspace. • You don’t want to use the same Eclipse workspace you are using for Source Control Integration, because the sanddbox for the common components would be written to the same location. • Workspaces • RTC-dev (for current release development) • RTC-test (for current release testing) • RTC-dev-4.0.1 (for building 4.0.1 hotfix) • RTC-test-4.0.1 (for testing 4.0.1 hotfix)
Create a repository workspace for the target release. • Find the appropriate snapshot. • Team Artifacts View • Rational Team Concert • Source Control • RTC Integration stream -> Show Snapshots • Find the GA snapshot for the release • Note use of RTC Integration stream, not Source Control Integration stream • Note that naming conventions changed over time
Create the repository workspace from the snapshot • Don’t set a flow target. • Hot fixes do not flow to a stream. • Load the appropriate components • Typical list is the following • Filesystem • RelEng • RelEng Common • RelEng RTC • RelEngBuilder • RTC Commons • SCM • Target Definitions*
Find the target platform • Newer releases • Target Definitions component • Older releases • RTC Commons component • Name might not mention “target platform” • Look at history of the relevant component. • Find the correct change set.
Find the target platform • Release 3.0.1.3 • Target platform is in RTC Commons component. • From the RTC Commons component in your repository workspace • Show History • Look for change sets near the date of the snapshot that might reference “target platform”
Find the target platform • The 3.0.1.3 GA snapshot is dated March 26, 2012
Find the target platform • It looks like the change set for the target platform is this one. • "203079: [RTC] Prepare the 3.0.1.3 stream for GA - end game - rtc.3x.jcb RTC-I20120326-1442", "Li Zhu", "Mar 27, 2012 6:35 AM“ • To verify, I looked for a hot fix that Matt created on top of 3.0.1.3 to see what he used for his target platform. • I compared his hot fix repository workspace with the 3.0.1.3 snapshot.
Find the target platform • Yes, this is the correct change set for the target platform. • Accept the target platform change set.
Find the target platform • 4.0.1 hot fix • Now it’s in the Target Definitions component and is easier to find!
Find the target platform • The change sets corresponding to target platforms are also listed on two wiki pages. • For older releases (3.X) • https://jazz.net/wiki/bin/view/Main/RTCTargetPlatformForGAReleases • For newer releases (4.X) • https://jazz.net/wiki/bin/view/Main/RTCTargetPlatformForGAReleases40x#RTC_4_0_1
Build • Once you have your repository workspace set up for the target release, and have chosen the correct target platform, build without your changes first. • If this is successful, then you can merge in your changes.
Build • Some errors are expected and can be ignored
Merge and rebuild • Find the change set or change sets from the fix you are backporting. • Accept the change set(s) into your repository workspace for your target release. • You will probably get a message telling you there are gaps, and you will get a chance to merge. • For simple changes, it is easier to re-apply the change manually, rather than accept the change set.
Create change set for your fix • Create a new change set for your code changes. • Associate your change set to the hot fix work item. • When you are done, you can complete your change set, but do not deliver it to a stream.
Create the hot fix • Existing documentation • L3 Wiki page • https://jazz.net/wiki/bin/view/Main/RTCL3 • Two relevant sections discuss server and client hot fixes. • RTC Server Hotfix (Testfix) Process • RTC Client Hotfix (Testfix) Process • Work item • Task 16840 discusses how to build an update site
Create the hot fix • For an Eclipse client • Build an update site • For RTC CLI or server • Deliver jar files • In all cases, create a zip file.
Create the hot fix • Remember to use Eclipse workspace for development, specific to the target release. • Use the “Plug-in Development” perspective. • Find the bundles that you need to deliver. This will tell you if your hot fix is client, server, or both.
Example • Hot Fix 276616 - PM95023 - Cannot browse baselines before the latest 1024 • Changes are in 4.0.5 Enhancement 279270. • One change set, in Filesystem.
Example • Two bundles • com.ibm.team.filesystem.client • com.ibm.team.filesystem.ide.ui • Both are Eclipse client
Creating an update site Task 168400 - [HOW TO] Build an Update site for the RTC 3.X Client • Modify bundle version in the plug-in xml version number suffix. • Create a new feature project. • Add plug-ins to the feature project. • Create an update site project. • Add the feature. • Save and build.
Example (Hot Fix 276616) • Two bundles • com.ibm.team.filesystem.client • com.ibm.team.filesystem.ide.ui • Open each project in Package Explorer or Project Explorer • Open plugin.xml file • Click on Overview tab
Old plug-in version • The bundle part of the version before the date should match what is in your target installation (3.1.300).
Update plug-in version • Change the date on the plug-in version to today’s date and time.
Update plug-in version • Do so for both plugins.
Creating an update site Task 168400 - [HOW TO] Build an Update site for the RTC 3.X Client • Modify bundle version in the plug-in xml version number suffix. • Create a new feature project. • Add plug-ins to the feature project. • Create an update site project. • Add the feature. • Save and build.
Feature Project • Create a new feature project • Make sure you are in the Plug-in Development perspective • File->New->Project
Feature Project Task 168400 - [HOW TO] Build an Update site for the RTC 3.X Client • Modify bundle version in the plug-in xml version number suffix. • Create a new feature project. • Add plug-ins to the feature project. • Create an update site project. • Add the feature. • Save and build.
Feature Project • Set the versions correctly. • Versions are in Plug-ins tab.
Create update site Task 168400 - [HOW TO] Build an Update site for the RTC 3.X Client • Modify bundle version in the plug-in xml version number suffix. • Create a new feature project. • Add plug-ins to the feature project. • Create an update site project. • Add the feature. • Save and build.