Update pmd config to make it pmd 7 compatible#13168
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 4.20 #13168 +/- ##
============================================
- Coverage 16.27% 16.26% -0.01%
+ Complexity 13440 13432 -8
============================================
Files 5665 5665
Lines 500555 500555
Branches 60789 60789
============================================
- Hits 81445 81427 -18
- Misses 410004 410020 +16
- Partials 9106 9108 +2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@blueorangutn package |
There was a problem hiding this comment.
Pull request overview
Updates CloudStack’s PMD ruleset configuration to align with PMD 7’s category/ruleset structure, and adjusts codespell allowlist to avoid false positives from PMD’s “errorprone” category naming.
Changes:
- Replaced the legacy PMD category references with PMD 7 category rulesets and consolidated exclusions into the new category structure.
- Added
errorproneto the codespell dictionary exceptions to prevent CI/lint noise for the PMD 7 category name.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| tools/checkstyle/src/main/resources/cloud-pmd.xml | Migrates the PMD ruleset to PMD 7 category files and redefines project-specific exclusions under those categories. |
| .github/linters/codespell.txt | Allows the term errorprone to avoid codespell flagging PMD 7’s category name. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Pearl1594
left a comment
There was a problem hiding this comment.
Can we remove the commented excludes ? My only concern is that with enabling the entire category, would this lead to excessive checks making it a lot more restrictive?
| <rule ref="category/java/bestpractices.xml"> | ||
| <exclude name="AbstractClassWithoutAbstractMethod" /> | ||
| <exclude name="GuardLogStatement" /> | ||
| <!-- <exclude name="LiteralsFirstInComparisons" /> --> |
There was a problem hiding this comment.
Can we remove these commented excludes?
There was a problem hiding this comment.
I discussed this with @DaanHoogland offline. And he suggested to comment these for now and enable as per requirement going forward.
| <exclude name="CommentRequired" /> | ||
| </rule> | ||
|
|
||
| <rule ref="category/java/errorprone.xml"> |
There was a problem hiding this comment.
I'm guessing this wouldn't clash with the errorprone work which depends on google-errorprone plugin (mvn)
There was a problem hiding this comment.
pmd checks are manual as of now, so it shouldn't break anything.
This PR is only fixing the pmd config. In future, we will have checks only which makes sense for CloudStack and eventually block the builds. Currently the number of issues are huge and it will take quite some time to fix it. |
Description
This PR updates pmd config to make it pmd 7 compatible
mvnd clean install -P developer,systemvm -DskipTests=true # Generates pmd.xml in target directory for modules with errors. mvnd pmd:check -P developer,systemvm -DskipTests=trueRef: https://docs.pmd-code.org/pmd-doc-7.0.0-rc2/pmd_rules_java.html#best-practices
Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Bug Severity
Screenshots (if appropriate):
How Has This Been Tested?
How did you try to break this feature and the system with this change?