|
PAL: Phylogenetic Analysis Library
Guidelines for Contributing Code
Contributions to PAL are very welcome. Basically, there are two main routes:
- Minor contribution: If you want to contribute a single or few classes only, for example
those implementing your own favorite method, simply send your tested
code to one of the core team members. Your class(es) will then be
included in the library for publication in the next release.
Your contribution will be acknowledged in the sources,
in all documentation, and on the web.
-
Major contribution:
On the other hand, you may be interested
in joining the PAL core team in further developing and
improving PAL in general. This generally involves a considerable amount
of continuous (and sometimes boring) work on all parts of the library.
If you have experience with a similar project before and now would like
to bring in your expertise in PAL, get in touch and you will be afforded
full CVS rights.
In both cases the following PAL programming guidelines must be followed.
The aim is to have code that is easy to understand by people other than
the original author, and that runs on a minimal Java platform:
-
Coding conventions: all code must follow the Java coding conventions.
In particular, the Java naming conventions for variables, class names,
constants etc. must be followed strictly.
- Access to library features must be restricted to Java 1.1 (no Java 1.2/1.3
library).
-
All classes and public/protected methods must be
documented using JavaDoc comments.
- Each public class must carry @author and @version tags.
- All code must carry the standard PAL header, assigning copyright
to the PAL Core Development Team and permitting distribution by the
GNU LGPL.
- Your code must fully comply with the GNU LGPL, i.e. must be your own
or from some other GNU LGPL or public domain source. Code containing,
e.g., portions from Numerical Recipes can not be accepted.
- In your classes methods from existing PAL packages
likes pal.io, pal.math, pal.util
should be preferred over the corresponding SUN packages
(e.g., for random numbers)
- If you need to change code other than yours be careful not to
break it!
- Needless to say, all code should be well tested and should actually
do what it claims ..
Please look at the sources of the current PAL distribution for example code.
|