Skip to content

[doc] Migration Guide for upgrading PMD 6 ➡️ 7 #4294

@adangel

Description

@adangel

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions