First off, thanks for taking the time to contribute!
Please note that this project is released with a Contributor Code of Conduct.By participating in this project you agree to abide by its terms.You can find the code of conduct in the filecode_of_conduct.md.
You can find a lot of detailed information on this page and in the related pages:
Here we’ll try to provide a concise overview.
Pull requests are welcomed. If the task is a bit bigger (say it touches more than 5 files), it mightmake sense to create an issue first to discuss the intended change.
Please create your pull request against themain
branch. We will rebase/merge it to the maintenancebranches, if necessary.
We are usingCheckstyle to enforce a common code style.The check is integrated into the default build - so, make sure, you canbuild PMD without errors.
Seecode style for more info.
Your pull request will be built automatically. If the build was successful, ourPMD Regression Tester, which runs PMD against a couple of test projectsand creates a report with the found new violations (or removed violations). This helps toavoid accidentally introducing false positives or negatives.
We use the issue tracker on GitHub. Please report new bugs athttps://github.com/pmd/pmd/issues.
When filing a bug report, please provide as much information as possible, so that we can reproduce the issue:
SeeSECURITY.md
There is some documentation available underhttps://docs.pmd-code.org/latest. Feel free to create a bug report ifdocumentation is missing, incomplete or outdated. SeeBug reports.
The documentation is generated as a Jekyll site, the source is available in the subfolderdocs
or at:https://github.com/pmd/pmd/tree/main/docs. You can find build instructions there.See alsowriting documentation for detailed information.
The rule designer is developed over atpmd/pmd-designer.Please refer to the specificcontributor documentationif your issue, feature request or PR touches the designer.
There are various channels, on which you can ask questions:
OnStackOverflow: Make sure, to tag your question with “pmd”.
Create a new discussion for your question athttps://github.com/pmd/pmd/discussions.
Ask your question in ourGitter room.
Ask your question ourPMD Guru at Gurubase.
PMD usesCheckstyle to enforce a common code style.
Seepmd-checkstyle-config.xml for the configuration andthe eclipse configuration files that canbe imported into a fresh workspace.
We useAll Contributors - all our contributors are listed on the pageCredits.
To add yourself to the table of contributors, follow thebot usage instructions ;).
Or use the CLI:
npm i
(in PMD’s top level directory)npx all-contributors add <username> <contribution>
Whereusername
is your GitHub username andcontribution
is a,
-separated listof contributions. SeeEmoji Key for a listof valid types. Common types are: “code”, “doc”, “bug”, “blog”, “talk”, “test”, “tutorial”.
See alsocli documentation