You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafusion.apache.org by gi...@apache.org on 2026/10/21 21:45:34 UTC
(datafusion) 01/01: chore: Skip `datafusion-sqllogictest` in semver check (#26577)
This is an automated email from the ASF dual-hosted git repository.
github-merge-queue[bot] pushed a commit to branch gh-readonly-queue/main/pr-26577-95ef315f37ff642baeb8aac0e03bc85e87598d30
in repository https://gitbox.apache.org/repos/asf/datafusion.git
commit 659b4758f8ebb5eb6fdee95f08abf08b77e7c2ab
Author: Neil Conway <ne...@gmail.com>
AuthorDate: Wed Oct 21 21:01:18 2026 +0000
chore: Skip `datafusion-sqllogictest` in semver check (#26577)
## Which issue does this PR close?
- Related to #25088, #25148
## Rationale for this change
Many PRs modify some Rust code and also touch some SLT files. At
present, this results in checking all of `datafusion-sqllogictest` for
semver compatibility, which is very expensive (because it depends on
almost all of the other crates). `datafusion-sqllogictest` is a
published crate but it is test tooling that isn't part of the library
API, so I think skipping semver checks for it is not unreasonable.
The longer-term goal here is to make the semver check cheap enough that
we can run it using `ubuntu-slim`, but we're probably not at that point
yet. In any case, reducing semver check overhead is a useful improvement
by itself.
## What changes are included in this PR?
See above. We also use `install-action` to install `protoc` rather than
`apt`, since it's much faster.
## What is the testing strategy for this PR?
CI change only.
## Are there any user-facing changes?
No.
---
.github/workflows/breaking_changes_detector.yml | 16 ++++++++--------
ci/scripts/changed_crates.sh | 13 +++++++++----
2 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/.github/workflows/breaking_changes_detector.yml b/.github/workflows/breaking_changes_detector.yml
index 0ae295255b..8b33ca3526 100644
--- a/.github/workflows/breaking_changes_detector.yml
+++ b/.github/workflows/breaking_changes_detector.yml
@@ -18,7 +18,8 @@
# Detect semver-incompatible (breaking) API changes in crates modified by a PR.
#
# Only public workspace crates that have file changes are checked.
-# Internal crates (benchmarks, test-utils, sqllogictest, doc) are excluded.
+# Crates with `publish = false` (such as benchmarks and test-utils) and
+# datafusion-sqllogictest are excluded.
#
# This workflow only runs cargo-semver-checks and uploads the result as an
# artifact. The actual PR comment is posted by a companion workflow
@@ -78,14 +79,13 @@ jobs:
echo "packages=$PACKAGES" >> "$GITHUB_OUTPUT"
echo "Changed crates: $PACKAGES"
- # `datafusion-substrait` (and crates that depend on it via sqllogictest)
- # have a build script that calls protoc, which is not preinstalled on
- # ubuntu-latest runners.
- - name: Install Protobuf Compiler
+ # The `substrait` crate's build script runs protoc, which is not
+ # preinstalled on ubuntu-latest runners.
+ - name: Install protoc
if: steps.changed_crates.outputs.packages != ''
- run: |
- sudo apt-get update
- sudo apt-get install -y protobuf-compiler
+ uses: taiki-e/install-action@8cca0918f8471c33515202b73f56ab27f2bed283 # v2.87.29
+ with:
+ tool: protoc@3.21.12
- name: Install cargo-semver-checks
if: steps.changed_crates.outputs.packages != ''
diff --git a/ci/scripts/changed_crates.sh b/ci/scripts/changed_crates.sh
index 6d014a9492..be8c48b26e 100755
--- a/ci/scripts/changed_crates.sh
+++ b/ci/scripts/changed_crates.sh
@@ -21,8 +21,12 @@
# Subcommands:
# changed-crates <base_ref>
# Print space-separated list of crate names whose files changed vs base_ref.
-# Only published workspace members (those without `publish = false`) are
-# considered.
+# Only published workspace members (those without `publish = false`)
+# are considered. We also omit datafusion-sqllogictest. It is published
+# so that other projects can write tests with DataFusion's sqllogictest
+# driver, but it is test tooling rather than part of DataFusion's
+# library API. It also depends on nearly every other DataFusion crate,
+# so checking it usually takes most of the job's time.
#
# semver-check <base_ref> <packages...>
# Run cargo-semver-checks for the given packages against base_ref.
@@ -42,12 +46,13 @@ cmd_changed_crates() {
# 2. Every publishable workspace member, one per line as
# "<crate-name> <crate-dir>". `publish = false` in Cargo.toml shows
# up as `"publish": []` in cargo metadata, so filtering on that
- # excludes internal crates without a manual exclusion list.
+ # excludes unpublished crates. datafusion-sqllogictest is excluded by
+ # name; see the comment at the top of this file.
local crates
crates=$(cargo metadata --no-deps --format-version 1 | jq -r '
(.workspace_root + "/") as $root
| .packages[]
- | select(.publish != [])
+ | select(.publish != [] and .name != "datafusion-sqllogictest")
| "\(.name) \(.manifest_path | ltrimstr($root) | rtrimstr("/Cargo.toml"))"
')
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org