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.
|