Shuttle: v0.40.0 update
We're excited to release Shuttle v0.40.0! 🚀
[BREAKING] Resource/plugin API updated
We have updated the interface for how a service requests resources, to make it easier to configure our resources, and allowing custom plugins to do more things.
After upgrading (restarting) your project to 0.40.0, your next deployment will need
shuttle-runtime
0.40.0+cargo-shuttle
0.40.0+- An up-to-date
Secrets.toml
(previous secrets will be invalidated)
Local runs will also need matching versions of CLI and runtime.
If you have a custom plugin, it will need to be refactored to the new ResourceInputBuilder
trait, an updated API for plugins. Check out the implementations of our plugins or an example.
CHANGED: The Metadata
struct in shuttle-metadata
no longer has a service_name
field. Use project_name
instead.
Other updates
- Reduced the dependency weight of
shuttle-runtime
🥳. The axum hello-world example went from 291 to 222 dependencies. - Added a
--secrets
arg to therun
anddeploy
commands that allows you to use a different secrets file than the default - Added load phase caching, which should improve the speed and reliability of starting the service after wakeups from idle and project restarts
- AWS RDS resources can now configure their database name in the macro:
#[shuttle_aws_rds::Postgres(database_name = "thing")]
. The project name is now used as the default name. - Newly generated database passwords will now have length 32 instead of 12
- Fixed a bug where the
--working-directory/--wd
arg would create directories that didn’t exist - The
init
command will now suggest using a directory with the same name as the project, instead of the current directory - Bumped deployer’s
trunk
version to 0.18.8 - Projects no longer restart when adding a custom domain
- Fixed the URL formatting of services with a custom domain
- (hotfixed during 0.39.0) Fixed an issue where project ownership was not checked in some backends
Deprecating shuttle-next
We are deprecating the current iteration of our WASM framework shuttle-next
in this release to keep our priorities focused. Next release, we will drop support for shuttle-next
.
Contributions
- @Pulko improved the installer scripts #1610 #1636
- @Xuanwo added an example for
shuttle-opendal
shuttle-hq/shuttle-examples#142
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- fix(gateway): custom domain followup improvements by @jonaro00 in #1627
- misc(provisioner): check project ownership in APIs by @iulianbarbu in #1630
- feat: enable Datadog APM error tracking with a tracing layer by @oddgrd in #1626
- feat(installer): always check for cargo install first by @Pulko in #1610
- chore: remove builder by @oddgrd in #1637
- misc: use cargo-chef 0.1.64 --bin flags by @jonaro00 in #1638
- feat(runtime, deployer)!: extract load phase + provisioning to deployer, resource update by @jonaro00 in #1628
- feat(deployer): load phase caching, automatic startup by @jonaro00 in #1640
- fix: various fixes by @jonaro00 in #1641
- fix: remove builder from compose by @jonaro00 in #1643
- fix(resource-recorder)!: disable service id endpoint by @jonaro00 in #1644
- feat(cargo-shuttle):
--secrets
arg to use non-default secrets file by @jonaro00 in #1642 - fix(resource-recorder, provisioner): fix integration tests by @jonaro00 in #1645
- chore: v0.40.0 by @jonaro00 in #1646
- fix(cargo-shuttle): windows build by @jonaro00 in #1648
- misc: make passwords longer by @chesedo in #1649
- feat(common): add template definition schema by @jonaro00 in #1655
- feat(cargo-shuttle): add project name to the default directory, ask again if path is rejected by @christos-h in #1654
- fix: cargo audit by @jonaro00 in #1657
- feat: RDS custom database name by @chesedo in #1651
- ci: use newer linux images by @jonaro00 in #1659
Full Changelog: v0.39.0...v0.40.0