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
|
3 answers
![]()
Ralph Schoon (63.3k●3●36●46)
| answered Feb 28 '23, 12:32 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER edited Feb 28 '23, 12:38 p.m.
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.
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. |
![]()
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
Comments ![]() FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
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.
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. ![]() FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
EWM SCM is way older than global configuration management and ETM/RM configuration management. I am also not sure how to bridge that gap.
|
![]() 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
|
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.