Skip to content

Releases: shuttle-hq/shuttle

v0.34.0

23 Nov 13:06
Compare
Choose a tag to compare

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

Upgrading

Refer to the upgrading docs for how to upgrade your projects.

Commits

New Contributors

Full Changelog: v0.33.0...v0.34.0

v0.33.0

16 Nov 12:33
299a30d
Compare
Choose a tag to compare

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 with cargo shuttle resource list, or in the Shuttle web console.

Contributions

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

09 Nov 11:47
6943e21
Compare
Choose a tag to compare

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 [email protected], 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 type String.
  • 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

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

02 Nov 11:41
9366fc5
Compare
Choose a tag to compare

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 [email protected] 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 [email protected].

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 from Secrets.toml), would be restored on subsequent deploys.

Contributions

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

Full Changelog: v0.30.1...v0.31.0

v0.30.1

24 Oct 15:17
dd55ca0
Compare
Choose a tag to compare

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

Full Changelog: v0.30.0...v0.30.1

v0.30.0

24 Oct 07:57
84ece38
Compare
Choose a tag to compare

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.

⚠️ We are aware that some old projects are in a bad state where restarting them can not get them to a valid state, and can therefore not be deleted with the command. If you have projects that you are unable to delete, please reach out to us on [email protected] or open a help thread on Discord.

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 in shuttle-turso @sentinel1909
  • The commands that print tables (project list, deployment list, resource list, and secrets) 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

12 Oct 10:32
7ef6395
Compare
Choose a tag to compare

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

v0.29.0

09 Oct 11:53
8749a06
Compare
Choose a tag to compare

Shuttle: v0.29.0 update

We're excited to release shuttle v0.29.0! 🚀

Deleting resources

Databases linked to a project can now be deleted via the cargo shuttle resource delete <type> command. You can check the syntax of <type> with cargo shuttle resource list.

After deleting a database, remember to remove the annotation from your main function, so that it does not get provisioned again.

With this feature released, we will soon enable you to delete projects! Deleting other resources, such as Secrets, Persist and Static Folder, will be added soon.

Bug fixes

  • Fixed --reset-api-key when logging out of the CLI
  • Fixed scenario where the CLI init command would crash if not logged in

Other updates

  • Added backend support for billing 👀

Upgrading

Refer to the upgrading docs

Commits in this release

Full Changelog: v0.28.1...v0.29.0

cargo-shuttle v0.28.1

05 Oct 10:26
bdbf92f
Compare
Choose a tag to compare

Bug fixes

  • fixed a bug where cargo-shuttle would panic on cargo shuttle login

Commits for this release

  • test(cargo-shuttle): add debug assertion for command-line arguments by @orhun in #1295
  • fix: cargo-shuttle panic on the login command by @jonaro00 in #1302

Note: only the cargo-shuttle version was increased in this release, no other crates need to be upgraded.

Full Changelog: v0.28.0...v0.28.1

v0.28.0

03 Oct 13:03
4707027
Compare
Choose a tag to compare

Shuttle: v0.28.0 update

We're excited to release shuttle v0.28.0! 🚀

New project container image

When restarting your project, your project container will now run a Debian 12 image (previously Debian 10). We don’t expect this upgrade to cause problems for users, but let us know if you experience any deployment issues after this bump, and we will do our best to fix it quickly.

Installer script

Linux and Mac users can now install and update cargo-shuttle using this handy script. We also aim to make this compatible for Windows users in the future.

curl -sSfL https://www.shuttle.rs/install | bash

Removed cargo-generate dependency 💎

We now use a homegrown method for cloning templates with the cargo shuttle init command. This means cargo-shuttle is now more oxidized (free from openssl dependencies), and will compile a bit faster. Thanks @d4ckard for the contribution, and congrats on claiming the $100 bounty on this issue! 🥳

More version warnings and project name checks

A common source of errors is mismatching versions between the CLI, the Shuttle runtime, and the Shuttle deployer. We added more warnings to cargo-shuttle when it detects any mismatching versions. You can read more about Shuttle versions in the docs.

Furthermore, when running the init command interactively, the chosen project name will be checked against the API, and re-prompt you if it is already taken. Using the --name argument does not perform this check.

Please let us know about difficulties you encounter when using Shuttle. We are always trying to smooth out rough edges that users commonly face.

Other updates

  • Better handling of project state drift.
  • Project are compressed slightly more before deploying, so that you can squeeze in a couple more bytes in large projects.
  • Updated handling of config files after cloning a template.
  • The spinner when stopping or starting a project updates with a larger interval to not spam the API.
  • [Experimental] Deployer image now has the linkers lld at /usr/bin/ld.lld and mold at /usr/bin/mold.

Contributions

  • Local run will ask you about using a different port if the chosen port is already occupied. Thanks @BadgerBloke!
  • Removed cargo-generate dependency. @d4ckard
  • Fix the Shuttle stack starting locally on Mac M1. @AlexCzar

Upgrading

Refer to the upgrading docs for how to upgrade your projects.

Commits in this release

  • fix(deployer): handle gracefully builder connection failure by @iulianbarbu in #1264
  • ci: reduce shortest path in publish flow by @jonaro00 in #1265
  • feat(ci): separation of tests that need docker by @jonaro00 in #1249
  • feat(builder): improve the nix build capturing of stdout/stderr by @orhun in #1268
  • bug: projects' states drifting by @chesedo in #1262
  • feat(orchestrator): initialize shuttle-orchestrator as a library by @orhun in #1271
  • feat(cargo-shuttle): better compression & handling of config files after init by @jonaro00 in #1257
  • chore(docker): set up a local shared postgres for development by @orhun in #1272
  • fix(docker-compose.dev): adjust auth dev dependency by @iulianbarbu in #1274
  • feat: version checks between cli, gateway, deployer, runtime by @jonaro00 in #1275
  • fix(cargo-shuttle): prompt for new port if port is taken by @BadgerBloke in #1270
  • fix(cargo-shuttle): spam less requests when waiting for project ready by @jonaro00 in #1287
  • refactor(cargo-shuttle): remove cargo-generate dependency by @d4ckard in #1281
  • fix: gateway container startup on apple m1 by @AlexCzar in #1284
  • ci: separate ci and unstable jobs, better caching by @jonaro00 in #1273
  • feat(cargo-shuttle): check project name available by @jonaro00 in #1279
  • feat: use smaller+newer images, script for patches, unique binary names by @jonaro00 in #1247
  • feat: add lld and mold linkers by @jonaro00 in #1286
  • fix(deployer): added runtime error handling by @iulianbarbu in #1231
  • feat(installer): add installer script by @orhun in #1280
  • docs: add installer script option by @jonaro00 in #1290
  • fix: cleanup for 0.28.0 by @jonaro00 in #1278
  • fix(gateway): install curl for health checks by @oddgrd in #1291
  • chore: v0.28.0 by @oddgrd in #1293

New Contributors

Full Changelog: v0.27.0...v0.28.0