Validate all Change Sets have been delivered
I would like to validate that a list of change sets that exist on on stream have been delivered to another stream. For example, I have a development stream and an integration stream. Before I do my release build I want to validate that all change sets the need to be delivered to integration have been. The possibility exists where someone can associate a change set to a work item and then never deliver that work item. I want to catch that case without having to write custom advisors and such.
Things I have tried:
1. Using OSLC queries. This breaks down because the queries don't give me the option to specify stream specific information. They can provide me with a list of Work Items that are planned for a release. I can then iterate through each Change Set and see if it exists on a particular stream. But I cannot automate this.
2. I have attempted the cmdline tools to use the compare function. However, this brings back more information. Since the development stream will have more change sets then need to be considered for a release I still have too much noise on the output.
3. Tried writing a work item query, but status information about Change Sets don't a have query attributes that I can filter with.
Any ideas?
Accepted answer
Is this a manual or automated validation?
With manual validation, you can create a query of the work items that you're interested in verifying and drag them on the locate change sets editor. Add the streams you care about to the search and it will tell you if the change sets associated with the work items exist in those streams.
Automated validation is possible as well using the same search pattern as the manual method but may require using API calls that are not public.
Have you investigated ways of creating work items for each stream that a change should be delivered to? That would be much easier to query and handles cases when change sets can't apply cleanly to another stream because of a gap and the change is redone.
With manual validation, you can create a query of the work items that you're interested in verifying and drag them on the locate change sets editor. Add the streams you care about to the search and it will tell you if the change sets associated with the work items exist in those streams.
Automated validation is possible as well using the same search pattern as the manual method but may require using API calls that are not public.
Have you investigated ways of creating work items for each stream that a change should be delivered to? That would be much easier to query and handles cases when change sets can't apply cleanly to another stream because of a gap and the change is redone.
Comments
It was going to be an automated validation.
I will investigate the manual validation you speak of. That sounds promising for an interim solution.
Are there plans for these APIs to become public? Didn't want to create duplication of Work Items just to facilitate deliveries.
There are no plans at this time to publicly support the API. However, you can still access it from the IWorkspaceManager#locateChangeSets(). Check the plain Java client API documentation and it is available but not encouraged to be used.