The organization of the project

Developer's guide

Configuration Management

Source Code

Public repository on Github github.com/cedesk/data-exchange

Branching

The master branch keeps the stable, released versions.

There is a development branch, where some global improvements were done. Feature development is done in branches. Mature features are merged back to the development branch.

Releasing

Making a release is made in several steps.

1) First eventually added/remove OSS libraries are reflected in the file about.html.

2) The development branch is merged on to the master branch, and the new version number is modified in the build file (pom.xml). If the data entities have changed the schema version needs to be modifed as well (also in the pom.xml).

3) Set a tag on the last commit on the master branch with the version number in the format v##.##, e.g. v1.25.

4) Push commits and tags to the central repository.

Build System

For managing the dependencies of the software on third-party libraries and defining the build process, the project uses Maven 3, see pom.xml.

Client installer packages

Packaging native installers (win: .exe, mac: .dmg, linux: .deb), using the javafx-maven-plugin, which is a wrapper of the JavaFX packaging utility.

The build phase package produces the installer for the platform on which the build is running. The resulting artifact is found int build directory target/jfx/native.

Pre-requisites In order to assemble platform specific installer packages the following tools are required by the javafx-maven-plugin.

  • for Windows: Inno Setup 5 or later from http://www.jrsoftware.org

  • for MacOS: Xcode

  • for Linux: RPMBuild or Debian packaging tools

Automated Tests

JUnit4 is used for defining and running tests.

There are different kinds of tests.

  • most of the tests are real unit tests;
  • others were written as proof of concept code for developing certain functionality, in particular for the use of certain libraries. These often use a static void main method as entry point.