Developers Practices for jMoby

Established at the Vancouver Moby-Dic Developers Meeting May 7, 2005. Ben Good suggested to call it
The Twelve Commandments
  1. Commit liberally as long as you obey the rest of the rules.
  2. Code MUST compile (preferably without warnings)
    If you work on the code that does not compile yet, and if you, from some reasons, need to commit such code, then create a directory (or more directories) named notyet (anywhere under src/main directory). These are by default excluded from the compilation - so the sources in these directories do not break this commandment.
  3. Check for novelty before committing. Do not feel ashamed to ask whether anything similar already exists.
  4. Make an effort to re-use what already exists
  5. Think carefully about package names.
    Remember that until we use Subversion instead of CVS the directories are hard to remove once they are created. Document the contents of new packages in the package descriptions.
  6. Do not commit your services unless they are part of a tutorial (aka didactic services).
    In other words, jMoby is not a place for every BioMoby service written in Java. Such services are and will be spread around the world. Put into jMoby rather services that have a tutorial/didactic value.
  7. If you use the real latest Java (Java 1.5, at the moment), you must adjust the build.xml - see notes for the latest Java.
  8. Whenever possible, include test programs that display the functionality of the new classes.
  9. Join the MOBY-dev mailing list, consider to join also the moby-l mailing list.
  10. If you have to use a new third party library, you need to modify the build.xml file to go and get it.
    It is not enough just to add a new jar file in your lib sub-directory (because other developers will not have it). It is not recommended to add a new jar file into CVS - if you have a new jar file, change instead the build.xml file (actually change the xmls/libraries that is used by build.xml).

    All third parties come to your CVS local copy when you execute ant install (from various Maven repositories).

  11. Package names do not neccesarily have to start with org.biomoby.
    Make also sure that javadoc will not create any warnings. A good practice is also to include a brief summary of your changes in the docs/ChangeLog file (if using Emacs try 'Ctrl-x 4 a' to add a new entry). Last but not least, at least for bigger code groups: create an HTML document describing how to use your code and link it from index.html.

For serious developers, please take the time to read Eddie's expanded designer's manual.
Eddie Kawas
Last modified: Thu Feb 14 15:05:58 2008