Skip to content

Releases: shuttle-hq/shuttle

cargo-shuttle v0.48.1

03 Oct 22:02
d01466e
Compare
Choose a tag to compare

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

v0.48.0

01 Oct 14:40
af27275
Compare
Choose a tag to compare

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: v0.47.0...v0.48.0

v0.47.0

23 Jul 09:18
e2e178c
Compare
Choose a tag to compare

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

Upgrading

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

What's Changed

New Contributors

Full Changelog: v0.46.0...v0.47.0

v0.46.0

13 Jun 10:36
5519ed9
Compare
Choose a tag to compare

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: v0.45.0...v0.46.0

v0.45.0

13 May 11:46
f00a098
Compare
Choose a tag to compare

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: v0.44.0...v0.45.0

v0.44.0

23 Apr 10:50
8a1b1ce
Compare
Choose a tag to compare

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

  • The version of poem in shuttle-poem has been increased to 3.0.
  • The return type of the turso resource in shuttle-turso has been changed to the Database type, which makes it possible to work around the bug described in #1746.

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: v0.43.0...v0.44.0

v0.43.0

02 Apr 12:32
32bb5af
Compare
Choose a tag to compare

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: v0.42.0...v0.43.0

v0.42.0

18 Mar 13:21
7f2a195
Compare
Choose a tag to compare

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: v0.41.0...v0.42.0

v0.41.0

07 Mar 11:07
ad834ae
Compare
Choose a tag to compare

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: v0.40.0...v0.41.0

0.40.0

04 Mar 15:44
22c3695
Compare
Choose a tag to compare

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: v0.39.0...v0.40.0