Developer Guide¶
Introduction¶
This guide, designed for a NLNZ Tools SIP Generation developer and contributor, covers how to develop and contribute to the NLNZ Tools SIP Generation. The source for both code and documentation can be found at: https://github.com/NLNZDigitalPreservation/nlnz-tools-sip-generation/
Contents of this document¶
Following this introduction, the NLNZ Tools SIP Generation includes the following sections:
- Contributing - Covers how to contribute to the project.
- Basic packages and classes - Covers the packages and classes in the project.
- Building - Covers building the nlnz-tools-sip-generation jars from source.
- Developer guidelines - Covers coding practice and development workflow.
- Future milestones - Covers plans for future development.
Contributing¶
This describes how to contribute to the NLNZ Tools SIP Generation project. General contribution guidelines follow the guidelines outlined in Contributing section of the Developer Guide of the National Library of New Zealand Developer Guidelines for a description of the build commands used for this project. These guidelines can be found at https://nlnz-developer-guidelines.readthedocs.io .
Source Code Repository¶
Source code for the NLNZ Tools SIP Generation is stored in github at: https://github.com/NLNZDigitalPreservation/nlnz-tools-sip-generation/ Contributors to the codebase will require a github account.
Major Contributors¶
Major contributors to NLNZ Tools SIP Generation are NLNZ (The National Library of New Zealand) (https://natlib.govt.nz/). This institution currently drive most development. All contributors are welcome. Making your interest in NLNZ Tools SIP Generation known can help to ensure that the tools meets your needs.
Contributors¶
See individual git commits to see who contributors are.
Basic packages and classes¶
TODO a diagram illustrates the interactions between key classes.
Building¶
Requirements¶
Build requirements¶
Building the NLNZ Tools SIP Generation from source requires the following:
- Java 11 JDK or above (64bit recommended). Current development assumes the use of OpenJDK.
- Gradle 5.2.1 or later.
- Groovy 2.5.4 or later.
- Git (required to clone the project source from Github).
- Access to maven central either directly or through a proxy.
As the artifact targets are Java-based, it should be possible to build the artifacts on either Linux, Solaris or Windows targets.
Dependencies¶
Most of this project’s dependencies can be pulled from Maven Central, but this project also depends on nlnz-m11n-tools-automation and rosetta-dps-sdk-projects-maven-lib for some of its functionality.
nlnz-m11n-tools-automation need to be built and its artifact available for this project to build. The nlnz-m11n-tools-automation project can be found at https://github.com/NLNZDigitalPreservation/nlnz-m11n-tools-automation .
The jar and pom.xml provided by the rosetta-dps-sdk-projects-maven-lib project needs to be installed as well. The
project can be found at https://github.com/NLNZDigitalPreservation/rosetta-dps-sdk-projects-maven-lib . Follow the
instructions to install the necessary artifacts.
Development platforms¶
The following platforms have been used during the development of the NLNZ Tools Sip Generation:
- Ubuntu GNU/Linux 18.04 LTS and later
Installation¶
The artifacts are built using gradle and will deploy to a maven repository when various gradle publishing options are used.
Build commands¶
See the Build commands for Gradle-based projects section of the Java Development Guide of the National Library of New Zealand Developer Guidelines for a description of the build commands used for this project. These guidelines can be found at https://nlnz-developer-guidelines.readthedocs.io .
The primary build command for this project is:
gradle clean build publishToMavenLocal
Versioning¶
See the build.gradle file for the current jar version that will be generated.
A detailed versioning discussion is found in the Build commands for Gradle-based projects section of the Java Development Guide of the National Library of New Zealand Developer Guidelines. These guidelines can be found at https://nlnz-developer-guidelines.readthedocs.io . See the section Git Development Guide.
Developer Guidelines¶
See the National Library of New Zealand Developer Guidelines found at: https://nlnz-developer-guidelines.readthedocs.io .
Future milestones¶
This sections discusses plans for future development.
TODO Discuss plans for future development.