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, useshuttle-serenity
and return a serenity client built with the poise framework. Exampleshuttle-poem
now uses poem 2.0.
Contributions
- @paulotten added
shuttle-qdrant
#1025 shuttle-hq/shuttle-examples#64 - @paulotten upgrade
shuttle-poem
, as well as our poem examples, to poem 2.0 #1520 shuttle-hq/shuttle-examples#126 - @supleed2 set serenity 0.12 as the default for
shuttle-serenity
#1521 - @ErrolKeith added icons to the sidebar in our docs shuttle-hq/shuttle-docs#248
- @Krensi fixed a disparity between our docs and examples shuttle-hq/shuttle-docs#247
- @beyarkay improved a version hint in cargo-shuttle #1533
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