Skip to content

v0.11.0

Latest

Choose a tag to compare

@kevinjqliu kevinjqliu released this 03 Nov 23:13
· 197 commits to main since this release
20eb0fe

What's Changed

  • chore(refactor): rename SnapshotProducer::manifest_file to produce_manifest_file_list by @dannycjones in #2596
  • chore(deps): Bump DataFusion to 54.0.0 by @xanderbailey in #2648
  • fix(reader): keep rows with a null equality-delete column value by @mbutrovich in #2781
  • feat(catalog-rest): parse server-advertised endpoints from GET /v1/config by @huan233usc in #2692
  • fix(spec): support float/double conversion in Datum::to() by @mbutrovich in #2783
  • feat(encryption): [11/N] KMS factory trait and catalog wiring by @xanderbailey in #2650
  • ci: fix the cargo-public-api double install by @abnobdoss in #2793
  • ci: drop unnecessary protoc installs by @abnobdoss in #2805
  • Infra: Group github/codeql-action bumps into a single dependabot PR by @ebyhr in #2800
  • chore(deps): Bump rand from 0.9.4 to 0.10.2 by @dependabot[bot] in #2818
  • chore(deps): Bump reqwest from 0.12.28 to 0.13.4 by @dependabot[bot] in #2810
  • chore(deps): Bump taiki-e/install-action from 2.82.2 to 2.82.9 by @dependabot[bot] in #2816
  • chore(deps): Bump astral-sh/setup-uv from 8.2.0 to 8.3.0 by @dependabot[bot] in #2817
  • chore(deps-dev): Bump huggingface-hub from 1.21.0 to 1.22.0 in /bindings/python by @dependabot[bot] in #2806
  • chore(deps): Bump crate-ci/typos from 1.47.2 to 1.48.0 by @dependabot[bot] in #2809
  • chore(deps): Bump the codeql-action group with 2 updates by @dependabot[bot] in #2808
  • fix(arrow): error on required field absent from data file with no default by @mbutrovich in #2797
  • chore(deps-dev): Bump datafusion from 52.3.0 to 54.0.0 in /bindings/python by @dependabot[bot] in #2807
  • docs: improve ancestors_between docs to make behaviour more clear by @xanderbailey in #2796
  • Include license and notice files in iceberg-storage-opendal crate by @ankane in #2823
  • fix(license): Add missing LICENSE and NOTICE symlinks for iceberg-cache-moka and iceberg-catalog-loader by @dannycjones in #2828
  • fix(writer): validate equality delete field ids by @u70b3 in #2723
  • feat: add support for _spec_id metadata column by @hsiang-c in #2695
  • feat(encryption) [9/N] Read encrypted parquet data-files by @xanderbailey in #2584
  • feat: Variant Support by @c-thiel in #2188
  • feat(spec): read timestamp_ns/timestamptz_ns default values in the Literal JSON codec by @c-thiel in #2832
  • refactor(encryption) standard encryption metadata should store SecureKey by @xanderbailey in #2834
  • chore(lint) check unused_qualifications by @xanderbailey in #2839
  • Return an error instead of panicking in inspect().manifests() when a partition source column was dropped by @anoopj in #2843
  • chore(deps): Bump reqwest from 0.12.28 to 0.13.4 by @dependabot[bot] in #2857
  • chore(deps): Bump taiki-e/install-action from 2.82.9 to 2.83.2 by @dependabot[bot] in #2855
  • chore(deps): Bump actions/stale from 10.3.0 to 10.4.0 by @dependabot[bot] in #2854
  • chore(deps): Bump astral-sh/setup-uv from 8.3.0 to 8.3.2 by @dependabot[bot] in #2853
  • chore(deps-dev): Bump huggingface-hub from 1.22.0 to 1.23.0 in /bindings/python by @dependabot[bot] in #2851
  • chore(deps): Bump the codeql-action group with 2 updates by @dependabot[bot] in #2852
  • chore(deps-dev): Bump pyarrow from 24.0.0 to 25.0.0 in /bindings/python by @dependabot[bot] in #2850
  • chore(deps): Bump regex from 1.12.4 to 1.13.0 by @dependabot[bot] in #2856
  • Add Python environment paths to .licenserc.yaml by @kevinjqliu in #2849
  • feat(encryption) [12/N] write encrypted manifest list by @aarushigupta132 in #2677
  • feat: add support for _pos metadata column by @hsiang-c in #2746
  • feat(arrow): recognize arrow.parquet.variant on schema import by @c-thiel in #2840
  • feat(catalog-rest): enforce negotiated endpoints for exists checks by @huan233usc in #2794
  • Skip partition pruning for manifests whose spec references a dropped source column by @anoopj in #2845
  • deps: bump to DataFusion 54.1.0 by @mbutrovich in #2872
  • feat: Honor write.metadata.path for metadata file locations by @zakariya-s in #2776
  • fix(transaction): de-duplicate file paths within a FastAppend batch by @SreeramGarlapati in #2509
  • fix(sql): return errors for invalid pool properties by @mattfaltyn in #2847
  • feat(encryption): support AES-256 keys for reading Parquet data files by @mbutrovich in #2878
  • fix(scan): don't treat data columns named pos or file_path as metadata columns by @LuciferYang in #2865
  • chore(ci) fix ruff lints failing in CI by @xanderbailey in #2885
  • feat(encryption) [13/N] Write encrypted manifest files by @xanderbailey in #2821
  • Cache partition-type resolvability and cover dropped-source-column skip by @anoopj in #2869
  • fix: avoid lost-wakeup hang when waiting for a positional delete load by @dhruvarya-db in #2859
  • feat: add history metadata table by @gmhelmold in #2825
  • chore(deps): Bump uuid from 1.23.4 to 1.24.0 by @dependabot[bot] in #2903
  • chore(deps): Bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in #2902
  • chore(deps): Bump taiki-e/install-action from 2.83.2 to 2.83.4 by @dependabot[bot] in #2900
  • chore(deps): Bump the codeql-action group with 2 updates by @dependabot[bot] in #2896
  • chore(deps): Bump actions/setup-python from 6.3.0 to 7.0.0 by @dependabot[bot] in #2898
  • chore(deps): Bump reqwest from 0.12.28 to 0.13.4 by @dependabot[bot] in #2899
  • chore(deps): Bump tokio from 1.52.3 to 1.53.0 by @dependabot[bot] in #2897
  • chore(deps-dev): Bump huggingface-hub from 1.23.0 to 1.24.0 in /bindings/python by @dependabot[bot] in #2895
  • chore(deps): Bump zizmorcore/zizmor-action from 0.5.7 to 0.6.0 by @dependabot[bot] in #2901
  • chore(ci): Update ASF allowlist check action dependency to track versioned releases by @dannycjones in #2914
  • fix(puffin): return DataInvalid instead of panicking on malformed footer length by @arpitjain099 in #2867
  • feat: add support for _partition metadata column by @parthchandra in #2668
  • chore: Add AI Disclosure section to PR template by @Kurtiscwright in #2926
  • feat(encryption): [16/N] Enable encryption for purge table by @xanderbailey in #2918
  • feat(encryption) [14/N] Read / Write Encrypted puffin files by @xanderbailey in #2822
  • feat(writer): URL encode field names for partition paths by @hsiang-c in #2875
  • chore(ci): Add check to Python release to verify workflow is running on expected tag by @dannycjones in #2912
  • feat: inherit data-file first_row_id on manifest read by @anoopj in #2922
  • fix(ci): install the wheel just built, not the published one by @toutane in #2949
  • chore(deps): Bump zizmorcore/zizmor-action from 0.6.0 to 0.6.1 by @dependabot[bot] in #2944
  • chore(deps): Bump taiki-e/install-action from 2.83.4 to 2.85.2 by @dependabot[bot] in #2943
  • chore(deps): Bump the codeql-action group with 2 updates by @dependabot[bot] in #2941
  • chore(deps): Bump astral-sh/setup-uv from 8.3.2 to 9.0.0 by @dependabot[bot] in #2942
  • chore(deps): Bump rand from 0.9.5 to 0.10.2 by @dependabot[bot] in #2946
  • chore(deps): Bump reqwest from 0.12.28 to 0.13.4 by @dependabot[bot] in #2945
  • feat: carry first_row_id and data sequence number on FileScanTask by @anoopj in #2952
  • chore(deps): bump opendal from 0.57 to 0.58 by @Xuanwo in #2953
  • feat(writer): Support ObjectStorageLocationGenerator by @hsiang-c in #2871
  • INFRA: Use PR titles for squash commits by @kevinjqliu in #2957
  • Add SessionCatalog trait by @DerGut in #2836
  • fix: mark _row_id and _last_updated_sequence_number optional by @anoopj in #2959
  • feat(parquet): wire in additional parquet writer settings by @xanderbailey in #2887
  • chore(ci): pin rust-cache version by @CTTY in #2973
  • chore(deps): Bump http from 1.4.2 to 1.5.0 by @dependabot[bot] in #2984
  • chore(deps): Bump actions/stale from 10.4.0 to 11.0.0 by @dependabot[bot] in #2982
  • chore(deps): Bump taiki-e/install-action from 2.85.2 to 2.85.7 by @dependabot[bot] in #2981
  • chore(deps): Bump reqwest from 0.12.28 to 0.13.4 by @dependabot[bot] in #2983
  • chore(deps): Bump zizmorcore/zizmor-action from 0.6.1 to 0.6.2 by @dependabot[bot] in #2980
  • chore(deps): Bump the codeql-action group with 2 updates by @dependabot[bot] in #2979
  • feat: materialize _last_updated_sequence_number metadata column by @anoopj in #2966
  • chore(deps-dev): Bump huggingface-hub from 1.24.0 to 1.26.0 in /bindings/python by @dependabot[bot] in #2978
  • fix(datafusion): IcebergWriteExec emits incorrect schema by @NoahKusaba in #2975
  • Add an internal Properties derive macro by @blackmwk in #2970
  • fix(gcs): Fix GCS host property by @xanderbailey in #2965
  • fix: Address property macro review follow-ups by @blackmwk in #2987
  • feat: coalesce physically-stored _last_updated_sequence_number by @anoopj in #2985
  • feat!(rest): introduce AuthManager/AuthSession and migrate OAuth2 by @plusplusjiajia in #2838
  • Rename RestContext to RestClient by @DerGut in #2994
  • fix: avoid full scan for metadata-only projections with _pos by @anoopj in #2995
  • refactor: Move SensitiveBytes and Credential into shared module by @DerGut in #2971
  • chore(deps): Bump taiki-e/install-action from 2.85.7 to 2.85.11 by @dependabot[bot] in #3010
  • chore(deps): Bump reqwest from 0.12.28 to 0.13.4 by @dependabot[bot] in #3009
  • chore(deps): Bump crate-ci/typos from 1.48.0 to 1.49.0 by @dependabot[bot] in #3008
  • chore(deps): Bump the codeql-action group with 2 updates by @dependabot[bot] in #3006
  • chore(deps-dev): Bump huggingface-hub from 1.26.0 to 1.27.0 in /bindings/python by @dependabot[bot] in #3003
  • chore(deps): Bump syn from 2.0.118 to 2.0.119 by @dependabot[bot] in #3007
  • chore(deps): Bump minijinja from 2.21.0 to 2.23.0 by @dependabot[bot] in #3005
  • chore(deps): Bump reqsign-core from 3.2.1 to 3.3.0 by @dependabot[bot] in #3004
  • Add RestSessionCatalog by @DerGut in #2920
  • fix(transform): floor nanosecond timestamps before bucket hashing by @fallintoplace in #2891
  • feat(encryption) [15/N] write encrypted parquet data files by @aarushigupta132 in #2701
  • feat(delete-vector): [1/N] decode deletion-vector-v1 puffin blobs by @mbutrovich in #2866
  • fix: update h2 to 0.4.16 by @DerGut in #3020
  • feat: Derive TableProperties parsing by @blackmwk in #2988
  • feat(rest): wrap catalog responses in HttpResponse by @plusplusjiajia in #2996
  • perf(manifest): reuse the partition type across entries instead of rebuilding by @anoopj in #3028
  • Feat Positional Delete by file path by @Kurtiscwright in #3024
  • fix(transform): support hour transform for nanosecond arrays by @mattfaltyn in #3026
  • refactor: Add manifest reader by @xanderbailey in #2884
  • refactor: Migrate TableProperties consumers to getters by @blackmwk in #2989
  • feature(encryption): [17/N] Enable encrypted writes by @xanderbailey in #3018
  • chore: Enable automatic review by GitHub Copilot on PRs on behalf of author by @dannycjones in #3031
  • docs: Update release guide based on retrospective of 0.10 releases by @dannycjones in #3037
  • chore(ci): Remove workflow trigger from publish.yml for PyPI publish, add note to release.md by @dannycjones in #3043
  • feat: support V0 iceberg_tables schema for SqlCatalog by @dannycjones in #3032
  • chore(deps): Bump serde_with from 3.21.0 to 3.22.0 by @dependabot[bot] in #3053
  • chore(deps): Bump astral-sh/setup-uv from 9.0.0 to 10.0.1 by @dependabot[bot] in #3052
  • chore(deps): Bump taiki-e/install-action from 2.85.11 to 2.86.1 by @dependabot[bot] in #3051
  • chore(deps): Bump the codeql-action group with 2 updates by @dependabot[bot] in #3049
  • chore(deps): Bump reqwest from 0.12.28 to 0.13.4 by @dependabot[bot] in #3050
  • chore(deps): Bump reqsign-aws-v4 from 3.1.0 to 3.2.0 by @dependabot[bot] in #3048
  • chore(deps-dev): Bump pyarrow from 25.0.0 to 25.0.1 in /bindings/python by @dependabot[bot] in #3047
  • fix(scan) case sensitive column resolution by @xanderbailey in #3059
  • perf(arrow): buffer positional-delete runs to drop per-row key allocation by @anoopj in #3015
  • build: allow the whole DataFusion 54 line by @plusplusjiajia in #3033
  • fix: Correct exempt list for issue staleness by @dannycjones in #3067
  • docs: fix references in public docs by @JosephLenton in #2937
  • feat(scan): [2/N] carry deletion-vector coordinates on FileScanTaskDeleteFile by @mbutrovich in #2868
  • perf(arrow): build repeated constant string/binary columns without per-row clones by @anoopj in #3080
  • chore: Update MSRV to Rust 1.95 by @dannycjones in #3083
  • chore(repo): Replace bug report version selector with freeform text field by @dannycjones in #2826
  • fix(sql): propagate catalog commit errors by @mattfaltyn in #3062
  • refactor: change from serialising a u64 to i64 by @JosephLenton in #3065
  • feat: add lazy property view macro by @blackmwk in #3044
  • refactor: parse table properties lazily by @blackmwk in #3030
  • feat: synthesize _row_id metadata column on read by @anoopj in #3058
  • chore(deps): Bump reqwest from 0.12.28 to 0.13.4 by @dependabot[bot] in #3116
  • chore(deps): Bump taiki-e/install-action from 2.86.1 to 2.86.6 by @dependabot[bot] in #3115
  • chore(deps): Bump the codeql-action group with 2 updates by @dependabot[bot] in #3114
  • chore(deps): Bump uuid from 1.24.0 to 1.25.0 by @dependabot[bot] in #3113
  • chore(deps-dev): Bump huggingface-hub from 1.27.0 to 1.28.0 in /bindings/python by @dependabot[bot] in #3112
  • fix(spec): reject unequal map default arrays by @mattfaltyn in #3110
  • Prune data columns for metadata-only projections by @anoopj in #3117
  • refactor(memory): derive catalog configuration from properties by @blackmwk in #3101
  • chore: Merge changes from 0.10.x to main by @dannycjones in #3074
  • chore(ci): Fail CI when a publishable crate is missing LICENSE or NOTICE by @dannycjones in #3084
  • refactor(scan): extract reusable scan functions by @xanderbailey in #3093
  • feat(io): make FileIO serializable by @blackmwk in #3090
  • refactor(scan): validate FileScanTask construction by @blackmwk in #3131
  • refactor(auth) Emphasize AuthManagers aren't shared between catalogs by @DerGut in #3086
  • fix(partition): Align DateTime Transform to Java's Implementation by @Kurtiscwright in #3022
  • feat(scan): [3/N] read and apply V3 deletion vectors by @mbutrovich in #3035
  • fix: Address merge conflicts raising Clippy issues (#3137) by @dannycjones in #3146
  • chore: Bump version to 0.11.0, update changelog by @dannycjones in #3138
  • fix: Fix CI failure due to integration test's Hive install by @dannycjones in #3196
  • chore: exclude repo-only files from the source archive by @dannycjones in #3197
  • fix: break dev-dependency cycle that blocks publishing iceberg-property-macro by @dannycjones in #3199
  • ci: pull MinIO images from Quay (#3202) by @dannycjones in #3220
  • ci: check new crates are reserved on crates.io before merge (#3185) by @dannycjones in #3218
  • chore: Update changelog for 0.11.0 RC2 by @dannycjones in #3219
  • 0.11.x backport: ci: fix Rust cache action casing (#3249) + replace MinIO with RustFS (#3273) by @xanderbailey in #3271
  • 0.11.x backport: fix(encryption) [18/N] wire in ags1 file length for tamper proofing #3236 by @xanderbailey in #3270
  • docs: note iceberg-datafusion move to Apache DataFusion in crate README by @dannycjones in #3491
  • chore(ci): Update PyPI publish action to ASF-approved v1.14.3 by @dannycjones in #3534
  • build: disable unused zstd legacy feature by @dannycjones in #3535
  • ci(python): bundle third-party licenses in pyiceberg-core wheels by @dannycjones in #3554
  • chore(deps): update dependencies to address security advisories by @dannycjones in #3558
  • chore: Update changelog for 0.11.0 RC3 by @dannycjones in #3559

New Contributors

Full Changelog: v0.10.1...v0.11.0