# Developer and contributor documentation

The following pages and posts are tagged with

Title | Type | Excerpt
--- | --- | ---
How to add a new CPD language | Page | How to add a new CPD language
Adding PMD support for a new language | Page | How to add a new language to PMD.
Adding support for metrics to a language | Page | PMD's Java module has an extensive framework for the calculation of metrics, which allows rule developers to implement and use new code metrics very simply. ...
Creating XML dump of the AST | Page | Creating a XML representation of the AST allows to analyze the AST with other tools.
Building PMD from source | Page | Note: TODO add IDE specific indications Compiling PMD JDK 11 or higher Note: While Java 11 is required for building, running PMD only requires Java 7 (or Java 8 for Apex,...
Developer Resources | Page | The next version of PMD will be developed in parallel with this release. We will release additional bugfix versions as needed. Source Code The complete source code can be found on github: github.com/pmd/pmd - main PMD repository. Includes all the code to support all languages, including this...
How PMD Works | Page | Processing overview of the different steps taken by PMD.
Pmdtester | Page | Introduction Pmdtester is a regression testing tool that ensures no new problems and unexpected behaviors will be introduced to PMD after fixing an issue. It can also be used to verify, that new rules work as expected. It has been integrated into travis CI and is actually used automatically...
Roadmap | Page | TODO: Update Future direction projects, plans Google Summer of Code Future directions Want to know what’s coming? Or, better, wanna contribute ? Here is the page listing what are our plans - when we have ones, for the future of PMD. It also give you hints at...
Rule deprecation policy | Page | Describes when and how rules are deprecated
Guidelines for standard rules | Page | Guidelines for rules that are included in the standard distribution
Writing documentation | Page | PMD's documentation uses [Jekyll](https://jekyllrb.com/) with the [I'd rather be writing Jekyll Theme](http://idratherbewriting.com/documentation-theme-jekyll/index.html). Here are some quick tips. ## Format The pages are in general in [Github Flavored Markdown](https://kramdown.gettalong.org/parser/gfm.html). ## Structure The documentation sources can be found in two places based on how they are generated: - the ones that are...