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.