7487 opened a new pull request, #2411: URL: https://github.com/apache/datafusion-ballista/pull/2411
# Which issue does this PR close? Closes #2410. # Rationale for this change We do not currently check for unused dependencies in CI, so dead manifest entries accumulate — they still get resolved, downloaded, and often compiled. This adds `cargo machete` to the lint surface, following what DataFusion and other Arrow subprojects already do. # What changes are included in this PR? **Removed dependencies that are genuinely unused** (no references anywhere in the source tree): - `ballista-core`: `aws-config`, `aws-credential-types` (also dropped from the `build-binary` feature; S3 support goes through `object_store`'s own builders), `md-5`, `prost-types` - `ballista-scheduler`: `prost-types` - `ballista-executor`: `tracing` (also dropped from the `build-binary` feature; `tracing-subscriber`/`tracing-appender` pull it in transitively) - `ballista-cli`: `tracing-appender` (also dropped from the `tui` feature) - `pyballista`: `async-trait` - root workspace: `prost-types` (no longer referenced by any member) **Moved**: scheduler's `insta` from `[dependencies]` to `[dev-dependencies]` — it is only used through `ballista_core::assert_plan!` in `cfg(test)` modules, so it no longer compiles into release scheduler builds. **Kept, with `[package.metadata.cargo-machete]` ignored entries and comments**: - `ballista-scheduler`: `insta` (macro expansion, see above) and `tonic-prost` (used by the `keda-scaler` gRPC code generated into `OUT_DIR`, which machete cannot see) - `ballista-executor`: `arrow` (not imported directly, but pulls arrow's `ipc_compression` feature into the build so shuffle IPC compression — lz4 by default — works through datafusion's arrow re-export) - `ballista-cli`: `critical-section` (provides the critical-section implementation `ratatui-core` needs at link time in the wasm32 `web` build) - `msrvcheck`: `time` (never imported; pins the transitive `time` version so `cargo` keeps compiling) **CI wiring**: new `ci/scripts/rust_machete.sh`, added to `dev/rust_lint.sh`, and a `cargo-machete` job in the `Ballista Rust` workflow (installs `[email protected]` via the already-pinned `taiki-e/install-action`). Verified locally: `cargo machete` is clean; `taplo format --check` (0.10.0) passes; the CI clippy commands for the four touched crates pass with `-D warnings` (including `--all-features`, which exercises `keda-scaler`); `cargo check -p ballista-scheduler -p ballista-executor -p ballista-core -p ballista --no-default-features --locked` passes; scheduler tests using `assert_plan!` still pass; `python/Cargo.lock` stays in sync (`cargo metadata --locked`). # Are there any user-facing changes? The implicit `aws-config`/`aws-credential-types` cargo features of `ballista-core` no longer exist, and `ballista-core`/`ballista-executor` lose a few transitive dependencies. No API or behavior changes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
