LDSTechForumProjects

Using Sonar to Evaluate Your Project

Sonar is the tool that the Church uses to evaluate a project's code quality. We have configured it to a degree to accommodate development patterns that are unique to Church projects. To visit the Sonar install for Community Projects, go to http://code.lds.org/sonar. For internal projects, go to http://sonar.ldschurch.org.

Quality Project

The custom Stack profile builds off of Sonar's default FindBugs + Checkstyle + PMD profile.

Rules

Certain rules have been downgraded, though they are still reported for your information. Checkstyles, for example, warns about APIs that are unprotected from extension. However, to protect them (with final, for example) is to keep Spring from dynamically extended them at runtime. This could definitely cause a lot of bugs in someone's code if they are unaware of it. Thus, it is only an Informational warning, just in case it is not a Spring-managed bean.

Custom rules can also be added to Sonar, and several custom rule plugins for ICS are already under development. Visit Current Sonar Plug-in Efforts to learn, to contribute, or to provide ideas for code checks.

Alerts

A few alerts have been added to highlight code that may be in danger of brittleness.

The list of alerts is currently:

  • Coverage > 50%
  • Duplicated Lines > 20%
  • Package Cyclic Dependencies > 20%
  • Documentation < 50%
  • Quality Rules Compliance < 60%.

Plugins

We have added the Technical Debt and Emma plugins.

Technical Debt

The Technical Debt plugin is a great plugin to help a Project Manager see the changing need for extra time to "clean up" the code. It gives a rough time and resources estimate for resolving all violations and concerns highlighted by Sonar. Read more at http://www.sonarsource.org/evaluate-your-technical-debt-with-sonar/

Emma

The Emma plugin allows Sonar to use Emma for Code Coverage analysis, a free alternative to Clover.

More documentation

To read more about how to use Sonar, please refer to their documentation site.

This page was last modified on 29 October 2010, at 14:12.

Note: Content found in this wiki may not always reflect official Church information. See Terms of Use.