github shuttle-hq/shuttle v0.37.0

latest releases: v0.49.0, v0.48.3, v0.48.2...
10 months ago

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

  • ci: split release flow by @jonaro00 in #1518
  • tests(auth): simplify auth service tests with wiremock by @oddgrd in #1514
  • refactor(gateway): renew gateway certificate returns more info about success by @iulianbarbu in #1492
  • feat: support poem v2.0.0 by @paulotten in #1520
  • fix(gateway): uppercase old ulids by @jonaro00 in #1424
  • Traces: set shuttle.project.name in more places by @Kazy in #1526
  • fix(proxy): record http.host after parsing to avoid Some(..) in the attr by @Kazy in #1527
  • Traces add shuttle version by @Kazy in #1528
  • chore: upgrade h2 to resolve cargo audit by @oddgrd in #1530
  • feat: base api and gateway client by @chesedo in #1525
  • ci: use default ubuntu machine image by @jonaro00 in #1524
  • feat(resources)!: get db connection string from resources, refactor ResourceBuilder by @jonaro00 in #1522
  • feat(auth): add subscriptions table to auth, add rds quota to claim limits by @oddgrd in #1529
  • chore: update wiremock to resolve cargo audit by @oddgrd in #1534
  • feat: Qdrant resource by @paulotten in #1025
  • Improve shuttle-runtime out-of-date hint by @beyarkay in #1533
  • feat(shuttle-serenity): make serenity 0.12 default, support poise 0.6, deprecate shuttle-poise by @supleed2 in #1521
  • chore: v0.37.0 by @jonaro00 in #1535

Full Changelog: v0.36.0...v0.37.0

Don't miss a new shuttle release

NewReleases is sending notifications on new releases.