JavaNCSS Development Details

JavaNCSS has been moved on August 2008 to Codehaus for a shared source code repository. There is also a bug tracking tool. Furthermore there are a few mailing lists available for this project.

JavaNCSS is built using Maven: mvn package.

JavaNCSS site is built with Maven: mvn site.

Guide for JavaNCSS Contributors

As with any open source project, there are several ways you can help:

  • Join the mailing lists and answer other user's questions
  • Report bugs, feature requests and other issues in the issue tracking application.
  • Build JavaNCSS for yourself, in order to fix bugs.
  • Submit patches to reported issues (both those you find, or that others have filed)
  • Help with the documentation by pointing out areas that are lacking or unclear, and if you are so inclined, submitting patches to correct it.

Your participation in the community is much appreciated!

Creating and submitting a patch

When you have either completed an issue or just want some feedback on the work you have done, create a patch and attach the patch to the issue in question. We have a couple of guidelines when creating patches:

  • Patch the trunk, not a tag. Otherwise, your patch is outdated the moment you create it and might not be applicable to the development head.
  • Add a unit test to show the bug fixed or the new feature.
  • Always create the patch from the root of the project, i.e. where the pom.xml file is.
  • If this was a new piece of work without a JIRA issue, create a JIRA issue for it now.
  • Name the file JAVANCSS-<issue number>.patch.
  • Attach the patch to the JIRA issue you were working on (do not paste its content in as a comment though). When adding the patch add a comment to the issue explaining what it does. Shortly after, someone will apply the patch and close the issue.

An example on how to create a patch from the command line:

$ svn diff > JAVANCSS-123.patch

If you are picking up an issue with a existing patch attached to the issue, you can apply the patch to your working directory directly from JIRA like this. The wget and patch commands will only be available if you are on a UNIX platform or using Cygwin on windows.

$ wget -O - -q <URL to the patch from JIRA> | patch -p0

If the patch is in a local file JAVANCSS-123.patch and you want to apply that use this command:

$ patch -p0 < JAVANCSS-123.patch

Guide for JavaNCSS Committers

JavaNCSS uses the same formatting conventions as Maven. There is an Eclipse and an Idea configuration, see Maven Conventions.

To deploy JavaNCSS site or artifact (either SNAPSHOT or release), you'll need to have your Codehaus credentials defined in ~/.m2/settings.xml for codehaus.org server:

<settings>
  <servers>
    <server>
      <id>codehaus.org</id>
      <username>your username</username>
      <password>your password</password>
    </server>
  </servers>
</settings>

Note that starting with Maven 2.1.0, password can be stored encrypted: see the encryption guide on Maven site

JavaNCSS pom.xml is actually configured to deploy the site on javancss.github.io: see distributionManagement/site section. The site can be deployed at any time with mvn site-deploy command. http://www.kclee.de/clemens/java/javancss/ can only be deployed by Clemens.

JavaNCSS SNAPSHOTs can be deployed on Codehaus Snapshot repository with mvn deploy command.

JavaNCSS release is automated with Maven release plugin. It has 3 steps:

  1. run mvn release:prepare to prepare the release (including svn commits),
  2. if everything is ok, run mvn release:perform to deploy the artifact and the site,
  3. then update Jira: follow "Administer Project" then "Manage versions" links to mark the release done and declare the next version.

The release is deployed on Codehaus main repository, which is sync'ed once a day on Maven Central repository. Note that as soon as a release has been sync'ed to Maven Central repository, you can't change anything: any change on Codehaus main repository will be ignored by Maven Central repository.

Voting

To get some feedback from the community for important events of the project, a vote mecanism is encouraged inspired by Apache Voting Process. Of course, JavaNCSS community is a lot lighter than Apache, then these instructions are only to be taken as an indication.

External Resources