Specify Software is a product of the Specify Collections Consortium that is funded by its member institutions. Consortium Founding Members include: University of Michigan, University of Florida, Denmark Consortium of Museums, and the University of Kansas. The Consortium operates under the non-profit U.S. tax status of the University of Kansas Center for Research. Specify was supported previously by multiple awards from the U.S. National Science Foundation.
Specify 6 Copyright © 2020 University of Kansas Center for Research. Specify comes with ABSOLUTELY NO WARRANTY. This is free software licensed under GNU General Public License 2 (GPL2).
Specify Collections Consortium Biodiversity Institute University of Kansas 1345 Jayhawk Blvd. Lawrence, KS USA 66045
Building Specify 6
Building Specify 6 requires the JDK v1.8 and Apache Ant v1.9.3.
The following build targets are available:
ant compile-nonmac- Compile Java source code to target platforms other than Mac OSX.
ant compile-mac- Compile Java source code targeting Mac OSX.
ant make-jar-nonmac- Assemble JAR file for non Mac targets.
ant make-jar-mac- Assemble JAR file for Mac targets.
ant generate-datamodel- Generate
config/specify_datamodel.xml. This target is depended upon by the packaging targets and will be run automatically for packaging. It needs to be run manually, however, to permit Specify to run from within an IDE.
ant run-specify-nonmac- Execute the main Specify application for non Mac systems.
ant run-specify-mac- Execute the main Specify application on Mac systems.
All build outputs will be found in the
build/ directory except for
Packaging Specify 6
Packaging Specify 6 requires Install4J v8.0 (evaluation or licensed).
The path to Install4J must be provided to the Ant
build through the
-Dinstall4j.dir=/path/to/install4j parameter unless
Install4J is at the default location
The following Ant build targets are available for packaging:
ant package-nonmac- Produce installers for Windows and Linux 64 and 32 bit systems.
ant package-mac- Produce installers for Mac systems.
ant package-all- Produce installers for all systems plus the updates.xml auto-updating information.
All packaging products will be found in the
The Windows and Mac installers can be code signed by passing the following properties to Ant:
code.signingset to "true" to enable code signing.
win.pkcs12with the path to the Windows code signing certificate with root and intermediate certificates.
win-keystore-passwordwith the encryption password for the above.
mac.pkcs12with the path to the Mac code signing key.
mac-keystore-passwordwith the encryption password for the above.
ant package-all \ -Dcode.signing=true \ -Dwin.pkcs12=/mnt/biteme/BI/Specify/Specify6/Certificates/WindowsCertificates/certwithroot.pfx \ -Dwin-keystore-password=SECRET \ -Dmac.pkcs12=/mnt/biteme/BI/Specify/Specify6/Certificates/MacOsCertificates/SpecifyMacOSCert.p12 \ -Dmac-keystore-password=SECRET
This repository is equipped with automated builds using GitHub actions. All commits pushed to the repository will result in test builds that can be found under the actions tab with downloadable package artifacts for testing that persist for 90 days. If a commit is tagged and pushed the repository, a GitHub draft prerelease with the name of the tag will be automatically created and have the build output packages attached.
Proposed Release Process (starting with v6.7.00)
A process for producing final releases could be as follows:
Tag the commit to be released with the version number plus
Xis the release candidate number.
The automated build system will produce a prerelease as described above.
The external packages can be downloaded and given final testing.
If all is well, retag the commit with the plain version number.
Using the GitHub UI, remove the prerelease status from the resulting automatic build prerelease.
Download the external installer packages and
In the account firstname.lastname@example.org create a new directory named
XYZwhere X, Y, and Z come from the version number
Upload the installer packages and
updates.xmlto the newly created directory.
readme.htmlfor the new version to the new directory with the filename
Take a copy of
index.htmlfrom a previous version folder and update it with the current version number and place that in the new directory.