To cut a new release of the containerd-shim-spin, you will need to do the
following:
-
Confirm that CI is green for the commit selected to be tagged and released.
-
Change all references of the version number in repository using the
version.shscript, which updates all Cargo manifests and README documentation to use a bumped version. Specify a major, minor, or patch version update using the-m,-n,-pflags, respectively.# Update minor version (1.2.3 -> 1.3.0) scripts/version.sh -n -
Update CHANGELOG.md. The Unreleased section should be updated with the new version number and the date of the release. Update the links to new version tag in the footer of CHANGELOG.md.
-
Add a new column to the README shim and Spin version map that lists the version of the Spin dependencies for the release.
-
Create a pull request with these changes and merge once approved.
-
Checkout the commit with the version bump from above.
-
Create and push a new tag with a
vand then the version number.As an example, via the
gitCLI:# Create a GPG-signed and annotated tag git tag -s -m "Containerd Shim Spin v0.15.0" v0.15.0 # Push the tag to the remote corresponding to spinframework/containerd-shim-spin (here 'origin') git push origin v0.15.0 -
Pushing the tag upstream will trigger the release action.
- The release build will create binary releases of the shim and upload these assets to a new GitHub release for the pushed tag. Release notes are auto-generated but edit as needed especially around breaking changes or other notable items.
- The release action also creates test applications, a k3d node image with
the
containerd-shim-spin, and a new node installer image to be used by the runtime class manager.
-
[Optional] Smoke test the release by running the following commands, replacing the version number with the new release:
k3d cluster create wasm-cluster \ --image ghcr.io/spinframework/containerd-shim-spin/k3d:v0.15.0 \ -p "8081:80@loadbalancer" \ --agents 2 kubectl apply -f https://github.com/spinframework/containerd-shim-spin/releases/download/v0.15.0/runtime.yaml kubectl apply -f https://github.com/spinframework/containerd-shim-spin/releases/download/v0.15.0/workload.yaml
This will create a k3d cluster with the new release and deploy a test workload to it.
- Update SpinKube documentation as necessary. Ensure the latest node installer image is used and update the Shim and Spin version map.