- Choose an open ticket in JIRA or propose your change on the SonarQube Community Forum - the discussion there is likely to result in an open JIRA ticket.
- Use the SonarSource conventions, which you'll find neatly packaged here: https://github.com/SonarSource/sonar-developer-toolset#the-almost-unbreakable-build
- Use pull requests to submit your work
New rule implementations in existing plugins
- Start from an existing RSpec (Rule Specification) that lists your language of interest in the "Targeted languages" field.
- The naming convention for implementation classes is
[A-Z][A-Za-z]+Check.java. (Yes, put "Check" in the name too.) The class name should be descriptive and not reflect the rule key. E.G. FindBadCodeCheck.java, not S007.java.
- A good way to get started on a rule implementation is to look at the implementations of rules that do similar things.
- During development there's no need to load the plugin in a server to test your implementation, use the rule's unit test for that.
- For a complete implementation, make sure all of the following are done:
- create HTML description file
- write *Check.java with annotations specifying
- any parameters
- write test class
- register the rule in CheckList.java
- add the rule to the profile used for the integration test in profile.xml
- run the integration test and add any new issues to the set of expected issues
- [ detail needed ]