I'm testing a migration of a project from an on premises DevOps Server (Latest 2019 Update 1.1) to DevOps services. I'm using the latest DataMigrationTool (Migrate.exe), and I'm seeing extremely strange results.
I'm using
Migrator.exe validate /collection:http://localhost:8080/tfs/MyCollection /saveprocesses
Issues include:
- A project using an unmodified process e.g. vanilla Scrum doesn't match. For example:
[Info @14:59:27.587] === Found 220 error(s) when compared against process TFS 2019 RTM Scrum ===
[Error @14:59:27.587] Rules for field 'Microsoft.VSTS.Common.Priority' do not match at level 'Task'.
[Error @14:59:27.587] Rules for field 'Microsoft.VSTS.Common.Activity' do not match at level 'Task'.
[Error @14:59:27.587] Rules for field 'Microsoft.VSTS.Build.IntegrationBuild' do not match at level 'Task'.
[Error @14:59:27.587] Rules for field 'Microsoft.VSTS.CMMI.Blocked' do not match at level 'Task'.
[Error @14:59:27.587] Custom type 'Task' added a new field 'Microsoft.VSTS.Common.ActivatedDate'.
[Error @14:59:27.587] Custom type 'Task' added a new field 'Microsoft.VSTS.Common.ActivatedBy'.
[Error @14:59:27.587] Custom type 'Task' added rules for field 'System.Reason' at level 'transition[To Do->In Progress]'.
[Error @14:59:27.587] Custom type 'Task' added rules for field 'System.Reason' at level 'transition[In Progress->Done]'.
[Error @14:59:27.587] Custom type 'Task' added rules for field 'System.Reason' at level 'transition[To Do->Done]'.
[Error @14:59:27.587] Custom type 'Task' added rules for field 'System.Reason' at level 'transition[->To Do]'.
The documentation says that unmodified processes should match without error. What do these errors mean?
- The exported process xml doesn't conform to the schema, giving hundreds of validation errors even for the project using the unmodified process ( in a collection where other projects have a modified/inherited process).
Example:
<FIELD name="Severity" refname="Microsoft.VSTS.Common.Severity" type="String" reportable="dimension">
<ALLOWEXISTINGVALUE />
<ALLOWEDVALUES expanditems="true" />
<DEFAULT from="value" value="3 - Medium" />
<ALLOWEDVALUES expanditems="true" />
</FIELD>
Here the allowedvalues tag is repeated, and (if I understand the schema correctly) can't be empty but needs to specify GLOBALLIST
or LISTITEM
children.
[Error @13:39:09.158] Step : ProcessValidation - Failure Type - Validation failed : Invalid process template: WorkItem Tracking\TypeDefinitions\Task.xml:158: TF402594: File violates the schema with the following error: The element 'ALLOWEDVALUES' has incomplete content. List of possible elements expected: 'GLOBALLIST, LISTITEM'.
[Error @13:39:09.158] Step : ProcessValidation - Failure Type - Validation failed : Invalid process template: WorkItem Tracking\TypeDefinitions\Task.xml:167: TF402594: File violates the schema with the following error: The element 'ALLOWEDVALUES' has incomplete content. List of possible elements expected: 'GLOBALLIST, LISTITEM'.
[Error @13:39:09.158] Step : ProcessValidation - Failure Type - Validation failed : Invalid process template: WorkItem Tracking\TypeDefinitions\Task.xml:172: TF402594: File violates the schema with the following error: The element 'ALLOWEDVALUES' has incomplete content. List of possible elements expected: 'GLOBALLIST, LISTITEM'.
[Error @13:39:09.158] Step : ProcessValidation - Failure Type - Validation failed : Invalid process template: WorkItem Tracking\TypeDefinitions\Task.xml:203: TF402594: File violates the schema with the following error: The element 'ALLOWEDVALUES' has incomplete content. List of possible elements expected: 'GLOBALLIST, LISTITEM'.
[Error @13:39:09.158] Step : ProcessValidation - Failure Type - Validation failed : Invalid process template: WorkItem Tracking\TypeDefinitions\Task.xml:215: TF402594: File violates the schema with the following error: The element 'ALLOWEDVALUES' has incomplete content. List of possible elements expected: 'GLOBALLIST, LISTITEM'.
[Error @13:39:09.158] Step : ProcessValidation - Failure Type - Validation failed : Invalid process template: WorkItem Tracking\TypeDefinitions\Task.xml:243: TF402594: File violates the schema with the following error: The element 'ALLOWEDVALUES' has incomplete content. List of possible elements expected: 'GLOBALLIST, LISTITEM'.
- The validation of a project using a modified process (inherited from Scrum) where some work item types have new states, has all the errors from the unmodified process AND also additional schema violations. For example:
<TRANSITION from="X" to="Resolved">
<REASONS>
<DEFAULTREASON value="Moved out of state X" />
<DEFAULTREASON value="Moved to state Resolved " />
</REASONS>
</TRANSITION>
The <REASONS>
can only have one <DEFAULTREASON>
tag.
This is the case for states in the inherited process. If these errors must be "fixed" in order to migrate the project, how can I do that? Where are states and transitions edited in the inheritance process model in DevOps Server 2019?
If I can't actually fix them, then what do these errors indicate? Is there something wrong with the tool? How can I work around them?