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

for changesets with multiple workitems, how to know the stream for each workitem

When a changeset is associated with multiple workitems for multiple streams, how can you tell which stream each workitem is for using the plain java API?  Let me give an example...
workitem 1 is fixed with a changeset
then that changeset is delivered to another stream with workitem 2
then another stream with workitem 3

Later, I do a IWorkspaceConnection.compareTo() between a snapshot and the current stream.  This would give me the list of changesets that have occurred between the snapshot (say when it was shipped) and now (which would be all the fixes since it shipped).

I then do the getChangeSetLinkSummary() call to get the associated links.  I loop through looking for changeset links and get the workitems.  I will find 3 in the sample above.  How can I tell which one is associated with the stream I am connected to?

0 votes



3 answers

Permanent link
Jay,

Each work item should have a planned for which would tell you you what release or iteration the work item applied to. You would need to access that information in order to determine what release the work item was associated with. From an SCM standpoint, there is 1 change set that has been delivered to 3 streams.

1 vote

Comments

That is relying on a field that is entered by a developer/L3.  That means mistakes will be made.  I am looking for a way to accurately determine this information that does not rely on manual input.  Also, I just found an example where someone used a single workitem and delivered a changeset to multiple streams with that single workitem.  That would clearly break the use of a field within a workitem. 

Is there anyone who is currently delivering fixes on the workitem basis and not delivering entire jars?  If so, how are you handling this? 

Jay,

I don't understand what you mean by "delivering fixes on the workitem basis and not delivering entire jars". However, there is no direct link between a work item and a stream. Instead, the link is through the iterations defined in a project area and the relationship between that project area and the stream. For instance, a stream is typically owned by a project or team area. It is possible to configure the process of that process area to ensure that a certain process is followed. One can configure an SCM deliver advisor to ensure that changes delivered to a stream match a desired iteration. I'm not an expert on work item advisors but I believe it is possible to restrict the changes made to a work item once it is resolved which would address you comment about the potential for mistakes.


Permanent link
Jay,

as far as I can tell, work items are not connected to any stream. So you can't make a connection to any stream, unless you have information in the work item providing this information. A reference presentation could potentially be used to select a stream https://rsjazz.wordpress.com/2013/12/17/using-reference-presentations-to-create-links-and-show-linked-work-items-in-rtc/ to provide this kind of information. I have not tried that yet, so I don't know if there is a reference presentation for streams.

0 votes

Comments

I picked the wrong blog post, I meant this link http://rsjazz.wordpress.com/2013/12/12/using-rtc-work-item-attributes-to-display-rtc-components-and-other-item-data/ . Unfortunately there seems to be no direct way to select a stream as objects.

It is unclear how you are supposed to be able to service products where you want to ship individual fixes and their prereqs.  You would normally fix problems with a work item and it may involve multiple change sets.  You need to be able to associate a change set to a work item for a given stream to deliver this service.  This is a very common way of delivering service and it is surprising that RTC does not do this...  It is not reliable to have hundreds of programmers remember to put the right data in some field to identify the stream. 

The way how we, as far as I know, work is by having streams for the versions that are out there and fix streams derived from them. Developers create a workspace for the version they need to work against from a stream, create the fix and get reviews etc done. The Found In attribute in the work item as well as the flow target of their workspace they use to develop tells the developer all they need to know.

I would assume that we don't have an attribute like you describe because we simply don't need to use one, due to the practices developers are using and the common data in a work item.

Without the ability to associate a change set with a workitem for the current stream, I do not see how you can reliably deliver individual fixes with prereqs.  I believe we are basically broken in that area.  The reason is that we deliver fixes in workitems.  All of the workitem must be delivered.  When you have a prereq changeset, the real prereq is the workitem.  Otherwise if the prereq has multiple change sets, you will deliver part of a workitem fix and not the complete fix.  Teams in WebSphere have been using this approach for many years and based on what I am hearing, that approach is is not safe in RTC.  It sounds like only jar level service is accurately supported in RTC.  How are you actually delivering service?  At the jar level or individual fix level?


Permanent link
Is there anyone actually doing individual fixes instead of jar replacement?

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
× 10,938
× 169

Question asked: Feb 17 '14, 12:21 p.m.

Question was seen: 5,788 times

Last updated: Feb 24 '14, 11:23 a.m.

Related questions
Confirmation Cancel Confirm