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.
Build requirements:
-
A Java Development Kit (JDK), version 8.
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.
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
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.
PuffinPlot uses GitHub Issues for bug tracking. The issue tracker can be found here. Bug reports and feature requests are always welcome, but unfortunately I cannot guarantee a timely response.