Spin v2.4
The v2.4 release of Spin brings a number of features, improvements and bug fixes.
Some highlights in v2.4.0 at a glace:
- experimental support for the OpenTelemetry (OTEL) observability standard (#2348). When configured Spin will now emit traces of your Spin App as an OTEL signal.
- service chaining (#2305) to remove the overhead of network requests when Spin app components call each other.
If curious about the vision for service chaining and other efforts, check out the SIP (Spin Improvement Proposal) directory. Perhaps it will spark an idea for a SIP of your own!
As always, thanks to contributors old and new for helping improve Spin on a daily basis! 🎉
Verifying the Release Signature
After downloading the 2.4.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.4.0 \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-github-workflow-repository fermyon/spin \
spin
If the verification passed, you should see:
Verified OK
What's Changed
- fix cross-rs cmake config and update cargo config for static build targets by @rajatjindal in #2307
- feat(oci): update dkregistry dep to support ACR login by @vdice in #2308
- fix
push-templates-tag
grep pattern by @dicej in #2313 - Subdomain wildcards by @itowlson in #2314
- chore(release): Bump version to 2.4.0-pre0 by @lann in #2312
- point Go templates to
v2.2.0
instead ofmain
by @dicej in #2317 - Tweak spin-loader to be able to run in Wasm by @rylev in #2304
- fix(example): update variables example to use constant time comparison by @kate-goldenring in #2311
- fix(cmd/up): --help takes precedence over --build by @endocrimes in #2324
- fix(oci/config): ensure unique OCI image config by @radu-matei in #2322
- Feature/mqtt publisher by @suneetnangia in #2287
- feat(loader): support loading AOT compiled components by @kate-goldenring in #2318
- Use the bundled version of paho and remove vendored openssl by @rylev in #2328
- Use rumqttc instead of paho-mqtt by @itowlson in #2330
- Variables in
redis.address
andallowed_outbound_hosts
by @itowlson in #2299 - allow redis trigger to connect to multiple servers by @karthik2804 in #2242
- outbound-networking: Don't pass &Arc unnecessarily by @lann in #2342
- Fixed issue around swallowing mqtt publish errors. by @suneetnangia in #2344
- Service chaining SIP by @itowlson in #2290
- Enable templating of Redis trigger
channel
by @itowlson in #2346 - Remove credentials before printing Redis subscriptions by @itowlson in #2349
- set host header on self outbound requests by @karthik2804 in #2298
- handle connection errors on redis-trigger init by @karthik2804 in #2350
- Because I can never remember if it's
--temp
or--tmp
by @itowlson in #2357 - Inherit workspace metadata by @fibonacci1729 in #2351
- update spin-timer mio version to 0.8.11 by @dicej in #2359
- add ability to specify env vars for spin build in test runner by @karthik2804 in #2360
- Seize control of the means of producing 404s by @itowlson in #2363
- Fix build when RUSTFLAGS is set for native builds by @alexcrichton in #2365
- core: Remove unnecessary Arc from (Module)InstancePre by @lann in #2367
- Refactor
TriggerExecutor
to have associated types for instances by @alexcrichton in #2366 - added no_vcs flag by @thesuhas in #2370
- Add missing
wasi:random/insecure{,_seed}
interfaces by @alexcrichton in #2374 - Remove unused dependency that was causing a cycle by @itowlson in #2375
- nit: fix label on openssl setup by @rajatjindal in #2372
- use ubuntu 20.04 for PR workflow to make it consistent with release workflow by @rajatjindal in #2378
- ci: Include os-release in cache key by @lann in #2383
- Less worse error if file mount source doesn't exist by @itowlson in #2384
- Service chaining by @itowlson in #2305
- update cosign-installer and cosign version by @rajatjindal in #2385
- testing-framework: Add HEALTHCHECK to vault.Dockerfile by @lann in #2382
- More forgiving caching by @itowlson in #2377
- Create assets directory from fileserver template by @itowlson in #2387
- feat(*): Implement the skeleton of an OTEL observability system by @calebschoepp in #2348
- Remove dead code newly discovered by Rust 1.77.0 by @rylev in #2389
- Allow
spin-expressions
andspin-outbound-networking
to compile to wasm by @rylev in #2390 - Fix
spin add static-fileserver
putting the asset directory in the wrong place by @itowlson in #2388 - Update libsql to latest version by @rylev in #2394
- chore(release): update version for 2.4 release by @kate-goldenring in #2399
New Contributors
Full Changelog: v2.3.1...v2.4.0