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 are cataloged on the GitHub Releases page.
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
cd dcs-packaging-tool-gui
mvn jfx:run
master
branchHEAD
commit hash of master
for your local git repository should match the HEAD
commit hash of your https://github.com/DataConservancy/dcs-packaging-tool.git
remote (named upstream
, in these instructions)
git show master
and git show upstream/master
should be the samegit status
)master
should be green1.0.4
)1.0.5-SNAPSHOT
)HEAD
, useful if you need to roll backmvn release:prepare
1.0.4-SNAPSHOT
to 1.0.4
)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:
mvn release:clean
git reset --hard HEAD^
git tag -D <newly created tag>
(use git tag
to list the tags)
If all goes well with mvn release:prepare
, then you're ready to perform the release.
mvn release:perform
1.0.4
to 1.0.5-SNAPSHOT
)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:
mvn release:clean
git reset --hard HEAD^^
git tag -D <newly created tag>
(use git tag
to list the tags)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
).
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.
git checkout <tag>
To create the MacOS native installer, cd into dcs-package-tool-gui
, and run:
mvn clean jfx:native
The installer will be located at dcs-packaging-tool-gui/target/jfx/native/DC Package Tool-1.0.4.dmg
TODO
TODO