Skip to content

Commit 65c7518

Browse files
authored
Merge branch 'apache:main' into main
2 parents 6a2bcc4 + 99ca196 commit 65c7518

189 files changed

Lines changed: 24125 additions & 12427 deletions

File tree

Some content is hidden

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

.asf.yaml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,12 @@ github:
4040

4141
required_pull_request_reviews:
4242
required_approving_review_count: 1
43-
dismiss_stale_reviews: true
43+
dismiss_stale_reviews: false
4444

4545
required_linear_history: true
46-
del_branch_on_merge: true
46+
pull_requests:
47+
# auto-delete head branches after being merged
48+
del_branch_on_merge: true
4749
features:
4850
wiki: false
4951
issues: true
@@ -52,12 +54,15 @@ github:
5254
collaborators:
5355
- JanKaul
5456
- c-thiel
57+
- mbutrovich
58+
- CTTY
5559
ghp_branch: gh-pages
5660
ghp_path: /
5761

5862
notifications:
5963
commits: commits@iceberg.apache.org
6064
issues: issues@iceberg.apache.org
6165
pullrequests: issues@iceberg.apache.org
66+
jobs: ci-jobs@iceberg.apache.org
6267
jira_options: link label link label
6368
discussions: issues@iceberg.apache.org

.github/workflows/audit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
security_audit:
4141
runs-on: ubuntu-latest
4242
steps:
43-
- uses: actions/checkout@v5
43+
- uses: actions/checkout@v6
4444
- name: Setup Rust toolchain
4545
uses: ./.github/actions/setup-builder
4646
with:

.github/workflows/bindings_python_ci.yml

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
check-rust:
4545
runs-on: ubuntu-latest
4646
steps:
47-
- uses: actions/checkout@v5
47+
- uses: actions/checkout@v6
4848
- name: Check format
4949
working-directory: "bindings/python"
5050
run: cargo fmt --all -- --check
@@ -55,18 +55,22 @@ jobs:
5555
check-python:
5656
runs-on: ubuntu-latest
5757
steps:
58-
- uses: actions/checkout@v5
58+
- uses: actions/checkout@v6
59+
- uses: astral-sh/setup-uv@v7
60+
with:
61+
version: "0.9.3"
62+
enable-cache: true
5963
- name: Install tools
6064
run: |
61-
pip install ruff
65+
uv tool install ruff
6266
- name: Check format
6367
working-directory: "bindings/python"
6468
run: |
65-
ruff format . --diff
69+
uvx ruff format . --diff
6670
- name: Check style
6771
working-directory: "bindings/python"
6872
run: |
69-
ruff check .
73+
uvx ruff check .
7074
7175
test:
7276
runs-on: ${{ matrix.os }}
@@ -77,20 +81,31 @@ jobs:
7781
- macos-latest
7882
- windows-latest
7983
steps:
80-
- uses: actions/checkout@v5
84+
- uses: actions/checkout@v6
8185
- uses: actions/setup-python@v6
8286
with:
83-
python-version: 3.9
87+
python-version: 3.12
8488
- uses: PyO3/maturin-action@v1
8589
with:
8690
working-directory: "bindings/python"
8791
command: build
8892
args: --out dist --sdist
93+
- uses: astral-sh/setup-uv@v7
94+
with:
95+
version: "0.9.3"
96+
enable-cache: true
97+
- name: Sync dependencies
98+
working-directory: "bindings/python"
99+
shell: bash
100+
run: |
101+
make install
102+
- name: Install built wheel
103+
working-directory: "bindings/python"
104+
shell: bash
105+
run: |
106+
uv pip install --reinstall dist/pyiceberg_core-*.whl
89107
- name: Run tests
90108
working-directory: "bindings/python"
91109
shell: bash
92110
run: |
93-
set -e
94-
pip install hatch==1.12.0
95-
hatch run dev:pip install dist/pyiceberg_core-*.whl --force-reinstall
96-
hatch run dev:test
111+
make test

.github/workflows/ci.yml

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
- ubuntu-latest
5353
- macos-latest
5454
steps:
55-
- uses: actions/checkout@v5
55+
- uses: actions/checkout@v6
5656

5757
- name: Setup Rust toolchain
5858
uses: ./.github/actions/setup-builder
@@ -101,7 +101,7 @@ jobs:
101101
root-reserve-mb: 10240
102102
temp-reserve-mb: 10240
103103

104-
- uses: actions/checkout@v5
104+
- uses: actions/checkout@v6
105105

106106
- name: Setup Rust toolchain
107107
uses: ./.github/actions/setup-builder
@@ -126,7 +126,7 @@ jobs:
126126
- macos-latest
127127
- windows-latest
128128
steps:
129-
- uses: actions/checkout@v5
129+
- uses: actions/checkout@v6
130130

131131
- name: Setup Rust toolchain
132132
uses: ./.github/actions/setup-builder
@@ -139,6 +139,12 @@ jobs:
139139

140140
unit:
141141
runs-on: ubuntu-latest
142+
strategy:
143+
matrix:
144+
test-suite:
145+
- { name: "default", args: "--all-targets --all-features --workspace" }
146+
- { name: "doc", args: "--doc --all-features --workspace" }
147+
name: Unit Tests (${{ matrix.test-suite.name }})
142148
steps:
143149
- name: Maximize build space
144150
uses: easimon/maximize-build-space@master
@@ -151,7 +157,7 @@ jobs:
151157
root-reserve-mb: 10240
152158
temp-reserve-mb: 10240
153159

154-
- uses: actions/checkout@v5
160+
- uses: actions/checkout@v6
155161

156162
- name: Setup Rust toolchain
157163
uses: ./.github/actions/setup-builder
@@ -163,21 +169,17 @@ jobs:
163169

164170
- name: Cache Rust artifacts
165171
uses: Swatinem/rust-cache@v2
172+
with:
173+
key: ${{ matrix.test-suite.name }}
166174

167175
- name: Test
168-
run: cargo test --no-fail-fast --all-targets --all-features --workspace
169-
170-
- name: Smol Test
171-
run: cargo test --no-fail-fast --all-targets --no-default-features --features "smol" --features "storage-all" --workspace
172-
173-
- name: Doc Test
174-
run: cargo test --no-fail-fast --doc --all-features --workspace
176+
run: cargo test --no-fail-fast ${{ matrix.test-suite.args }}
175177

176178
msrv:
177179
name: Verify MSRV
178180
runs-on: ubuntu-latest
179181
steps:
180-
- uses: actions/checkout@v5
182+
- uses: actions/checkout@v6
181183
- name: Install protoc
182184
uses: arduino/setup-protoc@v3
183185
with:

.github/workflows/ci_typos.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,6 @@ jobs:
4040
env:
4141
FORCE_COLOR: 1
4242
steps:
43-
- uses: actions/checkout@v5
43+
- uses: actions/checkout@v6
4444
- name: Check typos
45-
uses: crate-ci/typos@v1.38.1
45+
uses: crate-ci/typos@v1.40.0

.github/workflows/publish.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,11 @@ jobs:
4242
- "crates/catalog/glue"
4343
- "crates/catalog/hms"
4444
- "crates/catalog/rest"
45+
- "crates/catalog/s3tables"
4546
- "crates/catalog/sql"
4647
- "crates/integrations/datafusion"
4748
steps:
48-
- uses: actions/checkout@v5
49+
- uses: actions/checkout@v6
4950

5051
- name: Setup Rust toolchain
5152
uses: ./.github/actions/setup-builder

.github/workflows/release_python.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ jobs:
8585
runs-on: ubuntu-latest
8686
needs: [validate-release-tag]
8787
steps:
88-
- uses: actions/checkout@v5
88+
- uses: actions/checkout@v6
8989

9090
- name: Install toml-cli
9191
if: ${{ needs.validate-release-tag.outputs.is-rc == 'true' }}
@@ -107,7 +107,7 @@ jobs:
107107
command: sdist
108108
args: -o dist
109109
- name: Upload sdist
110-
uses: actions/upload-artifact@v5
110+
uses: actions/upload-artifact@v6
111111
with:
112112
name: wheels-sdist
113113
path: bindings/python/dist
@@ -128,7 +128,7 @@ jobs:
128128
}
129129
- { os: ubuntu-latest, target: "armv7l" }
130130
steps:
131-
- uses: actions/checkout@v5
131+
- uses: actions/checkout@v6
132132

133133
- name: Install toml-cli
134134
if: ${{ needs.validate-release-tag.outputs.is-rc == 'true' }}
@@ -146,7 +146,7 @@ jobs:
146146
147147
- uses: actions/setup-python@v6
148148
with:
149-
python-version: 3.9
149+
python-version: 3.12
150150
- name: Setup Rust toolchain
151151
uses: ./.github/actions/setup-builder
152152
with:
@@ -159,7 +159,7 @@ jobs:
159159
command: build
160160
args: --release -o dist
161161
- name: Upload wheels
162-
uses: actions/upload-artifact@v5
162+
uses: actions/upload-artifact@v6
163163
with:
164164
name: wheels-${{ matrix.os }}-${{ matrix.target }}
165165
path: bindings/python/dist
@@ -178,14 +178,14 @@ jobs:
178178

179179
steps:
180180
- name: Download all the dists
181-
uses: actions/download-artifact@v6
181+
uses: actions/download-artifact@v7
182182
with:
183183
pattern: wheels-*
184184
merge-multiple: true
185185
path: bindings/python/dist
186186
- name: Publish to PyPI
187187
uses: pypa/gh-action-pypi-publish@release/v1
188-
189188
with:
190189
skip-existing: true
191190
packages-dir: bindings/python/dist
191+
verbose: true

.github/workflows/release_python_nightly.yml

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
if: github.repository == 'apache/iceberg-rust' # Only run for apache repo
4444
runs-on: ubuntu-latest
4545
steps:
46-
- uses: actions/checkout@v5
46+
- uses: actions/checkout@v6
4747

4848
- uses: ./.github/actions/overwrite-package-version # Overwrite package version with timestamp
4949
with:
@@ -56,7 +56,7 @@ jobs:
5656
args: -o dist
5757

5858
- name: Upload sdist
59-
uses: actions/upload-artifact@v5
59+
uses: actions/upload-artifact@v6
6060
with:
6161
name: wheels-sdist
6262
path: bindings/python/dist
@@ -78,15 +78,15 @@ jobs:
7878
}
7979
- { os: ubuntu-latest, target: "armv7l" }
8080
steps:
81-
- uses: actions/checkout@v5
81+
- uses: actions/checkout@v6
8282

8383
- uses: ./.github/actions/overwrite-package-version # Overwrite package version with timestamp
8484
with:
8585
timestamp: ${{ needs.set-version.outputs.TIMESTAMP }}
8686

8787
- uses: actions/setup-python@v6
8888
with:
89-
python-version: 3.9
89+
python-version: 3.12
9090

9191
- name: Setup Rust toolchain
9292
uses: ./.github/actions/setup-builder
@@ -102,7 +102,7 @@ jobs:
102102
args: --release -o dist
103103

104104
- name: Upload wheels
105-
uses: actions/upload-artifact@v5
105+
uses: actions/upload-artifact@v6
106106
with:
107107
name: wheels-${{ matrix.os }}-${{ matrix.target }}
108108
path: bindings/python/dist
@@ -120,16 +120,44 @@ jobs:
120120

121121
steps:
122122
- name: Download all the dists
123-
uses: actions/download-artifact@v6
123+
uses: actions/download-artifact@v7
124124
with:
125125
pattern: wheels-*
126126
merge-multiple: true
127127
path: bindings/python/dist
128128
- name: List downloaded artifacts
129129
run: ls -R bindings/python/dist
130130
- name: Publish to TestPyPI
131+
id: publish-testpypi
132+
continue-on-error: true
131133
uses: pypa/gh-action-pypi-publish@release/v1
132134
with:
133135
repository-url: https://test.pypi.org/legacy/
134136
skip-existing: true
135137
packages-dir: bindings/python/dist
138+
verbose: true
139+
- name: Display error message on publish failure
140+
if: steps.publish-testpypi.outcome == 'failure'
141+
run: |
142+
echo "::error::Failed to publish to TestPyPI"
143+
echo ""
144+
echo "⚠️ TestPyPI Publish Failed"
145+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
146+
echo ""
147+
echo "This may be due to TestPyPI storage limits."
148+
echo "See: https://docs.pypi.org/project-management/storage-limits"
149+
echo ""
150+
echo "To resolve this issue, use the pypi-cleanup utility to clean up old TestPyPI artifacts:"
151+
echo "https://pypi.org/project/pypi-cleanup/"
152+
echo ""
153+
echo " uvx pypi-cleanup --package pyiceberg-core --host https://test.pypi.org/ \\"
154+
echo " --verbose -d 10 --do-it --username <username>"
155+
echo ""
156+
echo "Requirements:"
157+
echo " • Must be a maintainer for pyiceberg-core on TestPyPI"
158+
echo " (https://test.pypi.org/project/pyiceberg-core)"
159+
echo " • Requires TestPyPI password and 2FA"
160+
echo " • ⚠️ ONLY do this for TestPyPI, NOT for production PyPI!"
161+
echo ""
162+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
163+
exit 1

.github/workflows/stale.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
if: github.repository_owner == 'apache'
3232
runs-on: ubuntu-22.04
3333
steps:
34-
- uses: actions/stale@v10.1.0
34+
- uses: actions/stale@v10.1.1
3535
with:
3636
stale-issue-label: 'stale'
3737
exempt-issue-labels: 'not-stale'

.github/workflows/website.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
permissions:
3737
contents: write
3838
steps:
39-
- uses: actions/checkout@v5
39+
- uses: actions/checkout@v6
4040

4141
- name: Setup mdBook
4242
uses: peaceiris/actions-mdbook@v2

0 commit comments

Comments
 (0)