Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
a5fc25f
feat: add s3 file io integration (#548)
MisterRaindrop Apr 16, 2026
c38b392
feat(puffin): add format constants, utilities, and JSON serde (#603)
zhaoxuan1994 Apr 16, 2026
633965f
ci: apply github workflow best practice (zizmor/codeql/asf-allowlist-…
kevinjqliu Apr 16, 2026
4876d7c
feat: implement incremental changelog scan (#611)
WZhuo Apr 17, 2026
e7b228b
chore: add more ai related .gitignore (#621)
HuaHuaY Apr 17, 2026
8adb304
ci: set zizmor min-severity and min-confidence to medium (#620)
kevinjqliu Apr 17, 2026
65321e3
chore(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (#622)
dependabot[bot] Apr 20, 2026
a9114ce
chore: bump arrow-cpp to 24.0.0 (#623)
wgtmac Apr 22, 2026
b94fa7c
feat: add ReachableFileCleanup to expire snapshots (#592)
shangxinli Apr 24, 2026
8809e0f
feat: retry failed transaction commit (#626)
linguoxuan Apr 24, 2026
ce794ef
fix(ci): restore auth for docs gh-pages deploy (#625)
wgtmac Apr 24, 2026
194db04
fix: typo in RoaringPositionBitmap deletion vector note (#632)
zhjwpku Apr 28, 2026
65931fe
chore(deps): bump github/codeql-action from 4.35.1 to 4.35.2 (#629)
dependabot[bot] May 1, 2026
4c6f46d
chore(deps): bump zizmorcore/zizmor-action from 0.5.2 to 0.5.3 (#630)
dependabot[bot] May 1, 2026
f40fe2f
fix: concurrent Lazy::Get should get correct result (#634)
HuaHuaY May 2, 2026
0bf52f6
chore(deps): bump mozilla-actions/sccache-action from 0.0.9 to 0.0.10…
dependabot[bot] May 3, 2026
d6130f7
fix: repair shared package linkage and export scan builder symbols (#…
zhjwpku May 3, 2026
0db527a
feat: add iceberg_data library alongside iceberg (#631)
zhjwpku May 5, 2026
2e87038
fix(cmake): use consistent generator expressions to link libraries (#…
zhjwpku May 6, 2026
7e51613
ci: use ilammy/msvc-dev-cmd for Windows MSVC environment (#643)
zhjwpku May 6, 2026
ff42229
refactor(util): make retry policy explicit and deterministic (#633)
wgtmac May 6, 2026
db7bb30
ci: split S3/MinIO into a Linux and macOS-only workflow (#642)
zhjwpku May 6, 2026
4550ec8
CI: Use specific patch versions in workflow action comments (#644)
kevinjqliu May 7, 2026
fc80e4b
feat(io): add streaming FileIO support (#641)
wgtmac May 8, 2026
43eb327
feat(data): add delete filter support (#650)
wgtmac May 12, 2026
0ca52ba
chore(deps): bump github/codeql-action from 4.35.2 to 4.35.3 (#647)
dependabot[bot] May 12, 2026
c41c269
chore(deps): bump github/codeql-action from 4.35.3 to 4.35.4 (#654)
dependabot[bot] May 18, 2026
d690aaa
build: sync Meson project version with CMake (#655)
slfan1989 May 18, 2026
83aa988
fix: preserve snapshot ID width in UseRef (#661)
fallintoplace May 20, 2026
bf26218
feat(manifest): add ManifestFilterManager and ManifestMergeManager (#…
gty404 May 20, 2026
3e7b20a
feat: add IncrementalFileCleanup strategy and dispatch in ExpireSnaps…
shangxinli May 20, 2026
136b468
fix(parquet): check compression codec availability (#656)
wgtmac May 21, 2026
6c781c7
feat(io): add bulk delete API to FileIO. (#659)
slfan1989 May 21, 2026
e97a8e8
fix(ci): fix macOS ci to use provided fmt (#670)
slfan1989 May 22, 2026
3d2537c
feat(data): add MOR file scan task reader (#657)
wgtmac May 22, 2026
35dde9a
feat: Add v3 timestamp nanosecond primitive types (#653)
zhjwpku May 23, 2026
fa36835
fix: evaluate ManifestGroup file filters (#664)
fallintoplace May 24, 2026
41f32f8
fix: disallow zoned and non-zoned literal comparisons (#676)
zhjwpku May 24, 2026
5bbe9ee
chore(deps): bump github/codeql-action from 4.35.4 to 4.35.5 (#677)
dependabot[bot] May 25, 2026
1f7a318
chore(deps): bump zizmorcore/zizmor-action from 0.5.3 to 0.5.6 (#678)
dependabot[bot] May 25, 2026
a8578e1
chore(ci): skip actions for draft PRs (#680)
zhjwpku May 25, 2026
76fa723
refactor: move temporal utilities out of transform util (#675)
zhjwpku May 25, 2026
97ea870
feat: metrics for parquet writer (#651)
WZhuo May 26, 2026
bc48b94
fix(parquet): fix parquet writer metrics conversion (#681)
wgtmac May 26, 2026
e599010
feat(data): coalesce position deletes into range inserts (#645)
Baunsgaard May 27, 2026
7b07209
ci: update pre-commit workflow permissions to write (#683)
gty404 May 27, 2026
8601f16
fix(meson): add missing install headers for meson (#684)
wgtmac May 27, 2026
100bbe3
feat(puffin): add puffin file reader and writer (#624)
zhaoxuan1994 May 28, 2026
d6c1da0
fix: correct StrictMetricsEvaluator::CanContainNulls/CanContainNaNs w…
sentomk May 28, 2026
18e055c
docs: add Iceberg security model (#688)
sungwy May 28, 2026
b92e022
chore(deps): bump github/codeql-action from 4.35.5 to 4.36.0 (#691)
dependabot[bot] May 31, 2026
a0c4948
build(hive): add ICEBERG_BUILD_HIVE option and skeleton (#689)
MisterRaindrop May 31, 2026
f936553
chore(doc): bump minimum Clang version to 18 (#695)
zhjwpku Jun 1, 2026
5e13fb1
feat: add MergingSnapshotUpdate (#682)
gty404 Jun 3, 2026
17ae164
chore: normalize license headers (#692)
zhjwpku Jun 3, 2026
7d352f5
feat(rest): implement OAuth2 token auto-refresh for REST catalog (#646)
lishuxu Jun 4, 2026
24cbe84
feat(catalog): add SQL catalog (#693)
zhjwpku Jun 5, 2026
ec20752
feat: support Iceberg v3 unknown type (#662)
manuzhang Jun 5, 2026
171ac57
feat: add executor pool support (#687)
HuaHuaY Jun 5, 2026
c21d425
chore: update LICENSE of FnOnce (#698)
HuaHuaY Jun 5, 2026
ae29c3d
feat: metrics reporting for scan and commit (#589)
evindj Jun 5, 2026
945599d
chore: upgrade avro and remove fmt in ci script (#704)
HuaHuaY Jun 8, 2026
9dbad31
chore: release candidate version string (#705)
zhjwpku Jun 8, 2026
3ca8842
build: install generated version header (#710)
manuzhang Jun 9, 2026
ad9b8fc
feat(hive): vendor Hive 3.1 metastore + fb303 Thrift IDL (#694)
MisterRaindrop Jun 9, 2026
b650822
feat(rest): add scan plan endpoints to REST catalog client (#614)
gsandeep1241 Jun 9, 2026
c0e6e86
chore: disable installing googletest libs (#711)
zhjwpku Jun 9, 2026
f9949ac
fix: avoid stale gh run watch in RC release script (#712)
wgtmac Jun 10, 2026
50aee7e
fix: align manifest partition reads with reassigned IDs (#700)
wgtmac Jun 10, 2026
701d39c
fix(rest): use "ref" field name for AssertRefSnapshotId requirement (…
plusplusjiajia Jun 10, 2026
30c3120
fix: Assign UUID when creating table metadata (#713)
WZhuo Jun 10, 2026
3fd8a49
fix: YearTransform passes wrong TransformType kTruncate instead of kY…
WZhuo Jun 10, 2026
0284683
fix: make release script more robust (#717)
wgtmac Jun 10, 2026
c0c6b01
fix: make git run watch optional in release_rc.sh (#720)
wgtmac Jun 10, 2026
577c8e4
feat(auth): implement SigV4 authentication for REST catalog (#616)
plusplusjiajia Jun 14, 2026
d3b02bb
Revert "chore: remove spdlog dependency (#459)" (#718)
kamcheungting-db Jun 14, 2026
ca39206
chore: bump version to 0.4.0-SNAPSHOT (#733)
zhjwpku Jun 14, 2026
399af1b
chore(deps): bump actions/checkout from 6.0.2 to 6.0.3 (#734)
dependabot[bot] Jun 14, 2026
04e0ce3
chore(deps): bump actions/cache from 4.3.0 to 5.0.5 (#735)
dependabot[bot] Jun 14, 2026
cf50b12
chore(deps): bump github/codeql-action from 4.36.0 to 4.36.2 (#736)
dependabot[bot] Jun 14, 2026
a68602c
feat(arrow): resolve S3-compatible schemes in ArrowFileSystemFileIO (…
plusplusjiajia Jun 14, 2026
5eb32df
Fix URL encoding for non-ASCII bytes (#738)
fallintoplace Jun 15, 2026
8d88bef
fix: allow avro date reads from plain int (#728)
zhjwpku Jun 15, 2026
cc4d35f
doc: add release history for release v0.3.0 (#743)
zhjwpku Jun 15, 2026
7324142
feat(inspect): add base metadata table interface (#607)
All-less Jun 15, 2026
8d576ed
refactor: harden FileCleanupStrategy with retry and parallel deletes …
shangxinli Jun 15, 2026
cb79f29
feat(logging): add LogLevel severity enum (#722)
kamcheungting-db Jun 16, 2026
bb83ede
feat: Collect Parquet NaN metrics during writes (#727)
WZhuo Jun 16, 2026
796efb3
fix: align rest table update serde with java/spec (#716)
wgtmac Jun 16, 2026
f71f485
fix: Handle unknown record_count better (#747)
goel-skd Jun 16, 2026
64691e4
fix: reject tag refs for main snapshot ref (#745)
zhjwpku Jun 16, 2026
1777794
feat: implement RenameTable in InMemoryCatalog (#742)
WZhuo Jun 16, 2026
40cc992
feat(hive): vendor Hive Metastore IDL and generated bindings (#749)
MisterRaindrop Jun 16, 2026
2169e31
feat(rest): add session-aware REST catalog (#750)
wgtmac Jun 16, 2026
fc9781f
fix(rest): reject empty namespace separators (#740)
fallintoplace Jun 16, 2026
a2bbf18
fix: validate truncate widths in utility entrypoints (#739)
fallintoplace Jun 17, 2026
cf0af5b
fix: cast to unsigned char in ASCII case conversion (#748)
goel-skd Jun 17, 2026
8bbda0c
feat: implement purge support in DropTable for InMemoryCatalog and Sq…
WZhuo Jun 17, 2026
92feae1
fix: fast append should not contain deleted file during retry process…
HuaHuaY Jun 18, 2026
9a2e21d
fix: skip only null partition value rows in ParseDataFile (#756)
WZhuo Jun 18, 2026
6f50a39
feat: add uniqueValue optimization for notEq/notIn in InclusiveMetric…
WZhuo Jun 18, 2026
6452715
fix: MergingSnapshotUpdate should not contain deleted file during ret…
HuaHuaY Jun 18, 2026
950fbff
chore(ci): enable sccache for Meson Windows builds (#761)
zhjwpku Jun 19, 2026
255657b
feat: add merge append (#699)
zhjwpku Jun 20, 2026
e9a68b7
fix(rest): avoid default catalog reference cycle (#764)
lishuxu Jun 20, 2026
6f503f9
feat: add DeleteFiles update API (#709)
manuzhang Jun 21, 2026
82b0adb
chore: make pre-commit and ci clang-format version consistent (#769)
HuaHuaY Jun 22, 2026
28163ce
feat: parallelize reading manifests (#697)
HuaHuaY Jun 22, 2026
a38e0cd
feat(logging): add Logger interface and default logger (#723)
kamcheungting-db Jun 22, 2026
0aff5e9
ci: cache vcpkg packages on Windows builds (#766)
abnobdoss Jun 22, 2026
42b498f
ci: cancel superseded runs in remaining workflows (#767)
abnobdoss Jun 22, 2026
7fe2e93
CI: Check ASF action allowlist on every PR (#772)
ebyhr Jun 22, 2026
5c8c4e5
fix(rest): align error handlers with Java implementation (#763)
zhjwpku Jun 23, 2026
f38090e
ci: cache the sccache directory across C++ test builds (#765)
abnobdoss Jun 23, 2026
959fda6
feat: add Iceberg v3 type definitions (#752)
zhjwpku Jun 23, 2026
5ac5246
fix: allow historical sort orders with dropped fields (#762)
zhjwpku Jun 23, 2026
af4b76f
feat: add StoredLength method to PositionOutputStream (#773)
HuaHuaY Jun 23, 2026
f6f9951
ci: upgrade to ubuntu-26.04 image (#771)
HuaHuaY Jun 23, 2026
ed051a7
feat: add row delta update (#721)
manuzhang Jun 23, 2026
3c9d13d
feat(update): add OverwriteFiles for overwrite snapshot commits (#741)
lishuxu Jun 24, 2026
988f363
feat: parallelize update and scan processing (#770)
HuaHuaY Jun 24, 2026
3e8203e
fix(update): clean up delete files from expired manifests (#779)
wgtmac Jun 24, 2026
411c0f8
feat(logging): add CerrLogger std::cerr backend (#724)
kamcheungting-db Jun 24, 2026
a1f3514
feat(hive): add iceberg_hive library with bundled/system thrift depen…
MisterRaindrop Jun 25, 2026
bb5cab5
ci: cache cpp-linter build (#782)
zhjwpku Jun 26, 2026
8d72abb
build: add Makefile clean target (#784)
manuzhang Jun 26, 2026
9a7439c
chore: align table metadata JSON fixtures with Java (#781)
zhjwpku Jun 26, 2026
90a2be7
refactor(serde): return Result from ToJson schema/type/metadata seria…
huan233usc Jun 27, 2026
75bef3f
feat(rest): support vended storage credentials (#719)
plusplusjiajia Jun 27, 2026
e516a75
fix: invalidate table scan schema cache (#758)
fallintoplace Jun 28, 2026
dd0db17
chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 (#789)
dependabot[bot] Jun 29, 2026
b65352a
build: silence benign MSVC C4251/C4275 dll-interface warnings (#768)
abnobdoss Jun 29, 2026
10c08b2
ci: key Windows sccache cache on MSVC version (#787)
abnobdoss Jun 29, 2026
3664d99
chore(deps): bump zizmorcore/zizmor-action from 0.5.6 to 0.5.7 (#788)
dependabot[bot] Jun 29, 2026
881b3b5
feat: represent, serialize and validate v3 column default values (#746)
huan233usc Jun 29, 2026
93577b3
feat: parallelize writing manifests (#778)
HuaHuaY Jun 29, 2026
68ee0f4
fix(scan): reject missing column stats fields (#759)
fallintoplace Jun 30, 2026
c65a806
feat: write snapshot v3 row lineage fields at top level (#791)
wgtmac Jun 30, 2026
61400e8
feat: implement RewriteFiles operation (#751)
WZhuo Jun 30, 2026
7c4f15c
feat: Support UUID values across row and file IO (#790)
zhjwpku Jul 1, 2026
9fb4a2b
feat: add ArrowRowBuilder for materializing Arrow batches (#780)
WZhuo Jul 1, 2026
9bf1ba1
feat: retry stale v3 snapshot row-lineage validation (#794)
wgtmac Jul 1, 2026
d5367b5
feat(rest): add SslConfig and SslConfigFromProperties parser
mmaslankaprv Jul 1, 2026
8188af6
style(rest): apply clang-format to SslConfig declaration and test inc…
mmaslankaprv Jul 1, 2026
82b0348
feat(rest): apply SslConfig to all cpr HTTP requests
mmaslankaprv Jul 1, 2026
00818da
feat(rest): plumb ssl.* catalog properties into HttpClient
mmaslankaprv Jul 1, 2026
b994dc6
fix(test): use ToBranch instead of non-existent SetTargetBranch
mmaslankaprv Jul 1, 2026
71a928f
merge(main): supersede main with rebased-upstream branch
mmaslankaprv Jul 2, 2026
da18cf0
fix(parquet): use Status-returning FileReader::Make for Arrow 22 compat
mmaslankaprv Jul 2, 2026
13d4981
feat(rest/auth): re-add configurable OAuth2 token-refresh margin
mmaslankaprv Jul 2, 2026
8e62913
feat(rest): add RestCatalog::Make overload with injectable FileIO
mmaslankaprv Jul 2, 2026
75ffc2d
fix(parquet): select FileReader::Make overload by Arrow version
mmaslankaprv Jul 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .github/.licenserc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,7 @@ header:
- 'requirements.txt'
- 'src/iceberg/util/murmurhash3_internal.*'
- 'src/iceberg/test/resources/**'
- 'src/iceberg/catalog/hive/gen-cpp/**'
- 'thirdparty/**'

comment: on-failure
28 changes: 28 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "sunday"
cooldown:
default-days: 7
44 changes: 44 additions & 0 deletions .github/workflows/asf-allowlist-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

# Verifies all GitHub Actions refs are on the ASF allowlist.
# Actions not on the allowlist silently fail with "Startup failure" — no logs,
# no notifications, and PRs may appear green because no checks ran.
# See https://github.com/apache/infrastructure-actions/issues/574
name: "ASF Allowlist Check"

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
push:
branches:
- main

permissions:
contents: read

jobs:
asf-allowlist-check:
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
runs-on: ubuntu-slim
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- uses: apache/infrastructure-actions/allowlist-check@4e9c961f587f72b170874b6f5cd4ac15f7f26eb8
215 changes: 215 additions & 0 deletions .github/workflows/aws_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

name: AWS Tests

on:
push:
branches:
- '**'
- '!dependabot/**'
tags:
- '**'
pull_request:
types: [opened, synchronize, reopened, ready_for_review]

concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true

permissions:
contents: read

env:
ICEBERG_HOME: /tmp/iceberg

jobs:
aws:
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
name: AWS (${{ matrix.title }})
runs-on: ${{ matrix.runs-on }}
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
include:
- title: Ubuntu 26.04, S3 + SigV4, bundled AWS SDK
runs-on: ubuntu-26.04
CC: gcc-14
CXX: g++-14
s3: "ON"
sigv4: "ON"
bundle_awssdk: "ON"
- title: Ubuntu 26.04, S3 + SigV4, system AWS SDK
runs-on: ubuntu-26.04
CC: gcc-14
CXX: g++-14
s3: "ON"
sigv4: "ON"
bundle_awssdk: "OFF"
aws-sdk-features: core,config,s3,identity-management,sts,transfer
- title: macOS 26 ARM64, S3, bundled AWS SDK
runs-on: macos-26
s3: "ON"
sigv4: "OFF"
bundle_awssdk: "ON"
env:
ICEBERG_TEST_S3_URI: s3://iceberg-test
AWS_ACCESS_KEY_ID: minio
AWS_SECRET_ACCESS_KEY: minio123
AWS_DEFAULT_REGION: us-east-1
AWS_ENDPOINT_URL: http://127.0.0.1:9000
AWS_EC2_METADATA_DISABLED: "TRUE"
SCCACHE_DIR: ${{ github.workspace }}/.sccache
SCCACHE_CACHE_SIZE: "2G"
steps:
- name: Checkout iceberg-cpp
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Install dependencies on Ubuntu
if: ${{ startsWith(matrix.runs-on, 'ubuntu') }}
shell: bash
run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev libjitterentropy3-dev
- name: Cache vcpkg packages
if: ${{ startsWith(matrix.runs-on, 'ubuntu') && matrix.bundle_awssdk == 'OFF' }}
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
id: vcpkg-cache
with:
path: /usr/local/share/vcpkg/installed
key: vcpkg-x64-linux-aws-sdk-cpp-s3-${{ matrix.s3 }}-sigv4-${{ matrix.sigv4 }}-${{ hashFiles('.github/workflows/aws_test.yml') }}
- name: Install AWS SDK via vcpkg
if: ${{ startsWith(matrix.runs-on, 'ubuntu') && matrix.bundle_awssdk == 'OFF' && steps.vcpkg-cache.outputs.cache-hit != 'true' }}
shell: bash
# Retry to ride out transient GitHub/mirror download failures (504s).
run: |
for attempt in 1 2 3; do
if vcpkg install "aws-sdk-cpp[${{ matrix.aws-sdk-features }}]:x64-linux"; then
exit 0
fi
echo "::warning::vcpkg install failed (attempt ${attempt}/3), retrying in 30s"
sleep 30
done
echo "::error::vcpkg install failed after 3 attempts"
exit 1
- name: Set Ubuntu Compilers
if: ${{ startsWith(matrix.runs-on, 'ubuntu') }}
run: |
echo "CC=${{ matrix.CC }}" >> $GITHUB_ENV
echo "CXX=${{ matrix.CXX }}" >> $GITHUB_ENV
- name: Start MinIO
if: ${{ matrix.s3 == 'ON' }}
shell: bash
run: bash ci/scripts/start_minio.sh
- name: Restore sccache cache
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: ${{ github.workspace }}/.sccache
key: sccache-aws-${{ matrix.runs-on }}-bundle${{ matrix.bundle_awssdk }}-s3${{ matrix.s3 }}-sigv4${{ matrix.sigv4 }}-${{ github.run_id }}
restore-keys: |
sccache-aws-${{ matrix.runs-on }}-bundle${{ matrix.bundle_awssdk }}-s3${{ matrix.s3 }}-sigv4${{ matrix.sigv4 }}-
- name: Setup sccache
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
- name: Build and test Iceberg
shell: bash
env:
CMAKE_TOOLCHAIN_FILE: ${{ startsWith(matrix.runs-on, 'ubuntu') && matrix.bundle_awssdk == 'OFF' && '/usr/local/share/vcpkg/scripts/buildsystems/vcpkg.cmake' || '' }}
run: ci/scripts/build_iceberg.sh "$(pwd)" OFF ON ${{ matrix.s3 }} ${{ matrix.sigv4 }} ${{ matrix.bundle_awssdk }}
- name: Show sccache stats
shell: bash
run: sccache --show-stats
- name: Save sccache cache
if: github.ref == 'refs/heads/main'
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: ${{ github.workspace }}/.sccache
key: sccache-aws-${{ matrix.runs-on }}-bundle${{ matrix.bundle_awssdk }}-s3${{ matrix.s3 }}-sigv4${{ matrix.sigv4 }}-${{ github.run_id }}

# Exercise the Meson build with SigV4 enabled (resolves aws-cpp-sdk-core via
# its CMake config, not pkg-config whose Cflags force -std=c++11).
meson-sigv4:
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
name: Meson SigV4 (AMD64 Ubuntu 26.04)
runs-on: ubuntu-26.04
timeout-minutes: 45
env:
SCCACHE_DIR: ${{ github.workspace }}/.sccache
SCCACHE_CACHE_SIZE: "2G"
steps:
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3.x'
- name: Checkout iceberg-cpp
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Install build dependencies
shell: bash
run: |
sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev libjitterentropy3-dev
python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txt
- name: Cache vcpkg packages
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
id: vcpkg-cache
with:
path: /usr/local/share/vcpkg/installed
key: vcpkg-x64-linux-aws-sdk-cpp-core-${{ hashFiles('.github/workflows/aws_test.yml') }}
- name: Install AWS SDK via vcpkg
if: ${{ steps.vcpkg-cache.outputs.cache-hit != 'true' }}
shell: bash
# Retry to ride out transient GitHub/mirror download failures (504s).
run: |
for attempt in 1 2 3; do
if vcpkg install aws-sdk-cpp[core]:x64-linux; then
exit 0
fi
echo "::warning::vcpkg install failed (attempt ${attempt}/3), retrying in 30s"
sleep 30
done
echo "::error::vcpkg install failed after 3 attempts"
exit 1
- name: Set Ubuntu Compilers
# Wrap the compiler with sccache: Meson uses an explicit CC/CXX verbatim,
# so the launcher must be prepended here to route compiles through sccache.
run: |
echo "CC=sccache gcc-14" >> $GITHUB_ENV
echo "CXX=sccache g++-14" >> $GITHUB_ENV
- name: Restore sccache cache
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: ${{ github.workspace }}/.sccache
key: sccache-meson-sigv4-${{ github.run_id }}
restore-keys: |
sccache-meson-sigv4-
- name: Setup sccache
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
- name: Build and test Iceberg
shell: bash
env:
CMAKE_PREFIX_PATH: /usr/local/share/vcpkg/installed/x64-linux
run: |
meson setup builddir -Dsigv4=enabled
meson compile -C builddir
sccache --show-stats
meson test -C builddir --timeout-multiplier 0 --print-errorlogs
- name: Save sccache cache
if: github.ref == 'refs/heads/main'
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: ${{ github.workspace }}/.sccache
key: sccache-meson-sigv4-${{ github.run_id }}
47 changes: 0 additions & 47 deletions .github/workflows/ci.yml

This file was deleted.

20 changes: 13 additions & 7 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,23 @@ name: "CodeQL"

on:
push:
branches:
- main
branches: [ "main" ]
pull_request:
branches:
- main
types: [opened, synchronize, reopened, ready_for_review]
branches: [ "main" ]
schedule:
- cron: '16 4 * * 1'

concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true

permissions:
contents: read

jobs:
analyze:
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
name: Analyze Actions
runs-on: ubuntu-slim
permissions:
Expand All @@ -43,14 +47,16 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false

- name: Initialize CodeQL
uses: github/codeql-action/init@v4
uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
with:
languages: actions

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
with:
category: "/language:actions"
Loading
Loading