chore: deprecate & bump services, resources#2113
Conversation
There was a problem hiding this comment.
Greptile Summary
This PR implements a significant cleanup and modernization effort for Shuttle's service and resource integrations. The changes fall into two main categories: deprecation/removal and dependency updates.
Service Deprecations:
The PR completely removes two web framework integrations: shuttle-tide and shuttle-thruster. This includes deleting all source code, documentation, Cargo.toml files, and removing references from CI/CD pipelines. The services are also removed from the CLI's template initialization options and from the main macro's documentation table in the codegen crate.
Dependency Bumps:
Several actively maintained services receive significant version updates:
- Salvo: Updated from 0.75.0 to 0.83 (8 minor versions)
- Warp: Upgraded from 0.3.3 to 0.4 with required 'server' feature flag
- OpenDAL: Bumped from 0.51 to 0.54 across multiple packages
- async-openai: Updated from 0.28.0 to 0.29
These changes reflect a strategic decision to focus on popular, actively maintained web frameworks while reducing the maintenance burden of supporting lesser-used integrations. The OpenDAL update required a breaking change accommodation in the shared-db postgres implementation, where the write_serialized method now returns Result<Metadata, Error> instead of Result<(), Error> to align with OpenDAL's RFC-5556.
Important Files Changed
Changed Files
| Filename | Score | Overview |
|---|---|---|
| services/shuttle-tide/src/lib.rs | 5/5 | Complete removal of TideService implementation as part of service deprecation |
| services/shuttle-tide/README.md | 5/5 | Documentation removed for deprecated shuttle-tide service |
| services/shuttle-tide/Cargo.toml | 5/5 | Package configuration deleted for deprecated tide integration |
| services/shuttle-thruster/src/lib.rs | 5/5 | Complete removal of ThrusterService implementation for deprecated service |
| services/shuttle-thruster/README.md | 5/5 | Documentation removed for deprecated shuttle-thruster service |
| services/shuttle-thruster/Cargo.toml | 5/5 | Package configuration deleted for deprecated thruster integration |
| services/shuttle-salvo/Cargo.toml | 3/5 | Major version jump from 0.75.0 to 0.83 could introduce breaking changes |
| services/shuttle-warp/Cargo.toml | 5/5 | Clean upgrade to warp 0.4 with required server feature flag |
| resources/opendal/Cargo.toml | 4/5 | Version bump from 0.51 to 0.54 spans multiple releases with breaking changes |
| resources/shared-db/Cargo.toml | 4/5 | OpenDAL dependency updated from 0.51 to 0.54 |
| resources/shared-db/src/postgres.rs | 5/5 | Method signature updated to accommodate OpenDAL breaking changes |
| resources/openai/Cargo.toml | 4/5 | Minor version bump from 0.28.0 to 0.29 for async-openai |
| codegen/src/lib.rs | 5/5 | Documentation table updated to remove deprecated services and add Warp |
| cargo-shuttle/src/args.rs | 5/5 | CLI template options cleaned up to remove deprecated frameworks |
| resources/aws-rds/README.md | 5/5 | Removed broken reference to deprecated Tide example |
| .circleci/config.yml | 5/5 | CI pipeline updated to exclude deprecated services from testing and publishing |
| scripts/patches.toml | 5/5 | Development patches removed for deprecated services |
Confidence score: 4/5
- This PR is generally safe to merge with some caution needed for version bumps
- Score reflects clean deprecations but significant version jumps that may introduce compatibility issues
- Pay close attention to services/shuttle-salvo/Cargo.toml and OpenDAL-related files for potential breaking changes
Sequence Diagram
sequenceDiagram
participant User
participant CLI as "cargo-shuttle CLI"
participant CI as "CircleCI"
participant Registry as "Crates.io Registry"
participant GitHub as "GitHub Repository"
User->>GitHub: "Create PR with service bumps"
Note over GitHub: "PR includes deprecations and version updates"
GitHub->>CI: "Trigger CI workflow"
CI->>CI: "Run workspace-fmt-clippy job"
CI->>CI: "Run test-standalone for all services"
Note over CI: "Tests shuttle-salvo, shuttle-warp, etc."
CI->>CI: "Run test-workspace-member jobs"
CI->>CI: "Run integration tests"
alt PR Merged and Tagged
CI->>CI: "Build binaries for multiple platforms"
Note over CI: "Linux, Windows, macOS variants"
CI->>GitHub: "Create draft release with binaries"
CI->>Registry: "Publish updated crates"
Note over Registry: "shuttle-openai v0.56.0 (async-openai 0.29)"
Note over Registry: "shuttle-opendal v0.56.0 (opendal 0.54)"
Note over Registry: "shuttle-salvo v0.56.0 (salvo 0.83)"
Note over Registry: "shuttle-warp v0.56.0 (warp 0.4)"
Note over Registry: "shuttle-tide and shuttle-thruster removed"
end
User->>CLI: "cargo install cargo-shuttle --version 0.56.0"
CLI->>Registry: "Download updated shuttle CLI"
User->>CLI: "shuttle init --template salvo"
CLI->>CLI: "Generate project with Salvo 0.83"
17 files reviewed, no comments
Uh oh!
There was an error while loading. Please reload this page.