Skip to content

Commit bbc6849

Browse files
authored
Merge branch 'main' into manifest_adapter_impl
2 parents a0e342f + 0fc573a commit bbc6849

30 files changed

+2896
-118
lines changed

.github/workflows/rc.yml

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
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: RC
19+
on:
20+
push:
21+
tags:
22+
- '*-rc*'
23+
24+
concurrency:
25+
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
26+
cancel-in-progress: true
27+
permissions:
28+
contents: read
29+
30+
jobs:
31+
archive:
32+
name: Archive
33+
runs-on: ubuntu-latest
34+
timeout-minutes: 5
35+
steps:
36+
- name: Checkout
37+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
38+
39+
- name: Prepare for tag
40+
if: github.ref_type == 'tag'
41+
run: |
42+
version=${GITHUB_REF_NAME#v}
43+
version=${version%-rc*}
44+
rc=${GITHUB_REF_NAME##*-rc}
45+
echo "VERSION=${version}" >> ${GITHUB_ENV}
46+
echo "RC=${rc}" >> ${GITHUB_ENV}
47+
echo "VERSION=${version}"
48+
echo "RC=${rc}"
49+
50+
- name: Archive
51+
run: |
52+
ARCHIVE_FILE_NAME="apache-iceberg-cpp-${VERSION}"
53+
tar_gz="${ARCHIVE_FILE_NAME}.tar.gz"
54+
echo "TAR_GZ=${tar_gz}" >> ${GITHUB_ENV}
55+
git archive HEAD --prefix "${ARCHIVE_FILE_NAME}/" --output "${tar_gz}"
56+
sha512sum "${tar_gz}" > "${tar_gz}.sha512"
57+
58+
- name: Audit
59+
run: |
60+
dev/release/run_rat.sh "${TAR_GZ}"
61+
62+
- uses: actions/upload-artifact@v4
63+
with:
64+
name: archive
65+
path: |
66+
apache-iceberg-cpp-*
67+
68+
verify:
69+
name: Verify
70+
needs:
71+
- archive
72+
runs-on: ${{ matrix.os }}
73+
strategy:
74+
fail-fast: false
75+
matrix:
76+
os:
77+
- macos-15
78+
- ubuntu-24.04
79+
# - windows-latest
80+
steps:
81+
- name: Checkout
82+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
83+
84+
- uses: actions/download-artifact@v4
85+
with:
86+
name: archive
87+
88+
- name: Verify
89+
run: |
90+
tar_gz=$(echo apache-iceberg-cpp-*.tar.gz)
91+
version=${tar_gz#apache-iceberg-cpp-}
92+
version=${version%.tar.gz}
93+
version=${version%%-rc*}
94+
if [ "${GITHUB_REF_TYPE}" = "tag" ]; then
95+
rc=${GITHUB_REF_NAME##*-rc}
96+
else
97+
rc=100
98+
fi
99+
echo "VERSION=${version}"
100+
echo "RC=${rc}"
101+
# The verify_rc.sh script will untar and
102+
# run cmake, build, tests (ctest) and install
103+
VERIFY_SIGN=0 VERIFY_DOWNLOAD=0 dev/release/verify_rc.sh "${version}" "${rc}"
104+
env:
105+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
106+
107+
upload:
108+
name: Upload
109+
if: github.ref_type == 'tag'
110+
needs:
111+
- verify
112+
runs-on: ubuntu-latest
113+
permissions:
114+
contents: write
115+
steps:
116+
- name: Checkout
117+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
118+
119+
- uses: actions/download-artifact@v4
120+
with:
121+
name: archive
122+
123+
- name: Upload
124+
run: |
125+
gh release create ${GITHUB_REF_NAME} \
126+
--prerelease \
127+
--title "Apache Iceberg C++ ${GITHUB_REF_NAME}" \
128+
--generate-notes \
129+
--verify-tag \
130+
apache-iceberg-cpp-*.tar.gz \
131+
apache-iceberg-cpp-*.tar.gz.sha*
132+
env:
133+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/test.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,17 @@ jobs:
7575
name: AMD64 Windows 2022
7676
runs-on: windows-2022
7777
timeout-minutes: 30
78+
strategy:
79+
fail-fast: false
7880
steps:
7981
- name: Checkout iceberg-cpp
8082
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
8183
with:
8284
fetch-depth: 0
83-
- name: Install ZLIB
85+
- name: Install dependencies
8486
shell: cmd
8587
run: |
86-
vcpkg install zlib:x64-windows
88+
vcpkg install zlib:x64-windows nlohmann-json:x64-windows nanoarrow:x64-windows
8789
- name: Build Iceberg
8890
shell: cmd
8991
run: |

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ endif()
2424
list(PREPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules")
2525

2626
project(Iceberg
27-
VERSION 0.1.0
27+
VERSION 0.2.0
2828
DESCRIPTION "Iceberg C++ Project"
2929
LANGUAGES CXX)
3030

LICENSE

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,69 @@ The file src/iceberg/util/visit_type.h contains code adapted from
250250

251251
https://github.com/apache/arrow/blob/main/cpp/src/arrow/visit_type_inline.h
252252

253+
The file src/iceberg/util/decimal.h contains code adapted from
254+
255+
https://github.com/apache/arrow/blob/main/cpp/src/arrow/util/decimal.h
256+
257+
The file src/iceberg/util/decimal.cc contains code adapted from
258+
259+
https://github.com/apache/arrow/blob/main/cpp/src/arrow/util/decimal.cc
260+
253261
Copyright: 2016-2025 The Apache Software Foundation.
254262
Home page: https://arrow.apache.org/
255263
License: https://www.apache.org/licenses/LICENSE-2.0
264+
265+
--------------------------------------------------------------------------------
266+
267+
3rdparty dependency spdlog is statically linked in certain binary
268+
distributions. spdlog has the following license:
269+
270+
MIT License
271+
272+
Copyright (c) 2016 Gabi Melman
273+
274+
Permission is hereby granted, free of charge, to any person obtaining a copy
275+
of this software and associated documentation files (the "Software"), to deal
276+
in the Software without restriction, including without limitation the rights
277+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
278+
copies of the Software, and to permit persons to whom the Software is
279+
furnished to do so, subject to the following conditions:
280+
281+
The above copyright notice and this permission notice shall be included in all
282+
copies or substantial portions of the Software.
283+
284+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
285+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
286+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
287+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
288+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
289+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
290+
SOFTWARE.
291+
292+
--------------------------------------------------------------------------------
293+
294+
3rdparty dependency zlib is used by certain binary distributions. zlib has
295+
the following license:
296+
297+
zlib License
298+
299+
Copyright (c) 1995-2024 Jean-loup Gailly and Mark Adler
300+
301+
This software is provided 'as-is', without any express or implied
302+
warranty. In no event will the authors be held liable for any damages
303+
arising from the use of this software.
304+
305+
Permission is granted to anyone to use this software for any purpose,
306+
including commercial applications, and to alter it and redistribute it
307+
freely, subject to the following restrictions:
308+
309+
1. The origin of this software must not be misrepresented; you must not
310+
claim that you wrote the original software. If you use this software
311+
in a product, an acknowledgment in the product documentation would be
312+
appreciated but is not required.
313+
2. Altered source versions must be plainly marked as such, and must not be
314+
misrepresented as being the original software.
315+
3. This notice may not be removed or altered from any source distribution.
316+
317+
Jean-loup Gailly Mark Adler
318+

NOTICE

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,13 @@ This product includes code from smhasher
1212
This product includes code from Apache Arrow
1313
* Copyright 2016-2025 The Apache Software Foundation
1414
* https://github.com/apache/arrow
15+
16+
This product includes software developed by Gabi Melman
17+
* spdlog: Very fast, header-only/compiled, C++ logging library
18+
* Copyright (c) 2016 Gabi Melman
19+
* https://github.com/gabime/spdlog
20+
21+
This product includes software developed by Jean-loup Gailly and Mark Adler
22+
* zlib: A Massively Spiffy Yet Delicately Unobtrusive Compression Library
23+
* Copyright (c) 1995-2024 Jean-loup Gailly and Mark Adler
24+
* https://zlib.net/

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@
1717
~ under the License.
1818
-->
1919

20+
![Iceberg](https://iceberg.apache.org/assets/images/Iceberg-logo.svg)
21+
22+
[![Slack](https://img.shields.io/badge/chat-on%20Slack-brightgreen.svg)](https://apache-iceberg.slack.com/)
23+
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/apache/iceberg-cpp)
24+
2025
# Apache Iceberg™ C++
2126

2227
C++ implementation of [Apache Iceberg™](https://iceberg.apache.org/).

cmake_modules/IcebergBuildUtils.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ function(add_iceberg_lib LIB_NAME)
131131
endif()
132132

133133
if(LIB_INCLUDES)
134-
target_include_directories(${LIB_NAME}_shared SYSTEM PUBLIC ${ARG_EXTRA_INCLUDES})
134+
target_include_directories(${LIB_NAME}_shared PUBLIC ${ARG_EXTRA_INCLUDES})
135135
endif()
136136

137137
if(ARG_PRIVATE_INCLUDES)
@@ -179,7 +179,7 @@ function(add_iceberg_lib LIB_NAME)
179179
endif()
180180

181181
if(LIB_INCLUDES)
182-
target_include_directories(${LIB_NAME}_static SYSTEM PUBLIC ${ARG_EXTRA_INCLUDES})
182+
target_include_directories(${LIB_NAME}_static PUBLIC ${ARG_EXTRA_INCLUDES})
183183
endif()
184184

185185
if(ARG_PRIVATE_INCLUDES)

0 commit comments

Comments
 (0)