v0.14.0
shuttle: v0.14.0 update
We're excited to release shuttle v0.14.0! 🚀
Workspace support
We now have full support for cargo workspaces! We have had limited support in the past, where only a workspace where the shuttle project was the root crate was deployable. Following this release, you will be able to have a regular workspace. We will search the workspace for shuttle projects, and in this first iteration we will start all of them for local runs, but only the first one we find for deployments.
We intend to allow starting several services in deployment too. The long term plan is to have one central service that routes to the other services in the project, sharing resources amongst them. Any feedback on what people would like to see in this area is most welcome.
Note: When deploying a workspace where the shuttle service uses shuttle-static-folder
, the static folder must be placed in the workspace root.
Changes to the project
commands
We have a new project
command: cargo shuttle project restart
. This command will replace the old flow of project rm
→ project new
to restart a project.
In addition to that, the following cargo shuttle project
commands have been renamed:
new
has been renamed tostart
rm
has been renamed tostop
Their functionality remains the same, they will start and stop your project’s container.
Thanks to @jonaro00 for suggesting, implementing and documenting these changes!
Removing the protoc
requirement for cargo-shuttle
We have removed the need for protoc
to install cargo-shuttle
, but protoc
will still be required to build, run and deploy shuttle services. We intend to remove the protoc
requirement entirely in the next release.
Bug fixes
- Fixed a bug where a deployment might return an error due to not waiting on the deployment state to update, thanks @jonaro00! #744
- Fixed a bug on windows where the path to the static folder was incorrect for local runs: #762
- Fixed a bug where setting the
local_uri
for databases would cause deployments to fail: #786
Contributions
- In a series of PRs to shuttle and upstream crates, @kierendavies has resolved the issues with using
podman
for local development of shuttle, as well as updating the documentation for how to do so. https://github.com/shuttle-hq/shuttle/pull/722 https://github.com/shuttle-hq/shuttle/pull/723 https://github.com/shuttle-hq/shuttle/pull/724 - @jonaro00 renamed our project commands and implemented a
restart
command. He also updated our docs and examples to reflect the change. #771 shuttle-hq/shuttle-docs#62 shuttle-hq/shuttle-examples#36 - @jhawkesworth updated our git submodule to allow cloning via both git and https in #776
- @sentinel1909 documented the ways to configure a shuttle project name in shuttle-hq/shuttle-docs#57
- @kierendavies enabled exhaustiveness check of cargo-shuttle command matching in #768
Upgrading
To upgrade your shuttle CLI, run: cargo install cargo-shuttle
, or if you’re using [cargo-binstall](https://github.com/cargo-bins/cargo-binstall), cargo binstall cargo-shuttle
.
If you’d like to upgrade your project container, run the restart
project command. This will not delete any databases, and you will keep your project name:
cargo shuttle project restart
Finally, redeploy your shuttle service:
cargo shuttle deploy
Commits for this release
- gateway: expect on refreshing projects by @iulianbarbu in #757
- bug: blocked channel on gateway worker by @chesedo in #758
- gateway/certs: serve certificate as default by @iulianbarbu in #760
- Fix gateway clippy by @iulianbarbu in #761
- fix: windows path canonicalization bug in static folder by @oddgrd in #762
- chore: bump static folder to 0.13.1 by @oddgrd in #764
- chore: Update bollard to v0.14.0 by @kierendavies in #722
- Reference container images by full name by @kierendavies in #723
- Update Makefile for better Podman support by @kierendavies in #724
- feat: commit generated proto files by @oddgrd in #753
- feat: compile an entire workspace by @chesedo in #767
- tests: make provisioner test deterministic by @chesedo in #770
- refactor: getting project name by @chesedo in #774
- feat: use sparse registry in deployers by @oddgrd in #773
- feat: start all services in a workspace for local runs by @oddgrd in #772
- fix: Timing of deployment status and local run printouts by @jonaro00 in #744
- refactor: Enable exhaustiveness check of command matching by @kierendavies in #768
- refactor: get the static folder name from the by @chesedo in #780
- feat: Rename
project new/rm
tostart/stop
, addrestart
+ other args fixes by @jonaro00 in #771 - feat examples: switch to relative url for examples submodule to allow… by @jhawkesworth in #776
- fix: is_dirty path bug on windows by @oddgrd in #783
- Docs/add oss tenets by @oddgrd in #782
- Remove cargo from cargo shuttle by @gautamprikshit1 in #765
- docs: update deployer local run guide by @oddgrd in #784
- runtime: infer environment based on storage type by @iulianbarbu in #786
- fix: secrets not archived in workspace crates by @oddgrd in #785
- fix: revert use of portpicker for local run by @oddgrd in #787
- chore: v0.14.0 by @oddgrd in #788
- fix: cargo shuttle integration tests, project cmd renaming by @oddgrd in #789
Full Changelog: v0.13.0...v0.14.0