This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 592fe6a0c9 Split out `datafusion-substrait` and `datafusion-proto` CI
feature checks, increase coverage (#15156)
592fe6a0c9 is described below
commit 592fe6a0c94f248f16b1c2a84192cc5c520b86d3
Author: Andrew Lamb <[email protected]>
AuthorDate: Wed Mar 12 18:18:37 2025 -0400
Split out `datafusion-substrait` and `datafusion-proto` CI feature checks,
increase coverage (#15156)
* Better CI feature checks
* adjust feature
* Install protobuf compiler for checking substrait/protoc
* comment out failing test
* fix
* fix protoc
---
.github/workflows/rust.yml | 99 +++++++++++++++++++++++++++++++++++-----------
1 file changed, 76 insertions(+), 23 deletions(-)
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 2f7ab418ca..dfdc13057d 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -66,9 +66,12 @@ jobs:
# the changes to `Cargo.lock` after building with the updated
manifest.
cargo check --profile ci --workspace --all-targets --features
integration-tests --locked
- # cargo check common, functions and substrait with no default features
- linux-cargo-check-no-default-features:
- name: cargo check no default features
+ # Check datafusion-common features
+ #
+ # Ensure via `cargo check` that the crate can be built with a
+ # subset of the features packages enabled.
+ linux-datafusion-common-features:
+ name: cargo check datafusion-common features
needs: linux-build-lib
runs-on: ubuntu-latest
container:
@@ -79,28 +82,68 @@ jobs:
uses: ./.github/actions/setup-builder
with:
rust-version: stable
- - name: Check datafusion without default features
- # Some of the test binaries require the parquet feature still
- #run: cargo check --all-targets --no-default-features -p datafusion
- run: cargo check --profile ci --no-default-features -p datafusion
-
- - name: Check datafusion-common without default features
+ - name: Check datafusion-common (no-default-features)
run: cargo check --profile ci --all-targets --no-default-features -p
datafusion-common
+ # Note: don't check other feature flags as datafusion-common is not
typically used standalone
- - name: Check datafusion-functions without default features
- run: cargo check --profile ci --all-targets --no-default-features -p
datafusion-functions
-
- - name: Check datafusion-substrait without default features
+ # Check datafusion-substrait features
+ #
+ # Ensure via `cargo check` that the crate can be built with a
+ # subset of the features packages enabled.
+ linux-datafusion-substrait-features:
+ name: cargo check datafusion-substrait features
+ needs: linux-build-lib
+ runs-on: ubuntu-latest
+ container:
+ image: amd64/rust
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup Rust toolchain
+ uses: ./.github/actions/setup-builder
+ with:
+ rust-version: stable
+ - name: Check datafusion-substrait (no-default-features)
run: cargo check --profile ci --all-targets --no-default-features -p
datafusion-substrait
+ - name: Check datafusion-substrait (physical)
+ run: cargo check --profile ci --all-targets --no-default-features -p
datafusion-substrait --features=physical
+ - name: Install cmake
+ run: |
+ # note the builder setup runs apt-get update / installs protobuf
compiler
+ apt-get install -y cmake
+ - name: Check datafusion-substrait (protoc)
+ run: cargo check --profile ci --all-targets --no-default-features -p
datafusion-substrait --features=protoc
- - name: Check workspace in debug mode
- run: cargo check --profile ci --all-targets --workspace
-
- - name: Check workspace with additional features
- run: cargo check --profile ci --workspace --benches --features
avro,json,integration-tests
-
- # cargo check datafusion to ensure that the datafusion crate can be built
with only a
- # subset of the function packages enabled.
+ # Check datafusion-proto features
+ #
+ # Ensure via `cargo check` that the crate can be built with a
+ # subset of the features packages enabled.
+ linux-datafusion-proto-features:
+ name: cargo check datafusion-proto features
+ needs: linux-build-lib
+ runs-on: ubuntu-latest
+ container:
+ image: amd64/rust
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup Rust toolchain
+ uses: ./.github/actions/setup-builder
+ with:
+ rust-version: stable
+ - name: Check datafusion-proto (no-default-features)
+ run: cargo check --profile ci --all-targets --no-default-features -p
datafusion-proto
+ # fails due to https://github.com/apache/datafusion/issues/15157
+ #- name: Check datafusion-proto (json)
+ # run: cargo check --profile ci --all-targets --no-default-features -p
datafusion-proto --features=json
+ - name: Check datafusion-proto (parquet)
+ run: cargo check --profile ci --all-targets --no-default-features -p
datafusion-proto --features=parquet
+ - name: Check datafusion-proto (avro)
+ run: cargo check --profile ci --all-targets --no-default-features -p
datafusion-proto --features=avro
+
+
+ # Check datafusion crate features
+ #
+ # Ensure via `cargo check` that the crate can be built with a
+ # subset of the features packages enabled.
linux-cargo-check-datafusion:
name: cargo check datafusion
needs: linux-build-lib
@@ -113,6 +156,11 @@ jobs:
uses: ./.github/actions/setup-builder
with:
rust-version: stable
+ - name: Check datafusion (no-default-features)
+ # Some of the test binaries require the parquet feature still
+ #run: cargo check --all-targets --no-default-features -p datafusion
+ run: cargo check --profile ci --no-default-features -p datafusion
+
- name: Check datafusion (nested_expressions)
run: cargo check --profile ci --no-default-features
--features=nested_expressions -p datafusion
@@ -134,8 +182,10 @@ jobs:
- name: Check datafusion (string_expressions)
run: cargo check --profile ci --no-default-features
--features=string_expressions -p datafusion
- # cargo check datafusion-functions to ensure that the datafusion-functions
crate can be built with
- # only a subset of the function packages enabled.
+ # Check datafusion-functions crate features
+ #
+ # Ensure via `cargo check` that the crate can be built with a
+ # subset of the features packages enabled.
linux-cargo-check-datafusion-functions:
name: cargo check functions
needs: linux-build-lib
@@ -148,6 +198,9 @@ jobs:
uses: ./.github/actions/setup-builder
with:
rust-version: stable
+ - name: Check datafusion-functions (no-default-features)
+ run: cargo check --profile ci --all-targets --no-default-features -p
datafusion-functions
+
- name: Check datafusion-functions (crypto)
run: cargo check --profile ci --all-targets --no-default-features
--features=crypto_expressions -p datafusion-functions
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]