Skip to content

ci: gate Rust workflow on workspace path allow list and rename to Ballista Rust#1757

Merged
andygrove merged 1 commit into
apache:mainfrom
andygrove:ci/rust-allow-list-paths
May 23, 2026
Merged

ci: gate Rust workflow on workspace path allow list and rename to Ballista Rust#1757
andygrove merged 1 commit into
apache:mainfrom
andygrove:ci/rust-allow-list-paths

Conversation

@andygrove
Copy link
Copy Markdown
Member

@andygrove andygrove commented May 23, 2026

Which issue does this PR close?

Part of apache/datafusion#22455.

Rationale for this change

rust.yml is the heaviest CI workflow in the repo: full Linux/macOS/Windows test matrix plus clippy, rustdoc, fmt, benchmark verification, and Cargo.toml format checks. It currently uses a paths-ignore deny list that only excludes docs and Markdown, so changes to the python/ crate (which is excluded from the Cargo workspace) still trigger the whole matrix even though they cannot affect any of these jobs.

Additionally, the workflow is named just Rust, which is indistinguishable from the core DataFusion Rust workflow when looking at the ASF GitHub runner usage dashboards.

What changes are included in this PR?

  1. Switch push and pull_request triggers from paths-ignore to a paths allow list scoped to what the workflow actually consumes:
    • Workspace crates: ballista/**, ballista-cli/**, benchmarks/**, examples/**
    • Root manifests: Cargo.toml, Cargo.lock
    • Pinned toolchain: rust-toolchain.toml
    • ci/scripts/** — used by the lint, clippy, rustdoc, and tomlfmt jobs
    • Reusable setup actions: setup-builder, setup-macos-builder, setup-windows-builder, setup-rust-runtime
    • The workflow file itself
  2. Rename the workflow from Rust to Ballista Rust so it is distinguishable from the core DataFusion Rust workflow in shared ASF runner-usage charts.

Are there any user-facing changes?

The workflow's display name in GitHub Actions UIs and required-check lists changes from Rust to Ballista Rust. Branch protection rules that reference the old name by string will need to be updated.

…lista Rust

The Rust workflow runs the full Linux/macOS/Windows test matrix plus
clippy, rustdoc, fmt, and benchmark verification. It currently uses a
`paths-ignore` deny list that only excludes docs and Markdown, so
Python-only PRs (the `python/` crate is excluded from the Cargo
workspace) still trigger the whole matrix. Switch to an explicit
`paths` allow list scoped to the workspace crates, root manifests, the
pinned toolchain, the `ci/scripts/` helpers used by the lint jobs, the
reusable setup-builder actions, and the workflow itself.

Also rename the workflow from `Rust` to `Ballista Rust` so it stands
out from the core DataFusion Rust workflow in the ASF GitHub runner
usage charts.
@andygrove andygrove marked this pull request as ready for review May 23, 2026 22:18
@andygrove andygrove requested a review from milenkovicm May 23, 2026 22:19
@andygrove andygrove merged commit 47f0afa into apache:main May 23, 2026
18 checks passed
@andygrove andygrove deleted the ci/rust-allow-list-paths branch May 23, 2026 23:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant