Process configuration for a team level code freeze
Hi,
My team contributes a couple of Jazz components to a development stream which also includes a number of other components which are developed by other teams. My team releases every couple of weeks. A couple of days prior to releasing, we enter code freeze, produce a release candidate, and test it. Once we have something which we are comfortable releasing, we publish the release and code freeze it over. We have had problems with people who are not involved with our release candidate testing cycle delivering changes into our components during code freeze. I would like to prevent this by scheduling code freeze dates and preventing people from delivering changes to my components without an approval. I was looking into the process configuration and couldn't find a way to accomplish this. Specifically, I couldn't find a way to block deliveries at the component level, nor could I find a way to block based on a schedule. Is there a way to accomplish this? I'd be fine with not having a defined schedule and simply flipping a switch to enable/disable code freeze. |
One answer
To get different rules for different phases in your iteration, you want to create sub-iterations. For example, iteration "M6" might have two iterations underneath it, "M6-main" and "M6-end". For most of M6, the current iteration for the timeline would be set to M6-main. For the last couple days of the iteration, the current iteration would be changed to M6-end. To get different behavior for the two sub-iterations, each of those sub-iterations would be of a different iteration type, and you would customize the behavior for those two iteration types. (Using iteration types saves you from having to customize the behavior for each individual iteration.) To keep the sub-iterations from showing up as choices for the Planned For field of your work items, uncheck the box "A release is scheduled for this iteration" in the iteration properties. With this approach, all of your work items will be scheduled for M6, while M6-main and M6-end will be used only to control the behavior.
The other part of your question was how to prevent (or at least discourage) people from delivering changes to certain components within the stream during the code freeze. To do that, use the precondition "Restrict Change Set Delivery to Components in a Stream". Open the project area or team area that owns the stream in question. (It has to be the actual owner, not a parent of the steam's owner.) Go to Process Configuration > Iteration Types > [the type for your code freeze] > Operation Behavior > Source Control > Deliver (server). Check the box for the appropriate role (probably Everyone), then enable and configure the "Restrict Change Set Delivery to Components in a Stream" precondition.
(I haven't used that precondition myself before, so I'm not sure exactly how it works. It looks like you can configure things so that only members of your sub-team can deliver changes to your components. I don't think you can set it up so that others can deliver if they get the appropriate approvals.)
-- David Olsen, IBM Rational, Jazz Process Team
|
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.