v2.2.0
Spin 2.2.0
This release of Spin brings a number of features, improvements and bug fixes.
Some highlights in v2.2.0 at a glance:
- Initial multi-trigger support has been added to Spin, thanks to new contributor @carlokok!
- We'll still be working on this feature post-2.2.0 and will add docs/examples to the Developer site once stabilized.
- Spin has been updated to use Wasmtime 17 and WASI 0.2.0
- The Websockets SIP has been merged
- Massive testing improvements from @rylev, including restructuring for gains in efficiency, devex and de-duplication
Additional features worth mentioning:
- A new
set_header
method on the http Request object: #2187 - The active channel is now printed for Redis trigger apps: #2232
- Addition of a Spin app example using Hashicorp Vault for variables: #2241
- Some helpful logging when wasm components are slow to load: #2226 by new contributor @Archisman-Mridha!
As always, thanks to contributors old and new for helping improve Spin on a daily basis! 🎉
Verifying the Release Signature
After downloading the v2.2.0 release of Spin, either via the artifact attached to this release corresponding to your OS/architecture combination or via the installation method of your choice, you are ready to verify the release signature.
First, install cosign. This is the tool we'll use to perform signature verification. Then run the following command:
cosign verify-blob \
--signature spin.sig --certificate crt.pem \
--certificate-identity https://github.com/fermyon/spin/.github/workflows/release.yml@refs/tags/v2.2.0 \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-github-workflow-sha eebfae1d6de6a166da16ec8858332f4cc3b6c557 \
--certificate-github-workflow-repository fermyon/spin \
spin
If the verification passed, you should see:
Verified OK
What's Changed
- Remove redundant variables test by @rylev in #2172
allowed_outbound_host
CIDR and IPv6 support by @rylev in #2174- bump version to 2.2.0-pre0 by @dicej in #2177
- docs(release-process): small amendment by @vdice in #2183
- Port sqlite-libsql to new libsql client by @itowlson in #2148
- Mutable access to request headers by @itowlson in #2187
- print error msg when plugin binary is missing by @rajatjindal in #2189
- fix statically linked build issue for aarch by @rajatjindal in #2179
- remove workspace/all-targets from cross build cmd by @rajatjindal in #2192
- Runtime tests services by @rylev in #2180
- Update readme to latest template syntax by @tpmccallum in #2178
- Stop testing kv and sqlite twice by @rylev in #2195
- Rename 'Test Spin SDK - Rust' to 'Test Spin' by @rylev in #2197
- remove
Send
andSync
bounds from Rust SDK router by @dicej in #2198 - Add macro for generating runtime tests automatically by @rylev in #2196
- Patched build.rs to run on systems without rustup. Added flake for ni… by @benwis in #2199
- Remove unused files by @rylev in #2194
- Docker Service for runtime tests by @rylev in #2193
- Wasi HTTP runtime test by @rylev in #2201
- chore(flake): Fix Darwin dependency on Accelerate by @endocrimes in #2204
- Test that variables and components can be added in the same template by @itowlson in #2207
- ignore asset globs from being watched when using direct-mounts by @karthik2804 in #2203
- update configure aws creds action to v4 by @rajatjindal in #2191
- Add random port support to Python services by @rylev in #2206
- Remove redundant headers-env-routes-test by @rylev in #2208
- feat(cli.rs): allow setting app log dir via SPIN_LOG_DIR env var by @vdice in #2209
- ci(release): consolidate GH release logic by @vdice in #2185
- Abstract the runtime used in runtime tests so that it's not hardcoded as Spin by @rylev in #2211
- Don't pass services when constructing Spin instance in runtime test by @rylev in #2214
- Update libsql to a crates.io reference by @itowlson in #2215
- Generalize runtime testing framework to be a general testing Spin framework by @rylev in #2217
- Update test to new Cloud plugin help text by @itowlson in #2219
- ci(templates): update rust templates automation to use the crates.io versions by @vdice in #2221
- update to Wasmtime 17 and WASI 0.2.0-rc-2023-12-05 by @dicej in #2222
- E2E testing using testing framework by @rylev in #2223
- Move rest of e2e tests over to new testing framework by @rylev in #2224
- Provide feedback if it takes a while to download a remote component on
spin up
by @Archisman-Mridha in #2226 - Warn instead of trace when errors happen in the spin_redis_engine by @karthik2804 in #2231
- Move more integration tests to use the testing framework by @rylev in #2228
- print active channels on redis trigger by @karthik2804 in #2232
- SIP 016 - Inbound WebSocket Support by @dicej in #2212
- bump
PoolingAllocationConfig::max_core_instances_per_component
to 200 by @dicej in #2234 - Bump h2 from 0.3.22 to 0.3.24 by @dependabot in #2233
- Bump shlex from 1.2.0 to 1.3.0 by @dependabot in #2239
- Bump zerocopy from 0.7.29 to 0.7.32 by @dependabot in #2210
- feat(up): Spawn multiple trigger commands by @carlokok in #2213
- temporarily switch to Wasmtime commit 0b632023 by @dicej in #2243
- cargo cfg: fix build on aarch64-linux by @endocrimes in #2240
- logging: Emit wasmtime-wasi-http WARN logs by default by @lann in #2244
- Add vault variable example by @tpmccallum in #2241
- trigger-http: Log TLS startup errors instead of propagating by @lann in #2230
- update to Wasmtime 17 and WASI 0.2.0 by @dicej in #2250
- Include trigger type in trigger options help header by @itowlson in #2256
- Cancel external triggers if one of multiple fails on start by @itowlson in #2248
- Fix regrettable trigger help heading when no app by @itowlson in #2258
- Allow only common trigger options in multi-trigger apps by @itowlson in #2257
- chore(release): Spin v2.2 version bumps by @vdice in #2260
New Contributors
- @benwis made their first contribution in #2199
- @Archisman-Mridha made their first contribution in #2226
- @carlokok made their first contribution in #2213
Full Changelog: v2.1.0...v2.2.0