Fork me on GitHub

Development Process

  • Anyone can start a plugin in the sandbox at any time.
  • Once in a fairly useable state, the plugin should be listed on the sandbox section of the mojo site and snapshots be deployed. If no site is available, try to at least post a link to the SVN location. This advertises the existence of the plugin, which will hopefully generate more interest and developers.
  • Deploying snapshots lowers the bar to entrance for potential users.
  • Plugins on the website should gather people willing to work on them. We hope at least 2 people will know how an individual plugin works.

Versioning and Release Strategy

We follow the versioning from Maven itself:

x.y.z-alpha-n
Alpha version, not feature complete.
x.y.z-beta-n
Beta version, complete for the next release, not fully tested/documented.
x.y.z
"Proper" release.

Where:

  • x is the major version: updated when it is not backwards compatible with the previous version.
  • y is the minor version: updated when features are added.
  • z is the micro version: service release, only bugfixes.

Plugins can have snapshot versions deployed for testing, or beta/alpha releases deployed for wider testing and a bit more stability. All releases deployed to the Codehaus repository are synced to the Central Repository. Sandbox plugins should only use snapshot versions.

Once a plugin is ready for another release or is about to graduate from the sandbox, follow the checklist for performing a release.

Debugging Tips

To debug Maven 2/3 with IDEA use this command:

MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" 
mvn install

Applying patches

With git-svn more and more patches are contributed in a format you can't directly apply on our svn repository. For most of the operating systems there's a program called patch available, but not for Windows. Probably the easiest way for Windows users is to install CygWin and put the %CYGWIN_HOME%\bin on their Path.

To be able to apply patches run:

patch -p1 < bugfix.patch