DataConservancy / dcs-packaging-tool

The Data Conservancy Packaging Tool
http://dataconservancy.github.io/dcs-packaging-tool
2 stars 3 forks source link

Data Conservancy Packaging tool

The Data Conservancy Packaging Tool is a JavaFX GUI used to describe and package digital content.

The packaging tool produces packages that are compliant with the following specifications:

Note: the Data Conservancy specifications are managed separately, here.

Full documentation is available on our wiki.

Releases

Releases are cataloged on the GitHub Releases page.

Developer Quick Start

Prerequisites

To build the entire tool

Clone this repository.

mvn clean install

Some tests require creating symbolic links which is a privileged operation on Windows. To run all tests except those requiring escalated privileges: mvn clean install -P unprivileged

Some tests also create large, temporary, files for testing (~8 GB) which may not be accommodated by machines with limited resources. To run all tests except those requiring large amounts of resources: mvn clean install -P constrained

You can skip both kinds of tests by running: mvn clean install -Pconstrained,unprivileged

To run the package tool GUI

cd dcs-packaging-tool-gui
mvn jfx:run

Creating a release

Requirements

Preparation

Perform the release

At this point, you can look at your git commit log to see if everything looks ok. Nothing has been pushed yet, so if you see a mistake, it is easy to roll back. To roll back:

At this point, you can still look at your git commit log to see if everything looks ok! Nothing has been pushed yet, so if you see a mistake, it is mostly easy to roll back. To roll back:

If all went well with mvn release:perform, push your changes to https://github.com/DataConservancy/dcs-packaging-tool.git, making the release official. Alternately, open a PR, which will make the release official upon merging.

Finally, push the tags to https://github.com/DataConservancy/dcs-packaging-tool.git (git push --tags upstream).

Create native installers

After the release has been pushed to master, native installers for MacOS, Windows, and Linux need to be created.

They must be created from the release tag. This insures that build metadata like the commit hash, the tag, and version number of the tool are consistent across the three platforms, and of course, insures that they are all cut from identical code.

MacOS

To create the MacOS native installer, cd into dcs-package-tool-gui, and run:

Create GitHub release