Tempted to go ahead and write your own plugin? No obligation, but you might want to share it with the Sonar SonarQube community. In that case hosting your plugin at sonar-plugins.codehaus.org brings you many benefits :
- the The community helps you more easily, as well as the community benefits from the plugin
- free hosting Hosting in the subversion repositoryuse Github organization named SonarCommunity
- Use JIRA to track issues
- use Use Atlassian Bamboo for continuous integration
- use Use this wiki for the documentation
- Most of all the plugin is available in Update Center, so users can install the plugin directly from the application
If you do decide to contribute your plugin back to the community, we're happy to host your FOSS plugins in the SonarSource plugin forge. After all, it gives you a broader audience and enhances the community. Everyone’s a winner. But there are a few rules we must ask you to follow.
To have your plugin added to the forge, it must:
- meet our coding standards
- not be misleading in terms of content (the code needs to do pretty much what the name and description say it does)
- have a business-friendly license (the default license is LGPL3)
- not compete with existing SonarSource products (sorry, but we gotta pay the bills somehow)
- receive +1’s from three voting members of the development list and no -1’s for the initial release
To keep your plugin in the forge, it must remain in compliance with everything on the first list and:
be maintained over time (meaning you should pay attention to the mailing lists and respond to bugs and API changes)
receive at least one +1 from a voting member of the development mailing list for subsequent releases
If any of these requirements are not met, or stop being met (if, for example you change the license to one that’s not business-friendly) we may remove the plugin from the forge immediately
- Create an account at Codehaus
- Subscribe to firstname.lastname@example.org
- Send e-mail to email@example.com and tell us your Codehaus ID, so that we can give you a commit access to subversion github. You can request access rights to Nemo too.
In order to benefit of the hosting infrastructure. We need that the plugin hosted must be compilable by Sun JDK 5.
- The plugin must support
Java 5(Java 6 since March 2013). The Continuous Integration job uses Oracle JDK 6
- The plugin is built with Maven 2.2.x or 3.x
When you utilize the forge, we request that you respect the following principles :
- A plugin is built with Maven
- You should follow Follow Best practices and Sonar SonarQube Code Style.
- The copyright belongs to whoever wrote the plugin
- The license should must be business friendly
- Follow the release process described bellow
- The directory name is the plugin name. Maven
- The groupId is 'org.codehaus.sonar-plugins' and artifactId is 'sonar-<name>-plugin'. For example the plugin "foo" is stored in the directory "foo" and its artifact id is "sonar-foo-plugin"
Set the following properties :
Code Block title pom.xml lang xml
<project> <parent> <groupId>org.codehaus.sonar-plugins</groupId> <artifactId>parent</artifactId> <version>9</<!-- The latest version can be found by looking at the tags starting with "parent-" in http://svn.codehaus.org/sonar-plugins/tags/ --> <version>REPLACE_BY_LATEST_VERSION</version> <relativePath>../parent</relativePath> </parent> <artifactId>sonar-foo-plugin</artifactId> <version>1.0-SNAPSHOT</version> <packaging>sonar-plugin</packaging> <name>Plugin name</name> <description>Plugin description</description> <url>http://docs.codehaus.org/display/SONAR/MY+PLUGIN</url> <inceptionYear>2011<<inceptionYear>2013</inceptionYear> <organization> <name>My Organization</name> <url>http://www.my-organization.com</url> </organization> <issueManagement> <system>JIRA</system> <url>http://jira.codehaus.org/browse/SONARPLUGINS/component/MY-COMPONENT-ID</url> </issueManagement> <scm> <connection>scm:svn:http://svn.codehaus.org/sonar-plugins/trunk/MY-PLUGIN</connection> <developerConnection>scm:svn:https://svn.codehaus.org/sonar-plugins/trunk/MY-PLUGIN</developerConnection> <url>http://svn.sonar-plugins.codehaus.org</url> </scm> ... </project>
- Configure your pom by overriding values provided by parent - see Sonar SonarQube Plugins Forge Parent POM. Default license is LGPL3.
- Follow Maven POM Code Convention
- Add the plugin to the main pom of the forge
Send Please send an email to the dev mailing list in order the plugin to be added to our Continuous Integration server.
How to release a plugin version The release process is explained in this page.