What's Changed
- chore(deps): Bump tempfile from 3.22.0 to 3.23.0 by @dependabot[bot] in #1717
- chore(deps): Bump rand from 0.8.5 to 0.9.2 by @dependabot[bot] in #1716
- chore(deps): Bump crate-ci/typos from 1.36.2 to 1.36.3 by @dependabot[bot] in #1715
- refactor: Improve REST catalog's authenticate method by @imor in #1712
- chore(deps): Bump serde_with from 3.14.0 to 3.14.1 by @dependabot[bot] in #1727
- refactor(writer): Refactor writers for the future partitioning writers by @CTTY in #1657
- Set lock on version of Pydantic by @Fokko in #1737
- chore(deps): Bump crate-ci/typos from 1.36.3 to 1.37.2 by @Standing-Man in #1734
- feat: support more partition transformations for PartitionSpec::partition_to_path by @mnpw in #1730
- chore: Update website for 0.7.0 by @CTTY in #1738
- feat(sql-catalog): implement register table for sql catalog by @Standing-Man in #1724
- fix: ensure CoalescePartitionsExec is enabled for IcebergCommitExec by @sgrebnov in #1723
- chore(deps): Bump regex from 1.11.2 to 1.12.1 by @dependabot[bot] in #1741
- chore(deps): Bump crate-ci/typos from 1.37.2 to 1.38.1 by @dependabot[bot] in #1740
- Improve
IcebergCommitExecto correctly populate properties/schema by @sgrebnov in #1721 - feat(spec): add
table_properties.rsto spec by @kaushiksrini in #1733 - chore(deps): Bump actions/stale from 10.0.0 to 10.1.0 by @dependabot[bot] in #1726
- docs: remove -src suffix from artifact name by @kevinjqliu in #1743
- feat(reader): Make ArrowReaderBuilder::new public by @mbutrovich in #1748
- feat(writer): Add clustered and fanout writer by @CTTY in #1735
- feat(catalog): impl builder for SqlCatalog by @335g in #1666
- fix: fix read parquert file when schema change by @chenzl25 in #1750
- docs: Fix broken orbstack and podman links in CONTRIBUTING.md by @petern48 in #1757
- chore(deps): Bump tokio from 1.47.1 to 1.48.0 by @dependabot[bot] in #1763
- chore(deps): Bump backon from 1.5.2 to 1.6.0 by @dependabot[bot] in #1762
- fix: global eq delete matching should apply to only strictly older files, and fix partition scoped matching to consider spec id by @amogh-jahagirdar in #1758
- chore(deps): Bump apache/skywalking-eyes from 0.7.0 to 0.8.0 by @dependabot[bot] in #1760
- chore(deps): Bump rust_decimal from 1.38.0 to 1.39.0 by @dependabot[bot] in #1761
- feat(datafusion): implement the project node to add the partition columns by @fvaleye in #1602
- fix: snapshot was producing empty summary by @imor in #1767
- docs: Add examples for PartitioningWriter by @CTTY in #1754
- feat(sqllogictest): Add support for iceberg datafusion sqllogictest integration by @lliangyu-lin in #1764
- fix(build): Pin home version after merging #1764 by @mbutrovich in #1783
- minor: Update Cargo.lock to add home by @CTTY in #1785
- chore(deps): Bump aws-sdk-s3tables from 1.40.0 to 1.41.0 by @dependabot[bot] in #1790
- chore(deps): Bump rand from 0.8.5 to 0.9.2 by @dependabot[bot] in #1789
- chore(deps): Bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #1788
- chore(deps): Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #1787
- fix(reader): filter row groups when FileScanTask contains byte ranges by @mbutrovich in #1779
- refactor(arrow,datafusion): Reuse PartitionValueCalculator in RecordBatchPartitionSplitter by @CTTY in #1781
- feat: Update Datafusion to v49 by @DerGut in #1704
- deps: unpin pydantic by @kevinjqliu in #1793
- feat(reader): Add Date32 support to RecordBatchTransformer create_column by @mbutrovich in #1792
- feat(catalog): Implement update_table for S3TablesCatalog by @CTTY in #1594
- feat: Update Datafusion to v50 by @DerGut in #1728
- ci: Migrate to uv for python by @Xuanwo in #1796
- ci: Relax msrv check thanks to rust 2024 by @Xuanwo in #1795
- ci: Don't dismiss stale review to make contribution easier by @Xuanwo in #1799
- add Makefile to bindings/python by @kevinjqliu in #1800
- chore: inline format args by @colinmarc in #1805
- refactor: Migrate from tera to minijinja by @Xuanwo in #1798
- fix(reader): fix position delete bugs with row group skipping by @mbutrovich in #1806
- feat(datafusion): implement the partitioning node for DataFusion to define the partitioning by @fvaleye in #1620
- feat(reader): Date32 from days since epoch for Literal:try_from_json by @mbutrovich in #1803
- chore(deps): Bump aws-sdk-glue from 1.125.0 to 1.126.0 by @dependabot[bot] in #1812
- chore(deps): Bump astral-sh/setup-uv from 6 to 7 by @dependabot[bot] in #1811
- chore(deps): Bump crate-ci/typos from 1.38.1 to 1.39.0 by @dependabot[bot] in #1810
- feat(reader): position-based column projection for Parquet files without field IDs (migrated tables) by @mbutrovich in #1777
- fix(reader): Equality delete files with partial schemas (containing only equality columns) by @mbutrovich in #1782
- infra: use apache/hive:4.0.0 as hive Dockerfile base image by @geruh in #1823
- fix: StructType fails to deserialize JSON with type field by @mbutrovich in #1822
- feat: Support for V3 Metadata by @c-thiel in #1682
- fix(reader): Support both position and equality delete files on the same FileScanTask by @mbutrovich in #1778
- feat(datafusion): Add TaskWriter for DataFusion by @CTTY in #1769
- fix: support reading compressed metadata by @colinmarc in #1802
- Support deserializing bytes by @Fokko in #1820
- fix: Bump CI Spark version to 3.5.7 by @mbutrovich in #1832
- infra: use python 3.12 for release by @kevinjqliu in #1836
- pyiceberg-core: create smaller artifacts by @kevinjqliu in #1841
- infra: add collaborators to .asf.yaml by @kevinjqliu in #1842
- pyiceberg-core: use pyo3 abi3-py310 by @kevinjqliu in #1843
- ci: parallelize unit test with matrix by @kevinjqliu in #1833
- pyiceberg-core: create even smaller artifacts by @kevinjqliu in #1844
- chore: Split values.rs into separate files by @mbutrovich in #1840
- feat(datafusion): Support
INSERT INTOpartitioned tables by @CTTY in #1827 - docs: Add Wrappers project to README by @burmecia in #1852
- feat(reader): Add PartitionSpec support to FileScanTask and RecordBatchTransformer by @mbutrovich in #1821
- feat(reader): null struct default values in create_column by @mbutrovich in #1847
- refactor: Remove redundant parameters from SnapshotProducer validation methods by @Li0k in #1853
- infra: add verbose=true to pypa/gh-action-pypi-publish by @kevinjqliu in #1846
- use RecordBatchTransformerBuilder instead of RecordBatchTransformer by @kevinjqliu in #1857
- chore(deps): Bump bytes from 1.10.1 to 1.11.0 by @dependabot[bot] in #1861
- chore(deps): Bump serde_with from 3.15.1 to 3.16.0 by @dependabot[bot] in #1859
- chore(deps): Bump fs-err from 3.1.3 to 3.2.0 by @dependabot[bot] in #1860
- chore(deps): Bump crate-ci/typos from 1.39.0 to 1.39.2 by @dependabot[bot] in #1858
- chore: Remove deprecated
remove_allin FileIO by @jonathanc-n in #1863 - infra: notify on github workflow failure by @kevinjqliu in #1870
- feat(reader): Add binary support to
get_arrow_datumfor equality deletes with binary type by @mbutrovich in #1848 - Raise concurrency errors properly for glue tables by @jembishop in #1875
- infra: add instructions for cleaning up testpypi artifacts by @kevinjqliu in #1855
- chore(deps): Bump actions/checkout from 5 to 6 by @dependabot[bot] in #1883
- Update apache-avro to v0.21.0 by @N-Boutaib in #1881
- docs: Clarify functionality of
SnapshotProduceOperationby @jonathanc-n in #1874 - feat(datafusion): Split IcebergTableProvider into static and non-static table provider by @CTTY in #1879
- infra: use new
del_branch_on_mergein .asf.yaml by @kevinjqliu in #1888 - Upgrade opendal to v0.55 by @dentiny in #1895
- chore(deps): Bump http from 1.3.1 to 1.4.0 by @dependabot[bot] in #1892
- chore(deps): Bump crate-ci/typos from 1.39.2 to 1.40.0 by @dependabot[bot] in #1891
- feat(datafusion): Add
sort_by_partitionto sort the input partitioned data by @CTTY in #1618 - rfc: Modularize
icebergImplementations by @Xuanwo in #1854 - refactor(writer): Make writer builders non-consuming in build by @leonzchang in #1889
- fix: Keep snapshot log on replace by @c-thiel in #1896
- chore(deps): Bump actions/stale from 10.1.0 to 10.1.1 by @dependabot[bot] in #1908
- feat(datafusion): Add sqllogictest for DataFusion INSERT INTO by @CTTY in #1887
- refactor: Drop smol runtime support by @Xuanwo in #1900
- chore(deps): Bump minijinja from 2.12.0 to 2.13.0 by @dependabot[bot] in #1909
- chore(deps): Bump uuid from 1.18.1 to 1.19.0 by @dependabot[bot] in #1910
- feat(core): Add support for
_filecolumn by @gbrgr in #1824 - feat: Make
resttypes public, add documentation by @c-thiel in #1901 - chore: bump MSRV to 1.88, fix warnings and clippy errors by @mbutrovich in #1902
- ci: Make s3tables ready for publish by @Xuanwo in #1916
- deps: bump DataFusion to 51, Arrow to 57, pyo to 0.26 by @mbutrovich in #1899
- fix: Serialize
split_offsetsas null when empty by @AndreaBozzo in #1906 - feat(catalog): Implement update_table for SqlCatalog by @lgingerich in #1911
- fix: Respect precision and scale for Decimal128 in value.rs by @mbutrovich in #1921
- fix: restore no-op logic in constants_map for NULL identity-partitioned columns by @mbutrovich in #1922
- fix: stack overflow when loading large equality deletes by @dojiong in #1915
- chore(deps): Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #1931
- chore(deps): Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #1932
- Remove wildcard pattern in exhaustive enums by @lgingerich in #1925
- fix: prioritize delete manifests to prevent scan deadlock by @dojiong in #1937
- feat: Include statistics for Reserved Fields by @Fokko in #1849
- Add case-sensitive support for equality deletes in DeleteFilter by @slfan1989 in #1930
- Bump to version 0.8.0 by @Xuanwo in #1938
- fix(website): Update expected messages by @CTTY in #1942
- feat: Implement shared delete file loading and caching for ArrowReader by @dojiong in #1941
- infra: license header check ignore target/ dir by @kevinjqliu in #1954
- infra: release script, validate proper ICEBERG_VERSION variable by @kevinjqliu in #1956
- refactor(arrow): Rename parameter in delete_filter for clarity by @robertmu in #1955
- feat(sqllogictest): use serde derived structs for schedule parsing by @AndreaBozzo in #1953
- fix: follow IEEE 754 totalOrder for
floatanddoubleby @Standing-Man in #1959 - fix: return proper error rather than persisting error message on snapshot by @Standing-Man in #1960
- feat(arrow): Convert Arrow schema to Iceberg schema with auto assigned field ids by @CTTY in #1928
- fix: MemoryCatalog to return absolute NamespaceIdents by @eickler in #1970
- fix(spec): Include delete file content to V3 manifest by @CTTY in #1979
- fix: fix typo check error by @Standing-Man in #1989
- Fix ci audit failure by @liurenjie1024 in #1988
- feat: make FanoutWriter writer configurable by @Standing-Man in #1962
- fix: Address RUSTSEC-2026-0001 by @liurenjie1024 in #1994
- chore(deps): Bump reqwest from 0.12.25 to 0.12.28 by @dependabot[bot] in #1983
- chore(deps): Bump rsa from 0.9.9 to 0.9.10 by @dependabot[bot] in #2004
- Bump to version 0.8.0 Round 2 by @Xuanwo in #1999
New Contributors
- @imor made their first contribution in #1712
- @Standing-Man made their first contribution in #1734
- @sgrebnov made their first contribution in #1723
- @kaushiksrini made their first contribution in #1733
- @mbutrovich made their first contribution in #1748
- @335g made their first contribution in #1666
- @petern48 made their first contribution in #1757
- @jembishop made their first contribution in #1875
- @N-Boutaib made their first contribution in #1881
- @leonzchang made their first contribution in #1889
- @gbrgr made their first contribution in #1824
- @lgingerich made their first contribution in #1911
- @dojiong made their first contribution in #1915
- @robertmu made their first contribution in #1955
- @eickler made their first contribution in #1970
Full Changelog: v0.7.0...v0.8.0