The following is done in #4590 :
- Differ between use cases, e.g.
- I'm using only built-in rules -> check whether the ruleset/rules are still available,
have the same properties, etc.
- I'm using custom rules -> make sure to have good test coverage for your custom rules first.
if XPath, need to migrate to XPath 2.0. if Java, some APIs/ASTs might have changed.
- I've extended PMD with a custom language...
- I've extended PMD with a custom feature...
- General approach: Update to the latest PMD 6.x version and try to fix deprecation warnings
- Compatibility Notes PMD 6 -> PMD 7:
- CPD: ⚠: End Columns of Tokens are exclusive on PMD 7,
but inclusive on PMD 6.x. See 5b7ed58
- Differences between XPath 1.0 and 2.0 (focused on practicality, eg how to transition)
- This is already in place: Writing XPath rules - Migrating from 1.0 to 2.0
- That means: The section migrating from XPath 1.0 -> XPath 2.0 should be moved to the migration guide PMD6->7
- since only XPath 2.0 (actually XPath 3.1) will be supported with PMD 7.
- See also Java Clean Changes
Not done:
- Decide whether a migration tool from PMD 6 --> 7 is necessary
- That depends on [[PMD 7.0.0 Documentation|PMD-7.0.0-Documentation]] / Migration Guide.
- If something can be automated, it's maybe worth it. But maybe, we don't need it, if most of the simple stuff can be done already on PMD 6 by fixing deprecation warnings.
--> Decision: Migration tool won't be necessary, the guide is enough.
The following is done in #4590 :
have the same properties, etc.
if XPath, need to migrate to XPath 2.0. if Java, some APIs/ASTs might have changed.
addRuleChainVisit()➡️buildTargetSelector()but inclusive on PMD 6.x. See 5b7ed58
Not done:
--> Decision: Migration tool won't be necessary, the guide is enough.