pont-us / PuffinPlot

A program to plot and analyse palaeomagnetic data
GNU General Public License v3.0
3 stars 0 forks source link

= PuffinPlot development notes

PuffinPlot is a program for palaeomagnetic data plotting and analysis, written by Pontus Lurcock. This readme describes the requirements for building PuffinPlot and its documentation from source, and is intended for developers rather than users. Users are advised to download the latest PuffinPlot release from the project website at http://talvi.net/puffinplot/ and consult the included user manual.

== Building PuffinPlot

Build requirements:

PuffinPlot is structured as a Maven project, and can be built by running mvn package in the root directory. This will produce the zip package puffinplot-<version>-bin.zip in the target subdirectory. Other than the JDK and Maven itself, all dependencies are automatically downloaded and cached locally by Maven during the build process. As of November 2020, cloning and building PuffinPlot requires around 500 MB of disk space, not including the space required for the JDK.

While the PuffinPlot jar will run with any Java SDK from 8 onward, Java 8 (and no higher) is currently required to build. If the system default Java is not version 8, another JDK can be specific using the JAVA_HOME variable, e.g.

[source,bash]

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ mvn package

The PuffinPlot build process includes the execution of several hundred unit tests. Some of the tests require a desktop environment to execute, and if the build is carried out in a headless environment those tests will be skipped.

PuffinPlot has been developed mainly in https://netbeans.apache.org/[Apache Netbeans], and the nbactions.xml file provides some NetBeans-specific Maven actions, but development is not tied to any specific IDE. In particular, PuffinPlot's Swing GUI does not make use of the NetBeans Matisse GUI designer.

PuffinPlot can optionally make use of Jython; the required Jython package can be dynamically downloaded, installed, and used by PuffinPlot at runtime, but it is not a build-time dependency.

== Bug tracking

PuffinPlot uses GitHub Issues for bug tracking. The issue tracker can be found https://github.com/pont-us/PuffinPlot/issues[here]. Bug reports and feature requests are always welcome, but unfortunately I cannot guarantee a timely response.