Releases: shuttle-hq/shuttle
v0.35.1
v0.35.1 - Release Notes
We're excited to release Shuttle v0.35.1! 🚀
Shuttle: v0.35.1 update
Platform stability improvements
We keep up with the platform stability improvement track and this time our focus was on Shuttle auth service, besides other small improvements. We made a significant change to our database by using PostgreSQL now, which opens up the stage for adding redundancy.
Other updates
- fixed our CI in terms of the cargo-audit advisories
- simplified a part of the gateway’s project state-machine dependencies, in terms of generics usage
Contributions
- @fatfingers23 added a more descriptive error message for the case of using a project name that is not owned by the user of the command or the project doesn’t exist: #1452
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- fix(gateway): more descriptive project not found error by @fatfingers23 in #1452
- refactor: remove generics by @chesedo in #1460
- fix: cargo audit failures by @oddgrd in #1475
- tests(resource-recorder): allow server time to start by @oddgrd in #1477
- auth: store state in postgres instance by @iulianbarbu in #1420
- chore: v0.35.1 by @iulianbarbu in #1480
Full Changelog: v0.35.0...v0.35.1
v0.35.0
We're excited to release Shuttle v0.35.0! 🚀
Shuttle: v0.35.0 update
Platform stability improvements
In the past week, we identified a bottleneck in our system linked to the way we were retrieving Docker stats for project containers. This bottleneck had a noticeable impact on the capacity of the Shuttle platform, causing intermittent service degradation, leading to e.g. slow and failing project commands. We’re pleased to announce that this bottleneck has been resolved in this release.
Breaking changes
- The
cargo shuttle generate
command has been refactored to accommodate the new manpage command. This command now takes a subcommand for generating either shell completions or a manpage. In addition, it no longer reads theSHELL
orOUTPUT
environment variable for shell completions.cargo shuttle generate manpage
cargo shuttle generate shell <SHELL>
Bug fixes
- Fixed a bug where cancelling a Pro tier subscription immediately downgraded the user to the Community tier, rather than waiting until the end of the period.
Other updates
- Added a flag to skip confirmation when deleting projects or resources:
cargo shuttle project delete -y/--yes
.
Contributions
- @fatfingers23 fixed a bug in our CI testing in #1453
- @selectiveduplicate added the ability to create a manpage to the
cargo-shuttle
CLI in #1388 - @supleed2 fixed a bug in the table output of the
project list
command in #1466 - @AvaterClasher tidied up the service crates’ documentation in #1425
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- add: service docs readme by @AvaterClasher in #1425
- feat: protect ourselves from going over the 1k limit by @chesedo in #1444
- refactor: improve build queue messages and increase queueing time by @chesedo in #1447
- test: add an extra property claim test for pro users by @chesedo in #1448
- feat: protect pro tier projects and our services by @chesedo in #1445
- feat(gateway): allow manual blocking of cch project traffic at high load by @jonaro00 in #1446
- fix(gateway): don't attempt to retry error infinitely by @Kazy in #1450
- feat(gateway): add cch projects idle admin endpoint by @oddgrd in #1454
- feat: propagate ambulance traces by @chesedo in #1456
- feat: don't overload docker with requests by @chesedo in #1457
- Add back retry logic on project error by @Kazy in #1455
- refactor: reduce backoff by @chesedo in #1458
- refactor: only ambulance ready projects by @chesedo in #1459
- refactor: allow stats to change in the future by @chesedo in #1463
- Setup datadog by @Kazy in #1462
- ci: fix tests with axum and serenity feature flags by @fatfingers23 in #1453
- fix(optl): correctly set deployment.environment resource by @Kazy in #1467
- feat(cargo-shuttle): add --no-confirmation flag to project deletion by @Kazy in #1468
- feat(cargo-shuttle): generate manpage by @selectiveduplicate in #1388
- feat: downgrade user to basic tier only after period end by @GugaGongadze in #1427
- feat(cargo-shuttle): change no_confirmation flag to -y/--yes, add it to resource delete by @jonaro00 in #1470
- refactor: get stats from cgroup file directly by @oddgrd in #1464
- fix(cargo-shuttle): remove newline from errored project state output by @supleed2 in #1466
- chore: v0.35.0 by @oddgrd in #1471
- ci: fix deploy-images conditional by @oddgrd in #1473
New Contributors
- @AvaterClasher made their first contribution in #1425
- @selectiveduplicate made their first contribution in #1388
Full Changelog: v0.34.1...v0.35.0
v0.34.1
Shuttle: v0.34.1 update
Bugfix release
Serenity 0.12 and Axum 0.7
We have added opt-in support for these breaking changes with feature flags. In a future release when their usage share is larger, we will swap the default features to point to the newer versions, and keep support for the older version with a feature flag.
Serenity 0.12 is now supported by using these feature flags (native TLS also available):
serenity = { version = "0.12.0", features = ["..."] }
shuttle-serenity = { version = "0.34.1", default-features = false, features = ["serenity-0-12-rustls_backend"] }
Axum 0.7 is now supported by using these feature flags:
axum = "0.7.0"
shuttle-axum = { version = "0.34.1", default-features = false, features = ["axum-0-7"] }
Added
cargo shuttle logs
now has a--raw
flag that hides the timestamps and log origins from log lines.
Changed
cargo shuttle project delete
will now restart the project, stop deployments, and delete resources for you if needed, reducing manual work needed by the user.- cch23 projects will always have the idle timer set to 5 minutes.
Bugfixes
- Fixed a bug where normal log usage would be rate limited.
- Fixed a bug where parsing a rate limit response in the deployment log stream caused an error.
- Fixed a bug where deploying new secrets did not properly update them.
- Fixed a bug where the runtime version check timeout on local runs was not high enough. Thanks @fatfingers23 for the contribution!
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- bug: remove project resources automatically when delete the project by @chesedo in #1421
- ci: bump docker-rust rust version by @oddgrd in #1431
- refactor: delete errored projects by @chesedo in #1428
- bug: don't do anything on delete dry run by @chesedo in #1432
- revert: rate limit based on peer address #1351 by @oddgrd in #1426
- fix(cargo-shuttle): handle log stream errors in deploy command by @jonaro00 in #1429
- fix(deployer): new secrets override old ones by @jonaro00 in #1423
- feat(gateway): override idle timer for cch projects by @jonaro00 in #1430
- feat(cargo-shuttle): --raw flag on logs by @jonaro00 in #1422
- feat(gateway): use max 75% of cores for building by @jonaro00 in #1434
- tests: confirm that stopped projects delete successfully by @chesedo in #1435
- chore: v0.34.1, cargo update, changelog by @jonaro00 in #1433
- fix(cargo-shuttle): increase runtime version check timeout by @fatfingers23 in #1437
- fix(shuttle-serenity): support serenity 0.12 through feature flag by @jonaro00 in #1439
- feat(shuttle-axum): support axum 0.7 through feature flag by @jonaro00 in #1440
- fix: project delete prompt by @jonaro00 in #1442
New Contributors
- @fatfingers23 made their first contribution in #1437
Full Changelog: v0.34.0...v0.34.1
v0.34.0
Shuttle: v0.34.0 update
We're excited to release Shuttle v0.34.0! 🚀
Shuttle’s Christmas Code Hunt 🎄
This is the last major release ahead of the Christmas Code Hunt (CCH) - 16 Rust challenges to deploy on Shuttle during December. The CCH platform on the Shuttle Console will open on Monday 27 Nov with a warmup challenge, so get ready! More info and signup: https://www.shuttle.rs/cch
Dropping our crates.io mirror
Since the sparse protocol got rolled out, the need for our mirror of crates.io decreased. Due to some recent instability and its overall weight, we are dropping it in this release, meaning your deployment will download crates directly from crates.io.
Breaking changes
- We will start enforcing our AWS RDS limits from this release. Users on the Community Tier will no longer be able to provision RDS instances. As per our pricing page, users will need to upgrade to the Pro Tier to keep using their existing AWS RDS instances. A deadline for when Community Tier users have to migrate will be announced next week, along with a migration guide.
- Some projects are still running on deployers as old as 0.12.0. In order to clear up capacity on our platform for the CCH event, we might stop some old and inactive projects. We plan to introduce a “minimum supported deployer version” later on to ensure projects stay up to date and don’t break.
Bug fixes
- (Hotfixed in deployer 0.33.0) Secrets are no longer cleared from resource-recorder when a project restarts or wakes up from idle.
- Fixed the
cargo shuttle clean
command not parsing the API response correctly. - Fixed
shuttle-turso
compilation.
Other updates
- Rust 1.74: Restart your project to utilize the latest Rust release in deployments. MSRV for cargo-shuttle and our libraries remains at 1.70.
- Reduced the dependency tree with better scoping of features in our crates. This improves compile times a fair bit:
- Building our Axum Hello World starter now compiles 266 crates (down from 366)!
- Installing cargo-shuttle from source now compiles 416 crates (down from 605)!
cargo shuttle init
now has a--force-name
flag to disable checking if the project name is valid and available.- Added support in
shuttle-serenity
for seamlessly upgrading to serenity 0.12 once it is released (currently 0.12.0-rc). Also added feature support for using native tls. - Our logger service that records logs from projects now has rate limiting. This should not affect normal logging amounts.
- Improved handling of delete project requests. More improvements are to follow.
- Improved handling of runtime version check on local run.
- Improved error handling and error messages in several areas.
Contributions
- @sentinel1909 bumped Rocket to the newly released 0.5.0 version 🥳 #1401 shuttle-hq/shuttle-examples#114 shuttle-hq/shuttle-docs#225
- @cassie-rust bumped base64 to v0.21.5. #1403
- @BandhiyaHardik updated Twitter’s name. #1404
- @thestriver fixed a curl command in one of our tutorials. shuttle-hq/shuttle-docs#224
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
Commits
- misc(auth): added service healthcheck by @iulianbarbu in #1394
- docs(readme): update the alt text for Twitter page by @BandhiyaHardik in #1404
- fix: merge new&old secrets in deployer by @jonaro00 in #1407
- chore: cargo update by @jonaro00 in #1391
- fix(gateway): handle invalid project names in ScopedUser by @jonaro00 in #1396
- feat: remove panamax registry override from deployers by @oddgrd in #1399
- feat(logger): rate limit based on peer address by @oddgrd in #1351
- improvement: rocket-0.5.0 stable by @sentinel1909 in #1401
- refactor: better feature scoping, fix turso compilation, prune library dependency tree by @jonaro00 in #1405
- fix(cargo-shuttle): cargo shuttle clean response type by @jonaro00 in #1409
- chore: Rust 1.74 by @jonaro00 in #1411
- feat(cargo-shuttle): ability to force a name to be used in init by @jonaro00 in #1410
- chore(deps): bump base64 to 0.21.5 by @cassie-rust in #1403
- fix: better error hints & formatting + nits by @jonaro00 in #1412
- feat(shuttle-serenity): support serenity 0.12 and 0.11, optional native tls feature by @jonaro00 in #1416
- feat: limit rds access to pro users by @oddgrd in #1398
- chore: v0.34.0 by @jonaro00 in #1417
- auth: comment healthcheck
start_period
&start_interval
by @iulianbarbu in #1414 - fix(common): type conversion from str for a custom resource by @iulianbarbu in #1415
- bug: delete a project even if the current state is destroyed by @chesedo in #1413
- auth: use a centrally stored jwt signing private key by @iulianbarbu in #1402
- feat(cargo-shuttle): better handling of runtime version checks by @jonaro00 in #1418
New Contributors
- @BandhiyaHardik made their first contribution in #1404
- @cassie-rust made their first contribution in #1403
Full Changelog: v0.33.0...v0.34.0
v0.33.0
Shuttle: v0.33.0 update
We're excited to release Shuttle v0.33.0! 🚀
Bug fixes
- Fixed a bug where project restarts could lead to duplicated resource records being displayed in
cargo shuttle resource list
.
Other updates
- Shortened aliases for commonly used commands are now visible in the
cargo shuttle --help
output. - Removed the
cargo shuttle secrets
command, the keys of Secrets for your project can now only be viewed withcargo shuttle resource list
, or in the Shuttle web console.
Contributions
- @sentinel1909 updated Rocket to rc4 across our codebase in #1379, shuttle-hq/shuttle-examples#112 and shuttle-hq/shuttle-docs#220
- @sentinel1909 updated Rocket to rc4 in one of our articles in shuttle-hq/shuttle-docs#221 and shuttle-hq/www#178
- @safstromo fixed a bug in one of our guides in shuttle-hq/shuttle-docs#219
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- fix(cargo-shuttle): revert shuttle-common-tests to path dep by @oddgrd in #1375
- misc(changelog): add link to releases page by @jonaro00 in #1378
- feat(cargo-shuttle): make command-line aliases visible by @orhun in #1384
- improvement: rocket 0.5.0-rc.4 by @sentinel1909 in #1379
- misc: bump axum minimum version, bump otel crates by @jonaro00 in #1386
- docs(readme): add note about CCH to README.md by @orhun in #1389
- fix(gateway): use project_id argument when inserting project by @Kazy in #1387
- feat: add limits and tier to jwt claim by @oddgrd in #1382
- refactor: clean up deployer db resources, delete after sync to r-r, delete secrets command by @jonaro00 in #1376
- feat(gateway): temporary conditional project limit increase by @jonaro00 in #1383
- chore: v0.33.0 by @oddgrd in #1390
Full Changelog: v0.32.0...v0.33.0
v0.32.0
Shuttle: v0.32.0 update
We're excited to release Shuttle v0.32.0! 🚀
Stricter Project Name Validation
One year ago we started enforcing stricter project names for any new project, but we allowed older projects with now invalid names to still be usable without interruption. In this release we will start enforcing the new restrictions for existing projects as well.
If you encounter any issues with old projects that had invalid names, please reach out to us on support@shuttle.rs, or open a help thread in our Discord.
Shuttle for Alpine Linux
Shuttle has been packaged for Alpine Linux 🥳
See https://github.com/shuttle-hq/shuttle/blob/main/cargo-shuttle/README.md#alpine-linux for installation instructions.
Other updates
- The deployer environment’s Rust version is now 1.73.0.
cargo_metadata::Metadata
’s project name field is now typeString
.- The password of
local_uri
connection strings will now be obfuscated in the terminal output. - Checking for the Shuttle runtime's version now errors if the check fails, for instance if the binary is not using shuttle-runtime or if the cargo config targets the wrong binary.
Bug fixes
- Fixed a bug where
resource list --show-secrets
was displaying the incorrect hostname for databases
Contributions
- @d4ckard helped implement the new project name validation in #1354
- @mackey0225 fixed some typos in our docs in shuttle-hq/shuttle-docs#216
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
Commits in this release
- refactor: fix ProjectName validation, custom Path extractor for parsing it by @jonaro00 in #1354
- feat: use proto-gen for generating proto code by @jonaro00 in #1364
- chore: bump and refactor images, code cleanup by @jonaro00 in #1313
- feat: suggest project restart when trying to delete by @jonaro00 in #1366
- fix: database uri password hiding, runtime version check by @jonaro00 in #1368
- ci: audit on main, build release stack sooner, release crates faster by @jonaro00 in #1369
- docs(readme): add instructions for installing on Alpine Linux by @orhun in #1365
- feat(installer): support installing the Alpine Linux package by @orhun in #1370
- refactor: make admin compile, scope project models to backends by @jonaro00 in #1371
- docs(changelog): create CHANGELOG.md by @orhun in #1372
- chore: v0.32.0 by @oddgrd in #1373
Full Changelog: v0.31.0...v0.32.0
v0.31.0
Shuttle: v0.31.0 update
We're excited to release Shuttle v0.31.0! 🚀
Project Limits
With this release, we still start enforcing our project limits to reflect the limits from our pricing page. You will no longer be able to create more projects than your tier allows. If you are above the limit but want to create more projects, you need to either delete projects with cargo shuttle project delete
or upgrade to the Pro tier. If you are on the Pro tier and want more projects than the Pro tier limit, you can get in touch with us on hello@shuttle.rs or on our Discord.
If you experience problems when deleting very old projects, feel free to open a help thread on our Discord, or reach out at support@shuttle.rs.
Hidden Resource Credentials
The credentials of resources like shuttle_shared_db
or shuttle_aws_rds
will now be obfuscated by default in the CLI. If you need to see these credentials to access your database, you can add the --show-secrets
flag to the resource command: cargo shuttle resource list --show-secrets
.
Bug fixes
- Fixed a bug where the
cargo shuttle deploy
command would appear to hang when it was downloading crates. - Fixed a bug where renewed custom domain certificates were not persisted across
gateway
restarts. - Fixed a bug where resource provisioning errors were not displayed.
- Fixed a bug in our turso integration where using the latest version of
libsql-client
would not compile. We reverted to the previous version, see: #1355. - Fixed a bug where secrets that were removed with
cargo shuttle resource delete secrets
(and removed fromSecrets.toml
), would be restored on subsequent deploys.
Contributions
- @AlphaKeks made sure we can’t accidentally log secrets in #925
- @x04 implemented adaptive page hints for the
project list
anddeployment list
commands in #1357 - @ethanholz and @AliSajid improved the documentation of our service integrations and resource crates in #892 and #893
- @GlenDC fixed typos in #1360
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- bug: push renewed domain certificate to DB by @chesedo in #1347
- ci: add cargo-audit step by @Kazy in #1345
- feat: wrap secrets in custom types to prevent them from leaking by @AlphaKeks in #925
- feat(logger): add instrumentation needed for alert by @oddgrd in #1348
- bug: resource provisioning errors not showing by @chesedo in #1352
- bug: compile fails with secrets in resource configs by @chesedo in #1353
- refactor(runtime): hide internals from public-facing API, export tokio by @jonaro00 in #1332
- docs: updates for return types for examples actix-web, tide, serenity, tower by @ethanholz in #892
- Documentation updates for return types by @AliSajid in #893
- feat(cargo-shuttle): state MSRV in Cargo.toml by @jonaro00 in #1356
- bug: revert turso version update by @chesedo in #1355
- docs: add Docker Desktop config tip by @jonaro00 in #1350
- misc: cargo update to fix audit issue by @chesedo in #1358
- feat(deployer): delete secrets from deployer persistence on secrets resource delete by @oddgrd in #1359
- feat: adapative page hints (client-side only) by @x04 in #1357
- fix typos found in codebase by @GlenDC in #1360
- fix(deployer): handle cargo fetch without blocking logs, use async channels by @jonaro00 in #1349
- feat(gateway): project limit by @jonaro00 in #1331
- chore: v0.31.0 by @oddgrd in #1361
New Contributors
- @ethanholz made their first contribution in #892
- @AliSajid made their first contribution in #893
- @x04 made their first contribution in #1357
- @GlenDC made their first contribution in #1360
Full Changelog: v0.30.1...v0.31.0
v0.30.1
Shuttle: v0.30.1 update
We're excited to release shuttle v0.30.1! 🚀
Bug fixes
- fixed failing commands when running certain commands against deployments (e.g.
cargo shuttle deployment list
)
Considerations
If you experienced any problems with v0.30.0, please upgrade your Shuttle dependencies to v0.30.1 and run cargo shuttle project restart
.
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
Commits for this release
- fix: scope enum serialization compatibility by @jonaro00 in #1341
- chore: v0.30.1 by @oddgrd in #1342
- chore: v0.30.1 part 2 by @jonaro00 in #1344
Full Changelog: v0.30.0...v0.30.1
v0.30.0
Shuttle: v0.30.0 update
We're excited to release shuttle v0.30.0! 🚀
Project deletion
You can now delete projects with cargo shuttle project delete
🥳!
Bear in mind that you will be asked to manually delete any linked secrets and/or databases before deleting a project. Other resources, such as shuttle-persist
, are deleted along with your project.
Other updates
- Improved error message when pre-deployment tests fail
- Fixed a bug in the installer script where reading Y/N input failed
- shuttle-next: Updated the version of
wasmtime
to 13.0
Contributions
- Unpin and bump version of
libsql-client
inshuttle-turso
@sentinel1909 - The commands that print tables (
project list
,deployment list
,resource list
, andsecrets
) can now use--raw
to not use bordered and dynamically sized tables @supleed2 - Alignment in the
project list
table fixed @supleed2
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
Commits in this release
- ci: fix release ordering by @jonaro00 in #1312
- build: update dependencies by @Kazy in #1325
- refactor(deployer): improve deployment test failure msg by @oddgrd in #1326
- improvement: unpin libsql-client, bump to v0.32.0 by @sentinel1909 in #1329
- build(runtime): update to wasmtime 13.0 by @Kazy in #1330
- fix(installer): read input from process' controlling terminal by @orhun in #1327
- docs(cargo-shuttle): update the link for the Arch Linux package by @orhun in #1328
- feat(resource-recorder): add basic instrumentation by @oddgrd in #1335
- feat: project delete by @jonaro00 in #1307
- feat(logger): add basic instrumentation to the API by @oddgrd in #1336
- feat(cargo-shuttle): raw table output, fix table column alignment by @supleed2 in #1319
- chore: v0.30.0 by @oddgrd in #1339
New Contributors
Full Changelog: v0.29.1...v0.30.0
v0.29.1
Shuttle: v0.29.1 update
We're excited to release shuttle v0.29.1! 🚀
Bug Fixes
- fixed a bug where local runs with a database would fail on the first run
Note: only cargo-shuttle
needs to be updated for this release.
What's Changed
- fix(resources/shared-db): retry initial connection a few times by @Kazy in #1314
- chore: v0.29.1 by @oddgrd in #1317
Full Changelog: v0.29.0...v0.29.1