The Specify Software Project is funded by the Advances in Biological Informatics Program, U.S. National Science Foundation (NSF/BIO: 1565098).
Specify 6 Copyright © 2018 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 Software Project
Biodiversity Institute
University of Kansas
1345 Jayhawk Blvd.
Lawrence, KS USA 66045
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 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.
Packaging Specify 6 requires Install4J v5.1 (evaluation or licensed).
Developers within the Biodiversity Institute network should
use the floating license on specify6-prod.nhm.ku.edu by running
/path/to/install4j/bin/install4jc --license=FLOAT:specify6-prod.nhm.ku.edu after installing Install4J.
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 $HOME/install4j5.
The following Ant build targets are available for packaging:
-
ant package-internal-nonmac- Produce internal style installers and updaters for Windows and Linux 64 and 32 bit systems. -
ant package-internal-mac- Produce internal style installers and updaters for Mac systems. -
ant package-external-nonmac- Produce release style installers and updaters for Windows and Linux 64 and 32 bit systems. -
ant package-external-mac- Produce release style installers and updaters for Mac systems. -
ant package-internal- Produce internal style installers and updaters for all systems including updates.xml auto-updating information. -
ant package-external- Produce release style installers and updaters for all systems including updates.xml auto-updating information. -
ant package-all- Produce internal and release style installers and updaters for all systems including updates.xml auto-updating information.
All packaging products will be found in the packages/
directory. Internal style packages will be in packages/internal, and
release style packages will be in packages/external.
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.
For example:
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=SECRETThis repository is equiped with automated builds using Travis
CI. All commits pushed to the repository will result in test
builds. If a commit is tagged and pushed the repository, a GitHub
prerelease with the name of the tag will be automatically created
and have the build output packages attached. These include both the
internal (filenames ending with BETA) and external (plain filenames)
installer packages.
A process for producing final releases could be as follows:
-
Tag the commit to be released with the version number plus
rcX, whereXis 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
updates.xml. -
In the account specify@files.specifysoftware.org create a new directory named
XYZwhere X, Y, and Z come from the version numberX.Y.Z. -
Upload the external installer packages and
updates.xmlto the newly created directory. -
Upload the
readme.htmlfor the new version to the new directory with the filenamerelnotes.html. -
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. -
To make the release live for auto updates, copy the contents of the new version directory to the home directory.