Skip to content

Commit fe3b348

Browse files
committed
Merge remote-tracking branch 'upstream/main' into feat/default-values-schema
# Conflicts: # src/iceberg/test/json_serde_test.cc
2 parents 9690529 + e9a68b7 commit fe3b348

150 files changed

Lines changed: 255379 additions & 675 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/.licenserc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ header:
3131
- 'requirements.txt'
3232
- 'src/iceberg/util/murmurhash3_internal.*'
3333
- 'src/iceberg/test/resources/**'
34+
- 'src/iceberg/catalog/hive/gen-cpp/**'
3435
- 'thirdparty/**'
3536

3637
comment: on-failure

.github/workflows/asf-allowlist-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
4343
runs-on: ubuntu-24.04
4444
steps:
45-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
45+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
4646
with:
4747
persist-credentials: false
4848
- uses: apache/infrastructure-actions/allowlist-check@4e9c961f587f72b170874b6f5cd4ac15f7f26eb8 # main

.github/workflows/aws_test.yml

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
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+
name: AWS Tests
19+
20+
on:
21+
push:
22+
branches:
23+
- '**'
24+
- '!dependabot/**'
25+
tags:
26+
- '**'
27+
pull_request:
28+
types: [opened, synchronize, reopened, ready_for_review]
29+
30+
concurrency:
31+
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
32+
cancel-in-progress: true
33+
34+
permissions:
35+
contents: read
36+
37+
env:
38+
ICEBERG_HOME: /tmp/iceberg
39+
40+
jobs:
41+
aws:
42+
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
43+
name: AWS (${{ matrix.title }})
44+
runs-on: ${{ matrix.runs-on }}
45+
timeout-minutes: 45
46+
strategy:
47+
fail-fast: false
48+
matrix:
49+
include:
50+
- title: Ubuntu 24.04, S3 + SigV4, bundled AWS SDK
51+
runs-on: ubuntu-24.04
52+
CC: gcc-14
53+
CXX: g++-14
54+
s3: "ON"
55+
sigv4: "ON"
56+
bundle_awssdk: "ON"
57+
- title: Ubuntu 24.04, S3 + SigV4, system AWS SDK
58+
runs-on: ubuntu-24.04
59+
CC: gcc-14
60+
CXX: g++-14
61+
s3: "ON"
62+
sigv4: "ON"
63+
bundle_awssdk: "OFF"
64+
aws-sdk-features: core,config,s3,identity-management,sts,transfer
65+
- title: macOS 26 ARM64, S3, bundled AWS SDK
66+
runs-on: macos-26
67+
s3: "ON"
68+
sigv4: "OFF"
69+
bundle_awssdk: "ON"
70+
env:
71+
ICEBERG_TEST_S3_URI: s3://iceberg-test
72+
AWS_ACCESS_KEY_ID: minio
73+
AWS_SECRET_ACCESS_KEY: minio123
74+
AWS_DEFAULT_REGION: us-east-1
75+
AWS_ENDPOINT_URL: http://127.0.0.1:9000
76+
AWS_EC2_METADATA_DISABLED: "TRUE"
77+
steps:
78+
- name: Checkout iceberg-cpp
79+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
80+
with:
81+
persist-credentials: false
82+
- name: Install dependencies on Ubuntu
83+
if: ${{ startsWith(matrix.runs-on, 'ubuntu') }}
84+
shell: bash
85+
run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
86+
- name: Cache vcpkg packages
87+
if: ${{ startsWith(matrix.runs-on, 'ubuntu') && matrix.bundle_awssdk == 'OFF' }}
88+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
89+
id: vcpkg-cache
90+
with:
91+
path: /usr/local/share/vcpkg/installed
92+
key: vcpkg-x64-linux-aws-sdk-cpp-s3-${{ matrix.s3 }}-sigv4-${{ matrix.sigv4 }}-${{ hashFiles('.github/workflows/aws_test.yml') }}
93+
- name: Install AWS SDK via vcpkg
94+
if: ${{ startsWith(matrix.runs-on, 'ubuntu') && matrix.bundle_awssdk == 'OFF' && steps.vcpkg-cache.outputs.cache-hit != 'true' }}
95+
shell: bash
96+
# Retry to ride out transient GitHub/mirror download failures (504s).
97+
run: |
98+
for attempt in 1 2 3; do
99+
if vcpkg install "aws-sdk-cpp[${{ matrix.aws-sdk-features }}]:x64-linux"; then
100+
exit 0
101+
fi
102+
echo "::warning::vcpkg install failed (attempt ${attempt}/3), retrying in 30s"
103+
sleep 30
104+
done
105+
echo "::error::vcpkg install failed after 3 attempts"
106+
exit 1
107+
- name: Set Ubuntu Compilers
108+
if: ${{ startsWith(matrix.runs-on, 'ubuntu') }}
109+
run: |
110+
echo "CC=${{ matrix.CC }}" >> $GITHUB_ENV
111+
echo "CXX=${{ matrix.CXX }}" >> $GITHUB_ENV
112+
- name: Start MinIO
113+
if: ${{ matrix.s3 == 'ON' }}
114+
shell: bash
115+
run: bash ci/scripts/start_minio.sh
116+
- name: Build and test Iceberg
117+
shell: bash
118+
env:
119+
CMAKE_TOOLCHAIN_FILE: ${{ startsWith(matrix.runs-on, 'ubuntu') && matrix.bundle_awssdk == 'OFF' && '/usr/local/share/vcpkg/scripts/buildsystems/vcpkg.cmake' || '' }}
120+
run: ci/scripts/build_iceberg.sh "$(pwd)" OFF OFF ${{ matrix.s3 }} ${{ matrix.sigv4 }} ${{ matrix.bundle_awssdk }}
121+
122+
# Exercise the Meson build with SigV4 enabled (resolves aws-cpp-sdk-core via
123+
# its CMake config, not pkg-config whose Cflags force -std=c++11).
124+
meson-sigv4:
125+
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
126+
name: Meson SigV4 (AMD64 Ubuntu 24.04)
127+
runs-on: ubuntu-24.04
128+
timeout-minutes: 45
129+
steps:
130+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
131+
with:
132+
python-version: '3.x'
133+
- name: Checkout iceberg-cpp
134+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
135+
with:
136+
persist-credentials: false
137+
- name: Install build dependencies
138+
shell: bash
139+
run: |
140+
sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
141+
python3 -m pip install --upgrade pip
142+
python3 -m pip install -r requirements.txt
143+
- name: Cache vcpkg packages
144+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
145+
id: vcpkg-cache
146+
with:
147+
path: /usr/local/share/vcpkg/installed
148+
key: vcpkg-x64-linux-aws-sdk-cpp-core-${{ hashFiles('.github/workflows/aws_test.yml') }}
149+
- name: Install AWS SDK via vcpkg
150+
if: ${{ steps.vcpkg-cache.outputs.cache-hit != 'true' }}
151+
shell: bash
152+
# Retry to ride out transient GitHub/mirror download failures (504s).
153+
run: |
154+
for attempt in 1 2 3; do
155+
if vcpkg install aws-sdk-cpp[core]:x64-linux; then
156+
exit 0
157+
fi
158+
echo "::warning::vcpkg install failed (attempt ${attempt}/3), retrying in 30s"
159+
sleep 30
160+
done
161+
echo "::error::vcpkg install failed after 3 attempts"
162+
exit 1
163+
- name: Set Ubuntu Compilers
164+
run: |
165+
echo "CC=gcc-14" >> $GITHUB_ENV
166+
echo "CXX=g++-14" >> $GITHUB_ENV
167+
- name: Build and test Iceberg
168+
shell: bash
169+
env:
170+
CMAKE_PREFIX_PATH: /usr/local/share/vcpkg/installed/x64-linux
171+
run: |
172+
meson setup builddir -Dsigv4=enabled
173+
meson compile -C builddir
174+
meson test -C builddir --timeout-multiplier 0 --print-errorlogs

.github/workflows/codeql.yml

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

4444
steps:
4545
- name: Checkout repository
46-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
46+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
4747
with:
4848
persist-credentials: false
4949

5050
- name: Initialize CodeQL
51-
uses: github/codeql-action/init@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0
51+
uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
5252
with:
5353
languages: actions
5454

5555
- name: Perform CodeQL Analysis
56-
uses: github/codeql-action/analyze@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0
56+
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
5757
with:
5858
category: "/language:actions"

.github/workflows/cpp-linter.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
pull-requests: write
3737
steps:
3838
- name: Checkout iceberg-cpp
39-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
39+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
4040
with:
4141
persist-credentials: false
4242
- name: Install dependencies
@@ -68,7 +68,7 @@ jobs:
6868
files-changed-only: true
6969
lines-changed-only: true
7070
thread-comments: true
71-
ignore: 'build|cmake_modules|ci'
71+
ignore: 'build|cmake_modules|ci|src/iceberg/catalog/hive/gen-cpp'
7272
database: build
7373
verbosity: 'debug'
7474
# need '-fno-builtin-std-forward_like', see https://github.com/llvm/llvm-project/issues/101614

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
runs-on: ubuntu-slim
3838

3939
steps:
40-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
40+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
4141
with:
4242
fetch-depth: 1
4343
persist-credentials: false

.github/workflows/license_check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
runs-on: ubuntu-slim
3232
steps:
3333
- name: Checkout repository
34-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
34+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
3535
with:
3636
persist-credentials: false
3737
- name: Check license header

.github/workflows/pre-commit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
3434
runs-on: ubuntu-slim
3535
steps:
36-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
36+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
3737
with:
3838
persist-credentials: false
3939
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0

.github/workflows/rc.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
# under the License.
1717

1818
name: RC
19+
1920
on:
2021
push:
2122
tags:
@@ -34,7 +35,7 @@ jobs:
3435
timeout-minutes: 5
3536
steps:
3637
- name: Checkout
37-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
38+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
3839
with:
3940
persist-credentials: false
4041

@@ -86,7 +87,7 @@ jobs:
8687
CXX: g++-14
8788
steps:
8889
- name: Checkout
89-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
90+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
9091
with:
9192
persist-credentials: false
9293

@@ -134,7 +135,7 @@ jobs:
134135
contents: write
135136
steps:
136137
- name: Checkout
137-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
138+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
138139
with:
139140
persist-credentials: false
140141

.github/workflows/s3_test.yml

Lines changed: 0 additions & 83 deletions
This file was deleted.

0 commit comments

Comments
 (0)