• 2 replies
  • Latest Post - ‏2013-04-02T06:41:59Z by Dave-Robinson
47290 Posts

Pinned topic UCM: how to deliver changes in the foundation?

‏2013-03-08T17:07:15Z |

I am curious about the following scenario:

There is a UCM project which consists of several modifiable components (i.e. this project's source code) and a set of non-modifiable components (i.e. external "3rd party" libraries). When there is a new version of one of those external components, you'd want to create a separate stream to adapt your code to work with it. In that stream you'd rebase to a baseline corresponding to that new version and do the necessary changes in your code. But when it comes to deliver to the parent stream, it seems there is no automated way of "delivering" that change in the foundation, which is a new version of external component. I've tried to play with policies, but still no results. It seems you are forced to remember all those changes and rebase the target stream to proper versions after the delivery of changes in your code.

Am I right or there is a better way to do it?

Thanks a lot in advance!

  • jeff98air
    817 Posts

    Re: UCM: how to deliver changes in the foundation?

    Yes, you have it correct. I've been doing it like that for many years across many projects and it hasn't been a problem. You just need some coordination at the time of that delivery to ensure you make the 3PP changes on the integration stream at the right time.

    I assume (and hope) you are using a composite baseline on the project and child streams rebase to a single composite baseline rather than having to deal with multiple baselines of multiple components. If so, then when a developer changes their stream configuration to use a different 3PP baseline, the baseline shows as "overridden" in their stream. They don't have to "remember" the config changes they made, it's all listed right there in their dev stream config.

    I've found that the added step of having to intentionally make 3PP config changes like that on the integration stream helps keep accidental changes from happening. There are times when devs need to override baselines in their dev stream (for testing purposes) that aren't intended to be delivered to the integration stream. If those changes got delivered get the drift.

    -Jeff Ng
  • Dave-Robinson
    116 Posts

    Re: UCM: how to deliver changes in the foundation?

    Suppose in your project you have this one stream dedicated to previewing the rebase onto new 3PP baseline(s), you could do a trigger that combines the rebase of the integration stream with the deliver from the preview stream.
    preop deliver_start ... -exec "script to rebase the parent stream"
    attached to the preview stream
    postop rebase_complete ... -exec "deliver here from my child preview stream"
    attached to the integration stream

    That is, YES, you need to do the two operations
    but you can automate the combination so it doesn't get forgotten