Hey, good to see you on this page. It means that you are considering reporting an issue to the Checkstyle project. We welcome anything: bug reports, feature requests to existing functionality, new Check ideas, etc.
Our issue tracker system is at Github - https://github.com/checkstyle/checkstyle/issues.
First and foremost, do not think that your issue is obvious and do not need details.
Even tiny issue need all details
(Check name, config with options, source file, Checkstyle version) and context to be shared with us.
The best way to report an Issue is to reproduce it by our
Command Line Interface (CLI). It is the most minimalistic way to launch Checkstyle.
PLEASE use our latest released version.
Our project is NOT responsible for problems at any extension or plugins.
Checkstyle is library that is used by number of IDEs and static analysis services.
We fix problems that are only reproducible on latest release.
We need minimized but compilable Java file and minimized config with one Check that cause problem.
We do not need real source code. Any obfuscation of your super secret code is OK.
Link to your source code would be awesome.
Code has to be compilable, in other case behaviour could be strange.
Example of report that we expect:
/var/tmp $ javac Test.java /var/tmp $ cat Test.java public class Test{ // Doesn't warn - incorrect private static final int SOMETHING = 1; } /var/tmp $ cat config.xml <?xml version="1.0"?> <!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> <module name="Checker"> <module name="TreeWalker"> <module name="WhitespaceAround"> <property name="allowEmptyTypes" value="true"/> </module> </module> </module> /var/tmp $ java -jar checkstyle-6.XX-all.jar -c config.xml Test.java Starting audit... Audit done.
Always specify what is expected.
Expected: violation on first line.
/var/tmp/Test.java:1:28: error: '{' is not preceded with whitespace.
Please always specify exact name of the Check/Module.
Please provide detailed description of problem and chunks of code and config that you currently have.
Imagine that everithing is possible and propose name of the new option and its behaviour. Do not think that your issue is so obvious.