Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

EWM - 7.0.2 - Best way to split an SCM stream with multiple components into multiple streams?

Hi,

We've been working on multiple components under a single development stream, however, we've started to get a point where we could do with separate streams for some of these components.

What's the best practice way to move some of these components into their own stream?
From....
STREAM A
- Component 1
- Component 2
- Component 3

To...
STREAM A
- Component 1

STREAM B
- Component 2

STREAM C
- Component 3

0 votes



3 answers

Permanent link
Glynn,

I chose to reword my first answer. My understanding is:

You do not split a stream. The stream does not "contain" anything.

Components contain the history of the elements under SCM. Streams only select the configuration of all the current states of all SCM items in all components it tracks. Components can be referred to by multiple streams, the streams select which item states.

So, what do you want to achieve?

If you want to make sure to create a new stream that contains the same component baseline another stream selects, you have multiple options. You can create a snapshot or baselines and then create new streams and add the component baselines.

You can also duplicate a stream, if I am not mistaken in eclipse and then remove the components you don't want.

There is no best option with as little context you gave.

Also note, once you have multiple streams there can be multiple histories for the items in the components referred to by different streams.

0 votes

Comments

We have a system built of multiple components, but we're starting to realise we may need to branch certain 'components' into different configurations/variants (like in GCM) and possibly re-use different variants of components in different top level components (again, like in GCM).

Glyn, I think you need to look into the documentation and articles https://jazz.net/library/#sort=pubDate&tag=SCM and understand EWM SCM better. It is impossible to explain all that here. 


You can think of streams to be branches the components in a stream track the history and changes for the data in them. You can have the same component in several streams and work on the data represented in the component. If you change a file F1 in component C1 in stream S1 and deliver and you do a different change to the file F1 in component C1 in stream S2 and deliver you have created two different histories.

The component contains all the SCM historical data for the elements it contains. The stream selects the state of the historical data for the component it contains.


Permanent link
As I understand it, products or systems have components and components have streams. I could be wrong, as IBM support documentation is uniformly poor. However, I found these Jazz articles quite helpful.
Patterns for stream usage: https://jazz.net/library/article/90581
Defining your component strategy: https://jazz.net/library/article/90573

Once you've read those, this will be the more useful for you.
Multiple Stream Development: https://jazz.net/library/article/40

0 votes

Comments

In Jazz SCM, a stream selects the configuration of one or more components. Components contain the scm data for the folders or Eclipse projects. You check in changes into the component in the stream. To Baselines are created on components in a stream to select a consistent set of versions of files. 

The first articles are for ETM/DNG and not EWM. The assumption was the software developers are using SCM systems for years and do not have to change.

https://jazz.net/library/article/126 is the SCM FAQ.

I recognize that SCM is different from RM. However, one would expect that the definitions of Components and Streams would be the same across the different modules. If (as you say) they are not, then IBM didn't do a very good job of systems design.

EWM SCM is way older than global configuration management and ETM/RM configuration management. I am also not sure how to bridge that gap.

In EWM SCM, think of component being available to subdivide the software in separate groupings e.g. architectural or layers. 


Permanent link

 Hi Glyn,


It is not possible to give any best practice without knowing the context. Are these mainframe sources? Java sources? A combination?

If there are references between sources in component 1 and component 2 it could be an advantage to have both in one stream.

In general, a recommendation could be to create a component per functional domain, and create the stream based on that. Optionally each stream could have a "public common" component, containing the interfaces to the sources of the other stream.

As I said, there is no best practice, it depends on your context...

Regards,
Bernd van Oostrum
ASIST

0 votes

Your answer

Register or log in 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.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details
× 12,019
× 1,202
× 24

Question asked: Feb 28 '23, 12:02 p.m.

Question was seen: 1,561 times

Last updated: Mar 08 '23, 8:53 a.m.

Confirmation Cancel Confirm