Releases

cargo-shuttle v0.48.3

10 Oct 2024

Bugfix release

What's Changed

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.48.2...v0.48.3

cargo-shuttle v0.48.2

10 Oct 2024

Patch release

What's Changed

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.48.1...v0.48.2

cargo-shuttle v0.48.1

3 Oct 2024

Bugfix release

What's Changed

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.48.0...v0.48.1

v0.48.0

1 Oct 2024

Shuttle: v0.48.0 update

This update packs a lot of changes under the hood in preparation of upcoming platform updates. Stay tuned for more announcements!

Updates

  • Bumped sqlx to 0.8.2 in shuttle-shared-db and shuttle-aws-rds
  • MSRV is now 1.78
  • Rust 1.81 is now available in deployers after a project restart

Contributions

Upgrading

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

What's Changed

New Contributors

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.47.0...v0.48.0

v0.47.0

23 Jul 2024

Shuttle: v0.47.0 update

New shuttle-openai plugin

We now provide a macro for easily setting up an async_openai::Client:

#[shuttle_runtime::main]
async fn main(
    #[shuttle_openai::OpenAI(api_key = "{secrets.OPENAI_API_KEY}")]
    openai: Client<OpenAIConfig>,
) -> shuttle_axum::ShuttleAxum { ... }

Check out this example for the full code.

New shuttle-api-client library

The cargo-shuttle logic for calling the Shuttle API has been extracted into a separate crate. The API and public interface will evolve as we release more features.

No URL path sanitization

We are no longer sanitizing path traversals in the proxy, making it more transparent & correct, and letting the user code (or web framework) handle it.

Other updates

  • (Hotfixed during 0.46.0) Fixed the team project list endpoint
  • (Released during 0.46.0) Rust 1.79 available in deployers
  • MSRV is now 1.77
  • cargo shuttle deploy --output-archive <path> can now be used to dump the deployment archive to disk instead of deploying it.
  • Added more detailed request debugging in cargo shuttle --debug. Be careful when using the debug flag, the output can contain sensitive information.

Contributions

  • @Dreaming-Codes updated the Qdrant dependency in shuttle-qdrant to 1.10

Upgrading

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

What's Changed

New Contributors

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.46.0...v0.47.0

v0.46.0

13 Jun 2024

Shuttle: v0.46.0 update

Shuttle feature flag

cargo-shuttle and the Shuttle deployer will now activate the cargo feature shuttle of the package if it exists (and disable default features). This allows for easy conditional compilation depending on if you’re compiling for Shuttle or something else.

# Compiling this package on Shuttle will enable the features
# "shuttle" and "bar". To use default features on Shuttle, add
# "default" to the shuttle array.
[features]
default = ["foo"]
shuttle = ["bar"]
foo = []
bar = []

Other updates

  • (released during 0.45.0) Rust 1.78.0 is now available in deployers.
  • Improved the project delete command’s reliability.
  • Fixed a bug in the proxy where redirects from http to https would have the incorrect URL.

Upgrading

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

What's Changed

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.45.0...v0.46.0

v0.45.0

13 May 2024

Shuttle: v0.45.0 update

This release comes with a few bugfixes and lots of behind the scenes work on upcoming updates.

Breaking changes

  • The project list command on cargo-shuttle v0.44.0 will produce an additional 404 error. Upgrade to v0.45.0 to resolve this.

Bug fixes

  • Improved the error when Docker is not running on local runs.
  • Shuttle will no longer try to run library workspace members that have the shuttle-runtime dependency.
  • Made the project delete action more reliable.

Upgrading

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

What's Changed

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.44.0...v0.45.0

v0.44.0

23 Apr 2024

Shuttle: v0.44.0 update

Improvements to cargo shuttle logs

Until this point, it has only been possible to fetch all the logs for a deployment. Following this release, after upgrading your cargo-shuttle CLI, you will be able to:

  • Fetch the last n log lines with cargo shuttle logs --tail <n>.
  • Fetch the first n log lines with cargo shuttle logs --head <n>.
  • Fetch all the logs lines with cargo shuttle logs --all. Note that this is capped at 4 MiB of log lines.

Thanks to @biplab5464 for contributing this new functionality!

Breaking changes

Bug fixes

  • The shuttle_service::Environment enum is now correctly re-exported from shuttle_runtime.

Other updates

  • We made improvements to the errors returned from the control plane, that should make it easier to resolve some common failures.

Contributions

Upgrading

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

What's Changed

New Contributors

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.43.0...v0.44.0

v0.43.0

2 Apr 2024

Shuttle: v0.43.0 update

This is mainly a bugfix release, and no upgrade is required. We are working on several upcoming features behind the scenes, so stay tuned!

Updates

  • cargo-shuttle now has a global --debug flag that enables debug logging.
  • Made cargo-shuttle fail fast when encountering an API error, instead of retrying up to 3 times.
  • Fixed a small downtime in the logger service that happened when new versions of Shuttle were deploying.
  • Fixed a bug where having a non-std Result type in scope would make the shuttle_runtime::main macro fail.
  • (released in shuttle-turso 0.42.1) Fixed the connection behaviour when connecting to a remote URL on local runs.

Contributions

Upgrading

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

What's Changed

New Contributors

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.42.0...v0.43.0

v0.42.0

18 Mar 2024

Shuttle: v0.42.0 update

We're excited to release Shuttle v0.42.0! 🚀

Secrets and Metadata plugins moved to shuttle-runtime

The shuttle-secrets and shuttle-metadata crates have been deprecated. You can now access these resources like this:

use shuttle_runtime::SecretStore;
use shuttle_runtime::DeploymentMetadata;

#[shuttle_runtime::main]
async fn main(
    #[shuttle_runtime::Secrets] secrets: SecretStore,
    #[shuttle_runtime::Metadata] metadata: DeploymentMetadata,
) -> ... { ... }

Other updates

  • Secrets.toml files can now be placed either in the crate root or in the workspace root if your project is in a workspace.
  • Resolved the most common errors in the project delete command. It should now be more reliable.
  • Improved the error message if fetching too many log line in one call.
  • (hotfixed in 0.41.0) Fixed a bug where RDS resources would error on redeployments.

Contributions

Upgrading

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

What's Changed

New Contributors

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.41.0...v0.42.0

v0.41.0

7 Mar 2024

Shuttle: v0.41.0 update

We're excited to release Shuttle v0.41.0! 🚀

Idle wakeups improved

The proxy will now properly wait until a service exposes its HTTP port when a project is waking up from idle. This should resolve the common 502 errors that services get on the first request to an idled project. No upgrade is needed.

Let us know if you experience any other issues with idling projects!

Easy access to more project templates

cargo shuttle init now allows you to browse the full list of official templates on shuttle-examples.

Other updates

  • shuttle-next is now discontinued
  • cargo-shuttle now has an --offline flag to skip non-essential network requests, like versions checks and template list fetching

Contributions

What's Changed

New Contributors

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.40.0...v0.41.0

0.40.0

4 Mar 2024

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 the run and deploy 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

Upgrading

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

What's Changed

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.39.0...v0.40.0

0.39.0

14 Feb 2024

Shuttle: v0.39.0 update

We're excited to release Shuttle v0.39.0! 🚀

Multiple domains + performance improvements

Projects that have custom domains (and have upgraded their deployer to 0.39.0) can now also be reached at their usual *.shuttleapp.rs domain. It is now also possible to add multiple custom domains to a project.

This change also comes with reduced CPU usage per request, so feel free to upgrade even if you are not using custom domains!

OpenDAL plugin

Thanks to @Xuanwo’s contribution, we now have shuttle-opendal. OpenDAL allows you to easily connect to many storage services with credentials that you provide as secrets, for example:

use opendal::Operator;

#[shuttle_runtime::main]
async fn main(
    #[shuttle_opendal::Opendal(scheme = "s3")] storage: Operator,
) -> ... { ... }

Templates

Some templates in our examples repo have been added or updated:

Other updates

  • Rust 1.76 is now available by restarting your project.
  • Deployment logs older than 1 month will regularly be getting cleaned up from now on.
  • Removed our tracking of resources that we don’t need to track, such as static folder, turso, and custom.

Contributions

Upgrading

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

What's Changed

New Contributors

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.38.0...v0.39.0

v0.38.0

1 Feb 2024

Shuttle: v0.38.0 update

We're excited to release Shuttle v0.38.0! 🚀

AWS RDS pricing

Our AWS RDS instances will from now be a paid add-on instead of a Pro feature. Emails with more information and instructions will be sent out to everyone who uses RDS.

All users can now sign up for AWS RDS in the billing section in the Console.

shuttle-turso now uses the libsql crate

The new and improved replacement for libsql-client is now used, which introduces some breaking changes. The resource output is now a libsql::Connection. Check out the updated docs for more. Thanks @Mouwrice for the contribution!

Other updates

  • The Shuttle crates’ minimum support Rust version (MSRV) is now officially set to 1.75. Future bumps to the MSRV will be announced in release notes. Enjoy those async traits!
  • Fixed a bug where cloning a template with a workspace incorrectly set the project name in the workspace manifest.

Upgrading

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

What's Changed

New Contributors

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.37.0...v0.38.0

v0.37.0

24 Jan 2024

Shuttle: v0.37.0 update

We're excited to release Shuttle v0.37.0! 🚀

Multiple output types in resource macros

🚨 BREAKING 🚨: To keep using an sqlx Pool in the main macro, add the feature flag sqlx to your shuttle-shared-db or shuttle-aws-rds dependency. To use sqlx with native TLS instead, use the feature flag sqlx-native-tls.

The traits in shuttle-service have been refactored, allowing you to have several possible output types in the Shuttle main macro’s resource annotations. For example:

// Use the connection string
#[shuttle_runtime::main]
async fn main(#[shuttle_shared_db::Postgres] conn_str: String) -> ... { ... }

// 🚨 Add the "sqlx" feature flag to get a PgPool like before
#[shuttle_runtime::main]
async fn main(#[shuttle_shared_db::Postgres] pool: sqlx::PgPool) -> ... { ... }

Shuttle + Qdrant

Thanks to @paulotten, we now have a shuttle-qdrant plugin that simplifies the client connection to a Qdrant Cloud vector database during deployment (that you set up yourself), and automates a local Qdrant Docker container during local runs. Check out this example!

The local provisioner can now start a wider variety of Docker containers during local runs, so making similar plugins is now easier.

Other breaking changes

  • shuttle-serenity now uses 0.12 by default. Using 0.11 is still possible with a feature flag. More info in the crate docs.
  • shuttle-poise has been deprecated, but can still be used for poise 0.5. To use poise 0.6, use shuttle-serenity and return a serenity client built with the poise framework. Example
  • shuttle-poem now uses poem 2.0.

Contributions

Upgrading

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

What's Changed

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.36.0...v0.37.0

v0.36.0

9 Jan 2024

Shuttle: v0.36.0 update

We're excited to release Shuttle v0.36.0! 🚀

Windows installer script

We’ve had a cargo-shuttle installer script for Linux and macOS for some time now, but a Windows script has been missing. Thanks to a great contribution from @supleed2 we now have all the major operating systems covered. Refer to our getting started docs for how to use these scripts.

Axum 0.7

shuttle-axum will now use axum 0.7 by default. Using axum 0.6 is still possible by enabling a feature flag:

# If switching to axum 0.7 and hyper 1.0:
axum = "0.7.3"
shuttle-axum = "0.36.0"
shuttle-runtime = "0.36.0"

# If staying on axum 0.6:
axum = "0.6.20"
shuttle-axum = { version = "0.36.0", default-features = false, features = ["axum-0-6"] }
shuttle-runtime = "0.36.0"

Other updates

  • Rust 1.75.0 is now used in the deployers. Restart your project to upgrade.
  • The version of Salvo used in shuttle-salvo has been updated to 0.63.
  • cargo shuttle init now has a --no-git argument to not initialize a git repository.
  • The Shuttle Pro subscription total will now be visible in the console.

Contributions

Upgrading

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

What's Changed

New Contributors

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.35.1...v0.36.0

v0.35.2

21 Dec 2023

v0.35.2 - Release Notes

We're excited to release Shuttle v0.35.2! 🚀

Shuttle: v0.35.2 update

Security fixes

Guarded an auth service endpoint to block any attempt for unauthorized projects to create or delete provisioned resources for other projects.

v0.35.1

13 Dec 2023

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

Upgrading

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

What's Changed

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.35.0...v0.35.1

v0.35.0

7 Dec 2023

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 the SHELL or OUTPUT 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

Upgrading

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

What's Changed

New Contributors

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.34.1...v0.35.0

v0.34.1

29 Nov 2023

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

New Contributors

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.34.0...v0.34.1

v0.34.0

23 Nov 2023

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: https://github.com/shuttle-hq/shuttle/compare/v0.33.0...v0.34.0

v0.33.0

16 Nov 2023

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

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.32.0...v0.33.0

v0.32.0

9 Nov 2023

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 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

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.31.0...v0.32.0

v0.31.0

2 Nov 2023

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: https://github.com/shuttle-hq/shuttle/pull/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

New Contributors

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.30.1...v0.31.0

v0.30.1

24 Oct 2023

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: https://github.com/shuttle-hq/shuttle/compare/v0.30.0...v0.30.1

v0.30.0

24 Oct 2023

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 support@shuttle.rs 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

New Contributors

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.29.1...v0.30.0

v0.29.1

12 Oct 2023

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

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.29.0...v0.29.1

v0.29.0

9 Oct 2023

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: https://github.com/shuttle-hq/shuttle/compare/v0.28.1...v0.29.0

cargo-shuttle v0.28.1

5 Oct 2023

Bug fixes

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

Commits for this release

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

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.28.0...v0.28.1

v0.28.0

3 Oct 2023

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

New Contributors

Full Changelog: https://github.com/shuttle-hq/shuttle/compare/v0.27.0...v0.28.0