Development Tasks / Releasing
Releasing the software consists of compiling StateMod into an executable and packaging into an installer that can be distributed. The StateMod executable may be further packaged with StateMod datasets and StateMod GUI, although this documentation does not currently describe those steps.
This documentation contains the following sections:
Build Checklist
Currently there is not a need for StateMod to be built in a continuous integration process because the development team is small. Consequently the build process is done by the software developers responsible for StateMod testing and release.
The full build process checklist is as follows:
- As of version 17.0.0, the software version has 3 parts such as 17.0.0 (parts are not padded with extra zeros, as was done previously).
The version should be incremented accordingly as public releases are made
based on Semantic versioning.
If necessary, add a fourth part such as
.dev1
,.dev2
, etc. to indicate development versions that are not intended for public use. - Issues in the GitHub repository should be coordinated to decide when a public versioned release should occur. Normally a release will be made to fix bugs only and/or to introduce one or more new features.
- Recompile the program for release in
src/main/fortran
folder:make statemod_release
- Run tests to confirm program accuracy. See the Testing documentation.
- Update the documentation, in particular user documentation and release notes. See the Documenting documentation.
- Create the installer. The Creating StateMod Installer section below discusses the installer in more detail.
- Publish the new version. The compiled executable can be distributed. See the Releasing StateMod section below.
Creating StateMod Installer
StateMod software executables are packaged into a zip file by running the following make
target in the
src/main/fortran
folder:
make installer
This runs the build-util/copy-to-co-dnr-gcp.bash
script,
which creates the zip file, optionally uploads to the OpenCDSS Google Cloud Platform bucket/website,
and optionally creates an updated
StateMod index page.
Releasing StateMod
The previous section describes how to create and upload a zip file installer for the StateMod executables. The executables can be packaged into other products as described in the Deployed Environment / Overview documentation.