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 for SPIKE is available at https://spike.ist/coverage.html.
The coverage report for SPIKE Go SDK available at https://spike.ist/sdk/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.
Generating Coverage Reports
To generate and publish the SPIKE coverage report, run make docs from the
SPIKE repository root. This generates the coverage report and publishes it to
./docs/coverage.html.
To generate and publish the SPIKE Go SDK coverage report:
cd /path/to/spike-sdk-go
make coverage/publish
This runs the SDK tests with coverage profiling and publishes the HTML report
to the SPIKE documentation directory at ./docs/sdk/coverage.html.
Before Every Release
Before every release:
- Run the unit tests:
make test. - Run
make startand verify you see the message “Everything is set up.” to confirm the smoke tests pass, then pressCtrl+Cto stop. - Switch to “in-memory” mode, run
make startand verify you see the message “Everything is set up.” again to confirm the smoke tests pass in that mode too, then pressCtrl+Cto stop. - Run
make auditto ensure the project is free of security vulnerabilities. - If everything passes, update
./app/VERSION.txtto the release version. - Update any necessary documentation.
- Update the changelog
(
docs-src/content/tracking/changelog.md). - Run
make docsto generate and publish the documentation, including the coverage report. - From the
spike-sdk-gorepository, runmake coverage/publishto generate and publish the SDK coverage report.
Release process:
- Merge all the changes to the
mainbranch. - Tag a version by running
make tag(this creates a GPG-signed tag using the version fromapp/VERSION.txtand 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