Skip to content

Commit 04ee5c6

Browse files
committed
Merge remote-tracking branch 'upstream/main' into feat/default-values-schema
# Conflicts: # src/iceberg/catalog/rest/rest_catalog.cc
2 parents 7f49ebc + 9a7439c commit 04ee5c6

115 files changed

Lines changed: 7692 additions & 743 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/workflows/asf-allowlist-check.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,17 @@ name: "ASF Allowlist Check"
2626
on:
2727
pull_request:
2828
types: [opened, synchronize, reopened, ready_for_review]
29-
paths:
30-
- ".github/**"
3129
push:
3230
branches:
3331
- main
34-
paths:
35-
- ".github/**"
3632

3733
permissions:
3834
contents: read
3935

4036
jobs:
4137
asf-allowlist-check:
4238
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
43-
runs-on: ubuntu-24.04
39+
runs-on: ubuntu-slim
4440
steps:
4541
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
4642
with:

.github/workflows/aws_test.yml

Lines changed: 52 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,15 @@ jobs:
4747
fail-fast: false
4848
matrix:
4949
include:
50-
- title: Ubuntu 24.04, S3 + SigV4, bundled AWS SDK
51-
runs-on: ubuntu-24.04
50+
- title: Ubuntu 26.04, S3 + SigV4, bundled AWS SDK
51+
runs-on: ubuntu-26.04
5252
CC: gcc-14
5353
CXX: g++-14
5454
s3: "ON"
5555
sigv4: "ON"
5656
bundle_awssdk: "ON"
57-
- title: Ubuntu 24.04, S3 + SigV4, system AWS SDK
58-
runs-on: ubuntu-24.04
57+
- title: Ubuntu 26.04, S3 + SigV4, system AWS SDK
58+
runs-on: ubuntu-26.04
5959
CC: gcc-14
6060
CXX: g++-14
6161
s3: "ON"
@@ -74,6 +74,8 @@ jobs:
7474
AWS_DEFAULT_REGION: us-east-1
7575
AWS_ENDPOINT_URL: http://127.0.0.1:9000
7676
AWS_EC2_METADATA_DISABLED: "TRUE"
77+
SCCACHE_DIR: ${{ github.workspace }}/.sccache
78+
SCCACHE_CACHE_SIZE: "2G"
7779
steps:
7880
- name: Checkout iceberg-cpp
7981
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
@@ -82,7 +84,7 @@ jobs:
8284
- name: Install dependencies on Ubuntu
8385
if: ${{ startsWith(matrix.runs-on, 'ubuntu') }}
8486
shell: bash
85-
run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
87+
run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev libjitterentropy3-dev
8688
- name: Cache vcpkg packages
8789
if: ${{ startsWith(matrix.runs-on, 'ubuntu') && matrix.bundle_awssdk == 'OFF' }}
8890
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
@@ -113,19 +115,40 @@ jobs:
113115
if: ${{ matrix.s3 == 'ON' }}
114116
shell: bash
115117
run: bash ci/scripts/start_minio.sh
118+
- name: Restore sccache cache
119+
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
120+
with:
121+
path: ${{ github.workspace }}/.sccache
122+
key: sccache-aws-${{ matrix.runs-on }}-bundle${{ matrix.bundle_awssdk }}-s3${{ matrix.s3 }}-sigv4${{ matrix.sigv4 }}-${{ github.run_id }}
123+
restore-keys: |
124+
sccache-aws-${{ matrix.runs-on }}-bundle${{ matrix.bundle_awssdk }}-s3${{ matrix.s3 }}-sigv4${{ matrix.sigv4 }}-
125+
- name: Setup sccache
126+
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
116127
- name: Build and test Iceberg
117128
shell: bash
118129
env:
119130
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 }}
131+
run: ci/scripts/build_iceberg.sh "$(pwd)" OFF ON ${{ matrix.s3 }} ${{ matrix.sigv4 }} ${{ matrix.bundle_awssdk }}
132+
- name: Show sccache stats
133+
shell: bash
134+
run: sccache --show-stats
135+
- name: Save sccache cache
136+
if: github.ref == 'refs/heads/main'
137+
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
138+
with:
139+
path: ${{ github.workspace }}/.sccache
140+
key: sccache-aws-${{ matrix.runs-on }}-bundle${{ matrix.bundle_awssdk }}-s3${{ matrix.s3 }}-sigv4${{ matrix.sigv4 }}-${{ github.run_id }}
121141

122142
# Exercise the Meson build with SigV4 enabled (resolves aws-cpp-sdk-core via
123143
# its CMake config, not pkg-config whose Cflags force -std=c++11).
124144
meson-sigv4:
125145
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
146+
name: Meson SigV4 (AMD64 Ubuntu 26.04)
147+
runs-on: ubuntu-26.04
128148
timeout-minutes: 45
149+
env:
150+
SCCACHE_DIR: ${{ github.workspace }}/.sccache
151+
SCCACHE_CACHE_SIZE: "2G"
129152
steps:
130153
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
131154
with:
@@ -137,7 +160,7 @@ jobs:
137160
- name: Install build dependencies
138161
shell: bash
139162
run: |
140-
sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
163+
sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev libjitterentropy3-dev
141164
python3 -m pip install --upgrade pip
142165
python3 -m pip install -r requirements.txt
143166
- name: Cache vcpkg packages
@@ -161,14 +184,32 @@ jobs:
161184
echo "::error::vcpkg install failed after 3 attempts"
162185
exit 1
163186
- name: Set Ubuntu Compilers
187+
# Wrap the compiler with sccache: Meson uses an explicit CC/CXX verbatim,
188+
# so the launcher must be prepended here to route compiles through sccache.
164189
run: |
165-
echo "CC=gcc-14" >> $GITHUB_ENV
166-
echo "CXX=g++-14" >> $GITHUB_ENV
190+
echo "CC=sccache gcc-14" >> $GITHUB_ENV
191+
echo "CXX=sccache g++-14" >> $GITHUB_ENV
192+
- name: Restore sccache cache
193+
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
194+
with:
195+
path: ${{ github.workspace }}/.sccache
196+
key: sccache-meson-sigv4-${{ github.run_id }}
197+
restore-keys: |
198+
sccache-meson-sigv4-
199+
- name: Setup sccache
200+
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
167201
- name: Build and test Iceberg
168202
shell: bash
169203
env:
170204
CMAKE_PREFIX_PATH: /usr/local/share/vcpkg/installed/x64-linux
171205
run: |
172206
meson setup builddir -Dsigv4=enabled
173207
meson compile -C builddir
208+
sccache --show-stats
174209
meson test -C builddir --timeout-multiplier 0 --print-errorlogs
210+
- name: Save sccache cache
211+
if: github.ref == 'refs/heads/main'
212+
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
213+
with:
214+
path: ${{ github.workspace }}/.sccache
215+
key: sccache-meson-sigv4-${{ github.run_id }}

.github/workflows/codeql.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ on:
2828
schedule:
2929
- cron: '16 4 * * 1'
3030

31+
concurrency:
32+
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
33+
cancel-in-progress: true
34+
3135
permissions:
3236
contents: read
3337

.github/workflows/cpp-linter.yml

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@
1818
name: C++ Linter
1919

2020
on:
21+
push:
22+
branches:
23+
- main
24+
paths-ignore:
25+
- '.github/**'
26+
- 'ci/**'
27+
- 'cmake_modules/**'
2128
pull_request:
2229
types: [opened, synchronize, reopened, ready_for_review]
2330
paths-ignore:
@@ -27,13 +34,20 @@ on:
2734
branches:
2835
- main
2936

37+
concurrency:
38+
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
39+
cancel-in-progress: true
40+
3041
jobs:
3142
cpp-linter:
3243
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
33-
runs-on: ubuntu-24.04
44+
runs-on: ubuntu-26.04
3445
permissions:
3546
contents: read
3647
pull-requests: write
48+
env:
49+
SCCACHE_DIR: ${{ github.workspace }}/.sccache
50+
SCCACHE_CACHE_SIZE: "2G"
3751
steps:
3852
- name: Checkout iceberg-cpp
3953
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
@@ -44,20 +58,41 @@ jobs:
4458
run: |
4559
sudo apt-get update
4660
sudo apt-get install -y libcurl4-openssl-dev libsqlite3-dev libpq-dev default-libmysqlclient-dev
61+
- name: Restore sccache cache
62+
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
63+
with:
64+
path: ${{ github.workspace }}/.sccache
65+
key: sccache-cpp-linter-ubuntu-${{ github.run_id }}
66+
restore-keys: |
67+
sccache-cpp-linter-ubuntu-
68+
- name: Setup sccache
69+
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
4770
- name: Run build
4871
env:
4972
CC: gcc-14
5073
CXX: g++-14
5174
run: |
5275
mkdir build && cd build
5376
cmake .. -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
77+
-DCMAKE_C_COMPILER_LAUNCHER=sccache \
78+
-DCMAKE_CXX_COMPILER_LAUNCHER=sccache \
5479
-DICEBERG_BUILD_SQL_CATALOG=ON \
5580
-DICEBERG_SQL_SQLITE=ON \
5681
-DICEBERG_SQL_POSTGRESQL=ON \
5782
-DICEBERG_SQL_MYSQL=ON
5883
cmake --build .
84+
- name: Show sccache stats
85+
shell: bash
86+
run: sccache --show-stats
87+
- name: Save sccache cache
88+
if: github.ref == 'refs/heads/main'
89+
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
90+
with:
91+
path: ${{ github.workspace }}/.sccache
92+
key: sccache-cpp-linter-ubuntu-${{ github.run_id }}
5993
- uses: cpp-linter/cpp-linter-action@0f6d1b8d7e38b584cbee606eb23d850c217d54f8 # v2.15.1
6094
id: linter
95+
if: github.event_name == 'pull_request'
6196
continue-on-error: true
6297
env:
6398
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -74,7 +109,7 @@ jobs:
74109
# need '-fno-builtin-std-forward_like', see https://github.com/llvm/llvm-project/issues/101614
75110
extra-args: '-std=c++23 -I$PWD/src -I$PWD/build/src -I$PWD/build/_deps/sqlpp23-src/include -I/usr/include/postgresql -I/usr/include/mysql -fno-builtin-std-forward_like'
76111
- name: Fail fast?!
77-
if: steps.linter.outputs.checks-failed != 0
112+
if: github.event_name == 'pull_request' && steps.linter.outputs.checks-failed != 0
78113
run: |
79114
echo "some linter checks failed. ${STEPS_LINTER_OUTPUTS_CHECKS_FAILED}"
80115
exit 1

.github/workflows/license_check.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ on:
2121
pull_request:
2222
types: [opened, synchronize, reopened, ready_for_review]
2323

24+
concurrency:
25+
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
26+
cancel-in-progress: true
27+
2428
permissions:
2529
contents: read
2630

.github/workflows/pre-commit.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ on:
2525
- '**'
2626
- '!dependabot/**'
2727

28+
concurrency:
29+
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
30+
cancel-in-progress: true
31+
2832
permissions:
2933
contents: write
3034

.github/workflows/rc.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ permissions:
3131
jobs:
3232
archive:
3333
name: Archive
34-
runs-on: ubuntu-24.04
34+
runs-on: ubuntu-26.04
3535
timeout-minutes: 5
3636
steps:
3737
- name: Checkout
@@ -79,10 +79,10 @@ jobs:
7979
matrix:
8080
os:
8181
- macos-26
82-
- ubuntu-24.04
82+
- ubuntu-26.04
8383
# - windows-latest
8484
include:
85-
- os: ubuntu-24.04
85+
- os: ubuntu-26.04
8686
CC: gcc-14
8787
CXX: g++-14
8888
steps:
@@ -130,7 +130,7 @@ jobs:
130130
if: github.ref_type == 'tag'
131131
needs:
132132
- verify
133-
runs-on: ubuntu-24.04
133+
runs-on: ubuntu-26.04
134134
permissions:
135135
contents: write
136136
steps:

.github/workflows/sanitizer_test.yml

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@ jobs:
3838
sanitizer-test:
3939
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
4040
name: "ASAN and UBSAN Tests"
41-
runs-on: ubuntu-24.04
41+
runs-on: ubuntu-26.04
42+
env:
43+
SCCACHE_DIR: ${{ github.workspace }}/.sccache
44+
SCCACHE_CACHE_SIZE: "2G"
4245
steps:
4346
- name: Checkout iceberg-cpp
4447
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
@@ -47,14 +50,33 @@ jobs:
4750
- name: Install dependencies
4851
shell: bash
4952
run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
53+
- name: Restore sccache cache
54+
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
55+
with:
56+
path: ${{ github.workspace }}/.sccache
57+
key: sccache-sanitizer-ubuntu-${{ github.run_id }}
58+
restore-keys: |
59+
sccache-sanitizer-ubuntu-
60+
- name: Setup sccache
61+
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
5062
- name: Configure and Build with ASAN & UBSAN
5163
env:
5264
CC: gcc-14
5365
CXX: g++-14
5466
run: |
5567
mkdir build && cd build
56-
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Debug -DICEBERG_ENABLE_ASAN=ON -DICEBERG_ENABLE_UBSAN=ON
68+
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Debug -DICEBERG_ENABLE_ASAN=ON -DICEBERG_ENABLE_UBSAN=ON \
69+
-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache
5770
cmake --build . --verbose
71+
- name: Show sccache stats
72+
shell: bash
73+
run: sccache --show-stats
74+
- name: Save sccache cache
75+
if: github.ref == 'refs/heads/main'
76+
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
77+
with:
78+
path: ${{ github.workspace }}/.sccache
79+
key: sccache-sanitizer-ubuntu-${{ github.run_id }}
5880
- name: Run Tests
5981
working-directory: build
6082
env:

0 commit comments

Comments
 (0)