Add CONTRIBUTING.md, BUILDING.md. Update README.md

This commit is contained in:
Andreas Dangel 2017-01-05 11:27:08 +01:00
parent d12920eb72
commit 8179d74150
3 changed files with 94 additions and 52 deletions

28
BUILDING.md Normal file
View File

@ -0,0 +1,28 @@
# How to build PMD
PMD uses [Maven](https://maven.apache.org/).
Additionally you'll need to have a `~/.m2/toolchains.xml` file setup
with jdk 1.6 (for pmd 5.3.x), jdk 1.7 (for pmd 5.4.x and pmd 5.5.x) and jdk 1.8 (for some features in pmd 5.5.x).
See [maven toolchains](https://maven.apache.org/guides/mini/guide-using-toolchains.html).
A example file can be found here: [example-toolchains.xml](https://github.com/pmd/pmd/blob/master/example-toolchains.xml).
Use maven in the top-level directory:
mvn clean verify
This will create the zip files in the directory `pmd-dist/target`:
cd pmd-dist/target
ls *.zip
That's all !
## How to build the documentation (maven site)?
Building the maven site is done with the following commands:
mvn clean install -DskipTests=true
mvn install site site:stage -Psite
You'll find the built site in the directory `target/staging/`.

55
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,55 @@
# How to contribute to PMD
First off, thanks for taking the time to contribute!
## Pull requests
* Please create your pull request against the `master` branch. We will rebase/merge it to the maintenance
branches, if necessary.
* We are using [checkstyle](http://checkstyle.sourceforge.net/) to enforce a common code style.
The check is integrated into the default build - so, make sure, you can [build PMD](BUILDING.md) without errors.
See [code style](#code-style) for more info.
## Bug reports
We used to use Sourceforge for bug tracking, but we are in the process of moving to github issues.
* Old bugs are still available at <https://sourceforge.net/p/pmd/bugs/>.
* Please report new bugs at <https://github.com/pmd/pmd/issues>.
When filing a bug report, please provide as much information as possible, so that we can reproduce the issue:
* The name of the rule, that is buggy
* A code snippet, which triggers a false positive/negative or crash
* How do you execute PMD? (command line, ant, maven, gradle, other)
## Documentation
There is some documentation available under <https://pmd.github.io>. Feel free to create a bug report if
documentation is missing, incomplete or outdated.
The documentation is generated as a maven site, the source is available at: <https://github.com/pmd/pmd/tree/master/src/site>
## Questions
There are various channels, on which you can ask questions:
* The mailing list: [pmd-devel](https://lists.sourceforge.net/lists/listinfo/pmd-devel)
* The discussion forums on sourceforge: <https://sourceforge.net/p/pmd/discussion/>
* On [StackOverflow](https://stackoverflow.com/questions/tagged/pmd): Make sure, to tag your question with "pmd".
## Code Style
PMD uses [checkstyle](http://checkstyle.sourceforge.net/) to enforce a common code style.
See [pmd-checkstyle-config.xml](https://github.com/pmd/build-tools/blob/master/config/src/main/resources/net/sourceforge/pmd/pmd-checkstyle-config.xml) for the configuration and
[the eclipse configuration files](https://github.com/pmd/build-tools/tree/master/config/eclipse) that can
be imported into a fresh workspace.

View File

@ -4,62 +4,21 @@
## About
PMD is a source code analyzer. It finds common programming flaws like unused variables, empty catch blocks,
unnecessary object creation, and so forth. It supports Java, JavaScript, Salesforce.com Apex, XML, XSL.
Additionally it includes CPD, the copy-paste-detector. CPD finds duplicated code in
Java, C, C++, C#, PHP, Ruby, Fortran, JavaScript, Salesforce.com Apex, Perl, Swift.
**PMD** is a source code analyzer. It finds common programming flaws like unused variables, empty catch blocks,
unnecessary object creation, and so forth. It supports Java, JavaScript, Salesforce.com Apex, PLSQL, Apache Velocity,
XML, XSL.
## Source
Additionally it includes **CPD**, the copy-paste-detector. CPD finds duplicated code in
Java, C, C++, C#, Groovy, PHP, Ruby, Fortran, JavaScript, PLSQL, Apache Velocity, Scala, Objective C,
Salesforce.com Apex, Perl, Swift, Matlab, Python.
Our latest source of PMD can be found on [GitHub]. Fork us!
## Source and Documentation
### How to build PMD?
Our latest source of PMD can be found on [GitHub](https://github.com/pmd/pmd). Fork us!
You'll need to have a `~/.m2/toolchains.xml` file setup with jdk 1.6 (for pmd 5.3.x), jdk 1.7 (for pmd 5.4.x and pmd 5.5.x)
and jdk 1.8 (for some features in pmd 5.5.x). See [maven toolchains](https://maven.apache.org/guides/mini/guide-using-toolchains.html).
A example file can be found here: [example-toolchains.xml](https://github.com/pmd/pmd/blob/master/example-toolchains.xml).
Use maven in the top-level directory:
mvn clean package
This will create the zip files in the directory `pmd-dist/target`:
cd pmd-dist/target
ls *.zip
That's all !
### How to build the documentation (maven site)?
Building the maven site is done with the following commands:
mvn clean install -DskipTests=true
mvn install site site:stage -Psite
You'll find the built site in the directory `target/staging/`.
### Bug Reports
We are using Sourceforge for bug tracking. Please file your bugs at <https://sourceforge.net/p/pmd/bugs/>.
### Pull Requests
Pull requests are always welcome: <https://github.com/pmd/pmd/pulls>
### Code Style
PMD uses checkstyle to enforce a common code style.
See [pmd-checkstyle-config.xml](https://github.com/pmd/build-tools/blob/master/config/src/main/resources/net/sourceforge/pmd/pmd-checkstyle-config.xml) for the configuration and
[the eclipse configuration files](https://github.com/pmd/build-tools/tree/master/config/eclipse) that can
be imported into a fresh workspace.
* [How to build PMD](BUILDING.md)
* [How to contribute to PMD](CONTRIBUTING.md)
## News and Website
More information can be found on our [Website] and on [SourceForge].
[GitHub]: https://github.com/pmd/pmd
[Website]: https://pmd.github.io
[SourceForge]: https://sourceforge.net/projects/pmd/
More information can be found on our [Website](https://pmd.github.io) and on [SourceForge](https://sourceforge.net/projects/pmd/).