Skip to content

Commit 27769b9

Browse files
committed
Merge branch 'main' of https://github.com/apache/datafusion into lambda_protobuf_new
2 parents 6ac0278 + b9968a0 commit 27769b9

1,295 files changed

Lines changed: 104166 additions & 21632 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.

.ai/skills/datafusion-ffi/SKILL.md

Lines changed: 360 additions & 0 deletions
Large diffs are not rendered by default.

.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: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,14 @@ jobs:
4343
security_audit:
4444
runs-on: ubuntu-latest
4545
steps:
46-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
46+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
4747
- name: Install cargo-audit
48-
uses: taiki-e/install-action@213ccc1a076163c093f914550b94feb90fab916d # v2.79.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: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555
runs-on: ubuntu-latest
5656
steps:
5757
- name: Checkout
58-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
58+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
5959
with:
6060
fetch-depth: 0
6161

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

.github/workflows/breaking_changes_detector_comment.yml

Lines changed: 56 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -104,39 +104,66 @@ jobs:
104104
echo "${DELIM}"
105105
} >> "$GITHUB_OUTPUT"
106106
107-
# The marker `<!-- semver-check-comment -->` is what makes the comment
108-
# "sticky": maintain-one-comment uses it to find and replace (or
109-
# delete) the existing comment instead of stacking new ones.
107+
108+
# Find any existing sticky comment by its hidden marker so we can update
109+
# or delete it instead of stacking new ones.
110+
- name: Find existing sticky comment
111+
id: find
112+
env:
113+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
114+
REPO: ${{ github.repository }}
115+
PR_NUMBER: ${{ steps.read.outputs.pr_number }}
116+
run: |
117+
COMMENT_ID=$(gh api --paginate "repos/${REPO}/issues/${PR_NUMBER}/comments" \
118+
--jq '.[] | select(.body | contains("<!-- semver-check-comment -->")) | .id' \
119+
| head -n1)
120+
echo "comment_id=${COMMENT_ID}" >> "$GITHUB_OUTPUT"
121+
122+
# update the existing comment found above, or create a new one. The hidden
123+
# marker `<!-- semver-check-comment -->` stays in the body so the next run
124+
# finds it again. LOGS is interpolated via a shell parameter expansion,
125+
# whose result bash does not re-scan, so untrusted log content cannot
126+
# inject further commands.
110127
- name: Upsert sticky comment
111128
if: steps.read.outputs.result != 'success'
112-
uses: actions-cool/maintain-one-comment@909842216bc8e8658364c572ec52100f4c2cc50a # v3.3.0
113-
with:
114-
token: ${{ secrets.GITHUB_TOKEN }}
115-
number: ${{ steps.read.outputs.pr_number }}
116-
body-include: '<!-- semver-check-comment -->'
117-
body: |
118-
<!-- semver-check-comment -->
119-
Thank you for opening this pull request!
120-
121-
Reviewer note: [cargo-semver-checks](https://github.com/obi1kenobi/cargo-semver-checks) reported the current version number is not SemVer-compatible with the changes in this pull request (compared against the base branch).
122-
123-
<details>
124-
<summary>Details</summary>
125-
126-
```
127-
${{ steps.read.outputs.logs }}
128-
```
129-
130-
</details>
129+
env:
130+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
131+
REPO: ${{ github.repository }}
132+
PR_NUMBER: ${{ steps.read.outputs.pr_number }}
133+
COMMENT_ID: ${{ steps.find.outputs.comment_id }}
134+
LOGS: ${{ steps.read.outputs.logs }}
135+
run: |
136+
set -euo pipefail
137+
BODY="<!-- semver-check-comment -->
138+
Thank you for opening this pull request!
139+
140+
Reviewer note: [cargo-semver-checks](https://github.com/obi1kenobi/cargo-semver-checks) reported the current version number is not SemVer-compatible with the changes in this pull request (compared against the base branch).
141+
142+
<details>
143+
<summary>Details</summary>
144+
145+
\`\`\`
146+
${LOGS}
147+
\`\`\`
148+
149+
</details>"
150+
151+
# Use --raw-field (not --field): always sends the value as a literal string. while --field would treat a leading `@` as a file to read
152+
# (even though the body does not start with user input we are being cautious)
153+
if [ -n "$COMMENT_ID" ]; then
154+
gh api "repos/${REPO}/issues/comments/${COMMENT_ID}" --method PATCH --raw-field body="$BODY"
155+
else
156+
gh api "repos/${REPO}/issues/${PR_NUMBER}/comments" --method POST --raw-field body="$BODY"
157+
fi
131158
159+
# Clear a stale comment once the breaking change is resolved.
132160
- name: Delete sticky comment
133-
if: steps.read.outputs.result == 'success'
134-
uses: actions-cool/maintain-one-comment@909842216bc8e8658364c572ec52100f4c2cc50a # v3.3.0
135-
with:
136-
token: ${{ secrets.GITHUB_TOKEN }}
137-
number: ${{ steps.read.outputs.pr_number }}
138-
body-include: '<!-- semver-check-comment -->'
139-
delete: true
161+
if: steps.read.outputs.result == 'success' && steps.find.outputs.comment_id != ''
162+
env:
163+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
164+
REPO: ${{ github.repository }}
165+
COMMENT_ID: ${{ steps.find.outputs.comment_id }}
166+
run: gh api -X DELETE "repos/${REPO}/issues/comments/${COMMENT_ID}"
140167

141168
- name: Add "auto detected api change" label
142169
if: steps.read.outputs.result != 'success'

.github/workflows/codeql.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,16 @@ jobs:
4040

4141
steps:
4242
- name: Checkout repository
43-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
43+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
4444
with:
4545
persist-credentials: false
4646

4747
- name: Initialize CodeQL
48-
uses: github/codeql-action/init@9e0d7b8d25671d64c341c19c0152d693099fb5ba # v4
48+
uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4
4949
with:
5050
languages: actions
5151

5252
- name: Perform CodeQL Analysis
53-
uses: github/codeql-action/analyze@9e0d7b8d25671d64c341c19c0152d693099fb5ba # v4
53+
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4
5454
with:
5555
category: "/language:actions"

.github/workflows/dependencies.yml

Lines changed: 5 additions & 4 deletions
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
@@ -41,7 +42,7 @@ jobs:
4142
container:
4243
image: amd64/rust
4344
steps:
44-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
45+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
4546
with:
4647
submodules: true
4748
fetch-depth: 1
@@ -50,17 +51,17 @@ jobs:
5051
with:
5152
rust-version: stable
5253
- name: Check dependencies
54+
working-directory: dev/depcheck
5355
run: |
54-
cd dev/depcheck
55-
cargo run
56+
cargo run --locked
5657
5758
detect-unused-dependencies:
5859
name: Detect Unused Dependencies
5960
runs-on: ubuntu-latest
6061
container:
6162
image: amd64/rust
6263
steps:
63-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
64+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
6465
- name: Install cargo-machete
6566
run: cargo install cargo-machete --version ^0.9 --locked
6667
- name: Detect unused dependencies

.github/workflows/dev.yml

Lines changed: 7 additions & 6 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

@@ -35,7 +36,7 @@ jobs:
3536
runs-on: ubuntu-latest
3637
name: Check License Header
3738
steps:
38-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
39+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
3940
- name: Install HawkEye
4041
# This CI job is bound by installation time, use `--profile dev` to speed it up
4142
run: cargo install hawkeye --version 6.2.0 --locked --profile dev
@@ -46,7 +47,7 @@ jobs:
4647
name: Use prettier to check formatting of documents
4748
runs-on: ubuntu-slim
4849
steps:
49-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
50+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
5051
- uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
5152
with:
5253
node-version: "20"
@@ -58,13 +59,13 @@ jobs:
5859
name: Check Markdown Links
5960
runs-on: ubuntu-latest
6061
steps:
61-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
62+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
6263
- name: Load tool versions
6364
run: |
6465
source ci/scripts/utils/tool_versions.sh
6566
echo "LYCHEE_VERSION=${LYCHEE_VERSION}" >> "$GITHUB_ENV"
6667
- name: Install lychee
67-
uses: taiki-e/install-action@213ccc1a076163c093f914550b94feb90fab916d # v2.79.2
68+
uses: taiki-e/install-action@50414676f9f5d50a65992c6dd2ed02641263226c # v2.82.10
6869
with:
6970
tool: lychee@${{ env.LYCHEE_VERSION }}
7071
- name: Run markdown link check
@@ -74,15 +75,15 @@ jobs:
7475
name: Validate required_status_checks in .asf.yaml
7576
runs-on: ubuntu-latest
7677
steps:
77-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
78+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
7879
- run: pip install pyyaml
7980
- run: python3 ci/scripts/check_asf_yaml_status_checks.py
8081

8182
typos:
8283
name: Spell Check with Typos
8384
runs-on: ubuntu-latest
8485
steps:
85-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
86+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
8687
with:
8788
persist-credentials: false
8889
# Version fixed on purpose. It uses heuristics to detect typos, so upgrading

.github/workflows/docs.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,16 @@ jobs:
3434
runs-on: ubuntu-latest
3535
steps:
3636
- name: Checkout docs sources
37-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
37+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
3838

3939
- name: Checkout asf-site branch
40-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
40+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
4141
with:
4242
ref: asf-site
4343
path: asf-site
4444

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

4848
- name: Install dependencies
4949
run: uv sync --package datafusion-docs

.github/workflows/docs_pr.yaml

Lines changed: 5 additions & 2 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/**"
@@ -42,12 +45,12 @@ jobs:
4245
name: Test doc build
4346
runs-on: ubuntu-latest
4447
steps:
45-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
48+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
4649
with:
4750
submodules: true
4851
fetch-depth: 1
4952
- name: Setup uv
50-
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
53+
uses: astral-sh/setup-uv@f98e06938123ccabd21905ea5d0069192241f9f1 # v8.3.1
5154
- name: Install doc dependencies
5255
run: uv sync --package datafusion-docs
5356
- name: Install dependency graph tooling

0 commit comments

Comments
 (0)