github shuttle-hq/shuttle v0.56.0

latest releases: v0.56.6, v0.56.5, v0.56.4...
2 months ago

Shuttle: v0.56.0 update

Configure instance size via macro

On the Pro tier and above, you can now configure the compute instance size with the runtime macro. Read more on the docs!

#[shuttle_runtime::main(instance_size = "m")] // 1 vCPU, 2 GB RAM
async fn main() -> ShuttleAxum {
    ...
}

Shuttle MCP server

The CLI now packs a built-in MCP server with tools for searching docs and executing basic shuttle commands. For example, use it in Cursor by configuring its settings:

{
  "mcpServers": {
    "shuttle": {
      "command": "shuttle",
      "args": ["mcp", "start"]
    }
  }
}

Other updates

  • In workspaces, the CLI now looks for the first binary entrypoint file with a fully qualified #[shuttle_runtime::main] macro inside. This drops the requirement that binaries for Shuttle must match the crate name!
    • ⚠️ This is a breaking change if you use #[main] with use shuttle_runtime::main;.
  • Added global option --output json to print the main command output as raw JSON responses straight from the API client. Useful for writing scripts.
    • ⚠️ This includes breaking changes in the shuttle-api-client crate
    • ⚠️ The generate command’s --output argument was renamed to --output-file
  • --name and --id are now separate arguments (instead of aliases) for specifying the project name and id respectively
  • The init command can now take the --id [project_id] arg to link to an existing project right after generating the files
  • Deployment archive no longer packs Secrets.toml or any override via --secrets as they are not used when building
  • Improved the API client’s handling of 4xx and 5xx responses
  • CLI will now warn if it detects a lowercase ‘shuttle.toml’ file

Upgrading

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

What's Changed

  • feat(api-client): always catch 4xx and 5xx errors regardless of body type by @jonaro00 in #2052
  • feat: make billing cycle optional in usage response by @oddgrd in #2054
  • feat(admin): log retention policies by @jonaro00 in #2053
  • fix: rename usage response vcpu reserved field to reserved_hours by @oddgrd in #2056
  • feat: added updated user usage structs by @nathanjclark in #2057
  • feat(cargo-shuttle): warn about lowercase shuttle.toml by @jonaro00 in #2060
  • feat(admin): fail error in looped jobs, notify gc'ed community projects by @jonaro00 in #2063
  • feat(api-client, cargo-shuttle): json output mode by @jonaro00 in #2064
  • refa(cargo-shuttle): find binary target based on macro in source by @jonaro00 in #2059
  • fix(admin): new config uris by @jonaro00 in #2065
  • Add build_manifest to main macro output by @fussybeaver in #2062
  • feat(cargo-shuttle): separate --id and --name. support 'init --id' with immediate linking by @jonaro00 in #2069
  • fix(cargo-shuttle): full json output coverage by @jonaro00 in #2071
  • fix: don't care about Secrets*.toml or --secrets when building or deploying by @jonaro00 in #2070
  • feat(admin): explicit notify on gc endpoint by @jonaro00 in #2067
  • fix: make explicit --name error when no matching project found by @jonaro00 in #2075
  • chore: clean up legacy constants & related code by @jonaro00 in #2073
  • feat(ifc, cargo-shuttle): extract infra macro annotation parser to separate crate by @jonaro00 in #2072
  • The Shuttle MCP Server by @dcodesdev in #2074
  • chore: v0.56.0 by @jonaro00 in #2076

New Contributors

Full Changelog: v0.55.0...v0.56.0

Don't miss a new shuttle release

NewReleases is sending notifications on new releases.