From 135ed3f5e9b0962276b7740efebc3e1b4fa1cfb8 Mon Sep 17 00:00:00 2001 From: Junwang Zhao Date: Sat, 13 Jun 2026 23:36:24 +0800 Subject: [PATCH 1/3] Docs: add blog post for C++ 0.3.0 release --- .../2026-06-14-iceberg-cpp-0.3.0-release.md | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 site/docs/blog/posts/2026-06-14-iceberg-cpp-0.3.0-release.md diff --git a/site/docs/blog/posts/2026-06-14-iceberg-cpp-0.3.0-release.md b/site/docs/blog/posts/2026-06-14-iceberg-cpp-0.3.0-release.md new file mode 100644 index 000000000000..5f8099922e5e --- /dev/null +++ b/site/docs/blog/posts/2026-06-14-iceberg-cpp-0.3.0-release.md @@ -0,0 +1,110 @@ +--- +date: 2026-06-14 +title: Apache Iceberg C++ 0.3.0 Release +slug: apache-iceberg-cpp-0.3.0-release +authors: + - iceberg-pmc +categories: + - release +--- + + + +The Apache Iceberg community is pleased to announce the 0.3.0 release of Apache [Iceberg C++](https://github.com/apache/iceberg-cpp). This release includes [over 140 pull requests](https://github.com/apache/iceberg-cpp/compare/v0.2.0...v0.3.0) from 23 contributors, including 11 first-time contributors. + +`iceberg-cpp` is a native C++ implementation of the Apache Iceberg table format, providing libraries for reading, writing, and managing Iceberg tables in C++ applications. + + + +## Release Highlights + +### Scan Planning and Data Access +- [Incremental scan APIs](https://github.com/apache/iceberg-cpp/pull/559), [incremental append scans](https://github.com/apache/iceberg-cpp/pull/590), and [incremental changelog scans](https://github.com/apache/iceberg-cpp/pull/611) for planning table changes between snapshots +- Merge-on-read data access with a [MOR file scan task reader](https://github.com/apache/iceberg-cpp/pull/657), [delete filter support](https://github.com/apache/iceberg-cpp/pull/650), and a [DeleteLoader for position and equality delete files](https://github.com/apache/iceberg-cpp/pull/610) +- [Column selection in table scan planning](https://github.com/apache/iceberg-cpp/pull/550), [server-side REST scan planning](https://github.com/apache/iceberg-cpp/pull/614), and [ManifestGroup file filtering](https://github.com/apache/iceberg-cpp/pull/664) +- [Roaring-based position bitmaps](https://github.com/apache/iceberg-cpp/pull/595), a [position delete index](https://github.com/apache/iceberg-cpp/pull/605), and [range coalescing for position deletes](https://github.com/apache/iceberg-cpp/pull/645) + +### Table Operations and Maintenance +- [MergingSnapshotUpdate](https://github.com/apache/iceberg-cpp/pull/682) for rewrite-style operations +- [SnapshotManager](https://github.com/apache/iceberg-cpp/pull/542) support and [retried transaction commits](https://github.com/apache/iceberg-cpp/pull/626) +- Snapshot expiration cleanup strategies for [reachable file cleanup](https://github.com/apache/iceberg-cpp/pull/592) and [incremental file cleanup](https://github.com/apache/iceberg-cpp/pull/648) +- [Partition statistics updates](https://github.com/apache/iceberg-cpp/pull/538) and [schema update mapping](https://github.com/apache/iceberg-cpp/pull/561) + +### Catalogs and Integrations +- REST catalog improvements including [initial OAuth2 support](https://github.com/apache/iceberg-cpp/pull/577), [OAuth2 token auto-refresh](https://github.com/apache/iceberg-cpp/pull/646), [Basic authentication](https://github.com/apache/iceberg-cpp/pull/564), [snapshot loading mode](https://github.com/apache/iceberg-cpp/pull/543), [namespace separators](https://github.com/apache/iceberg-cpp/pull/617), and [scan planning endpoints](https://github.com/apache/iceberg-cpp/pull/614) +- [S3 FileIO integration](https://github.com/apache/iceberg-cpp/pull/548) built on Arrow filesystem support +- [Streaming FileIO APIs](https://github.com/apache/iceberg-cpp/pull/641) and [bulk delete support](https://github.com/apache/iceberg-cpp/pull/659) for more efficient object-store operations +- [SQL catalog support](https://github.com/apache/iceberg-cpp/pull/693) backed by SQLite, PostgreSQL, and MySQL stores +- [Hive metastore build skeleton](https://github.com/apache/iceberg-cpp/pull/689) and [Hive 3.1 metastore Thrift IDL vendoring](https://github.com/apache/iceberg-cpp/pull/694) + +### Metrics and Observability +- [Scan and commit metrics reporting](https://github.com/apache/iceberg-cpp/pull/589), including report JSON serialization and reporter loading +- [Avro writer metrics](https://github.com/apache/iceberg-cpp/pull/604) and [Parquet writer metrics](https://github.com/apache/iceberg-cpp/pull/651) + +### Metadata and File Format Support +- Puffin support with [basic data structures](https://github.com/apache/iceberg-cpp/pull/588), [format constants and JSON serialization](https://github.com/apache/iceberg-cpp/pull/603), and [file reader/writer support](https://github.com/apache/iceberg-cpp/pull/624) +- Iceberg v3 support for the [unknown type](https://github.com/apache/iceberg-cpp/pull/662) and [nanosecond timestamp primitive types](https://github.com/apache/iceberg-cpp/pull/653) +- Expression serialization with [operation JSON serialization](https://github.com/apache/iceberg-cpp/pull/532), [expression JSON serialization](https://github.com/apache/iceberg-cpp/pull/553), and [typed literal binding after serialization](https://github.com/apache/iceberg-cpp/pull/562) +- [Secure UUID generation](https://github.com/apache/iceberg-cpp/pull/602) and [table UUID assignment during metadata creation](https://github.com/apache/iceberg-cpp/pull/713) + +### Build, Packaging, and Documentation +- New [`iceberg_data` library](https://github.com/apache/iceberg-cpp/pull/631) split alongside the core `iceberg` library +- CMake and Meson packaging fixes, including [shared package linkage fixes](https://github.com/apache/iceberg-cpp/pull/635), [Meson install headers](https://github.com/apache/iceberg-cpp/pull/684), and [installed generated version headers](https://github.com/apache/iceberg-cpp/pull/710) +- Dependency updates including [Arrow C++ 24](https://github.com/apache/iceberg-cpp/pull/623) and [nanoarrow 0.8](https://github.com/apache/iceberg-cpp/pull/558) +- Additional CI coverage for [S3/MinIO workflows](https://github.com/apache/iceberg-cpp/pull/642), [CodeQL](https://github.com/apache/iceberg-cpp/pull/567), and [Zizmor/ASF workflow checks](https://github.com/apache/iceberg-cpp/pull/618) + +## Contributors + +``` +$ git shortlog --perl-regexp --author='^((?!dependabot\[bot\]).*)$' -sn v0.2.0..v0.3.0 + 26 Gang Wu + 26 Junwang Zhao + 11 wzhuo + 8 Kevin Liu + 8 Xinli Shang + 7 Feiyang Li + 7 Zehua Zou + 6 lishuxu + 4 Innocent Djiofack + 4 liuxiaoyu + 3 Guotao Yu + 3 ZhaoXuan + 3 slfan1989 + 2 Manu Zhang + 2 Minh Vu + 2 Sebastian Baunsgaard + 2 SkylerLin + 2 姚军 + 1 Jiajia Li + 1 Maxim Zibitsker + 1 Sandeep Gottimukkala + 1 Sung Yun + 1 Yingfan Guo +``` + +This release welcomes 11 first-time contributors to Apache Iceberg C++: @evindj, @manuzhang, @mzibitsker, @fallintoplace, @gsandeep1241, @Baunsgaard, @linguoxuan, @sungwy, @sentomk, @zhaoxuan1994, and @SYaoJun. + +We thank all contributors for their efforts in making this release possible! + +## Roadmap for 0.4.0 + +The community is actively tracking the next release in [#637](https://github.com/apache/iceberg-cpp/issues/637), with a focus on filling out Iceberg v3 support and expanding table maintenance APIs. + +## Getting Involved + +We welcome questions and contributions from all interested. Issues can be filed on [GitHub](https://github.com/apache/iceberg-cpp/issues), and questions can be directed to GitHub or the [Iceberg dev mailing list](https://iceberg.apache.org/community/#mailing-lists). From 84c0aa144efe6aea92d05e748273b208895f381f Mon Sep 17 00:00:00 2001 From: Junwang Zhao Date: Sun, 14 Jun 2026 21:19:15 +0800 Subject: [PATCH 2/3] remove hive metastore build skeleton Co-authored-by: Gang Wu --- site/docs/blog/posts/2026-06-14-iceberg-cpp-0.3.0-release.md | 1 - 1 file changed, 1 deletion(-) diff --git a/site/docs/blog/posts/2026-06-14-iceberg-cpp-0.3.0-release.md b/site/docs/blog/posts/2026-06-14-iceberg-cpp-0.3.0-release.md index 5f8099922e5e..a0a5ee5f4e54 100644 --- a/site/docs/blog/posts/2026-06-14-iceberg-cpp-0.3.0-release.md +++ b/site/docs/blog/posts/2026-06-14-iceberg-cpp-0.3.0-release.md @@ -50,7 +50,6 @@ The Apache Iceberg community is pleased to announce the 0.3.0 release of Apache - [S3 FileIO integration](https://github.com/apache/iceberg-cpp/pull/548) built on Arrow filesystem support - [Streaming FileIO APIs](https://github.com/apache/iceberg-cpp/pull/641) and [bulk delete support](https://github.com/apache/iceberg-cpp/pull/659) for more efficient object-store operations - [SQL catalog support](https://github.com/apache/iceberg-cpp/pull/693) backed by SQLite, PostgreSQL, and MySQL stores -- [Hive metastore build skeleton](https://github.com/apache/iceberg-cpp/pull/689) and [Hive 3.1 metastore Thrift IDL vendoring](https://github.com/apache/iceberg-cpp/pull/694) ### Metrics and Observability - [Scan and commit metrics reporting](https://github.com/apache/iceberg-cpp/pull/589), including report JSON serialization and reporter loading From 5f4165cf4f333b7e0a408c6e1c5e2a4985a05eaf Mon Sep 17 00:00:00 2001 From: Junwang Zhao Date: Sun, 14 Jun 2026 21:36:17 +0800 Subject: [PATCH 3/3] resolve review comments --- .../posts/2026-06-14-iceberg-cpp-0.3.0-release.md | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/site/docs/blog/posts/2026-06-14-iceberg-cpp-0.3.0-release.md b/site/docs/blog/posts/2026-06-14-iceberg-cpp-0.3.0-release.md index a0a5ee5f4e54..ef409537dea3 100644 --- a/site/docs/blog/posts/2026-06-14-iceberg-cpp-0.3.0-release.md +++ b/site/docs/blog/posts/2026-06-14-iceberg-cpp-0.3.0-release.md @@ -36,7 +36,7 @@ The Apache Iceberg community is pleased to announce the 0.3.0 release of Apache ### Scan Planning and Data Access - [Incremental scan APIs](https://github.com/apache/iceberg-cpp/pull/559), [incremental append scans](https://github.com/apache/iceberg-cpp/pull/590), and [incremental changelog scans](https://github.com/apache/iceberg-cpp/pull/611) for planning table changes between snapshots - Merge-on-read data access with a [MOR file scan task reader](https://github.com/apache/iceberg-cpp/pull/657), [delete filter support](https://github.com/apache/iceberg-cpp/pull/650), and a [DeleteLoader for position and equality delete files](https://github.com/apache/iceberg-cpp/pull/610) -- [Column selection in table scan planning](https://github.com/apache/iceberg-cpp/pull/550), [server-side REST scan planning](https://github.com/apache/iceberg-cpp/pull/614), and [ManifestGroup file filtering](https://github.com/apache/iceberg-cpp/pull/664) +- [Column selection in table scan planning](https://github.com/apache/iceberg-cpp/pull/550) and [ManifestGroup file filtering](https://github.com/apache/iceberg-cpp/pull/664) - [Roaring-based position bitmaps](https://github.com/apache/iceberg-cpp/pull/595), a [position delete index](https://github.com/apache/iceberg-cpp/pull/605), and [range coalescing for position deletes](https://github.com/apache/iceberg-cpp/pull/645) ### Table Operations and Maintenance @@ -46,26 +46,19 @@ The Apache Iceberg community is pleased to announce the 0.3.0 release of Apache - [Partition statistics updates](https://github.com/apache/iceberg-cpp/pull/538) and [schema update mapping](https://github.com/apache/iceberg-cpp/pull/561) ### Catalogs and Integrations -- REST catalog improvements including [initial OAuth2 support](https://github.com/apache/iceberg-cpp/pull/577), [OAuth2 token auto-refresh](https://github.com/apache/iceberg-cpp/pull/646), [Basic authentication](https://github.com/apache/iceberg-cpp/pull/564), [snapshot loading mode](https://github.com/apache/iceberg-cpp/pull/543), [namespace separators](https://github.com/apache/iceberg-cpp/pull/617), and [scan planning endpoints](https://github.com/apache/iceberg-cpp/pull/614) +- REST catalog improvements including [initial OAuth2 support](https://github.com/apache/iceberg-cpp/pull/577), [OAuth2 token auto-refresh](https://github.com/apache/iceberg-cpp/pull/646), [Basic authentication](https://github.com/apache/iceberg-cpp/pull/564), [snapshot loading mode](https://github.com/apache/iceberg-cpp/pull/543), [namespace separators](https://github.com/apache/iceberg-cpp/pull/617), and [server-side REST scan planning endpoints](https://github.com/apache/iceberg-cpp/pull/614) - [S3 FileIO integration](https://github.com/apache/iceberg-cpp/pull/548) built on Arrow filesystem support -- [Streaming FileIO APIs](https://github.com/apache/iceberg-cpp/pull/641) and [bulk delete support](https://github.com/apache/iceberg-cpp/pull/659) for more efficient object-store operations +- FileIO interface enrichment with new [InputFile and OutputFile interfaces](https://github.com/apache/iceberg-cpp/pull/641) and [bulk delete support](https://github.com/apache/iceberg-cpp/pull/659) - [SQL catalog support](https://github.com/apache/iceberg-cpp/pull/693) backed by SQLite, PostgreSQL, and MySQL stores ### Metrics and Observability -- [Scan and commit metrics reporting](https://github.com/apache/iceberg-cpp/pull/589), including report JSON serialization and reporter loading +- Metrics reporter support with [report JSON serialization and reporter loading](https://github.com/apache/iceberg-cpp/pull/589) - [Avro writer metrics](https://github.com/apache/iceberg-cpp/pull/604) and [Parquet writer metrics](https://github.com/apache/iceberg-cpp/pull/651) ### Metadata and File Format Support - Puffin support with [basic data structures](https://github.com/apache/iceberg-cpp/pull/588), [format constants and JSON serialization](https://github.com/apache/iceberg-cpp/pull/603), and [file reader/writer support](https://github.com/apache/iceberg-cpp/pull/624) - Iceberg v3 support for the [unknown type](https://github.com/apache/iceberg-cpp/pull/662) and [nanosecond timestamp primitive types](https://github.com/apache/iceberg-cpp/pull/653) - Expression serialization with [operation JSON serialization](https://github.com/apache/iceberg-cpp/pull/532), [expression JSON serialization](https://github.com/apache/iceberg-cpp/pull/553), and [typed literal binding after serialization](https://github.com/apache/iceberg-cpp/pull/562) -- [Secure UUID generation](https://github.com/apache/iceberg-cpp/pull/602) and [table UUID assignment during metadata creation](https://github.com/apache/iceberg-cpp/pull/713) - -### Build, Packaging, and Documentation -- New [`iceberg_data` library](https://github.com/apache/iceberg-cpp/pull/631) split alongside the core `iceberg` library -- CMake and Meson packaging fixes, including [shared package linkage fixes](https://github.com/apache/iceberg-cpp/pull/635), [Meson install headers](https://github.com/apache/iceberg-cpp/pull/684), and [installed generated version headers](https://github.com/apache/iceberg-cpp/pull/710) -- Dependency updates including [Arrow C++ 24](https://github.com/apache/iceberg-cpp/pull/623) and [nanoarrow 0.8](https://github.com/apache/iceberg-cpp/pull/558) -- Additional CI coverage for [S3/MinIO workflows](https://github.com/apache/iceberg-cpp/pull/642), [CodeQL](https://github.com/apache/iceberg-cpp/pull/567), and [Zizmor/ASF workflow checks](https://github.com/apache/iceberg-cpp/pull/618) ## Contributors