It's all about the answers!

Ask a question

How to work with components shared between streams


Tullio Tancredi (2144) | asked Jul 09 '08, 7:40 a.m.
Hi all,
we are evaluating to use Jazz for developing next release of our product. At the moment, I'm studying the Jazz source control in order to port all our product source code on Jazz. Our product is a suite of releases with several components. Some of these components are shared with more releases.
My question is how is it possible to share a component with more streams and assure that every changes to that component will be available to each stream that includes it?

I made some tests by defining for examples the following two streams:
a) stream_a: common_component
b) stream_b: common_component + component_1 + component_2

where in the stream_b, the common_component has been added as a component belonging to an other stream (stream_a).

I shared the common_project (it is the project contained in the common_component) with the stream_a and all other projects (contained into the component_1 + component_2) with the stream_b.

What I saw is that if I change some files in the common_component on my repository workspace and deliver changes on the related stream (stream_a), the repository files related to the common_component contained into the stream_a are correctly updated while the repository files related to the common_component contained into the stream_b are not updated.

The problem is that in order to build the stream_b I need the last version of code of all components (common_component + component_1 + component_2).

Could someone help me in finding the right way to share source code / components between different streams and so to make available changes on common code to all streams that contain that components?

Thank very much in advance,

Tullio

6 answers



permanent link
Dmitry Karasik (1.8k11) | answered Jul 09 '08, 7:40 a.m.
JAZZ DEVELOPER
On Wed, 09 Jul 2008 08:35:51 -0400, John Camelon wrote:

The workflow that we currently support is as follows:

- deliver changes to stream_a
- change flow target to stream_b
- deliver changes to stream_b



Alternatively you could create a common stream that contains common
component. Then you can have a scoped collaboration with that stream for
that component and you'll always see the latest incoming for common
component while getting the latest from your respective stream for other
components.

- Dmitry

permanent link
John Camelon (1.7k14) | answered Jul 09 '08, 8:35 a.m.
JAZZ DEVELOPER
Hello,

The workflow that we currently support is as follows:

- deliver changes to stream_a
- change flow target to stream_b
- deliver changes to stream_b

Each stream has its own history, and teams can choose when to upgrade a
particular component according to their process and tastes.

There currently is no way in Jazz SCM to make stream_b always contain
the same value as stream_a for common_component.

HTH,
Johnc
SCM Server

Tullio_Tancredi wrote:
Hi all,
we are evaluating to use Jazz for developing next release of our
product. At the moment, I'm studying the Jazz source control in order
to port all our product source code on Jazz. Our product is a suite of
releases with several components. Some of these components are shared
with more releases.
My question is how is it possible to share a component with more
streams and assure that every changes to that component will be
available to each stream that includes it?

I made some tests by defining for examples the following two streams:
a) stream_a: common_component
b) stream_b: common_component + component_1 + component_2

where in the stream_b, the common_component has been added as a
component belonging to an other stream (stream_a).

I shared the common_project (it is the project contained in the
common_component) with the stream_a and all other projects (contained
into the component_1 + component_2) with the stream_b.

What I saw is that if I change some files in the common_component on
my repository workspace and deliver changes on the related stream
(stream_a), the repository files related to the common_component
contained into the stream_a are correctly updated while the
repository files related to the common_component contained into the
stream_b are not updated.

The problem is that in order to build the stream_b I need the last
version of code of all components (common_component + component_1 +
component_2).

Could someone help me in finding the right way to share source code /
components between different streams and so to make available changes
on common code to all streams that contain that components?

Thank very much in advance,

Tullio

permanent link
Dmitry Karasik (1.8k11) | answered Jul 09 '08, 9:03 a.m.
JAZZ DEVELOPER
On Wed, 09 Jul 2008 14:57:59 +0000, Tullio_Tancredi wrote:

what do you mean with "have
a scoped collaboration with that stream for that component"? Is it
related to creating scoped flow targets for the streams? If yes, how I
can do that?


Once you load your workspace, select the common component in the pending
changes view and run "Change flow target...", select the common stream.

- Dmitry

permanent link
Tullio Tancredi (2144) | answered Jul 09 '08, 10:49 a.m.
On Wed, 09 Jul 2008 08:35:51 -0400, John Camelon wrote:

The workflow that we currently support is as follows:

- deliver changes to stream_a
- change flow target to stream_b
- deliver changes to stream_b



Alternatively you could create a common stream that contains common
component. Then you can have a scoped collaboration with that stream for
that component and you'll always see the latest incoming for common
component while getting the latest from your respective stream for other
components.

- Dmitry

Thank you John and Dmitry for your replay.
Dmitri, I have a common stream that contains only common component. what do you mean with "have a scoped collaboration with that stream for that component"? Is it related to creating scoped flow targets for the streams? If yes, how I can do that?

Thanks again.
Ciao,
Tullio

permanent link
Stefan Stern (4062128) | answered Jul 10 '08, 2:54 a.m.
Would it be an alternative to create a repository workspace for the
common stream and another one for the stream_a?
In that case he won't see the outgoing new common component when
delivering to stream_a.
A build workspace - if exists - could be setup by adding components from
both streams. What I do not know is, whether the build engine will be
capable to accept all incoming changes from stream_a and common_stream
at the same time, as the build workspace carries just one of them as
flow target.

Regards,
Stefan


Dmitry Karasik schrieb:
On Wed, 09 Jul 2008 14:57:59 +0000, Tullio_Tancredi wrote:

what do you mean with "have
a scoped collaboration with that stream for that component"? Is it
related to creating scoped flow targets for the streams? If yes, how I
can do that?


Once you load your workspace, select the common component in the pending
changes view and run "Change flow target...", select the common stream.

- Dmitry

permanent link
Dmitry Karasik (1.8k11) | answered Jul 10 '08, 4:02 a.m.
JAZZ DEVELOPER
On Thu, 10 Jul 2008 08:54:38 +0200, Stefan Stern wrote:

Would it be an alternative to create a repository workspace for the
common stream and another one for the stream_a? In that case he won't
see the outgoing new common component when delivering to stream_a.

You should not be seeing an outgoing component addition. You just need to
set that component to flow to the common stream instead of stream_a.

A build workspace - if exists - could be setup by adding components from
both streams. What I do not know is, whether the build engine will be
capable to accept all incoming changes from stream_a and common_stream
at the same time, as the build workspace carries just one of them as
flow target.

If you add a component flow to the build workspace for the common
component that flows to the common stream, it will accept incoming
changes from that stream for that component.

- Dmitry

Your answer


Register or to post your answer.