It's all about the answers!

Ask a question

Setting up streams for development question


Daniel Spiess (5693) | asked Jun 18 '09, 3:35 p.m.
Hi,

I'm trying to figure out the best way to set up our source environment. What I'd like to see is something like the following:

Workspace -> Development -> Integration -> Main Line

Developers make their changes and post them to their team's development line. Then when each development line is frozen I'd like to push those changes to an integration line to make sure each team's changes do not conflict. Then ultimately when it's passed certification, I want to push those changes to the main line.

I'm new to Jazz and I'm confused about how I'd set this up. It looks like I need to be using flow targets, but it's not clear to me which direction things should be flowing in Jazz.

I've created two projects to test with, one called Cert and the other called Dev. I'd want Cert to be the only project which can deliver code to the repository, and Dev can only deliver to Cert. Should the flow targets for Cert include Dev, and the flow targets for Dev be blank? Or should it be the other way around? Are there easy to follow steps somewhere that I can use?

Thanks!
DJ Spiess

6 answers



permanent link
Anthony Kesterton (7.5k7180136) | answered Jun 19 '09, 11:35 a.m.
JAZZ DEVELOPER
Hi,

I'm trying to figure out the best way to set up our source environment. What I'd like to see is something like the following:

Workspace -> Development -> Integration -> Main Line

Developers make their changes and post them to their team's development line. Then when each development line is frozen I'd like to push those changes to an integration line to make sure each team's changes do not conflict. Then ultimately when it's passed certification, I want to push those changes to the main line.

I'm new to Jazz and I'm confused about how I'd set this up. It looks like I need to be using flow targets, but it's not clear to me which direction things should be flowing in Jazz.

I've created two projects to test with, one called Cert and the other called Dev. I'd want Cert to be the only project which can deliver code to the repository, and Dev can only deliver to Cert. Should the flow targets for Cert include Dev, and the flow targets for Dev be blank? Or should it be the other way around? Are there easy to follow steps somewhere that I can use?

Thanks!
DJ Spiess


Hi DJ

RTC uses a "flat" model - you don't have any hierarchy between the different areas (Dev/Integration/etc). These are called Streams in RTC. To move something from one stream to another - you need to change the "flow target" to next stream and then do a Deliver to the new stream.

Not too sure about the projects question - are there RTC Team Areas or plain Eclipse projects (Dev and Cert)?

anthony

permanent link
Daniel Spiess (5693) | answered Jun 19 '09, 2:45 p.m.


RTC uses a "flat" model - you don't have any hierarchy between the different areas (Dev/Integration/etc). These are called Streams in RTC. To move something from one stream to another - you need to change the "flow target" to next stream and then do a Deliver to the new stream.



So if I'm moving from one stream to another, do the two streams share the same component?

My thought was along these lines:

1) Create two projects, one Cert and the other Dev.
2) Add team members to Dev, and only the lead to Cert.

Do I add the component from Cert to the Dev stream, so that they share the same collection of files? Or should each have their own unique component?

permanent link
Evan Hughes (2.4k1318) | answered Jun 19 '09, 2:51 p.m.
JAZZ DEVELOPER
So if I'm moving from one stream to another, do the two streams share the same component?


Yes. Change sets are tied to components. In order to flow changes between streams/workspaces, they must have the same component in common.

e

permanent link
Anthony Kesterton (7.5k7180136) | answered Jun 19 '09, 3:51 p.m.
JAZZ DEVELOPER


RTC uses a "flat" model - you don't have any hierarchy between the different areas (Dev/Integration/etc). These are called Streams in RTC. To move something from one stream to another - you need to change the "flow target" to next stream and then do a Deliver to the new stream.



So if I'm moving from one stream to another, do the two streams share the same component?

My thought was along these lines:

1) Create two projects, one Cert and the other Dev.
2) Add team members to Dev, and only the lead to Cert.

Do I add the component from Cert to the Dev stream, so that they share the same collection of files? Or should each have their own unique component?

You may want to work your way though some of the tutorials on RTC. In particular, look at https://jazz.net/help/rational-team-concert/1.0.1/index.jsp?topic=/com.ibm.team.concert.tutorial.doc/topics/tut_rtc_abstract.html - lesson 6.

In the meantime, let's back up a little and talk about projects (project areas in RTC), streams and components.

You should have a single project area - you are unlikely to need more than one based on what you have said so far. Your different teams (Dev and Cert) will both be part of the same project area. You should create two streams - let's call them DevStream and CertStream. In these streams, make sure you include your RTC components for your work (let's pretend you have UI and Core as the two components you want in your system, and each stream will have a version of these components in them).

Your stream is a place where you share a set of components (RTC components) with other people that are delivering to that stream. You will all see the same component if you deliver and accept to the same stream.

People who are part of the Dev team will deliver their work to the DevStream. When the people in the Cert team want to take a version of what has been done in DevStream, they will point to the DevStream and load up a repository workspace with the work. They then switch (change their flow target) to the CertStream, and deliver. That has effectively moved that version of the components into the CertStream.

You do want to include the components in both streams. Remember that a component in a stream will effectively be disconnected from its twin in the other stream (there are ways to share a component so that you are always pointing at the same underlying component, but that does not appear to be what you need here).

Does that help at all?

anthony

permanent link
Daniel Spiess (5693) | answered Jun 19 '09, 4:12 p.m.
This makes lots of sense. Thanks! It does raise more questions though. :)

How do I control who can move code from the DevStream to the CertStream?

Can I control which team members belong to a specific component?

permanent link
Anthony Kesterton (7.5k7180136) | answered Jun 19 '09, 4:47 p.m.
JAZZ DEVELOPER
This makes lots of sense. Thanks! It does raise more questions though. :)

How do I control who can move code from the DevStream to the CertStream?

Can I control which team members belong to a specific component?


I thought that might be the next question... :-)

I have not had to control access to streams - but it makes perfect sense to be able to do so. I had a quick check in the help but did not see anything. A stream is owned by a team, but I don't think that prevents someone else from accessing it - could be wrong You may want to check this, and let us know - or wait from someone else to reply.

You might also want to take a look at the process bits of RTC - that allows control of delivery to a stream (ie you can control this delivery behaviour by user role).

Components are owned by teams, rather than team members. So you want to think about defining your teams carefully to match components to teams.

Keep asking questions though - I am definitely learning by thinking about the answers.

regards

anthony

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.