pmd / pmd/pmd

[core] Commandline option to write the whole rulesets including default properties

Open
#4,187 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

an:enhancement in:cli
Dominant language
Java
Stars
5.5k
Forks
1.6k
Avg merge
1d 19h
Merged PRs (30d)
54

Description

Is your feature request related to a problem? Please describe.
From time to time (not regularly) I update my PMD configs. And then it is hard to find out what I have changed in my config and what you have changed.

Describe the solution you'd like
A commandline option to write the whole known rulesets including the default properties into a pmd-default.xml file.
This will allow me to have a simple diff between my configurations and your configuration with all its defaults.
This requires that you write out your configuration in a defined way, like first by programming language, then by section and then alphabetically. The properties should also written out alphabetically.
Also this might allow to automatically update the rules in a CI/CD context.

Describe alternatives you've considered
Verifying my config with your website rules section takes to much time and is too error prone!

Additional context
None

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating PMD's command-line option handling and ruleset serialization entry points. Trace how known rulesets and default properties are represented, then define the expected pmd-default.xml ordering by language, section, rule, and property. Done means the option writes a complete, deterministic file suitable for configuration diffs and CI use.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
cli, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.