It's all about the answers!

Ask a question

How sync the Integration/Bug_Fix/DEV stream


1
1
Jia Jia Li (8057152192) | asked Aug 23 '12, 2:34 a.m.
Hi, we already have two streams, dev and integration, when the task are completed, scm will deliver the changeset from dev to integration. 
Now we may need one bug_fix stream to fix some urgent bug. Some normal bug can still use dev stream. So scm should also deliver changesets from bug_fix to integration stream. I think it should also deliver the same changesets to dev stream from bug_fix or accept them from integration stream to dev stream. 
When fix bug, the scm also should ensure the bug_fix stream is the same as the integration stream...
It seems a little complex. The process I think will be the following:
1. developers write code in DEV stream workspace, deliver to DEV stream.
2. SCM deliver the change sets to INT stream, then build engineer to the build.
3. SCM make sure the BUG_FIX stream the same as INT stream. but HOW?
4. developers fix bug in BUG_FIX stream. 
5. SCM deliver change sets from BUG_FIX to INT stream. at the same time deliver to DEV stream. - is it best solution?

Any best practice for it? Thanks very much!

2 answers



permanent link
Geoffrey Clemm (30.1k33035) | answered Aug 24 '12, 4:07 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
The simplest approach is to not have a bug-fix stream.
Each developer that performs emergency bug-fixes has their own bug-fix workspace on the integration stream.
When a bug-fix needs to be performed, the integration stream is locked down so that only a given bug-fix developer can deliver.
A developer that is assigned the bug-fix goes to their bug-fix workspace (creating one if they don't have one yet).
They accept any incoming changes, which catches them up to the latest state of the integration stream.
They make their bug fix, and run all the builds/tests that are required directly out of the workspace (using "personal builds").
Once all testing has taken place, they deliver their changes to the integration stream from their bug-fix workspace, and the integration stream can be opened up for regular deliveries.

To deliver the bug-fix to the development stream, the bug-fix developer just goes to their regular development workspace, and points it at the integration stream, which allows them to accept the bug-fix change sets, and then they switch back to the development stream as the current target.  They accept any incoming changes from the development stream, do any merging they might need to do, and then deliver the result to the development stream.

If the bug-fix is taking too long, or if there are multiple emergency bug-fixes, then you might need to open up the integration stream for delivery by someone else.   Once that delivery is complete, the integration stream is again reserved for the bug-fix developer, and the bug-fix developer will have to accept those changes into their bug-fix workspace, and restart their testing.

Comments
Jia Jia Li commented Aug 24 '12, 6:46 a.m.

Thanks Geoffrey! We will consider your recommendation! Here is a quick question: how to locked down the INT stream quickly? I remember there is no lock for stream...I guess you may mean restrict the deliver behavior with one per-condition?


Geoffrey Clemm commented Aug 24 '12, 8:57 a.m. | edited Aug 24 '12, 8:59 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

Yes, I meant via a process pre-condition. Probably the easiest way to do this in RTC-4.0 is:
- Create an "emergency-bug-fixer" role.
- In the project/team area that owns the stream, in the process_configuration -> team_configuration, operation_behavior, select the source_control -> deliver(server) operation, for the Everyone role, add the "restrict who can deliver to the components in the stream" precondition. Select the appropriate roles for your organization.
- When you need an emergency bug-fix, give the person doing the fix the emergency-bug-fixer role.
- Configure the "who can deliver" precondition for all the components in the stream (you can multi-select, to do them all in one request), so that only the emergency-bug-fix role is selected.
When you are ready to unlock the stream, configure that precondition back to let the other roles deliver to the stream.
There probably is a way to make this even faster by writing a program that uses the Java API, but I've never tried to do that myself.


permanent link
Takehiko Amano (1.3k3741) | answered Aug 23 '12, 3:18 a.m.
JAZZ DEVELOPER
Check the stream strategy written by Dan Toczala.

  https://jazz.net/library/article/599

"Using Side Streams" is basically the same as bug_fix. As for #3, I expect that Bug_Fix stream and INT steam can be different because Bug_Fix tend to be off from previous release(s). So in this case, check baselines of each components are valid. As for #5 step, I think just deliver bug_fix to DEV stream should be enough. Because, the bug_fix itself may conflict with current development.

Practically, some projects prefer "patch" in stead of deliver/accept for defect fixes due to too much conflicts caused to current development. Creating "patch" is available in "Pending Changes" view. (right mouse click -> New .. -> Patch..)

Comments
Jia Jia Li commented Aug 23 '12, 11:52 a.m.

Thanks Amano. I will read the article carefully.

For #3 your comments: yes, BUG_FIX is diff with INT stream, I just say at the time to fix but, scm should ensure the BUG_FIX is the same version of the INT stream which has the bugs. I agree with you check the baseline, but one by one check maybe time-consumed..

For #5 your comments: The test environment build is from the INT stream, I think the bug_fix change sets are urgent which can not wait 1 min to deliver to INT stream. It is why need deliver twice to INT and DEV. So complex..

For your information of patch, I know patch are your changeset modifier and can be transfer offline with RTC. But there may be one problem: If you apply the patch to DEV and deliver to INT, if BUG_FIX target to INT to accept change sets, there maybe conflict. But if I do not change BUG_FIX target to INT, I only replace the BUG_FIX comp baseline with INT, the patch should be work fine!

Amano, do you have any more comments? Or do you suggestion what is the process?


Takehiko Amano commented Aug 24 '12, 4:39 a.m.
JAZZ DEVELOPER

Geoffrey Clemm also posted good idea for urgent bug fix issue. Thanks Geoff !

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.