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]

Reply via email to