kumarUjjawal opened a new pull request, #25588:
URL: https://github.com/apache/datafusion/pull/25588
## Which issue does this PR close?
- Part of #21048.
## Rationale for this change
`./dev/rust_lint.sh` did not compare public crates for API compatibility. A
breaking change first appeared as a comment on the pull request.
## What changes are included in this PR?
- `ci/scripts/check_semver.sh` runs the same comparison as the "Detect
breaking changes" workflow, through `ci/scripts/changed_crates.sh`.
- `ci/scripts/changed_crates.sh changed-crates` takes a new
`--include-working-tree` flag. It adds staged, unstaged and untracked
paths,
so an uncommitted API edit does not skip its crate. The workflow does not
pass the flag and keeps its committed-range selection.
- `dev/rust_lint.sh` runs the new script last, and installs
`cargo-semver-checks` if it is missing.
- `docs/source/contributor-guide/testing.md` gets a "Breaking API Check"
section.
The baseline is `--base-ref`, then `$DATAFUSION_SEMVER_BASE_REF`, then the
local ref `apache/main`. The script never fetches. A ref you name must exist.
When only the default ref is absent, the check reports a skip.
Neither GitHub workflow changes.
## What is the testing strategy for this PR?
This is local tooling, so the change adds no test framework.
`changed_crates.sh changed-crates` gives the same output as before this
change
for a range of 1199 files and 35 crates.
Disposable git repositories and small crate fixtures cover the selection
modes, empty selection and package validation. They also cover missing refs,
missing tools and the artifact contract of the workflow. Real
`cargo-semver-checks` runs cover a compatible change, a removed public
function, and a build error.
One real comparison of 11 DataFusion crates against a baseline 20 commits
back
passed in 13 minutes.
## Are there any user-facing changes?
No. The public API and both GitHub workflows stay the same.
--
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]