Replies: 5 comments 5 replies
-
In short, the biggest challenge with the current default configuration file generated by the devopsmigrator command is that it would appear to be excluding work item types that are not visible with the WIQLQuery line, however, the validator still reviews all work item types for the Custom.ReflectedWorkItemId. Because these work item types are not visible in the process management, but only modified with XML layout files, and because the validator assess them and throws are error stopping the migration process - hence causing me to stop attempting to get the tool to work. It is by far the most complete tool I've ever seen made to handle many complex scenarios, but it I can use it to migrate a project with 135 work items because the validator is dropping errors, it's not all that useful to me. |
Beta Was this translation helpful? Give feedback.
-
Some further thoughts/suggestions that might get some creative juices flowing. I've just recently found a need for this tool/processor, downloaded it, and tried to make it run, with similar results as dougkl007, that is, validations are failing, and I don't see how to circumvent these issues to get my data migrated. I cannot get it to work. Observation 1: Related to which WorkItemType compatibility validations get executed in advance, before getting any data. If you would like to know in advance what Work Item types are to be migrated, might I suggest the following: b) Replace the WIQLQuery with WIQLQueryWhereClauseAddition and WIQLQueryOrderByClause c) Now the code must generate the full query, rather than simply getting the entire query string from the configuration file as you do now, concatenate the following: This would be a little work, so I have some other options to consider that would be much simpler to implement: First, for backward compatibility you might actually still use the WIQLQuery value if it is specified, but if not specified, do what I outlined above to generate the query. Observation 3: As stated by satano in his initial post, when, during this initial validation of WorkItemType compatibility, you find an issue with a target field of a WorkItemType that is missing or configured differently in the target, before flagging it as a warning or error, first check the FieldMappingTool configuration to see if it is already mapped to be Skipped or has been mapped to another field that actually does exist in the target. The fact that I cannot "fix" these prevalidation issues by adding to the FieldMappingTool is frustrating. |
Beta Was this translation helpful? Give feedback.
-
@satano I have two more thoughts: Second, and this is perhaps a minor point, you mention that the Reflected work item ID field is required. Perhaps report it missing as an Error rather than a Warning. When I ran the tool the first time, I got info and warning messages, but the final error message implied that some or all of the warning messages were actually to be considered an error, blocking the tool from running. It was not clear if all or just some of them needed to be resolved in order for the tool to work. |
Beta Was this translation helpful? Give feedback.
-
Excluded some work item types by defaultThis list should be saved in the appsettings.json file so that it can be configured by advanced users if needed. |
Beta Was this translation helpful? Give feedback.
-
Ensure that you use the Work Item Type mapping tool to map ay work items types that have known naming diferences between teh source and target |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
TfsWorkItemTypeValidatorTool
validates all work item types before the migration starts. This is good, because it really can catch some possible data loss if migration will be performed. But is makes minor problems for user, because it needs some configuration to work properly. And validation can be emproved to count with field mappings. I have theese suggestion, we could make into it (I can do them myself).Mandatory Reflected work item ID field validation
ReflectedWorkItemId
validation was mandatory beforeTfsWorkItemTypeValidatorTool
. If reflected work item ID field did not exist, migration process stopped immediately. Now, when it is part of the validator, if someone disables this validator, this filed will not be validated at all. I would still keep this validation inTfsWorkItemTypeValidatorTool
, but in migration process, I would make it mandatory again. Even if the validator itself will be disabled.Excluded some work item types by default
There are some work item types, which are (usually) not migrated at all, because it does not make sense to migrate them. For example _
Code Review Request, Code Review Response, Feedback Request, Feedback Response, Shared Parameter… We should exclude them from migration by default. In validator configuration, there is
IncludeWorkItemtypes
. We can addExcludeWorkItemtypes
as a list. It it will be empty, we will consider it as use default exclude list and some work item types will not be validated. Id the user will add something into it, just this will be excluded. It means, that if the user will addd something into it, our default list will not be excluded, unless explicitly added by user to exclusion list. Or we can make some ohter configuration propertybool UseDefaultExclusionList
, which will jus tur on/off default excluded work item types. ExplicitExcludeWorkItemtypes
will still be there, but when the user will add something into it, it will not disable default exclusions.Work with existing field mapping
Sometimes the validator reports missing fields. This is OK, but there is
FieldMappingTool
and the user can already have mapping for theese fields. So the validator can check if there is suitable mapping and if so, it will not report the field as missing. This is applicable to:FieldToFieldMap
FieldToFieldMultiMap
FieldSkipMap
Work with existing field value mapping
We can also check not just field mapping, but also field value mapping. It is good for fields which have allowed values defined, as noted in this discussion._ For allowed values, we can check the mapping and if there is suitable mapping we will not report that the source and target fields are different. This is applicable to:
FieldValueMap
Other thoughts
Of course, for field (value) mappings, there are some more mapping types, but they are not easy (even possible) to check if the work, so there still may be fields reported as missing/not matched in validator. I believe, this will be just minor cases and will be fixed by
FixedTargetFields
in validator configuration.So @MrHinsh (or anybody) what do you think? Any ideas to this?
Thanks.
Beta Was this translation helpful? Give feedback.
All reactions