Coding Standards

Java Coding Style

Java Code shall be formatted according Code Conventions for the Java Programming Language by Sun Microsystems, Inc.
Additional, indentations shall be done by (4)spaces, instead of tabs.

See Eclipse IDE Configuration on setting these standard in Eclipse.

Documentation of SVN Commits

Every commitment to the SVN source code repository on Sourceforge should be associated with (at least) one entry in JIRA, by including the JIRA issue key in the commit comment. Reformatting of source code should be done by separate commits with a comment like 'pretty format'. There are a few reasons for doing this:

  1. History. A year from now, I need to be able to look at the history of a file and understand what changes were made to it, and why they were done. This is necessary for software maintenance of a large project.
  2. Education. People can look at the commit log or notification and begin to understand the source code through the descriptions of commits.
  3. Traceability. Tracing every commit to a JIRA issue allows a bit of workflow around the software development, and impedes frivolous software changes. Being able to trace every change to a documented issue also helps organizations that want to perform some certification around the softare.

About resolving and closing issues in JIRA

The Assignee shall set the status of an Open issue to Resolved, after the commitment of the modification into the CVS or SVN at Sourceforge. Resolved issues shall be Closed by the Reporter. If the Assignee is also the Reporter of an issue, the issue may direct be Closed by the Assignee, skipping the Resolved status. (s.o. JIRA Default Workflow).

Java Version Compatibility

Unless previously decided and stated, dcm4che sub-projects shall maintain compatibility with JDK 5.0. The exception is dcm4che14, which remains at a 1.4 compatibility for now. dcm4che2, dcm4chee 2.x and dcm4chee 3.x use JDK 5+. Read this thread in the forums for more discussion.

Eclipse IDE Configuration

If you're using Eclipse to work on dcm4che, follow the instructions on Eclipse IDE Configuration to make sure you're on par with the standards.