Skip to content

Commit f0e77c1

Browse files
authored
Merge branch 'main' into asolimando/22958-statistics-from-inputs
2 parents f7137ae + 3a29d6b commit f0e77c1

332 files changed

Lines changed: 18369 additions & 4618 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.asf.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ github:
7878
- "cargo test (macos-aarch64)"
7979
- "Verify Vendored Code"
8080
- "Check cargo fmt"
81+
- "Check GitHub Actions install tooling"
8182
- "clippy"
8283
- "check Cargo.toml formatting"
8384
- "check configs.md and ***_functions.md is up-to-date"
@@ -114,4 +115,3 @@ github:
114115
# https://datafusion.apache.org/
115116
publish:
116117
whoami: asf-site
117-

.github/actions/setup-rust-runtime/action.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,14 @@ runs:
3131
run: |
3232
echo "RUST_BACKTRACE=1" >> $GITHUB_ENV
3333
echo "RUSTFLAGS=-C debuginfo=line-tables-only -C incremental=false" >> $GITHUB_ENV
34+
# Work around intermittent "[16] Error in the HTTP2 framing layer"
35+
# failures from curl when cargo fetches crates from crates.io.
36+
# Disabling HTTP/2 multiplexing forces cargo to serialize requests,
37+
# and raising retries makes transient network hiccups self-heal.
38+
#
39+
# Reference:
40+
# https://doc.rust-lang.org/cargo/reference/config.html?#httpmultiplexing
41+
# https://doc.rust-lang.org/cargo/reference/config.html?#netretry
42+
echo "CARGO_HTTP_MULTIPLEXING=false" >> $GITHUB_ENV
43+
echo "CARGO_NET_RETRY=10" >> $GITHUB_ENV
44+
echo "CARGO_HTTP_RETRY=10" >> $GITHUB_ENV

.github/workflows/audit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
steps:
4646
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
4747
- name: Install cargo-audit
48-
uses: taiki-e/install-action@9bcaee1dcae34154180f412e2fa69355a7cda9f6 # v2.82.6
48+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
4949
with:
5050
tool: cargo-audit
5151
- name: Run audit check

.github/workflows/breaking_changes_detector.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ jobs:
8989
9090
- name: Install cargo-semver-checks
9191
if: steps.changed_crates.outputs.packages != ''
92-
uses: taiki-e/install-action@9bcaee1dcae34154180f412e2fa69355a7cda9f6 # v2.82.6
92+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
9393
with:
9494
tool: cargo-semver-checks
9595

.github/workflows/dependencies.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ jobs:
6363
steps:
6464
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
6565
- name: Install cargo-machete
66-
run: cargo install cargo-machete --version ^0.9 --locked
66+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
67+
with:
68+
tool: cargo-machete@0.9
6769
- name: Detect unused dependencies
6870
run: cargo machete --with-metadata

.github/workflows/dev.yml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ jobs:
3838
steps:
3939
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
4040
- name: Install HawkEye
41-
# This CI job is bound by installation time, use `--profile dev` to speed it up
42-
run: cargo install hawkeye --version 6.2.0 --locked --profile dev
41+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
42+
with:
43+
tool: hawkeye@6.2.0
4344
- name: Run license header check
4445
run: ci/scripts/license_header.sh
4546

@@ -65,7 +66,7 @@ jobs:
6566
source ci/scripts/utils/tool_versions.sh
6667
echo "LYCHEE_VERSION=${LYCHEE_VERSION}" >> "$GITHUB_ENV"
6768
- name: Install lychee
68-
uses: taiki-e/install-action@9bcaee1dcae34154180f412e2fa69355a7cda9f6 # v2.82.6
69+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
6970
with:
7071
tool: lychee@${{ env.LYCHEE_VERSION }}
7172
- name: Run markdown link check
@@ -89,7 +90,9 @@ jobs:
8990
# Version fixed on purpose. It uses heuristics to detect typos, so upgrading
9091
# it may cause checks to fail more often.
9192
# We can upgrade it manually once a while.
92-
- name: Install typos-cli
93-
run: cargo install typos-cli --locked --version 1.37.0
93+
- name: Install typos
94+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
95+
with:
96+
tool: typos@1.37.0
9497
- name: Run typos check
9598
run: ci/scripts/typos_check.sh

.github/workflows/docs.yaml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,19 @@ jobs:
4343
path: asf-site
4444

4545
- name: Setup uv
46-
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
46+
uses: astral-sh/setup-uv@f98e06938123ccabd21905ea5d0069192241f9f1 # v8.3.1
4747

4848
- name: Install dependencies
4949
run: uv sync --package datafusion-docs
50-
- name: Install dependency graph tooling
50+
- name: Install Graphviz
5151
run: |
5252
set -x
5353
sudo apt-get update
5454
sudo apt-get install -y graphviz
55-
cargo install cargo-depgraph --version ^1.6 --locked
55+
- name: Install cargo-depgraph
56+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
57+
with:
58+
tool: cargo-depgraph@1.6
5659

5760
- name: Build docs
5861
run: |

.github/workflows/docs_pr.yaml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,18 @@ jobs:
5050
submodules: true
5151
fetch-depth: 1
5252
- name: Setup uv
53-
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
53+
uses: astral-sh/setup-uv@f98e06938123ccabd21905ea5d0069192241f9f1 # v8.3.1
5454
- name: Install doc dependencies
5555
run: uv sync --package datafusion-docs
56-
- name: Install dependency graph tooling
56+
- name: Install Graphviz
5757
run: |
5858
set -x
5959
sudo apt-get update
6060
sudo apt-get install -y graphviz
61-
cargo install cargo-depgraph --version ^1.6 --locked
61+
- name: Install cargo-depgraph
62+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
63+
with:
64+
tool: cargo-depgraph@1.6
6265
- name: Build docs html and check for warnings
6366
run: |
6467
set -x

.github/workflows/extended.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=32,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
6464
# note: do not use amd/rust container to preserve disk space
6565
steps:
66-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
66+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
6767
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
6868
with:
6969
ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push
@@ -110,7 +110,7 @@ jobs:
110110
container:
111111
image: amd64/rust
112112
steps:
113-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
113+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
114114
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
115115
with:
116116
ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push
@@ -132,7 +132,7 @@ jobs:
132132
container:
133133
image: amd64/rust
134134
steps:
135-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
135+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
136136
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
137137
with:
138138
ref: ${{ github.event.inputs.pr_head_sha }} # will be empty if triggered by push

.github/workflows/rust.yml

Lines changed: 47 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
container:
5252
image: amd64/rust
5353
steps:
54-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
54+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
5555
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
5656
- name: Setup Rust toolchain
5757
uses: ./.github/actions/setup-builder
@@ -142,7 +142,7 @@ jobs:
142142
container:
143143
image: amd64/rust
144144
steps:
145-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
145+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
146146
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
147147
- name: Setup Rust toolchain
148148
uses: ./.github/actions/setup-builder
@@ -162,6 +162,26 @@ jobs:
162162
- name: Check datafusion-proto (avro)
163163
run: cargo check --profile ci --no-default-features -p datafusion-proto --features=avro
164164

165+
# Check datafusion-ffi features
166+
#
167+
# Ensure via `cargo check` that the crate can be built with a
168+
# subset of the features packages enabled.
169+
linux-datafusion-ffi-features:
170+
name: cargo check datafusion-ffi features
171+
needs: linux-build-lib
172+
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
173+
container:
174+
image: amd64/rust
175+
steps:
176+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
177+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
178+
- name: Setup Rust toolchain
179+
uses: ./.github/actions/setup-builder
180+
with:
181+
rust-version: stable
182+
- name: Check datafusion-ffi (no-default-features)
183+
run: cargo check --profile ci --no-default-features -p datafusion-ffi
184+
165185

166186
# Check datafusion crate features
167187
#
@@ -174,7 +194,7 @@ jobs:
174194
container:
175195
image: amd64/rust
176196
steps:
177-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
197+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
178198
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
179199
- name: Setup Rust toolchain
180200
uses: ./.github/actions/setup-builder
@@ -277,7 +297,7 @@ jobs:
277297
volumes:
278298
- /usr/local:/host/usr/local
279299
steps:
280-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
300+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
281301
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
282302
with:
283303
submodules: true
@@ -323,7 +343,7 @@ jobs:
323343
needs: linux-build-lib
324344
runs-on: ${{ vars.USE_RUNS_ON == 'true' && format('runs-on={0},family=m8a+m7a+c8a,cpu=16,image=ubuntu24-full-x64,extras=s3-cache,disk=large,tag=datafusion', github.run_id) || 'ubuntu-latest' }}
325345
steps:
326-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
346+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
327347
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
328348
with:
329349
submodules: true
@@ -355,7 +375,7 @@ jobs:
355375
container:
356376
image: amd64/rust
357377
steps:
358-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
378+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
359379
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
360380
with:
361381
submodules: true
@@ -386,7 +406,7 @@ jobs:
386406
container:
387407
image: amd64/rust
388408
steps:
389-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
409+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
390410
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
391411
with:
392412
submodules: true
@@ -408,7 +428,7 @@ jobs:
408428
container:
409429
image: amd64/rust
410430
steps:
411-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
431+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
412432
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
413433
- name: Setup Rust toolchain
414434
uses: ./.github/actions/setup-builder
@@ -430,7 +450,7 @@ jobs:
430450
sudo apt-get update -qq
431451
sudo apt-get install -y -qq clang
432452
- name: Setup wasm-pack
433-
uses: taiki-e/install-action@9bcaee1dcae34154180f412e2fa69355a7cda9f6 # v2.82.6
453+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
434454
with:
435455
tool: wasm-pack
436456
- name: Run tests with headless mode
@@ -449,7 +469,7 @@ jobs:
449469
container:
450470
image: amd64/rust
451471
steps:
452-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
472+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
453473
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
454474
with:
455475
submodules: true
@@ -497,7 +517,7 @@ jobs:
497517
--health-timeout 5s
498518
--health-retries 5
499519
steps:
500-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
520+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
501521
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
502522
with:
503523
submodules: true
@@ -522,7 +542,7 @@ jobs:
522542
container:
523543
image: amd64/rust
524544
steps:
525-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
545+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
526546
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
527547
with:
528548
submodules: true
@@ -608,6 +628,14 @@ jobs:
608628
run: |
609629
ci/scripts/rust_fmt.sh
610630
631+
check-workflow-tool-installs:
632+
name: Check GitHub Actions install tooling
633+
runs-on: ubuntu-latest
634+
steps:
635+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
636+
- name: Check workflow tool installs
637+
run: ci/scripts/check_no_cargo_install_in_workflows.sh
638+
611639
# Coverage job disabled due to
612640
# https://github.com/apache/datafusion/issues/3678
613641

@@ -639,12 +667,15 @@ jobs:
639667
# path: /home/runner/.cargo
640668
# # this key is not equal because the user is different than on a container (runner vs github)
641669
# key: cargo-coverage-cache3-
670+
# - name: Install cargo-tarpaulin
671+
# uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
672+
# with:
673+
# tool: cargo-tarpaulin@0.20.1
642674
# - name: Run coverage
643675
# run: |
644676
# export PATH=$PATH:$HOME/d/protoc/bin
645677
# rustup toolchain install stable
646678
# rustup default stable
647-
# cargo install --version 0.20.1 cargo-tarpaulin
648679
# cargo tarpaulin --all --out Xml
649680
# - name: Report coverage
650681
# continue-on-error: true
@@ -657,7 +688,7 @@ jobs:
657688
container:
658689
image: amd64/rust
659690
steps:
660-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
691+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
661692
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
662693
with:
663694
submodules: true
@@ -704,7 +735,7 @@ jobs:
704735
container:
705736
image: amd64/rust
706737
steps:
707-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
738+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
708739
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
709740
with:
710741
submodules: true
@@ -774,7 +805,7 @@ jobs:
774805
- name: Setup Rust toolchain
775806
uses: ./.github/actions/setup-builder
776807
- name: Install cargo-msrv
777-
uses: taiki-e/install-action@9bcaee1dcae34154180f412e2fa69355a7cda9f6 # v2.82.6
808+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
778809
with:
779810
tool: cargo-msrv
780811

0 commit comments

Comments
 (0)