Snapshot promotions between streams for distributed
https://jazz.net/help-dev/clm/index.jsp?topic=%2Fcom.ibm.team.build.doc%2Ftopics%2Fc_ee_z_promotion_builds.html&re=1&scope=null
I come across many usecases where distributed and embedded s/w teams want to follow a code promotion strategy like this where they have streams for Dev-QA-Prod. This promotion capability would be very useful for distributed customers.The promotion capability described in the infocenter requires some definition of a package and other things that are not really applicable to the distributed world.
All I really want to figure out is how to promote a snapshot from one stream to another and control that promotion via some work item workflow within RTC. Is this possible without having perform this operation as a user that switches flow targets in a specific workspace.
Accepted answer
Comments
Hi Geof,
In my scenario the people that "approve" the promotion tend to NOT be developers, but they govern the code in their respective environments. (Think Operations people in a small company that does not have a real release engineering team). The RTC streams represent their environments (DEV/QA/Prod). I have seen this with 3 different customer scenarios now. The enterprise extension for promoting work items is nicely aligned with the scenario they are looking for, but I can't figure out if this is possible for a distributed SCM scenario. I will explore your suggested method and try to make it easy for the non technical user.
btw....this request tends to come from customers that are familiar with Harvest or CA's SCM solution where they have the ability to "promote" packages(which are like change sets) from one stream to another without having to really get into a developer IDE.
Geof,
Here is a picture of what I am trying to do. Governing delivery by an approval almost works for me but I would need a custom approval for each stream (3 unique approvals to map to each environment). Is this possible? If so, how.
Or if there are other ideas to accomplish the same requirement I am eager to explore them.
One approach to have different approvals for different streams would be to use the "Require work items to Match Query" deliver precondition. Then you could use the "Approval Descriptors > Name" query term to specify that the approval name has to include the name of the stream, and use the "Approvals > State" query term to specify that the approval state must be approved. Note that you would have to have each stream be in its own team area, so that each stream would have a different query in the deliver precondition.
One other answer
I would assume it would be possible to use some custom RTC extensions that provide a similar capability with slightly adjusted requirements. The Enterprise Extensions are basically also just capabilities provided as RTC extensions shipped with the product. It should be possible to code up something similar.
Writing these kind of extensions is however not trivial. Here is a good place to start getting an understanding. It leads back to the RTC Extensions Workshop, you would run to get started. I am not familiar with the EE promotion mechanism, so I can't tell what kind of code you would have to write.
Comments
Ralph,
Another way to explain what I am trying to do is to move a specific snapshot (or baseline) from one stream to another and I would like to have this move easy and governed by a work item.
I don't want to force a user to deal with loading a workspace and changing flow targets. It is too confusing to the new RTC user.
..This is essentially what the "promote" feature does for the enterprise extensions, but it has some specialized configuration options that are unique to the mainframe world that are not applicable to the distributed world.
Any thoughts on how to make this scenario easier but keep it governed by a work item in capability that is available today?