Apache Iceberg Python 0.11.0 Release
The Apache Iceberg community is pleased to announce the 0.11.0 release of Apache Iceberg Python. This release includes over 380 pull requests from 50+ contributors, including 28 first-time contributors.
These notes cover the highlights. For the full list, see the changelog.
Release Highlights🔗
Reads and Writes🔗
- DeleteFileIndex for faster delete file lookups
- Generator-based writes to reduce memory pressure
- Relaxed
field-idconstraint onadd_files - Connection reuse for remote S3 signing
- Multi-process safe ExecutorFactory
- Fixed O(N²) manifest cache growth
Snapshot Management🔗
Catalog Improvements🔗
- Entra ID (Azure AD) auth manager
- Configurable namespace separator for REST catalogs and a new
namespace_existsmethod rename_tablenow validates source and destination namespaces exist- X-Client-Version header on REST requests
- AWS profile support for Glue and fsspec S3 FileIO
anonproperty for fsspec ADLS FileIO and S3addressing_stylesupport
ORC Read Support🔗
Full ORC read support was added to the PyArrow I/O layer.
Sort Order Evolution🔗
Sort order can now be updated on existing tables without recreating them.
Supported Endpoints in ConfigResponse🔗
REST catalogs can now declare which endpoints they support via the ConfigResponse. The client checks operations against that set, falling back to defaults for older servers that don't return the field. If you call something the server doesn't support, you get a clear error instead of a cryptic failure.
REST Scan Planning🔗
Table scans can now be planned server-side by REST catalogs. This release adds synchronous planning where the client sends a scan request and the server returns file scan tasks to be read. Async planning (submit, poll, cancel) is planned for a future release.
Breaking Changes🔗
Infrastructure Improvements🔗
- Python 3.13 support
- aarch64 wheel builds
- Migrated to UV for dependency management
- pyiceberg-core 0.8.0 with DataFusion 51
Contributors🔗
$ git shortlog --perl-regexp --author='^((?!dependabot\[bot\]).*)$' -sn pyiceberg-0.10.0..pyiceberg-0.11.0
44 Kevin Liu
30 Drew Gallardo
19 Alex Stephen
16 Fokko Driesprong
6 Gabriel Igliozzi
4 Aniket
4 Neelesh Salian
4 Soham
4 Somasundaram Sekar
3 Brad Cannon
3 Jaime Fernández
3 Manu Zhang
2 Luke Fitzgerald
2 Yujiang Zhong
1 Alex
1 Anton-Tarazi
1 Bharath Krishna
1 Ehsan Totoni
1 Elton SV
1 FANNG
1 Gowthami B
1 Grégoire Clément
1 Hanzhi Wang
1 Honah (Jonas) J.
1 Ian Atkinson
1 Jayce Slesar
1 Jiajia Li
1 Kevin Jiao
1 Kyle Heath
1 Leandro Martelli
1 Luiz Otavio Vilas Boas Oliveira
1 NNSatyaKarthik
1 NikitaMatskevich
1 Quentin FLEURENT NAMBOT
1 Ragnar Dahlén
1 Raúl Cumplido
1 Stanley Law
1 Stats
1 Thomas Powell
1 Tiansu
1 Tom
1 Victorien
1 Yftach Zur
1 Yuya Ebihara
1 chao qian
1 fcfangcc
1 gmweaver
1 jeroko
1 jtuglu1
1 nathanbijleveld
1 vinjai
We thank all contributors for their efforts in making this release possible!
Getting Involved🔗
The PyIceberg project welcomes contributions. We use GitHub issues for tracking work and the Apache Iceberg Community Slack for discussions.
The easiest way to get started is to:
- Try PyIceberg with your workloads and report any issues you encounter
- Review the contributor guide
- Look for good first issues
For more information, visit the PyIceberg repository or the documentation.