Assistance required for RTC project settings regarding changesets
Hello,
we do have issues with probably incorrect RTC project settings. The problems we are facing are that
(1) A changeset attached to a work item can be delivered without any 'Review'
record on the work item,
(2) A changeset attached to a work item can be delivered when the
'Review' record on the work item has 1 reviewer and this reviewer's
approval is still in 'Pending' state.
Our settings are set up in a way so that we do have a defined "Preconditions & Follow-up Action" named "Require Work Items and Comments" which should require a work item, comment, or change request when a change set is delivered (that's what we want to have - but obviously does not really work as we have the described issues above). The setup is as follows:
------------------------------------------------------
Constraints: On deliver, change sets require:
Comment
X Work item or Change request link
Work item owner (Requires an associated work item): is required
Comment
X Work item or Change request link
Work item owner (Requires an associated work item): is required
Iteration work item is planned for (Requires an associated work item): is optional
Any
Both
Any
Both
------------------------------------------------------
Why do the observed issues happen with the above RTC settings ? What am I overlooking ?
Many thanks for any response in advance !
One answer
The precondition/Advisor "Require Work items and Comments" does only prevent from delivering change sets that do not have the configured association to a work item or change set. There is nothing in there with respect to work item approval etc.
I would also like to point out that there are the operations Deliver(client) and Deliver(server). My suggestion is to not use the Require Work items and Comments for the Deliver(client). My suggestion would be to use the Deliver(server) or maybe also use that operation. There are several similar preconditions like "Require Work Items and Comments" and "Require Work Item Approval" available there.
Deliver(client) only works in the IDE client and would not fire when one delivers in a client that does not support it. (unless you check fail if not installed, maybe). I usually only use the "No Unused Imports", Clean Workspace from there.
With respect to approvals and "Require Work Item Approval" I have to point out that the approvals mechanism is not as good as it should be. For example, you can have many approval records on a work item for the same or different approval types. Some can be approved, some can be unapproved. It is totally unclear what this means in terms of semantics and you will have to find out what the precondition does. The query mechanisms also suffer from this.
I recently created a server extension to prevent inconsistent data in work item approvals - for their custom meaning of inconsistent.
I recently created a server extension to prevent inconsistent data in work item approvals - for their custom meaning of inconsistent.
Please also note that the operational behavior is controlled by roles and only the configuration for first role that has it configured is taken. See https://jazz.net/library/article/292 to be sure how that works. I usually configure only operational behavior for the default role Everyone. If you even just check the Preconditions are configured for another role, that would mean that users that have that role have now the behavior that is configured for them. Which is nothing, unless you do configure something. The Behavior for Everyone will not be used any more for users with that role unless you uncheck that check box.
Hope this helps finding out what is going on.