Participating in JFreeChart Development
This page provides information for individuals that wish to participate as developers on the JFreeChart project. Our aim is to make it as easy as possible to contribute to the development of JFreeChart, while providing just enough structure to keep everything (relatively) coordinated. Developers interested in participating should:
- subscribe to the jfreechart-developer mailing list -- please introduce yourself and tell us what you'd like to work on (if you know already, that is);
- help out with support in the JFreeChart forum. Please resist the temptation to flame people that ask "dumb" questions---we like to keep it friendly. If a question is answered in the FAQ, provide a link to the entry. If a similar question has already been asked in the forum, provide a link to the post. Most people will eventually get the idea;
- review the bug, feature request and patches databases to get ideas for things to work on. All of these need work;
- start submitting patches to the jfreechart-patches mailing list, and provide feedback on patches posted by others.
Mailing Lists
The JFreeChart project operates two mailing lists:
- the jfreechart-developers mailing list --- this is for general discussion about the project, the place to ask questions, announce things you'd like to work on, comment on the road map, just about anything related to project participation;
- the jfreechart-patches mailing list --- this list is used to post patches for review and discussion. Subscribe to this list if you want to keep up with the day-to-day changes to the JFreeChart code base.
Subversion
JFreeChart operates a Subversion repository at SourceForge. Developers will be granted Subversion commit rights once they have established their familiarity with and understanding of the project and how it operates. Typically this is achieved by contributing bug fixes and feature enhancements over a period of time. The JFreeChart 1.0.x source code resides on a branch 'jfreechart-1.0.x-branch'. The trunk contains code that will eventually become JFreeChart 2.0.
Patches
Patches should be created using 'svn diff > diff.txt' from JFreeChart's root directory, have a corresponding ChangeLog entry, and be posted to the jfreechart-patches mailing list for review. The following guidelines should be followed for all patches:
- the patch MUST be your own work;
- backwards compatibility MUST be preserved for the 1.0.x series of JFreeChart releases;
- all code MUST compile and run against JDK 1.3.1 (we are going to bump this soon, but didn't make the final decision yet);
- please format your code consistently with the existing source files, there is a Checkstyle configuration file available. No TABS in source files, ever. Always include Javadoc comments;
- changes should be backed up by JUnit tests wherever possible.
Special Note
A lot of code in JFreeChart relies on classes implementing equals(), Cloneable and Serializable correctly. When making changes, bear this in mind. If in doubt, run the test suite.
ChangeLog
The ChangeLog is a text file in the project root directory that summarises all changes that have been committed to Subversion. Maintaining this file is a very effective technique for communicating between developers the changes that are going on in SVN. It allows developers to quickly catch up on what has changed in JFreeChart when they haven't been following all the discussions on the mailing lists. Maintaining the ChangeLog and posting patches to the mailing list is an overhead, but it quickly becomes a familiar process and really does help development (at least that has been my experience on larger projects such as GNU Classpath). Here is some information about the ChangeLog entry format.
Feedback
Please post any feedback to the developer mailing list, we'll be happy to take suggestions into consideration. Thanks!