Releases: fermyon/spin
v0.9.0
Hot on the heels of 0.8.0, we're pleased to announce Spin 0.9.0, which brings new features, improvements and bug fixes.
This release includes, built-in key-value storage, more flexible Redis support, UX improvements, and more.
Some highlights in 0.9.0 at a glance:
- Built-in key-value storage, designed to anticipate the corresponding WASI proposal
- A new, general-purpose
execute
function for running arbitrary Redis commands spin up
now supports running apps from OCI registries- Apps now log to stdout by default, addressing a common source of confusion for new developers
- Various template UX improvements: #1152, #1147, #1135, #1119, and #1085
- More intuitive HTTP route matching
- Updated and improved Go SDK support: #1165 and #1114. You'll want to use TinyGo 0.27 or later and Go 1.20 or later for the best experience.
What's Changed
- Start tracking the workspace
Cargo.lock
by @calebschoepp in #1093 - feat(templates): update sdk to v0.8.0 by @github-actions in #1094
- Record where templates were installed from by @itowlson in #1085
- Upgrade templates without git incantation by @itowlson in #1095
- e2e tests for spin by @rajatjindal in #1065
- Use term application rather than project in
spin new
andspin add
by @calebschoepp in #1096 - ci(*): add website deployment logic by @vdice in #1103
- [e2e-tests] enhancements to e2e tests by @rajatjindal in #1108
- fix: update HTTP routing to longest matching prefix wins by @fibonacci1729 in #1109
- fix(tinygo): Regenerate canoncial_abi_* methods by @lann in #1114
- Warn if HTTP app contains duplicate routes by @itowlson in #1099
- remove assets test by @rajatjindal in #1112
- ci(perf): Improve job parallelization and disable incremental Rust builds by @tschneidereit in #1110
- Chore: update to Wasmtime 5.0 by @tschneidereit in #1100
- Do not deploy web site from forks by @itowlson in #1121
- chore(docs/spin.toml): update contributing redirect by @vdice in #1123
- Rename
spin oci
tospin registry
by @radu-matei in #1104 - chore(docs): update http route comment by @fibonacci1729 in #1125
- chore(supply-chain): update audits/exemptions by @vdice in #1106
- ref(build): updates build to allow interactive commands by @michelleN in #1130
- add SIP 010 - Key-Value Storage by @dicej in #1045
- feat: implement basic template tags by @fibonacci1729 in #1119
- add outbound-kv host component, based on SQLite by @dicej in #1035
- ref(*): make log output to stdout by default by @michelleN in #1115
- Work around unused import on Windows by @itowlson in #1137
- gitignore .spin directory in newly created apps by @itowlson in #1138
- Better guidance when unable to upgrade templates by @itowlson in #1135
- Add initial cache for Spin URL component sources by @radu-matei in #1088
- key-value-sqlite: Temporarily downgrade rusqlite by @lann in #1143
- add general-purpose
execute
function tooutbound-redis
by @dicej in #1134 - Warn when some templates can't be upgraded by @itowlson in #1147
- fail fast on ci when lint job fails by @rajatjindal in #1148
- refactor key-value host component for per-component configuration by @dicej in #1144
- feat: spin up from oci registry by @fibonacci1729 in #1146
- move
deploy
andlogin
tospin cloud
by @bacongobbler in #1139 - fix: handling up for local apps was breaking CI by @fibonacci1729 in #1154
- use composite action to avoid configuring versions/downloads multiple times by @rajatjindal in #1083
- remove e2e-tests dependency on windows/mac builds by @rajatjindal in #1158
- lazily create and reuse store manager for each app by @dicej in #1160
- Make template upgrade kinder to old installs of common repos by @itowlson in #1152
- Implement
spin registry login
by @radu-matei in #1150 - grand Go SDK update by @dicej in #1165
- chore(*): v0.9.0 version bumps by @dicej in #1170
New Contributors
- @tschneidereit made their first contribution in #1110
Full Changelog: v0.8.0...v0.9.0
v0.8.0
This is the v0.8.0 release of Spin and it brings a number of features, improvements and bug fixes.
This release also contains groundwork for some larger initiatives, such as OCI support and supply chain security. If curious about the vision for these and other efforts, check out the SIP (Spin Improvement Proposal) directory. Perhaps it will spark an idea for a SIP of your own!
Some highlights in v0.8.0 at a glance:
- TLS support has been added for Redis, PostgreSQL and MySQL.
- Spin now ships with an initial prototype for OCI registry support. The
spin oci
command provides an early preview of functionality, including pushing, pulling and running Spin apps in the form of OCI artifacts. - Initial support for Trigger Plugins has now been added. See the updated spin-timer example for a sample of how they can be used.
- We're starting to tackle supply chain security in Spin, starting with automated auditing of third-party dependencies.
- Rust Docs for Spin are now being auto-published.
- Code coverage reports are now being uploaded for Spin’s
main
branch.
As always, thanks to contributors old and new for helping improve Spin on a daily basis! 🎉
What's Changed
- feat: add aliases for plugin and templates subcommands for plurality by @raymundovr in #994
- feat(templates): update sdk to v0.7.1 by @github-actions in #996
- ci: add codecov by @FrankYang0529 in #866
- Enable TLS for outbound Redis by @radu-matei in #999
- Add empty
allowed_http_hosts
to code templates by @itowlson in #1007 - ci(build.yml): only upload to codecov if fermyon org by @vdice in #1008
- chore: Fix some rustdoc lints by @lann in #1015
- ci: Trigger rust-docs update on release or main merge by @lann in #1018
- Support new static-fileserver apps by @itowlson in #1019
- feat: Add TLS connection support for outbound PG by @etehtsea in #1003
- integration: Fix running on systems with sparse /bin by @endocrimes in #1029
- chore(docs): remove static dir and npm by @vdice in #1027
- ref(tests): update headers-env-routes-test to use the SDK by @vdice in #1034
- Add SIP for distributing Spin applications using OCI registries by @radu-matei in #1033
- build(deps): bump tokio from 1.21.2 to 1.23.1 by @dependabot in #1028
- Add cargo vet for auditing dependencies and SIP by @radu-matei in #1023
- Simplify presentation of "application exceeds max size" error by @itowlson in #821
- fix(audits.yml): add missing 'jobs:' entry by @vdice in #1041
- build(deps): bump bumpalo from 3.11.0 to 3.12.0 by @dependabot in #1039
- build(deps): bump libgit2-sys from 0.13.4+1.4.2 to 0.13.5+1.4.5 by @dependabot in #1040
- Change
spin plugin
command tospin plugins
retaining singular as an alias by @kate-goldenring in #1043 - Trigger plugins by @itowlson in #1036
- ci(audits.yml): only run for the fermyon origin repo by @vdice in #1058
- Update toml dependency to 0.6 by @cardoso in #1052
- Fix reserved name causing new Rust app to not build by @itowlson in #1060
- go: Fix SDK HTTP response malloc by @lann in #1047
- Run code coverage only on a schedule by @itowlson in #1066
- Skip flake when running under code coverage by @itowlson in #1063
- Pin Rust version in GitHub actions by @itowlson in #1068
- Fix WASI target install for pinned Rust by @itowlson in #1070
spin templates list
: if empty, offer to install by @itowlson in #1062- fix(#1076): improve handling of missing plugin directory by @fibonacci1729 in #1077
- Provide MSRV in Rust SDK by @itowlson in #1071
- update Github actions dependencies by @rajatjindal in #1080
- Show common trigger options on
spin up --help
by @itowlson in #1081 - Support SSL/TLS in
outbound-mysql
by @calebschoepp in #1079 - Add prototype for distributing Spin applications using OCI by @radu-matei in #1014
- chore(*): v0.8.0 version bumps by @vdice in #1092
New Contributors
Full Changelog: v0.7.1...v0.8.0
v0.7.1
This is the v0.7.1 patch release of Spin, as tracked by the following milestone.
The changes in this release are primarily centered around a couple of bug fixes, notably:
- A fix to remove a trailing
/
character on the app URL returned viaspin deploy
(#989) - A fix relating to runtime configuration when using Vault in combination with the environment provider and default values (#984)
See below for the full list of changes.
What's Changed
- feat(templates): update sdk to v0.7.0 by @github-actions in #985
- chore: Update rust examples by @etehtsea in #987
- fix: Don't use Url::join for available routes display by @lann in #989
- chore: Clean up some 'allow' attrs by @lann in #991
- If config key isn't in Vault, try other providers or default by @itowlson in #984
- Initial add of http-php template by @technosophos in #992
- chore(*): v0.7.1 version bumps by @vdice in #995
Full Changelog: v0.7.0...v0.7.1
v0.7.0
Spice up your holiday with the latest Spin release! Spin v0.7.0 brings many exciting updates including:
- Hashicorp Vault integration by @FrankYang0529 in #798 - This feature lets you retrieve sensitive data from HashiCorp Vault and use it your Spin application.
- Experimental support for connecting to MySQL databases by @etehtsea in #864
- The
spin add
command which adds a component to an existing application by @itowlson in #889 - Support for outbound Redis set operations by @dicej in #915
- Support for fetching Wasm modules from Web URLs by @itowlson in #890
- Support for running Spin on Linux ARM64 by @jpflueger in #926
- Experimental support for JavaScript and Typescript applications in Spin with a new SDK and set of templates by @karthik2804 https://github.com/fermyon/spin-js-sdk
- In addition to new features, there has been a heavy focus on testing, refactoring and hardening of the project.
Additional Notes:
- Please note that from this release, Spin no longer supports Ubuntu 18.04.
- Templates may need to be updated locally as well
spin templates install --git https://github.com/fermyon/spin --update
. We are tracking a better experience for updating templates in #990
Special shoutout to our new contributors: @jpflueger @morristai @rajatjindal and a big thank you to the folks who continue to contribute, impact and shape the project: @etehtsea @FrankYang0529 !
What's Changed
- feat(templates): update sdk to v0.6.0 by @github-actions in #851
- Fix downloads redirect for install.sh by @mikkelhegn in #857
- fix(deploy): Prevent swallowing the error by @etehtsea in #855
- feat(outbound-redis): Add DEL command by @etehtsea in #828
- chore(examples): Update Rust example locks by @etehtsea in #856
- Update information about monthly developer meeting on README.md by @mikkelhegn in #853
- Bump terser from 5.12.1 to 5.15.1 in /docs by @dependabot in #860
- chore(go-sdk): Disable integration test caching by @etehtsea in #833
- rename example and test crates to avoid cargo warnings by @dicej in #862
- ci: update release workflow ubuntu version by @FrankYang0529 in #871
- feat(config): add vault provider by @FrankYang0529 in #798
- Revert "ci: update release workflow ubuntu version" by @lann in #876
- Resolve a bunch of clippy needless_borrow lints by @lann in #879
- Remove
.cargo/config.toml
from Rust Spin templates to easily enable unit tests by @kate-goldenring in #868 - chore(login): update response error message by @FrankYang0529 in #865
- Use dialoguer crate to prompt for Spin plugin installs by @kate-goldenring in #867
- Print detail for non-validation deployment errors by @itowlson in #883
- Option to output template list as JSON by @itowlson in #885
- Get rid of BindleConnectionInfo duplication by @etehtsea in #888
- chore: Use workspace inheritence by @lann in #894
- chore: Reuse sha256 digest from spin_loader by @etehtsea in #893
- Get Wasm modules from Web URLs by @itowlson in #890
- Introduce spin_publish::prepare_bindle by @etehtsea in #887
- Introduce spin_loader::local::{absolutize, parent_dir} by @etehtsea in #896
- Add Store::set_deadline by @lann in #899
- Revert flaky integration test change by @itowlson in #906
- Improve error message when app needs to be built by @etehtsea in #884
- chore(GitHub): Refactor build/test workflow by @endocrimes in #904
- chore: Upgrade wasmtime to 2.0.2 by @lann in #902
- feat(spin_sdk::pg): Extract type conversions into sdk by @etehtsea in #813
- Restore sloth warning around module build/load by @itowlson in #911
- chore: Fix spin-timer example by @etehtsea in #912
spin new
: add component to existing application by @itowlson in #889- Templates for static fileserver and redirect by @itowlson in #898
- chore: Cleanup unused deps by @etehtsea in #914
- Munge Spin app name to legal bindle name by @itowlson in #920
- Skip validating unused manifest fields in spin build by @itowlson in #913
- Templates tidying by @itowlson in #918
- Bump wasmtime to 3.0.0 by @etehtsea in #917
- Fail if template references unknown filter by @itowlson in #908
- add support for outbound Redis set operations by @dicej in #915
- make
spin_publish::expander::expand_manifest
public again by @dicej in #923 - make
ParcelSources::source
public by @dicej in #924 - make
spin_publish::bindle_writer::write
public again by @dicej in #927 - Build is not async by @itowlson in #925
- Fix
spin up --help
omitting many options if app is not ready to lock by @itowlson in #934 - wagi: Bail early if nothing is written to stdout by @lann in #929
- Enable aarch64 in release workflow by @jpflueger in #926
- Fix redeploy readiness by @lann in #870
- chore: Update examples by @etehtsea in #921
- chore: Add deployment-auth sip to the index by @etehtsea in #954
- Don't return error status if plugin is already installed by @itowlson in #952
- Error if user follows a non-existent component by @itowlson in #951
- fix: Get rid of log/env_logger leftovers by @etehtsea in #938
- chore: Replace atty with is-terminal by @etehtsea in #956
- chore: update contributing link in README.md by @morristai in #961
- Print confirmation message on plugins update by @itowlson in #960
- Provide more context on missing import error by @itowlson in #959
- Better error if git not installed by @itowlson in #958
- Add/enhance MySQL support by @etehtsea in #864
- add
--direct-mounts
option tospin up
by @dicej in #967 - Handle paginated responses when looking for revision and channel IDs by @itowlson in #973
- use current version during first time deployment by @rajatjindal in #970
- chore(*): fix clippy errors by @fibonacci1729 in #979
- Implement
spin plugin list
by @itowlson in #972 - chore(example): Fix clippy warning by @etehtsea in #980
- They said Stonehenge would stand forever by @itowlson in #982
- chore(*): update versions to v0.7.0 by @michelleN in #977
New Contributors
- @jpflueger made their first contribution in #926
- @morristai made their first contribution in #961
- @rajatjindal made their first contribution in #970
Full Changelog: v0.6.0...v0.7.0
v0.6.0
Spin v0.6.0 brings a host of improvements, refactorings, and new features! Among the most notable:
- Deploy to the Cloud by @bacongobbler in #794 (based on SIP in #795) — this feature lets you deploy a Spin application to Fermyon Cloud, in addition to deploying to a self-hosted instance of the Fermyon Platform
- feat: Add support for Spin plugins by @kate-goldenring and @karthik2804 in #735 (based on SIP in https://github.com/fermyon/spin/blob/main/docs/content/sips/006-spin-plugins.md) - this change allows anyone to create a Spin plugin to extend the Spin CLI
- Add
spin-conformance
crate (#724) by @dicej in #764 — a crate that runs conformance tests to ensure a new Spin SDK implementation is correct - Spin core refactor by @lann in #763 — this is a refactoring of Spin's internals to make it significantly easier to embed Spin into your own project
Thank you to all contributors for your amazing work, and welcome to the contributors list to: @sealmove @coderoflagos @etehtsea @tpmccallum @nealmcb @endocrimes @raymundovr @elimisteve @ipedrazas
What's Changed
- chore(*): update templates and examples to use the v0.5.0 sdk by @vdice in #737
- Update Go documentation by @sealmove in #717
- Validate name when instantiating template by @itowlson in #740
- Rename wasi-outbound-http crate to outbound-http by @lann in #747
- Enable wasmtime async support by @lann in #748
- minor corrections by @coderoflagos in #743
- Simplify spin-config implementation by @lann in #750
- Use tracing TestWriter in tests by @lann in #751
- Remove double slash from file URIs by @lann in #753
- ci(release.yml): create PR for template SDK updates by @vdice in #749
- added the [component.build] section in the sample. by @coderoflagos in #755
- Rename
spin-http-engine
tospin-http
by @lann in #759 - Clean up some unused dependencies by @lann in #760
- Install script for Spin by @mikkelhegn in #729
- fix: Don't
block_on
in outbound-http by @lann in #770 - Fix misspelled http-rust-outbound-http directory by @lann in #772
- Chore: bump rust-cache in build action by @karthik2804 in #767
- feat: Add support for Spin plugins by @kate-goldenring in #735
- fix: Use
block_in_place
in outbound-pg by @lann in #771 - Add
spin-conformance
crate (#724) by @dicej in #764 - feat: Include manifest file name into error output by @etehtsea in #778
- Add option to use --follow-all when running Redis Trigger (to see messages interactively, as apposed to via logs) by @tpmccallum in #781
- use
tokio-postgres
inoutbound-pg
by @dicej in #779 - For errors, gently suggest rustup check by @nealmcb in #784
- build: rely on bash from 'PATH' by @endocrimes in #788
- Fix links to WIT documentation by @raymundovr in #790
- Update Go SDK: typo fix by @elimisteve in #792
- Swap wget for curl to be consistent with docs by @ipedrazas in #785
- feat(outbound-pg): Reuse connection during request lifecycle by @etehtsea in #791
- Spin core refactor by @lann in #763
- Teach outbound-http to use connection pool by @lann in #796
- Allow templates to define custom Liquid filters by @itowlson in #761
- outbound-redis: Don't keep connections alive between requests by @lann in #797
- Fix redis/http triggers by @etehtsea in #800
- Update example
Cargo.lock
s by @lann in #803 - Deduplicate some spin-testing code by @lann in #802
- feat: add support to override Spin compatibility checks for plugins by @kate-goldenring in #780
- Add spin-trigger TriggerHooks by @lann in #808
- More flexibility and guidance in the
spin new
experience by @itowlson in #807 - Wait for deployment to be healthy by @itowlson in #805
- tests: Send SIGTERM to spin child process on *nix by @lann in #809
- feat: make http_trigger::loader public by @Mossaka in #810
- Deployment auth SIP by @itowlson in #795
- fix(loader): make new method public by @Mossaka in #816
- Add #[source] to some thiserror::Error variants by @lann in #817
- deploy to the Cloud by @bacongobbler in #794
- Break login into smaller functions by @itowlson in #818
- Have logins to multiple platforms at the same time by @itowlson in #819
- trim trailing slash on --url by @bacongobbler in #823
- dependencies: bump bindle to 0.8.2 by @endocrimes in #825
- command(login): validate that the provided hippo URL is valid by @endocrimes in #826
- Improve deployment experience by @itowlson in #824
- Teach
spin up --listen
to parse hostnames by @lann in #827 - Add some spacing to login flow by @fibonacci1729 in #829
- command(deploy): Parse connection URL for bindle path construction by @endocrimes in #830
- Do not wait for /healthz when using GitHub auth by @itowlson in #832
- Add
/.well-known/spin/health
alias for/healthz
by @lann in #836 - do not deploy redis triggers on cloud by @bacongobbler in #835
- move hashtables to end of toml-serializable structs by @dicej in #837
- Tweak
spin deploy
output by @lann in #839 - Use random buildinfo in cloud_deploy by @lann in #840
- Update default Cloud URL by @radu-matei in #841
- Add link to FAQ by @fibonacci1729 in #842
- Add new logos for Spin by @radu-matei in #843
- Add redirects to developer site by @technosophos in #834
- Improve error message on missing manifest content path by @lann in #844
- Remove workflow and make recipes for docs by @fibonacci1729 in #846
- Simplify
spin deploy
output by @lann in #847 - Add back release doc by @fibonacci1729 in #849
- Bump version to 0.6.0 by @fibonacci1729 in #845
New Contributors
- @sealmove made their first contribution in #717
- @coderoflagos made their first contribution in #743
- @etehtsea made their first contribution in #778
- @tpmccallum made their first contribution in #781
- @nealmcb made their first contribution in #784
- @endocrimes made their first contribution in #788
- @raymundovr made their first contribution in #790
- @elimisteve made their first contribution in #792
- @ipedrazas made their first contribution in #785
Full Changelog: v0.5.0...v0.6.0
v0.5.0
Full release notes coming soon...
What's Changed
- Update templates v0.4.0 by @lann in #635
- feat: Add Swift HTTP/Wagi handler for Spin by @technosophos in #628
- Add Zig and C templates by @technosophos in #630
- Add Grain template by @technosophos in #632
- Added .gitignore to both Go templates by @technosophos in #633
- chore(docs): update modules by @vdice in #636
- Fix crate unit tests not being run by @itowlson in #640
- feat(up): add --allow-transient-write by @FrankYang0529 in #618
- Do not install template dirs that are not templates by @itowlson in #639
- fix: Terminate trigger handler on
spin up
termination by @lann in #642 - docs(cookies): add consent banner by @flynnduism in #646
- feat: Add spin-config import to the rust sdk by @fibonacci1729 in #651
- fix: Use correct features for spin-trigger clap dependency by @lann in #644
- fix: Rename top-level config section to variables by @fibonacci1729 in #652
- feat(deploy): Output plain text when Hippo login fails by @lidongjies in #647
- fix spin-cli and http-cpp builds by @dicej in #662
- Outbound pg host component by @miketang84 in #622
- fix: Change how
spin up --help
works by @lann in #670 - feat: add exclude-files by @FrankYang0529 in #645
- Need to pass --locked when cargo installing by @itowlson in #676
- fix: update rust hello world test to use config interface in Rust SDK by @kate-goldenring in #675
- feat(outbound-redis): add incr by @FrankYang0529 in #671
- feat(loader): validate wasm config by @FrankYang0529 in #659
- Postgres data types and error reporting by @itowlson in #677
- Remove unused ModuleIoRedirects::new_from_files by @lann in #684
- feat: feature gate the e2e tests that require dependencies by @kate-goldenring in #681
- fix: ensure deterministic behavior of
spin deploy
when redeploying apps by @kate-goldenring in #694 - bump to hippo-cli 0.15 by @kate-goldenring in #697
- update bartholomew to v0.4.0 by @karthik2804 in #696
- docs(graphics): add twitter card for spin docs by @flynnduism in #698
- feat: add accept-defaults to new templates by @karthik2804 in #695
- Remove
wasi-experimental-http
support by @lann in #699 - Temporarily use forked bindle by @lann in #702
- feat(config): support dotenv by @FrankYang0529 in #707
- feat(outbound-redis): reuse connecton by @FrankYang0529 in #687
- feat: show when there are no build commands in spin.toml by @jim4067 in #711
- Remove dependency on 'wagi' by @lann in #701
- Bump
wasmtime
to 0.39.1 by @lann in #709 - SIP: Spin Plugins by @kate-goldenring in #712
- Add SIP 006 - Spin plugins to index by @karthik2804 in #715
- feat(ci): create sdk and template tag in release action by @FrankYang0529 in #685
- Stop using WASI HTTP params in preparation for deprecation by @itowlson in #723
- Add HTTP TooManyRequests error by @fibonacci1729 in #719
- fix: update spin deploy to patch channel rather then recreate channels by @kate-goldenring in #728
- Rework allowed HTTP host validation and checking by @itowlson in #727
- ci(.github): add event_type to dispatch payload by @vdice in #730
- Log outbound HTTP request error detail by @itowlson in #726
- chore(docs): update bartholomew module by @vdice in #731
- chore(*): bumps for forthcoming 0.5.0 release by @vdice in #734
New Contributors
- @lidongjies made their first contribution in #647
- @miketang84 made their first contribution in #622
- @kate-goldenring made their first contribution in #675
- @karthik2804 made their first contribution in #696
- @jim4067 made their first contribution in #711
Full Changelog: v0.4.0...v0.5.0
v0.4.0
This is largely a maintenance release. The upgrades to wasmtime
and wit-bindgen
in #574 caused compatibility issues for people trying to use Spin compiled from main
; this release should help with some of those issues. Additionally we have some nice bug fixes and quality of life improvements, but no major new features.
What's Changed
- Update templates to 0.3 SDKs by @itowlson in #588
- ci: support automatically release checksums and binaries by @Xunzhuo in #496
- update "deploy to hippo" documentation by @bacongobbler in #560
- ref(deploy): add correct scheme to routes by @michelleN in #592
- Link to discord community in badge, mention in readme by @joepio in #597
- docs(release-process.md): updates by @vdice in #586
- Fix Discord server link in README by @kaihoffman in #600
- fix(deploy): use absolute path to load component source by @FrankYang0529 in #593
- Check hippo health by @FrankYang0529 in #594
- Warn if Bindle or Hippo not responding by @itowlson in #596
- sdk: Log Err results by @ecumene in #606
- chore!: update
wasmtime
andwit-bindgen
dependencies by @dicej in #574 - chore: remove unneeded explicit lifetime by @dicej in #613
- Retain context of deploy push errors by @itowlson in #601
- doc(quickstart): specify tag in
git clone
command by @dicej in #616 - Spin go sdk error return statement for nil request by @elewis787 in #612
- fix(sdk/go): tinygo v0.24.0 by @adamreese in #625
- Add deploy integration test by @FrankYang0529 in #607
- chore(*): v0.4.0 pre-release bumps by @lann in #627
New Contributors
- @Xunzhuo made their first contribution in #496
- @kaihoffman made their first contribution in #600
- @FrankYang0529 made their first contribution in #593
- @elewis787 made their first contribution in #612
Full Changelog: v0.3.0...v0.4.0
v0.3.0
We're excited to announce Spin v0.3.0 🎉
This release brings a number of features, fixes and improvements.
Some highlights are as follows:
- Substantial upgrades and improvements to
spin deploy
🚀 (#557, #570, and #571) - New functionality for the
spin new
andspin templates
commands ✨ (#533 and #448) - Improved
spin
binary portability on Linux 📦 (#546 and #551) - Improved error handling, test coverage and documentation ✔️
We'd also like to thank all of the new contributors who have helped make Spin even better! 👏
What's Changed
- ref(*): add CoC, CONTRIBUTING files to repo by @michelleN in #487
- feat(Makefile): add make doc command by @michelleN in #485
- fix(ci/release): update capitalization of
README.md
in CI by @radu-matei in #495 - Remove version constraint from spin-sdk in examples by @lann in #497
- Require a name when newing a tamplate, and use it as default output dir by @itowlson in #510
- ref(.gitignore): ignore .vscode config by @michelleN in #511
- Update ID of rust-analyzer extension by @itowlson in #512
- Trigger executors by @lann in #444
- Implement CustomLogPipes for Spin Logging/IO: The Return by @danbugs in #482
- feat: add workdir for component build command by @mooori in #515
- ref(deploy): support latest hippo by @michelleN in #507
- test: add integration test for
spin build
by @mooori in #523 - SIP: Application Manifest Redesign by @lann in #516
- Install stable templates if using stable build by @itowlson in #518
- fix(docs): format date on deploy doc by @michelleN in #525
- fix(Makefile): fix doc target to use date with suitable value for bart/handlebars templating by @vdice in #527
- ci(*): add docs site content check by @vdice in #526
- Triggers refactor by @lann in #513
- Update SIPs index by @lann in #537
- feat: accept a values file for
spin new
by @mooori in #533 - ref(sdk/go): Consolidate Makefiles by @adamreese in #536
- docs: mention how
spin templates install
works by @mooori in #540 - Update templates to 0.2.0 SDKs by @itowlson in #493
- docs: updating quickstart for usability by @mikkelhegn in #544
- Begin replacing wit_bindgen with Rust SDK in integration tests by @ejmg in #534
- implement
spin up -k
by @bacongobbler in #547 - Redis Integration Tests by @ecumene in #543
- Include filename in "file not found" errors by @itowlson in #549
- build(deps): bump wasmtime from 0.34.1 to 0.34.2 by @dependabot in #538
- docs: add docs for spin build workdir by @mooori in #531
- ci: Archive binary executable artifacts from PR builds by @lann in #550
- statically link OpenSSL using the vendored feature by @dicej in #546
- ci: Build Linux releases with Ubuntu 18.04 by @lann in #551
- Remove vendored-openssl feature by @lann in #558
- ref(deploy): allows user to re-deploy after changing version by @michelleN in #557
- ref(deploy): add domain to deploy output by @michelleN in #564
- Template version affinity by @itowlson in #556
- ref(deploy): update channel name to spin-deploy by @michelleN in #571
- Print HTTP routes on deploy by @itowlson in #568
- Enable re-deploy without changing app version by @michelleN in #570
- ref(deploy): update redeploy flag name by @michelleN in #575
- docs: modify the bash cmd for creating new spin app in quickstart guide by @VishnuJin in #579
- Give hint in
spin new
forspin templates list
by @joepio in #578 - Update quickstart.md to include
cargo install --path .
installation option by @joepio in #577 - ref(deploy): update duplicate short flag by @michelleN in #581
- do not add revision twice by @bacongobbler in #553
- fix: Argument or group 'buildinfo' specified in 'conflicts_with*' for 'no-buildinfo' does not exist by @bacongobbler in #584
- chore(*): v0.3.0 pre-release bumps by @vdice in #585
New Contributors
- @danbugs made their first contribution in #482
- @mooori made their first contribution in #515
- @mikkelhegn made their first contribution in #544
- @ejmg made their first contribution in #534
- @ecumene made their first contribution in #543
- @dependabot made their first contribution in #538
- @VishnuJin made their first contribution in #579
- @joepio made their first contribution in #578
Full Changelog: v0.2.0...v0.3.0
v0.2.0
We are really excited to announce the new release of Spin, v0.2.0.
This release is packed with new features that simplify building and running WebAssembly components with Spin!
New features
- support for creating new Spin applications using templates (https://spin.fermyon.dev/quickstart)
- initial support for deploying Spin applications to Hippo (#353)
- a new Go SDK for building Spin components in TinyGo (https://spin.fermyon.dev/go-components)
- new mechanism for setting application and component configuration (https://spin.fermyon.dev/configuration)
- new command to simplify building multi-component applications (https://spin.fermyon.dev/developing)
- support for connecting to Redis from Spin components with the Rust and Go SDK (https://spin.fermyon.dev/rust-components, https://spin.fermyon.dev/go-components)
What's Changed
- Release .zip files only for Windows users by @bacongobbler in #301
- docs(index.md): remove redundant 'type' by @vdice in #303
- sip: Application Configuration by @lann in #202
- Add build info to spin version output by @dio in #308
- docs: add gzip content encoding for docs website by @radu-matei in #300
- Hello, Fermyon! by @bacongobbler in #306
- fix(spin/http): use URI with query as request URI by @radu-matei in #315
- chore(.github): uncomment macos build by @vdice in #317
- Rename config to manifest by @lann in #319
- Remove unused examples/spin-timer/Cargo.lock by @lann in #325
- docs: Refer to spin.toml as "manifest" by @lann in #326
- ci: Only run cargo fmt / clippy on Linux by @lann in #327
- List all languages that we believe work on Spin by @technosophos in #320
- Don't error if guest calls proc_exit with exit code 0 by @itowlson in #323
- Application Configuration by @lann in #307
- fix(docs): remove the content_encoding config for docs by @flynnduism in #329
- Object store iface by @lann in #165
- chore(templates): appease clippy by @vdice in #336
- Mitigate issue #337 by @lann in #339
- chore(styles): update styleguide so logo stop spinning by @flynnduism in #331
- Implement
outbound-redis
interface by @fibonacci1729 in #328 - ci(.github): add dispatch workflow by @vdice in #335
- Implement default value for --file by @bacongobbler in #350
- Diagnostic for running Wagi component under Spin executor by @itowlson in #351
- feat(sdk/go/redis): Tinygo sdk for outbound redis by @adamreese in #347
- feat(sdk/go/redis): Implement Redis handler for TinyGo by @adamreese in #355
- ref(sdk/go/http): Simplify code and free memory allocations by @adamreese in #356
- chore(ci): stop cancelling concurrent runs by @radu-matei in #358
- chore(sdk/go): consolidate
redis
andoutbound_redis
into single package by @radu-matei in #359 - fix(docs): stop the spin on the Fermyon logo on the docs website by @radu-matei in #360
- ci(dispatch.yml): only dispatch event if from fermyon/spin by @vdice in #361
- ci(release.yml): update canary release commit by @vdice in #364
- Add additional languages and toolchains by @0xcodeboi in #368
- Exit Spin when no Redis connection is available by @fibonacci1729 in #374
- Refactor ExecutionContext init out of triggers by @lann in #382
- feat(sdk/go): Implement spin-http for TinyGo by @adamreese in #375
- fix(http): Make spin http headers optional by @adamreese in #372
- feat(deploy): add spin deploy command by @michelleN in #353
- Fix link to contributing guide in doc's readme by @phaleth in #391
- feat: print available routes at startup of spin up by @toVersus in #392
- chore(tinygo): Add -no-debug build flag in examples by @adamreese in #387
- chore (devcontainer): remove the third-party as extension by @0xcodeboi in #395
- Validate component IDs are unique by @0xcodeboi in #370
- chore: go version suggestion in docs, go v1.17.9 in dev container by @0xcodeboi in #396
- Add support for "host components" by @lann in #381
- docs(*): add SIP for spin deploy by @michelleN in #304
- Improve config error formatting by @lann in #401
- Address feedback from host components PR by @lann in #403
- Rename config Path to TreePath by @lann in #405
- Migrate outbound-http to a HostComponent by @lann in #404
- feat: add spin build command to run local build command for components by @radu-matei in #352
- Only include the files for a component in its mount folder by @itowlson in #408
- Check for
wasm32-wasi
target in build script by @GeorgeHahn in #410 - feat(bindle push): add basic auth support by @vdice in #407
- fix(examples): Update examples to use current go SDK by @adamreese in #409
- feat: Remove ansi escape sequences when non-interactive by @adamreese in #416
- docs(*): fix links which result in 404: Not Found on GitHub by @dicej in #426
- added http OPTIONS by @Mossaka in #419
- feat(cli): add Wasmtime cache by @radu-matei in #424
- feat: print component id when spin up by @lianghanzhen in #420
- refactor: default Application generic type to CoreComponent by @Mossaka in #430
- feat: trigger crate by @Mossaka in #418
- fix(docs): update Bartholomew with fix for relative links by @radu-matei in #432
- fix(http/router): update router to contain an ordered component map by @radu-matei in #435
- feat: add C++ spin-http example by @dicej in #433
- doc: fix instructions in distributing-apps.md by @dicej in #439
- perf: reduce peak memory usage and open files when loading bindle by @dicej in #440
- chore: update spin-sdk to point to upstream wasi-experimental-http by @Mossaka in #423
- Basic template support by @itowlson in #400
- Documentation fixes for quickstart, rust component guide by @technosophos in #441
- SIP: Trigger Executors by @lann in #417
- docs: Clean up SIP index, metadata by @lann in #443
- Fix Go template to get SDK from Git by @itowlson in #442
- Switch from
structopt
toclap
by @lann in #446 - Change
spin up
--server
to--bindle-server
by @lann in #452 - feat(sdk/go): Add SIP-002 "Application Configuration" to TinyGo SDK by @adamreese in #399
- Follow logs by @itowlson in #431
- fix(vscode): add templates directory to gopls ignore list by @radu-matei in #450
- Add update flag to
spin templates install
by @itowlson in #448 - add pub dev meeting info by @michelleN in #457
- Check if bindle already exists before pushing by @itowlson in #459
- docs(sip): add
spin build
SIP by @radu-matei in #384 - add with_wasmtime_engine() to Builder by @Mossaka in #437
- Doc comments for templates crate by @itowlson in #461
- Allow parcel ref in component source by @itowlson in #456
- Limit parallelism copying local assets by @lann in #465
- Confirm before writing template into directory with existing content by @itowlson in #467
- feat: Implement a wildcard in http allowed_domains to allow all doma...
v0.1.0
We are really excited to announce the first release of Spin, our new open source framework for building and running fast, secure, and composable cloud microservices with WebAssembly.
With Spin, we’re trying to make it easier to get started with using WebAssembly on the server so that we can all take advantage of the security, portability, and speed WebAssembly provides when it comes to running microservices.
Check out the quickstart guide for getting started with Spin.