Skip to content

Commit 9c0d35b

Browse files
authored
Merge branch 'main' into fix/3429-spark4-ctas-union-native-writer
2 parents a8e63e2 + c27b1e1 commit 9c0d35b

1,105 files changed

Lines changed: 29670 additions & 14914 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.

.github/actions/java-test/action.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ runs:
120120
MAVEN_OPTS="-Xmx4G -Xms2G -DwildcardSuites=$MAVEN_SUITES -XX:+UnlockDiagnosticVMOptions -XX:+ShowMessageBoxOnError -XX:+HeapDumpOnOutOfMemoryError -XX:ErrorFile=./hs_err_pid%p.log" SPARK_HOME=`pwd` ./mvnw -B -Prelease clean install ${{ inputs.maven_opts }}
121121
- name: Upload crash logs
122122
if: failure()
123-
uses: actions/upload-artifact@v4
123+
uses: actions/upload-artifact@v6
124124
with:
125125
name: crash-logs-${{ inputs.artifact_name }}
126126
path: "**/hs_err_pid*.log"
@@ -134,13 +134,13 @@ runs:
134134
find . -name 'unit-tests.log'
135135
- name: Upload unit-tests.log
136136
if: failure()
137-
uses: actions/upload-artifact@v4
137+
uses: actions/upload-artifact@v6
138138
with:
139139
name: unit-tests-${{ inputs.artifact_name }}
140140
path: "**/target/unit-tests.log"
141141
- name: Upload test results
142142
if: ${{ inputs.upload-test-reports == 'true' }}
143-
uses: actions/upload-artifact@v4
143+
uses: actions/upload-artifact@v6
144144
with:
145145
name: java-test-reports-${{ inputs.artifact_name }}
146146
path: "**/target/surefire-reports/*.txt"

.github/dependabot.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,22 @@ updates:
3737
patterns:
3838
- "prost*"
3939
- "pbjson*"
40+
# Catch-all: group only minor/patch into a single PR,
41+
# excluding deps we want always separate (and excluding arrow/parquet which have their own group)
42+
all-other-cargo-deps:
43+
applies-to: version-updates
44+
patterns:
45+
- "*"
46+
exclude-patterns:
47+
- "arrow*"
48+
- "parquet"
49+
- "object_store"
50+
- "sqlparser"
51+
- "prost*"
52+
- "pbjson*"
53+
update-types:
54+
- "minor"
55+
- "patch"
4056
- package-ecosystem: "github-actions"
4157
directory: "/"
4258
schedule:

.github/workflows/codeql.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
#
18+
19+
name: "CodeQL"
20+
21+
on:
22+
push:
23+
branches: [ "main" ]
24+
pull_request:
25+
branches: [ "main" ]
26+
schedule:
27+
- cron: '16 4 * * 1'
28+
29+
permissions:
30+
contents: read
31+
32+
jobs:
33+
analyze:
34+
name: Analyze Actions
35+
runs-on: ubuntu-latest
36+
permissions:
37+
contents: read
38+
security-events: write
39+
packages: read
40+
41+
steps:
42+
- name: Checkout repository
43+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
44+
with:
45+
persist-credentials: false
46+
47+
- name: Initialize CodeQL
48+
uses: github/codeql-action/init@0d579ffd059c29b07949a3cce3983f0780820c98 # v4
49+
with:
50+
languages: actions
51+
52+
- name: Perform CodeQL Analysis
53+
uses: github/codeql-action/analyze@0d579ffd059c29b07949a3cce3983f0780820c98 # v4
54+
with:
55+
category: "/language:actions"

.github/workflows/docker-publish.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,15 @@ jobs:
6262
- name: Echo Comet version
6363
run: echo "The current Comet version is ${{ env.COMET_VERSION }}"
6464
- name: Set up Docker Buildx
65-
uses: docker/setup-buildx-action@v3
65+
uses: docker/setup-buildx-action@v4
6666
- name: Login to GitHub Container Registry
67-
uses: docker/login-action@v3
67+
uses: docker/login-action@v4
6868
with:
6969
registry: ghcr.io
7070
username: ${{ github.actor }}
7171
password: ${{ secrets.GITHUB_TOKEN }}
7272
- name: Build and push
73-
uses: docker/build-push-action@v6
73+
uses: docker/build-push-action@v7
7474
with:
7575
platforms: linux/amd64,linux/arm64
7676
push: true

.github/workflows/iceberg_spark_test.yml

Lines changed: 7 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ on:
2626
branches:
2727
- main
2828
paths-ignore:
29+
- "benchmarks/**"
2930
- "doc/**"
3031
- "docs/**"
3132
- "**.md"
@@ -34,6 +35,7 @@ on:
3435
- "spark/src/test/scala/org/apache/spark/sql/benchmark/**"
3536
pull_request:
3637
paths-ignore:
38+
- "benchmarks/**"
3739
- "doc/**"
3840
- "docs/**"
3941
- "**.md"
@@ -46,6 +48,7 @@ on:
4648

4749
env:
4850
RUST_VERSION: stable
51+
RUST_BACKTRACE: 1
4952

5053
jobs:
5154
# Build native library once and share with all test jobs
@@ -93,144 +96,12 @@ jobs:
9396
key: ${{ runner.os }}-cargo-ci-${{ hashFiles('native/**/Cargo.lock', 'native/**/Cargo.toml') }}-${{ hashFiles('native/**/*.rs') }}
9497

9598
- name: Upload native library
96-
uses: actions/upload-artifact@v6
99+
uses: actions/upload-artifact@v7
97100
with:
98101
name: native-lib-iceberg
99102
path: native/target/ci/libcomet.so
100103
retention-days: 1
101104

102-
iceberg-spark:
103-
needs: build-native
104-
if: contains(github.event.pull_request.title, '[iceberg]')
105-
strategy:
106-
matrix:
107-
os: [ubuntu-24.04]
108-
java-version: [11, 17]
109-
iceberg-version: [{short: '1.8', full: '1.8.1'}, {short: '1.9', full: '1.9.1'}, {short: '1.10', full: '1.10.0'}]
110-
spark-version: [{short: '3.5', full: '3.5.8'}]
111-
scala-version: ['2.13']
112-
fail-fast: false
113-
name: iceberg-spark/${{ matrix.os }}/iceberg-${{ matrix.iceberg-version.full }}/spark-${{ matrix.spark-version.full }}/scala-${{ matrix.scala-version }}/java-${{ matrix.java-version }}
114-
runs-on: ${{ matrix.os }}
115-
container:
116-
image: amd64/rust
117-
env:
118-
SPARK_LOCAL_IP: localhost
119-
steps:
120-
- uses: actions/checkout@v6
121-
- name: Setup Rust & Java toolchain
122-
uses: ./.github/actions/setup-builder
123-
with:
124-
rust-version: ${{env.RUST_VERSION}}
125-
jdk-version: ${{ matrix.java-version }}
126-
- name: Download native library
127-
uses: actions/download-artifact@v7
128-
with:
129-
name: native-lib-iceberg
130-
path: native/target/release/
131-
- name: Build Comet
132-
run: |
133-
./mvnw install -Prelease -DskipTests -Pspark-${{ matrix.spark-version.short }} -Pscala-${{ matrix.scala-version }}
134-
- name: Setup Iceberg
135-
uses: ./.github/actions/setup-iceberg-builder
136-
with:
137-
iceberg-version: ${{ matrix.iceberg-version.full }}
138-
- name: Run Iceberg Spark tests
139-
run: |
140-
cd apache-iceberg
141-
rm -rf /root/.m2/repository/org/apache/parquet # somehow parquet cache requires cleanups
142-
ENABLE_COMET=true ENABLE_COMET_ONHEAP=true ./gradlew -DsparkVersions=${{ matrix.spark-version.short }} -DscalaVersion=${{ matrix.scala-version }} -DflinkVersions= -DkafkaVersions= \
143-
:iceberg-spark:iceberg-spark-${{ matrix.spark-version.short }}_${{ matrix.scala-version }}:test \
144-
-Pquick=true -x javadoc
145-
146-
iceberg-spark-extensions:
147-
needs: build-native
148-
if: contains(github.event.pull_request.title, '[iceberg]')
149-
strategy:
150-
matrix:
151-
os: [ubuntu-24.04]
152-
java-version: [11, 17]
153-
iceberg-version: [{short: '1.8', full: '1.8.1'}, {short: '1.9', full: '1.9.1'}, {short: '1.10', full: '1.10.0'}]
154-
spark-version: [{short: '3.5', full: '3.5.8'}]
155-
scala-version: ['2.13']
156-
fail-fast: false
157-
name: iceberg-spark-extensions/${{ matrix.os }}/iceberg-${{ matrix.iceberg-version.full }}/spark-${{ matrix.spark-version.full }}/scala-${{ matrix.scala-version }}/java-${{ matrix.java-version }}
158-
runs-on: ${{ matrix.os }}
159-
container:
160-
image: amd64/rust
161-
env:
162-
SPARK_LOCAL_IP: localhost
163-
steps:
164-
- uses: actions/checkout@v6
165-
- name: Setup Rust & Java toolchain
166-
uses: ./.github/actions/setup-builder
167-
with:
168-
rust-version: ${{env.RUST_VERSION}}
169-
jdk-version: ${{ matrix.java-version }}
170-
- name: Download native library
171-
uses: actions/download-artifact@v7
172-
with:
173-
name: native-lib-iceberg
174-
path: native/target/release/
175-
- name: Build Comet
176-
run: |
177-
./mvnw install -Prelease -DskipTests -Pspark-${{ matrix.spark-version.short }} -Pscala-${{ matrix.scala-version }}
178-
- name: Setup Iceberg
179-
uses: ./.github/actions/setup-iceberg-builder
180-
with:
181-
iceberg-version: ${{ matrix.iceberg-version.full }}
182-
- name: Run Iceberg Spark extensions tests
183-
run: |
184-
cd apache-iceberg
185-
rm -rf /root/.m2/repository/org/apache/parquet # somehow parquet cache requires cleanups
186-
ENABLE_COMET=true ENABLE_COMET_ONHEAP=true ./gradlew -DsparkVersions=${{ matrix.spark-version.short }} -DscalaVersion=${{ matrix.scala-version }} -DflinkVersions= -DkafkaVersions= \
187-
:iceberg-spark:iceberg-spark-extensions-${{ matrix.spark-version.short }}_${{ matrix.scala-version }}:test \
188-
-Pquick=true -x javadoc
189-
190-
iceberg-spark-runtime:
191-
needs: build-native
192-
if: contains(github.event.pull_request.title, '[iceberg]')
193-
strategy:
194-
matrix:
195-
os: [ubuntu-24.04]
196-
java-version: [11, 17]
197-
iceberg-version: [{short: '1.8', full: '1.8.1'}, {short: '1.9', full: '1.9.1'}, {short: '1.10', full: '1.10.0'}]
198-
spark-version: [{short: '3.5', full: '3.5.8'}]
199-
scala-version: ['2.13']
200-
fail-fast: false
201-
name: iceberg-spark-runtime/${{ matrix.os }}/iceberg-${{ matrix.iceberg-version.full }}/spark-${{ matrix.spark-version.full }}/scala-${{ matrix.scala-version }}/java-${{ matrix.java-version }}
202-
runs-on: ${{ matrix.os }}
203-
container:
204-
image: amd64/rust
205-
env:
206-
SPARK_LOCAL_IP: localhost
207-
steps:
208-
- uses: actions/checkout@v6
209-
- name: Setup Rust & Java toolchain
210-
uses: ./.github/actions/setup-builder
211-
with:
212-
rust-version: ${{env.RUST_VERSION}}
213-
jdk-version: ${{ matrix.java-version }}
214-
- name: Download native library
215-
uses: actions/download-artifact@v7
216-
with:
217-
name: native-lib-iceberg
218-
path: native/target/release/
219-
- name: Build Comet
220-
run: |
221-
./mvnw install -Prelease -DskipTests -Pspark-${{ matrix.spark-version.short }} -Pscala-${{ matrix.scala-version }}
222-
- name: Setup Iceberg
223-
uses: ./.github/actions/setup-iceberg-builder
224-
with:
225-
iceberg-version: ${{ matrix.iceberg-version.full }}
226-
- name: Run Iceberg Spark runtime tests
227-
run: |
228-
cd apache-iceberg
229-
rm -rf /root/.m2/repository/org/apache/parquet # somehow parquet cache requires cleanups
230-
ENABLE_COMET=true ENABLE_COMET_ONHEAP=true ./gradlew -DsparkVersions=${{ matrix.spark-version.short }} -DscalaVersion=${{ matrix.scala-version }} -DflinkVersions= -DkafkaVersions= \
231-
:iceberg-spark:iceberg-spark-runtime-${{ matrix.spark-version.short }}_${{ matrix.scala-version }}:integrationTest \
232-
-Pquick=true -x javadoc
233-
234105
iceberg-spark-rust:
235106
needs: build-native
236107
if: contains(github.event.pull_request.title, '[iceberg]')
@@ -256,7 +127,7 @@ jobs:
256127
rust-version: ${{env.RUST_VERSION}}
257128
jdk-version: ${{ matrix.java-version }}
258129
- name: Download native library
259-
uses: actions/download-artifact@v7
130+
uses: actions/download-artifact@v8
260131
with:
261132
name: native-lib-iceberg
262133
path: native/target/release/
@@ -300,7 +171,7 @@ jobs:
300171
rust-version: ${{env.RUST_VERSION}}
301172
jdk-version: ${{ matrix.java-version }}
302173
- name: Download native library
303-
uses: actions/download-artifact@v7
174+
uses: actions/download-artifact@v8
304175
with:
305176
name: native-lib-iceberg
306177
path: native/target/release/
@@ -344,7 +215,7 @@ jobs:
344215
rust-version: ${{env.RUST_VERSION}}
345216
jdk-version: ${{ matrix.java-version }}
346217
- name: Download native library
347-
uses: actions/download-artifact@v7
218+
uses: actions/download-artifact@v8
348219
with:
349220
name: native-lib-iceberg
350221
path: native/target/release/

.github/workflows/miri.yml

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,14 @@ on:
2828
- "native/core/benches/**"
2929
- "native/spark-expr/benches/**"
3030
- "spark/src/test/scala/org/apache/spark/sql/benchmark/**"
31-
# Disabled until Miri compatibility is restored
32-
# https://github.com/apache/datafusion-comet/issues/3499
33-
# pull_request:
34-
# paths-ignore:
35-
# - "doc/**"
36-
# - "docs/**"
37-
# - "**.md"
38-
# - "native/core/benches/**"
39-
# - "native/spark-expr/benches/**"
40-
# - "spark/src/test/scala/org/apache/spark/sql/benchmark/**"
31+
pull_request:
32+
paths-ignore:
33+
- "doc/**"
34+
- "docs/**"
35+
- "**.md"
36+
- "native/core/benches/**"
37+
- "native/spark-expr/benches/**"
38+
- "spark/src/test/scala/org/apache/spark/sql/benchmark/**"
4139
# manual trigger
4240
# https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow
4341
workflow_dispatch:

.github/workflows/pr_benchmark_check.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ on:
4141

4242
env:
4343
RUST_VERSION: stable
44+
RUST_BACKTRACE: 1
4445

4546
jobs:
4647
benchmark-check:

0 commit comments

Comments
 (0)