-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Split out datafusion-substrait
and datafusion-proto
CI feature checks, increase coverage
#15156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this adds coverage of compiling datafusion-substrait with the available feature flags |
||
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 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This adds coverage for the datafusion-proto crate, and in fact found a bug: |
||
#- 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 | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The diff makes of hard to read but I just moved what jobs each command was run in -- the overall coverage is the same or better