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]

Reply via email to