Skip to content

Commit 57fe2dd

Browse files
authored
Merge branch 'main' into feature/implement-project-node-for-insert-into-datafusion
2 parents 7be558d + c5cb9d5 commit 57fe2dd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+6367
-5161
lines changed

.github/ISSUE_TEMPLATE/iceberg_bug_report.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ body:
2828
description: What Apache Iceberg Rust version are you using?
2929
multiple: false
3030
options:
31-
- 0.5.1 (latest version)
31+
- 0.6.0 (latest version)
32+
- 0.5.1
3233
- 0.4.0
3334
- 0.3.0
3435
- 0.2.0

.github/actions/overwrite-package-version/action.yml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,24 @@ runs:
3838
env:
3939
TIMESTAMP: ${{ inputs.timestamp }}
4040
run: |
41-
CURRENT_VERSION=$(python -c "import toml; print(toml.load('bindings/python/pyproject.toml')['project']['version'])")
42-
NEW_VERSION="${CURRENT_VERSION}.dev${TIMESTAMP}"
43-
NEW_VERSION=$NEW_VERSION python -c "
41+
# Read the current version from the Rust crate's Cargo.toml
42+
CURRENT_VERSION=$(python -c "import toml; print(toml.load('bindings/python/Cargo.toml')['package']['version'])")
43+
export NEW_VERSION="${CURRENT_VERSION}.dev${TIMESTAMP}"
44+
echo "Current version: ${CURRENT_VERSION}"
45+
echo "New dev version: ${NEW_VERSION}"
46+
47+
# Update bindings/python/pyproject.toml:
48+
# - Set project.version = NEW_VERSION
49+
# - Ensure 'version' is not listed in project.dynamic
50+
python -c "
4451
import toml
4552
import os
4653
config = toml.load('bindings/python/pyproject.toml')
47-
config['project']['version'] = os.environ['NEW_VERSION']
54+
new_version = os.environ['NEW_VERSION']
55+
config['project']['version'] = new_version
56+
if 'dynamic' in config['project']:
57+
config['project']['dynamic'] = [v for v in config['project']['dynamic'] if v != 'version']
4858
with open('bindings/python/pyproject.toml', 'w') as f:
4959
toml.dump(config, f)
50-
print(f'Updated version to: {config[\"project\"][\"version\"]}')
60+
print(f'Updated version to: {new_version}')
5161
"

.github/workflows/bindings_python_ci.yml

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,26 @@ on:
2222
branches:
2323
- main
2424
pull_request:
25-
branches:
26-
- main
25+
paths:
26+
- '**' # Include all files and directories in the repository by default.
27+
- '!.github/workflows/**' # Exclude all workflow files
28+
- '.github/workflows/bindings_python_ci.yml' # except the current file.
29+
- '!.github/actions/**' # Exclude custom actions
30+
- 'bindings/python/**' # Include source codes and its dependencies
31+
- '!crates/**'
32+
- 'crates/iceberg/**'
33+
- 'crates/integrations/datafusion/**'
34+
- '!.github/ISSUE_TEMPLATE/**' # Exclude files and directories that don't impact tests or code like templates, metadata, and documentation.
35+
- '!scripts/**'
36+
- '!website/**'
37+
- '!.asf.yml'
38+
- '!.gitattributes'
39+
- '!.gitignore'
40+
- '!CONTRIBUTING.md'
41+
- '!CHANGELOG.md'
42+
- '!LICENSE'
43+
- '!NOTICE'
44+
- '!README.md'
2745

2846
concurrency:
2947
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}

.github/workflows/ci.yml

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,22 @@ on:
2222
branches:
2323
- main
2424
pull_request:
25-
branches:
26-
- main
25+
paths:
26+
- '**' # Include all files and directories in the repository by default.
27+
- '!.github/workflows/**' # Exclude all workflow files
28+
- '.github/workflows/ci.yml' # except the current file.
29+
- '!.github/actions/**' # Exclude custom actions
30+
- '!.github/ISSUE_TEMPLATE/**' # Exclude files and directories that don't impact tests or code like templates, metadata, and documentation.
31+
- '!scripts/**'
32+
- '!website/**'
33+
- '!.asf.yml'
34+
- '!.gitattributes'
35+
- '!.gitignore'
36+
- '!CONTRIBUTING.md'
37+
- '!CHANGELOG.md'
38+
- '!LICENSE'
39+
- '!NOTICE'
40+
- '!README.md'
2741

2842
concurrency:
2943
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
@@ -155,19 +169,15 @@ jobs:
155169
runs-on: ubuntu-latest
156170
steps:
157171
- uses: actions/checkout@v5
158-
- name: Setup Nightly Rust toolchain
159-
uses: ./.github/actions/setup-builder
160172
- name: Install protoc
161173
uses: arduino/setup-protoc@v3
162174
with:
163175
repo-token: ${{ secrets.GITHUB_TOKEN }}
164-
- name: Generate minimal versions lockfile
165-
run: |
166-
cargo generate-lockfile -Z direct-minimal-versions
167176
- name: Setup MSRV Rust toolchain
168177
uses: ./.github/actions/setup-builder
169178
with:
170179
rust-version: ${{ env.rust_msrv }}
180+
- name: Setup Nightly Rust toolchain
181+
uses: ./.github/actions/setup-builder
171182
- name: Check MSRV
172-
run: |
173-
cargo +${{ env.rust_msrv }} check --locked --workspace
183+
run: make check-msrv

.github/workflows/website.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ on:
2222
branches:
2323
- main
2424
pull_request:
25-
branches:
26-
- main
25+
paths:
26+
- ".github/workflows/website.yml"
27+
- "website/**"
2728

2829
concurrency:
2930
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}

CHANGELOG.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,108 @@ All notable changes to this project will be documented in this file.
2424
The format is based on [Keep a Changelog](https://keepachangelog.com/)
2525
and this project adheres to [Semantic Versioning](https://semver.org/).
2626

27+
## [v0.7.0] - 2025-09-17
28+
29+
### Breaking Changes
30+
31+
* **API Changes:**
32+
* feat(writer): Make LocationGenerator partition-aware by @CTTY in https://github.com/apache/iceberg-rust/pull/1625
33+
* feat(catalog): Implement catalog loader for in memory by @lliangyu-lin in https://github.com/apache/iceberg-rust/pull/1623
34+
35+
### All Changes
36+
37+
* chore: expose field id mapping from schema by @dentiny in https://github.com/apache/iceberg-rust/pull/1498
38+
* Read ManifestList V1 with V2 projection. by @rambleraptor in https://github.com/apache/iceberg-rust/pull/1482
39+
* refine: refine the interface of SnapshotProducer by @ZENOTME in https://github.com/apache/iceberg-rust/pull/1490
40+
* feat(transaction): Add retry logic to transaction by @CTTY in https://github.com/apache/iceberg-rust/pull/1484
41+
* fix: Fix mock dependency by @dentiny in https://github.com/apache/iceberg-rust/pull/1507
42+
* Bump version to 0.6.0 (Round 1) by @Xuanwo in https://github.com/apache/iceberg-rust/pull/1506
43+
* feat(catalog): Add register_table to Catalog trait by @CTTY in https://github.com/apache/iceberg-rust/pull/1509
44+
* chore: Bump python version for release by @Xuanwo in https://github.com/apache/iceberg-rust/pull/1522
45+
* chore: Bump opendal to 0.54 by @Xuanwo in https://github.com/apache/iceberg-rust/pull/1524
46+
* Preparing 0.6.0 release (update dep list) by @Xuanwo in https://github.com/apache/iceberg-rust/pull/1525
47+
* chore: expose default schema id by @dentiny in https://github.com/apache/iceberg-rust/pull/1526
48+
* Add support for custom credential loader for S3 FileIO by @phillipleblanc in https://github.com/apache/iceberg-rust/pull/1528
49+
* docs: fix release process docs by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1538
50+
* fix: Use CatalogCommitConflicts for TableRequirement by @CTTY in https://github.com/apache/iceberg-rust/pull/1532
51+
* fix: retain metadata_location from StaticTable::into_table by @colinmarc in https://github.com/apache/iceberg-rust/pull/1536
52+
* infra: use `toml-cli` to manually set version in github action by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1537
53+
* refactor: Add `read_from()` and `write_to()` to `TableMetadata` by @CTTY in https://github.com/apache/iceberg-rust/pull/1523
54+
* Add `uv` instructions to `bindings/python/README.md` by @Fokko in https://github.com/apache/iceberg-rust/pull/1514
55+
* feat: append action allows snapshot properties by @dentiny in https://github.com/apache/iceberg-rust/pull/1534
56+
* feat(catalog): Implement `update_table` for `MemoryCatalog` by @CTTY in https://github.com/apache/iceberg-rust/pull/1549
57+
* fix ci. by @liurenjie1024 in https://github.com/apache/iceberg-rust/pull/1557
58+
* fix(writer): Fix current_written_size for ParquetWriter by @CTTY in https://github.com/apache/iceberg-rust/pull/1556
59+
* chore(deps): Bump tokio from 1.46.1 to 1.47.0 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1552
60+
* fix(parquet_writer): correctly update upper bound by @Erigara in https://github.com/apache/iceberg-rust/pull/1520
61+
* feat(core): Implement `RollingFileWriter` to help split data into multiple files by @CTTY in https://github.com/apache/iceberg-rust/pull/1547
62+
* Refactor: use metadatalocaiton:new_with_table_location in catalog create_table by @yingjianwu98 in https://github.com/apache/iceberg-rust/pull/1558
63+
* Updates Podman Instructions, Docker-Compose, & Spark Script by @Kurtiscwright in https://github.com/apache/iceberg-rust/pull/1553
64+
* Rest: Implement register table by @gabeiglio in https://github.com/apache/iceberg-rust/pull/1521
65+
* feat(iceberg-datafusion): make IcebergTableScan public by @colinmarc in https://github.com/apache/iceberg-rust/pull/1570
66+
* chore: upgrade roaring to 0.11 by @dentiny in https://github.com/apache/iceberg-rust/pull/1577
67+
* refactor: remove TrackWriter by @mapleFU in https://github.com/apache/iceberg-rust/pull/1575
68+
* feat(spec): Expose DataFile serde functions by @CTTY in https://github.com/apache/iceberg-rust/pull/1563
69+
* Finish Adding Default Implementations for V1→V2 by @Kurtiscwright in https://github.com/apache/iceberg-rust/pull/1579
70+
* feat: add bulk insertion to deletion vector by @dentiny in https://github.com/apache/iceberg-rust/pull/1578
71+
* Try infer file io scheme from metadata location ahead of warehouse path by @daiyy in https://github.com/apache/iceberg-rust/pull/1590
72+
* feat(datafusion): Add IcebergCommitExec to commit the written data files by @CTTY in https://github.com/apache/iceberg-rust/pull/1588
73+
* chore(deps): Bump actions/download-artifact from 4 to 5 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1593
74+
* feat(catalog): Add catalog loader and builder implementation for rest catalog by @lliangyu-lin in https://github.com/apache/iceberg-rust/pull/1580
75+
* chore(deps): Update typo to 1.35.3 by @Marvel-Gu in https://github.com/apache/iceberg-rust/pull/1597
76+
* minor: Update cargo lock for rest catalog loader by @CTTY in https://github.com/apache/iceberg-rust/pull/1596
77+
* feat(datafusion): Implement IcebergWriteExec for DataFusion write support by @CTTY in https://github.com/apache/iceberg-rust/pull/1585
78+
* feat(arrow): Allow ArrowArrayAccessor to use field.name to match fields by @CTTY in https://github.com/apache/iceberg-rust/pull/1561
79+
* fix(tests): resolve flaky catalog tests by waiting for S3 bucket creation by @fvaleye in https://github.com/apache/iceberg-rust/pull/1599
80+
* chore(deps): Bump actions/checkout from 4 to 5 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1613
81+
* chore(deps): Bump crate-ci/typos from 1.35.3 to 1.35.4 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1614
82+
* chore(deps): Bump uuid from 1.17.0 to 1.18.0 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1615
83+
* Refactor: remove unnecessary async for ArrowReader::read by @ZENOTME in https://github.com/apache/iceberg-rust/pull/1608
84+
* feat(catalog): implement catalog loader for glue by @lliangyu-lin in https://github.com/apache/iceberg-rust/pull/1603
85+
* Include license and notice files in published crates by @ankane in https://github.com/apache/iceberg-rust/pull/1601
86+
* docs: tidying; update version refs; describe various catalogues by @atcol in https://github.com/apache/iceberg-rust/pull/1616
87+
* feat(catalog): implement catalog loader for s3tables by @fvaleye in https://github.com/apache/iceberg-rust/pull/1598
88+
* feat(catalog): Implement catalog loader for hms by @lliangyu-lin in https://github.com/apache/iceberg-rust/pull/1612
89+
* feat(catalog): Implement update_table for GlueCatalog by @CTTY in https://github.com/apache/iceberg-rust/pull/1584
90+
* fix(schema): check if new schema field names conflict with existing partition field names by @fvaleye in https://github.com/apache/iceberg-rust/pull/1619
91+
* chore(deps): Bump crate-ci/typos from 1.35.4 to 1.35.5 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1629
92+
* chore(deps): Bump tempfile from 3.20.0 to 3.21.0 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1628
93+
* chore(deps): Bump aws-sdk-glue from 1.116.0 to 1.117.0 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1627
94+
* feat(catalog): Implement register_table for glue catalog by @Yiyang-C in https://github.com/apache/iceberg-rust/pull/1568
95+
* feat(catalog): Implement catalog loader for in memory by @lliangyu-lin in https://github.com/apache/iceberg-rust/pull/1623
96+
* feat(datafusion): Implement `insert_into` for `IcebergTableProvider` by @CTTY in https://github.com/apache/iceberg-rust/pull/1600
97+
* fix: await get catalog in datafusion integration test and update version in python binding by @lliangyu-lin in https://github.com/apache/iceberg-rust/pull/1635
98+
* chore: Replace async-std with smol by @manuzhang in https://github.com/apache/iceberg-rust/pull/1640
99+
* chore(deps): Bump tracing-subscriber from 0.3.19 to 0.3.20 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1637
100+
* chore(deps): Bump aws-sdk-s3tables from 1.35.0 to 1.36.0 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1642
101+
* chore(deps): Bump crate-ci/typos from 1.35.5 to 1.35.7 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1641
102+
* chore(deps): Bump aws-sdk-glue from 1.117.0 to 1.118.0 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1643
103+
* Allow V2 reader to read v1 manifests by @emkornfield in https://github.com/apache/iceberg-rust/pull/1634
104+
* feat(writer): Make LocationGenerator partition-aware by @CTTY in https://github.com/apache/iceberg-rust/pull/1625
105+
* feat(sqllogictest): Add sqllogictest schedule definition and parsing by @lliangyu-lin in https://github.com/apache/iceberg-rust/pull/1630
106+
* fix: Add support for unsigned Arrow datatypes in schema conversion by @gkpanda4 in https://github.com/apache/iceberg-rust/pull/1617
107+
* Partition Writer Support Part 1: add partition splitter by @ZENOTME in https://github.com/apache/iceberg-rust/pull/1040
108+
* test: pyiceberg-core, pin datafusion and unpin pyarrow by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1648
109+
* infra: no need to manually install crates in CI by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1654
110+
* Add LICENSE and NOTICE files for pyiceberg-core source distribution and wheel by @sumanth-manchala in https://github.com/apache/iceberg-rust/pull/1653
111+
* docs: add instructions to check license header in "How to verify a release" by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1662
112+
* chore(deps): Bump actions/setup-python from 5 to 6 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1658
113+
* upgrade MSRV from `1.85` to `1.87` by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1655
114+
* chore(deps): Bump crate-ci/typos from 1.35.7 to 1.36.2 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1659
115+
* ci: only use `-Z direct-minimal-versions` for MSRV check by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1656
116+
* Bump Avro to 0.20 by @Fokko in https://github.com/apache/iceberg-rust/pull/1644
117+
* Scan Delete Support Part 6: Equality Delete Parsing by @sdd in https://github.com/apache/iceberg-rust/pull/1017
118+
* Remove rustversion pin by @Fokko in https://github.com/apache/iceberg-rust/pull/1664
119+
* refactor(test): remove MockLocationGenerator and its usages (#1645) by @pushcoder in https://github.com/apache/iceberg-rust/pull/1663
120+
* feat: bump datafusion to 48 by @colinmarc in https://github.com/apache/iceberg-rust/pull/1501
121+
* chore: Add staleness bot for issues by @emkornfield in https://github.com/apache/iceberg-rust/pull/1665
122+
* chore(deps): Bump actions/stale from 9.1.0 to 10.0.0 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1671
123+
* chore(deps): Bump tempfile from 3.21.0 to 3.22.0 by @dependabot[bot] in https://github.com/apache/iceberg-rust/pull/1672
124+
* docs: Update download links to 0.6.0 by @manuzhang in https://github.com/apache/iceberg-rust/pull/1677
125+
* docs: Fix Podman and Orbstack pages not found by @manuzhang in https://github.com/apache/iceberg-rust/pull/1678
126+
* Update bug report template with the latest version, 0.6.0 by @kevinjqliu in https://github.com/apache/iceberg-rust/pull/1679
127+
* Expose Avro reader to PyIceberg by @Fokko in https://github.com/apache/iceberg-rust/pull/1328
128+
27129
## [v0.6.0] - 2025-07-14
28130

29131
### Breaking Changes

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ cargo 1.69.0 (6e9a83356 2023-04-12)
103103

104104
Currently, iceberg-rust uses Docker to set up environment for integration tests. Native Docker has some limitations, please check (https://github.com/apache/iceberg-rust/pull/748). Please use Orbstack or Podman.
105105

106-
For MacOS users, you can install [OrbStack as a docker alternative](docs/contributing/orbstack.md).
107-
For Podman users, refer to [Using Podman instead of Docker](docs/contributing/podman.md)
106+
For MacOS users, you can install [OrbStack as a docker alternative](reference/orbstack.md).
107+
For Podman users, refer to [Using Podman instead of Docker](reference/podman.md)
108108

109109
## Build
110110

Cargo.lock

Lines changed: 15 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)