SPIKE Release Management
This document provides an overview of how the cut a SPIKE release, including testing guidelines and instructions.
We Still Use Human Push-buttons
Although some steps, audits, and integration tests of the release process are automated, we still follow several manual steps outlined in this document.
Below, you will find detailed instructions and examples to guide contributors through the release and testing process.
This document is targeted for core contributors who are responsible for managing the release cuts of SPIKE. It provides detailed instructions to ensure a smooth and reliable release process.
Coverage Report
The coverage report is available at https://spike.ist/coverage.html.
We update the coverage report at every release cut.
If you want to increase test coverage, you are more than welcome to contribute to the project.
Before Every Release
Before every release:
- Run the unit tests:
make test
. - Run
make start
and verify you see the message “Everything is set up.” to confirm the smoke tests pass, then pressCtrl+C
to stop. - Switch to “in-memory” mode, run
make start
and verify you see the message “Everything is set up.” again to confirm the smoke tests pass in that mode too, then pressCtrl+C
to stop. - Run
make audit
to ensure the project is free of security vulnerabilities. - If everything passes, update
./app/VERSION.txt
to the release version. - Update any necessary documentation.
- Update the changelog
(
docs-src/content/tracking/changelog.md
). - Run
make docs
to generate and publish the documentation, including the coverage report.
Release process:
- Merge all the changes to the
main
branch. - Tag a version by running
make tag
(this creates a GPG-signed tag using the version fromapp/VERSION.txt
and pushes it to origin). - Convert the tag to a release on GitHub.
- Copy the current version’s changelog over to the release notes on GitHub.
- On a Mac machine follow cross-platform build instructions to generate binaries.
- Add binaries to the release as assets.
- Announce the release in relevant channels.
- You are all set.
- SPIKE Cross-Platform Build
- SPIKE Production Setup
- SPIKE Recovery Procedures
- SPIKE Release Management