It's all about the answers!

Ask a question

SCM components and streams


Tom Frauenhofer (1.3k58435) | asked Sep 16 '09, 8:37 a.m.
Yet another SCM question about how to arrange components and streams.

My project has about 6 components, each of which I regard as separately
buildable pieces of software. Is there any other working definition of
a component ?

To me, separately buildable implies that each has its own unique change
history. Does this mean that each component should be in its own stream ?

My developers usually only need a subset of the components since only
some of them are being actively worked on. Is this another reason to
put components in their own stream or is RTC comfortable allowing
developers to load only some components ?

I know RTC can go either way but I'd like to understand what the Jazz
project itself does in this regard, and what the design intent of the
RTC SCM is.

Any help appreciated
Regards
Dave

3 answers



permanent link
Tim Mok (6.6k38) | answered Sep 16 '09, 8:58 a.m.
JAZZ DEVELOPER
I would define a component as a group of source code that defines a purpose. Then a group of components can be included in a stream to define the entire project. You may want to create other streams to work on different versions of your project or different areas.

For your case, some of your developers need a subset of components so a stream might be useful for that subset. They can easily create a remote workspace on the subset and you can include any components (and a specific baseline of the component) they depend on.

permanent link
Geoffrey Clemm (30.1k33035) | answered Sep 16 '09, 9:09 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Comments below:

David Ward wrote:
Yet another SCM question about how to arrange components and streams.

My project has about 6 components, each of which I regard as separately
buildable pieces of software. Is there any other working definition of
a component ?

Pragmatically, a component is a set of files/directories that are
baselined together. Also note that "moving" a file/directory works most
smoothly within a component, so that motivates you not to make
components too small.

To me, separately buildable implies that each has its own unique change
history. Does this mean that each component should be in its own stream ?

Whether or not something is a component is independent of whether or not
it appears in more than one stream. In general, you add a component to
a stream whenever you want files of that component to appear in that
stream. (You can have a workspace picks up different components from
different streams, but that involves more effort in setting up and
managing those workspaces, so you wouldn't want to do that unless there
is some good reason for doing so).

My developers usually only need a subset of the components since only
some of them are being actively worked on. Is this another reason to
put components in their own stream or is RTC comfortable allowing
developers to load only some components ?

RTC makes it very easy for developers to declare what components they
want in their repository workspace, and then to declare what files from
the repository workspace should be loaded into their file system sandbox.

I know RTC can go either way but I'd like to understand what the Jazz
project itself does in this regard, and what the design intent of the
RTC SCM is.

We follow the practices described above (:-).

Cheers,
Geoff

permanent link
Tom Frauenhofer (1.3k58435) | answered Sep 18 '09, 10:17 a.m.
Thanks Geoff

Quoting

(You can have a workspace picks up different components from
different streams, but that involves more effort in setting up and
managing those workspaces, so you wouldn't want to do that unless
there >is some good reason for doing so).

So what would constitute a good reason for having a workspace flow
components from different streams ?



On 9/16/2009 9:09 PM, Geoffrey Clemm wrote:
Comments below:

David Ward wrote:
Yet another SCM question about how to arrange components and streams.

My project has about 6 components, each of which I regard as
separately buildable pieces of software. Is there any other working
definition of a component ?

Pragmatically, a component is a set of files/directories that are
baselined together. Also note that "moving" a file/directory works most
smoothly within a component, so that motivates you not to make
components too small.

To me, separately buildable implies that each has its own unique
change history. Does this mean that each component should be in its
own stream ?

Whether or not something is a component is independent of whether or not
it appears in more than one stream. In general, you add a component to a
stream whenever you want files of that component to appear in that
stream. (You can have a workspace picks up different components from
different streams, but that involves more effort in setting up and
managing those workspaces, so you wouldn't want to do that unless there
is some good reason for doing so).

My developers usually only need a subset of the components since only
some of them are being actively worked on. Is this another reason to
put components in their own stream or is RTC comfortable allowing
developers to load only some components ?

RTC makes it very easy for developers to declare what components they
want in their repository workspace, and then to declare what files from
the repository workspace should be loaded into their file system sandbox.

I know RTC can go either way but I'd like to understand what the Jazz
project itself does in this regard, and what the design intent of the
RTC SCM is.

We follow the practices described above (:-).

Cheers,
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.