Skip to content

Commit 3dba92f

Browse files
Merge branch 'main' into window-topn-rank
2 parents d894dd8 + 3a29d6b commit 3dba92f

371 files changed

Lines changed: 23512 additions & 4653 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: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,12 @@ jobs:
4545
steps:
4646
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
4747
- name: Install cargo-audit
48-
uses: taiki-e/install-action@9e1e5806d4a4822de933115878265be9aaa786d9 # v2.82.2
48+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
4949
with:
5050
tool: cargo-audit
5151
- name: Run audit check
5252
# Note: you can ignore specific RUSTSEC issues using the `--ignore` flag ,for example:
5353
# run: cargo audit --ignore RUSTSEC-2026-0001
54-
run: cargo audit
54+
# TODO: remove once object_store upgrades to quick-xml >= 0.41.0
55+
# https://github.com/apache/datafusion/issues/23297
56+
run: cargo audit --ignore RUSTSEC-2026-0194 --ignore RUSTSEC-2026-0195

.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@9e1e5806d4a4822de933115878265be9aaa786d9 # v2.82.2
92+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
9393
with:
9494
tool: cargo-semver-checks
9595

.github/workflows/dependencies.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ on:
2525
push:
2626
branches-ignore:
2727
- 'gh-readonly-queue/**'
28+
- 'dependabot/**'
2829
pull_request:
2930
merge_group:
3031
# manual trigger
@@ -62,6 +63,8 @@ jobs:
6263
steps:
6364
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
6465
- name: Install cargo-machete
65-
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
6669
- name: Detect unused dependencies
6770
run: cargo machete --with-metadata

.github/workflows/dev.yml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ on:
2020
push:
2121
branches-ignore:
2222
- 'gh-readonly-queue/**'
23+
- 'dependabot/**'
2324
pull_request:
2425
merge_group:
2526

@@ -37,8 +38,9 @@ jobs:
3738
steps:
3839
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
3940
- name: Install HawkEye
40-
# This CI job is bound by installation time, use `--profile dev` to speed it up
41-
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
4244
- name: Run license header check
4345
run: ci/scripts/license_header.sh
4446

@@ -64,7 +66,7 @@ jobs:
6466
source ci/scripts/utils/tool_versions.sh
6567
echo "LYCHEE_VERSION=${LYCHEE_VERSION}" >> "$GITHUB_ENV"
6668
- name: Install lychee
67-
uses: taiki-e/install-action@9e1e5806d4a4822de933115878265be9aaa786d9 # v2.82.2
69+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
6870
with:
6971
tool: lychee@${{ env.LYCHEE_VERSION }}
7072
- name: Run markdown link check
@@ -88,7 +90,9 @@ jobs:
8890
# Version fixed on purpose. It uses heuristics to detect typos, so upgrading
8991
# it may cause checks to fail more often.
9092
# We can upgrade it manually once a while.
91-
- name: Install typos-cli
92-
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
9397
- name: Run typos check
9498
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: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ on:
2626
push:
2727
paths:
2828
- "docs/**"
29+
branches:
30+
- main
31+
- branch-*
2932
pull_request:
3033
paths:
3134
- "docs/**"
@@ -47,15 +50,18 @@ jobs:
4750
submodules: true
4851
fetch-depth: 1
4952
- name: Setup uv
50-
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
53+
uses: astral-sh/setup-uv@f98e06938123ccabd21905ea5d0069192241f9f1 # v8.3.1
5154
- name: Install doc dependencies
5255
run: uv sync --package datafusion-docs
53-
- name: Install dependency graph tooling
56+
- name: Install Graphviz
5457
run: |
5558
set -x
5659
sudo apt-get update
5760
sudo apt-get install -y graphviz
58-
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
5965
- name: Build docs html and check for warnings
6066
run: |
6167
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: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ on:
2727
push:
2828
branches-ignore:
2929
- 'gh-readonly-queue/**'
30+
- 'dependabot/**'
3031
paths-ignore:
3132
- "docs/**"
3233
- "**.md"
@@ -50,7 +51,7 @@ jobs:
5051
container:
5152
image: amd64/rust
5253
steps:
53-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
54+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
5455
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
5556
- name: Setup Rust toolchain
5657
uses: ./.github/actions/setup-builder
@@ -141,7 +142,7 @@ jobs:
141142
container:
142143
image: amd64/rust
143144
steps:
144-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
145+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
145146
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
146147
- name: Setup Rust toolchain
147148
uses: ./.github/actions/setup-builder
@@ -161,6 +162,26 @@ jobs:
161162
- name: Check datafusion-proto (avro)
162163
run: cargo check --profile ci --no-default-features -p datafusion-proto --features=avro
163164

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+
164185

165186
# Check datafusion crate features
166187
#
@@ -173,7 +194,7 @@ jobs:
173194
container:
174195
image: amd64/rust
175196
steps:
176-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
197+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
177198
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
178199
- name: Setup Rust toolchain
179200
uses: ./.github/actions/setup-builder
@@ -276,7 +297,7 @@ jobs:
276297
volumes:
277298
- /usr/local:/host/usr/local
278299
steps:
279-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
300+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
280301
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
281302
with:
282303
submodules: true
@@ -322,7 +343,7 @@ jobs:
322343
needs: linux-build-lib
323344
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' }}
324345
steps:
325-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
346+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
326347
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
327348
with:
328349
submodules: true
@@ -354,7 +375,7 @@ jobs:
354375
container:
355376
image: amd64/rust
356377
steps:
357-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
378+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
358379
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
359380
with:
360381
submodules: true
@@ -385,7 +406,7 @@ jobs:
385406
container:
386407
image: amd64/rust
387408
steps:
388-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
409+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
389410
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
390411
with:
391412
submodules: true
@@ -407,7 +428,7 @@ jobs:
407428
container:
408429
image: amd64/rust
409430
steps:
410-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
431+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
411432
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
412433
- name: Setup Rust toolchain
413434
uses: ./.github/actions/setup-builder
@@ -429,7 +450,7 @@ jobs:
429450
sudo apt-get update -qq
430451
sudo apt-get install -y -qq clang
431452
- name: Setup wasm-pack
432-
uses: taiki-e/install-action@9e1e5806d4a4822de933115878265be9aaa786d9 # v2.82.2
453+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
433454
with:
434455
tool: wasm-pack
435456
- name: Run tests with headless mode
@@ -448,7 +469,7 @@ jobs:
448469
container:
449470
image: amd64/rust
450471
steps:
451-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
472+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
452473
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
453474
with:
454475
submodules: true
@@ -496,7 +517,7 @@ jobs:
496517
--health-timeout 5s
497518
--health-retries 5
498519
steps:
499-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
520+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
500521
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
501522
with:
502523
submodules: true
@@ -521,7 +542,7 @@ jobs:
521542
container:
522543
image: amd64/rust
523544
steps:
524-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
545+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
525546
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
526547
with:
527548
submodules: true
@@ -607,6 +628,14 @@ jobs:
607628
run: |
608629
ci/scripts/rust_fmt.sh
609630
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+
610639
# Coverage job disabled due to
611640
# https://github.com/apache/datafusion/issues/3678
612641

@@ -638,12 +667,15 @@ jobs:
638667
# path: /home/runner/.cargo
639668
# # this key is not equal because the user is different than on a container (runner vs github)
640669
# 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
641674
# - name: Run coverage
642675
# run: |
643676
# export PATH=$PATH:$HOME/d/protoc/bin
644677
# rustup toolchain install stable
645678
# rustup default stable
646-
# cargo install --version 0.20.1 cargo-tarpaulin
647679
# cargo tarpaulin --all --out Xml
648680
# - name: Report coverage
649681
# continue-on-error: true
@@ -656,7 +688,7 @@ jobs:
656688
container:
657689
image: amd64/rust
658690
steps:
659-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
691+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
660692
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
661693
with:
662694
submodules: true
@@ -703,7 +735,7 @@ jobs:
703735
container:
704736
image: amd64/rust
705737
steps:
706-
- uses: runs-on/action@d141ef83eb66d096ce8afc767e09115a65c63b60 # v2.1.2
738+
- uses: runs-on/action@4e5f72399b6b17f2e79c511c1b38a315a64d22dc # v2.2.0
707739
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
708740
with:
709741
submodules: true
@@ -773,7 +805,7 @@ jobs:
773805
- name: Setup Rust toolchain
774806
uses: ./.github/actions/setup-builder
775807
- name: Install cargo-msrv
776-
uses: taiki-e/install-action@9e1e5806d4a4822de933115878265be9aaa786d9 # v2.82.2
808+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
777809
with:
778810
tool: cargo-msrv
779811

0 commit comments

Comments
 (0)