Releases: shuttle-hq/shuttle
v0.55.0
Shuttle: v0.55.0 update
Shuttle + Rama 0.2 integration
Thanks to @GlenDC, a new service crate shuttle-rama
has been added, which allows running Rama services on Shuttle! Check out the Rama examples and try it yourself with shuttle init --template rama
on the latest CLI version.
Other updates
- Minor breaking changes to API user response model fields
Contributions
- @GlenDC added
shuttle-rama
and 3 Rama examples in #1943 shuttle-hq/shuttle-examples#205
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- feat(common): user created_at by @jonaro00 in #2038
- refa: move env config logic to common, add to admin by @jonaro00 in #2039
- chore(cargo-shuttle): remove logs --all-deployments by @jonaro00 in #2040
- fix(admin): use same env logic for prod var by @jonaro00 in #2043
- feat(admin): downgrade protrial by @jonaro00 in #2042
- feat: Add Project Usage types for User Visualisation by @fussybeaver in #2031
- refa(common): better ApiError constructors & getters, feature gate tracing by @jonaro00 in #2045
- feat(common): update user model fields by @jonaro00 in #2041
- initial attempt to support rama in shuttle by @GlenDC in #1943
- chore(cargo-shuttle): update command hint by @jonaro00 in #2046
- Revert "chore: remove logs --all-deployments (#2040)" + hide it instead by @jonaro00 in #2047
- fix: string type for dates by @jonaro00 in #2048
- chore: v0.55.0 by @jonaro00 in #2049
- feat: rama init template arg by @oddgrd in #2050
- chore: v0.55.0 2 by @jonaro00 in #2051
Full Changelog: v0.54.0...v0.55.0
v0.54.0
Shuttle: v0.54.0 update
- Fixed a bug where the CLI would not exit with an error when a deployment failed
- Improved forward compatibility in the API client
- Added anonymous telemetry to the installer scripts (more info)
- Other minor improvements to the installer scripts
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- feat(common): more user info in team member list by @jonaro00 in #2009
- feat(common): utoipa derives for all typeshared types by @jonaro00 in #2011
- feat: Add client capability to set replicas by @fussybeaver in #2012
- feat: admin command to change project owner by @oddgrd in #2013
- feat: admin commands to upgrade proj to lb, update lb project replica count by @oddgrd in #2015
- feat(admin): set-account-tier by @jonaro00 in #2016
- fix(admin): return type by @jonaro00 in #2017
- fix(admin): cert model, skip acm, update deps by @jonaro00 in #2018
- feat: admin command to update scaling config by @oddgrd in #2019
- feat(cargo-shuttle): admin flag for admin operations by @jonaro00 in #2020
- fix: Add utoipa schema for contract testing by @fussybeaver in #2022
- feat: add TelemetrySinkConfig::LogFire variant by @the-wondersmith in #2024
- feat(installer): fixes, anonymous telemetry, parity, cooler logo by @jonaro00 in #2025
- feat(common): add forward-compatible variants on user facing enums by @jonaro00 in #2026
- chore: dev2 script by @jonaro00 in #2029
- feat(common): pro trial account tier by @jonaro00 in #2032
- fix(common): account tier match by @jonaro00 in #2034
- fix: Add utoipa pattern to project update request by @fussybeaver in #2030
- fix(admin): new update tier endpoint by @jonaro00 in #2035
- fix(cargo-shuttle): exit with error when tracked deployment fails by @jonaro00 in #2028
- feat(cargo-shuttle): SHUTTLE_API_ENV for separate global configs and automatic api urls by @jonaro00 in #2033
- feat(admin): add user to team by @jonaro00 in #2036
- chore: v0.54.0 by @jonaro00 in #2037
Full Changelog: v0.53.0...v0.54.0
v0.53.0
Shuttle: v0.53.0 update
Local run live reloads with bacon
If you have bacon
3.8.0 or higher installed, you can now use shuttle run --bacon
to start a headless bacon job that restarts the local run when Rust-related files are saved.
To customize this behavior, you can set up your own jobs in bacon.toml
. Shuttle’s default bacon config can be found here.
Thanks to @c-git and @laststylebender14 for contributing this!
Secrets.dev.toml bugfix
Fixed a bug in 0.52.0 where Secrets.dev.toml
was not being loaded on local runs.
Other updates
- Added runtime support for running behind a dedicated ALB in deployments, instead of the normal proxy
- Local run now simulates the health check present in deployments (every 5s) by pinging the runtime on a health check port
- The runtime now prints a message when it gets shut down in deployments, making it clearer in deployment logs when it got shut down
- Added CLI support for displaying which Shuttle Team a project belongs to, and displaying the project list per team
- Improved some error messages in CLI
- Moved some CLI printouts from stdout to stderr
- Bumped
diesel
version inshuttle-aws-rds
Contributions
- @laststylebender14 added
--bacon
flag on the run command in #1991 - @skabber updated
async-openai
inshuttle-openai
in #1994 - @valentinegb updated
shuttle-shared-db
's dependency ondiesel-async
in #1989 - @AndreiOrmanji updated the bollard dependency, which improves interaction with the local docker engine, in #1960
- @hhthacker fixed a typo on our website in shuttle-hq/www#432
- @sentinel1909 removed dead links from our blog in shuttle-hq/www#433 and shuttle-hq/www#434
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- ci: release on tags instead of production by @jonaro00 in #1977
- chore: user telemetry support updates by @the-wondersmith in #1978
- fix: betterstack config host by @jonaro00 in #1981
- feat: telemetry debugging variant by @the-wondersmith in #1982
- feat(admin): simulate-user by @jonaro00 in #1984
- feat(cargo-shuttle): use stderr, better error by @jonaro00 in #1985
- DOCKER_HOST handling fix by @AndreiOrmanji in #1960
- build(shared-db): upgrade diesel-async to v0.5.2 by @valentinegb in #1989
- feat(common): team models by @jonaro00 in #1986
- feat(admin): feature flag command by @jonaro00 in #1987
- feat(admin): delete user + everything command by @jonaro00 in #1992
- feat: start runtime healthz service on unspecified ip by @oddgrd in #1993
- fix: load Secrets.dev.toml on local run by @jonaro00 in #1997
- feat: runtime print message on exit signal, cli simulate ecs health check by @jonaro00 in #1998
- Update async-openai to 0.28.0 by @skabber in #1994
- feat(cargo-shuttle): use api-provided console url on login if available by @jonaro00 in #1999
- feat(common): team invite models by @jonaro00 in #1995
- chore: bump diesel in aws-rds by @jonaro00 in #2002
- feat: impl live reloading for local runs by @laststylebender14 in #1991
- feat(common): Add utoipa attribute macro types by @fussybeaver in #2000
- fix: ci regression in new reqwest version by @jonaro00 in #2003
- chore: use new github issue types by @jonaro00 in #2005
- fix: reqwest version, cargo update by @jonaro00 in #2006
- chore: v0.53.0 by @jonaro00 in #2007
- fix?: ci tag filters by @jonaro00 in #2008
New Contributors
- @AndreiOrmanji made their first contribution in #1960
- @valentinegb made their first contribution in #1989
- @skabber made their first contribution in #1994
- @laststylebender14 made their first contribution in #1991
- @fussybeaver made their first contribution in #2000
Full Changelog: v0.52.0...v0.53.0
v0.52.0
Shuttle: v0.52.0 update
Removal of all legacy shuttle.rs code
This release follows the shutdown of the shuttle.rs platform, and removes all related legacy code (a lot). This brings compilation speedups and more flexibility for upcoming features. Read more below!
New redeploy command
Added shuttle deployment redeploy [deployment_id]
which redeploys the built image of the current/latest (or provided) deployment if available. This allows you to skip the build step if you need to restart your service.
Breaking changes
- Removed all legacy CLI commands and options.
cargo shuttle
now targets shuttle.dev. - Removed all legacy crate APIs and renamed all “beta” crate APIs to replace their previous counterparts
- Removed discontinued crates & resources
- Removed, changed or moved crate features and models, mainly in
shuttle-common
- Bumped postgres version in local provisioner to 16, to match current RDS and shared databases
- Fixed
shuttle run
to use same secrets loading logic asshuttle deploy
, which is more strict, instead of using legacy logic
Other updates
- Upgraded many dependencies (axum, http, hyper, reqwest, etc)
- Due to dependency cleanup, an axum hello-world is now at 210 build steps, down from 279 🥳.
cargo-shuttle
has a similar improvement (if you’re installing from source). - Frameworks are now re-exported by their Shuttle service integration. You can now do, for example,
use shuttle_axum::axum;
. - (Upcoming feature) New
setup-otel-exporter
feature flag in shuttle-runtime for enabling telemetry exporting deployment redeploy
anddeployment stop
now supports--no-follow
and--raw
Contributions
- @kikniknik fixed rocket templates example in shuttle-hq/shuttle-examples#204
- @c-git added docs for running
shuttle run
with live reload usingbacon
in shuttle-hq/shuttle-docs#318 - @christian-alan improved the website navbar in shuttle-hq/www#371
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- feat: legacy platform force deployment by @jonaro00 in #1957
- feat: re-export supported framework crates by @the-wondersmith in #1956
- feat: user project telemetry by @the-wondersmith in #1961
- refactor: improve values of default otel
Resource
by @the-wondersmith in #1968 - chore: remove legacy code by @jonaro00 in #1962
- feat: upgrade axum,http,hyper,reqwest,tokio by @jonaro00 in #1964
- feat: new scripts for switching api environments by @jonaro00 in #1970
- feat: stabilise redeploy command by @jonaro00 in #1966
- chore: rename all beta models by @jonaro00 in #1969
- chore: use
TelemetryResourceDetector
for telemetry sdk values when creating default resource by @the-wondersmith in #1974 - feat: allow --no-follow and --raw on redeploy and stop by @jonaro00 in #1973
- refa: admin cert command by @jonaro00 in #1971
- feat: project telemetry config models by @jonaro00 in #1972
- chore: v0.52.0 by @jonaro00 in #1975
New Contributors
- @the-wondersmith made their first contribution in #1956
Full Changelog: v0.51.0...v0.52.0
v0.51.0
Shuttle: v0.51.0 update
Axum 0.8 support
Axum 0.8 is now used by default in shuttle-axum
.
To keep using Axum 0.7 with Shuttle, use this cargo feature:
axum = "0.7"
shuttle-axum = { version = "0.51.0", default-features = false, features = ["axum-0-7"] }
Support for Axum 0.6 has been dropped with this release.
OpenDAL Operator for Shared Postgres DB
This feature serves as an alternative to shuttle-persist
, which is not supported on shuttle.dev.
Two new output types have been added to #[shuttle_shared_db::Postgres]
under the opendal-postgres
crate feature:
opendal::Operator
, which provides a generic key-value store interface backed by a table in the database.shuttle_shared_db::SerdeJsonOperator
, which provides an interface for storing any serializable type T as JSON in the Operator table. This is similar to the shuttle-persist interface.
Other updates
- Bumped salvo to 0.75 in
shuttle-salvo
. - Bumped opendal to 0.51 in
shuttle-opendal
. - Added an optional timeout setting in
shuttle-api-client
. - Fixed a bug where cargo-shuttle would put gitignore rules on the same line as existing ones.
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- feat: make api-client timeout configurable, increase in admin cli by @oddgrd in #1950
- feat: opendal on postgres output type, bump opendal by @jonaro00 in #1928
- feat(shuttle-axum): support axum 0.8, drop axum 0.6 by @jonaro00 in #1951
- chore: move ApiKey type to backends, remove AccountTier sqlx::Type by @jonaro00 in #1923
- feat(shared-db): SerdeJsonOperator for json storage by @jonaro00 in #1952
- chore(shuttle-salvo): bump salvo version by @jonaro00 in #1953
- chore: v0.51.0 by @jonaro00 in #1954
Full Changelog: v0.50.0...v0.51.0
v0.50.0
Shuttle: v0.50.0 update
Bug fixes
- Fixed a bug where
RUST_LOG
was overridden in local runs with the newshuttle
CLI in #1930
Other updates
- Increased MSRV of the Shuttle crates to 1.81
- The version of
libsql
in theshuttle-turso
crate has been upgraded from 0.3.1 to 0.6.0.
Contributions
- @geofmureithi updated the
shuttle-cron
example in shuttle-hq/shuttle-examples#194 - @Aditya-PS-05 replaced the unmaintained
proc-macro-error
crate withproc-macro-error-2
in #1921 - @c-git fixed a typo in the
shuttle-service
docs in #1935 - @sentinel1909 upgraded
libsql
inshuttle-turso
in #1940 and shuttle-hq/shuttle-examples#197
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- fix: cargo-audit version by @jonaro00 in #1919
- added proc-macro-error2 dependency by @Aditya-PS-05 in #1921
- shuttle.dev cleanup by @jonaro00 in #1920
- fix: admin and cli fixes by @jonaro00 in #1922
- feat: deprecate new project creation by @oddgrd in #1931
- docs: typo fix by @c-git in #1935
- feat: bump common msrv to 1.81, our images to 1.83 by @oddgrd in #1942
- feat: add xl and xxl compute tiers by @oddgrd in #1946
- feat: update rds resource type for new platform compatibility by @oddgrd in #1945
- improvement: update the Turso resource to use libsql 0.6.0 by @sentinel1909 in #1940
- feat: deprecate new deployments by @oddgrd in #1934
- fix(cargo-shuttle): don't override user provided RUST_LOG on local run by @jonaro00 in #1930
- chore: prepare v0.50.0 release by @oddgrd in #1948
New Contributors
- @Aditya-PS-05 made their first contribution in #1921
- @c-git made their first contribution in #1935
Full Changelog: v0.49.0...v0.50.0
v0.49.0
Shuttle: v0.49.0 update
Google Login
You can now Log in with Google on the Shuttle Console!
New CLI login flow
shuttle login
now uses the Shuttle Console to authorize the CLI login with one click. No need to copy + paste the API key!
shuttle login --prompt
and shuttle login --api-key <key>
are still available as fallbacks.
Other updates
shuttle project update name <new-name>
allows you to rename a project. Note: This also updates the default subdomain name. Custom domains remain unchanged.- (shuttle.rs) Added
cargo shuttle resource dump database::shared::postgres
to allow migrating postgres data out of the shared cluster. This can be used to move data to the shuttle.dev platform (docs). - Fixed a bug where global args would not autocomplete in shell completions
shuttle generate shell
shell completions now correctly generate completions forshuttle
- Fixed
shuttle run
requiring project linking, fixedshuttle init
project linking - Improved some API errors
Contributions
- @tomasguinzburg fixed cargo watch docs shuttle-hq/shuttle-docs#304
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- feat: compute tier upgrade admin command by @oddgrd in #1906
- feat: dump db endpoint, fixes, Rust 1.82 by @jonaro00 in #1907
- fix(cargo-shuttle): shell completion, refactors by @jonaro00 in #1909
- feat(common): project config update models by @jonaro00 in #1910
- fix: don't attempt project linking on local run, create project and link on beta init by @oddgrd in #1911
- feat(cargo-shuttle): update project name command by @jonaro00 in #1912
- fix: update archive endpoint by @jonaro00 in #1914
- feat(cargo-shuttle): automatic login via console, login --prompt by @jonaro00 in #1913
- feat(cargo-shuttle): redeploy command by @jonaro00 in #1916
- chore: v0.49.0 by @jonaro00 in #1917
Full Changelog: v0.48.3...v0.49.0
cargo-shuttle v0.48.3
Bugfix release
What's Changed
- fix: shuttle-common 0.48.2 by @jonaro00 in #1901
- fix(cargo-shuttle): don't print platform info in unrelated commands by @jonaro00 in #1902
- chore: cargo update by @jonaro00 in #1904
- nit: allow deprecated chrono method in deprecated backends by @jonaro00 in #1905
Full Changelog: v0.48.2...v0.48.3
cargo-shuttle v0.48.2
cargo-shuttle v0.48.1
Bugfix release
What's Changed
- feat(installer): install shuttle binary by @jonaro00 in #1890
- fix: otel exporter config by @jonaro00 in #1891
- fix: reduce gateway cert renew sleep by @oddgrd in #1888
- fix(cargo-shuttle): beta: create missing project on deploy, fix local run, better project link dialogue by @jonaro00 in #1893
- feat(cargo-shuttle): beta deploy.deny_dirty config, allow dirty deploys by default by @jonaro00 in #1894
- feat(cargo-shuttle): Shuttle.toml new key names by @jonaro00 in #1895
- chore: bump cargo-shuttle by @jonaro00 in #1897
Full Changelog: v0.48.0...v0.48.1