Getting Involved

We can use your help, whether it is programming, web development, documentation, providing feedback or getting the word out.

Mailing Lists

The first thing you need to do is join the jsword-devel mailing list. Everything that we do is openly discussed here.

Get a Development Environment

At a minimum you will need Subversion (aka SVN) and a programmer's text editor. But to make things nicer, we recommend getting a SVN client and also a programmer's IDE. While there are many to choose from and they differ among OSes and you are welcomed to use whatever you wish, we use Eclipse as our IDE and with subclipse, an Eclipse plugin, as our SVN client. We can provide help if you use Eclipse, but if you use something else we might not be able to help. You can get instructions on how to set up Eclipse here.

Get the Source Code

We use Subversion for our source code control. Unless you have used SVN before, you may be surprised how it works. The Subversion Book makes good bedtime reading and provides the best explanation of how it works. In a nutshell, you "checkout" the code, which merely gets you a local copy of the code. You don't need any password to do this and you can use your web browser to browse the repository. For detailed instructions see our pages on svn and Eclipse.

Understanding the Code

Before you can effectively make changes to the code, you need to understand it. Below outlines where you can get this information.

Source Documentation

The high level design comes in the form of an API Primer which describes how to go about reading and formatting data from JSword, using Bibles, Commentaries and Dictionaries (it comes with some decent JavaDoc too). There is also a design statement that explains some of the top level design choices. It explains how the Book and Bible interfaces are arranged and justifies the design decisions.

There is also the obligatory JavaDoc tree. Most of the source is fairly well documented, so the JavaDoc ought actually to be useful! There is also a web version of the Java Source converted to the web by Cobertura, with test coverage information.

We use OSIS 2.1 as a standard for XML format Bible data. From the OSIS website: The Open Scriptural Information Standard (OSIS) is an XML based markup of the Bible, commentaries and related texts that will facilitate interoperability across natural language boundaries and computer hardware and software for publication, linking, reference and accessibility.

Making Changes to Code

The introduction document describes the aims of the project, and has some comments on contributing code.

Test Results

We are run unit tests automatically on a nightly basis. The unit tests are run with the help of JUnit and we also get code coverage analysis performed by Cobertura. So you can easily see the latest test results, or some coverage analysis that shows how effective the tests are.

Quality Checks

The nightly builds also run some freely available code quality checkers. The tools we use are: CheckStyle, PMD and CPD, FindBugs, JDepend and NCSS. These reports check many details of the source including that coding standards are being followed, that we are avoiding common traps and that we are not falling fowl of more obscure bugs.

In addition the latest build log will tell you how last nights build went.