Skip to content

Commit 2e28a10

Browse files
committed
Merge branch 'main' into feat/lazy-catalog-list-responses
2 parents 800806f + 32c97ae commit 2e28a10

File tree

151 files changed

+12579
-10540
lines changed

Some content is hidden

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

151 files changed

+12579
-10540
lines changed

.asf.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ github:
4242
required_approving_review_count: 1
4343

4444
required_linear_history: true
45-
del_branch_on_merge: true
45+
pull_requests:
46+
# auto-delete head branches after being merged
47+
del_branch_on_merge: true
4648
features:
4749
wiki: true
4850
issues: true
@@ -57,4 +59,5 @@ notifications:
5759
commits: commits@iceberg.apache.org
5860
issues: issues@iceberg.apache.org
5961
pullrequests: issues@iceberg.apache.org
62+
jobs: ci-jobs@iceberg.apache.org
6063
jira_options: link label link label

.github/dependabot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
version: 2
2121
updates:
22-
- package-ecosystem: "pip"
22+
- package-ecosystem: "uv"
2323
directory: "/"
2424
schedule:
2525
interval: "weekly"

.github/workflows/check-md-link.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,11 @@ on:
3030
paths:
3131
- '.github/workflows/check-md-link.yml'
3232
- 'mkdocs/**'
33+
workflow_dispatch:
3334

3435
jobs:
3536
markdown-link-check:
3637
runs-on: ubuntu-latest
3738
steps:
3839
- uses: actions/checkout@master
39-
- uses: tcort/github-action-markdown-link-check@v1
40+
- uses: tcort/github-action-markdown-link-check@e7c7a18363c842693fadde5d41a3bd3573a7a225

.github/workflows/license_check.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ on: pull_request
2222

2323
jobs:
2424
rat:
25-
runs-on: ubuntu-22.04
25+
runs-on: ubuntu-latest
2626
steps:
27-
- uses: actions/checkout@v5
27+
- uses: actions/checkout@v6
2828
- run: dev/check-license

.github/workflows/nightly-pypi-build.yml

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,21 +31,21 @@ jobs:
3131
outputs:
3232
VERSION: ${{ steps.set-version.outputs.VERSION }}
3333
steps:
34-
- uses: actions/checkout@v5
34+
- uses: actions/checkout@v6
3535
with:
3636
fetch-depth: 1
3737

3838
- uses: actions/setup-python@v6
3939
with:
4040
python-version: 3.12
4141

42-
- name: Install Poetry
43-
run: make install-poetry
42+
- name: Install UV
43+
uses: astral-sh/setup-uv@v7
4444

4545
- name: Set version
4646
id: set-version
4747
run: |
48-
CURRENT_VERSION=$(poetry version --short)
48+
CURRENT_VERSION=$(uv version --short)
4949
TIMESTAMP=$(date +%Y%m%d%H%M%S)
5050
echo "VERSION=${CURRENT_VERSION}.dev${TIMESTAMP}" >> "$GITHUB_OUTPUT"
5151
@@ -71,15 +71,42 @@ jobs:
7171

7272
steps:
7373
- name: Download all the artifacts
74-
uses: actions/download-artifact@v5
74+
uses: actions/download-artifact@v6
7575
with:
7676
merge-multiple: true
7777
path: dist/
7878
- name: List downloaded artifacts
7979
run: ls -R dist/
8080
- name: Publish to TestPyPI
81+
id: publish-testpypi
82+
continue-on-error: true
8183
uses: pypa/gh-action-pypi-publish@release/v1
8284
with:
8385
repository-url: https://test.pypi.org/legacy/
8486
skip-existing: true
8587
verbose: true
88+
- name: Display error message on publish failure
89+
if: steps.publish-testpypi.outcome == 'failure'
90+
run: |
91+
echo "::error::Failed to publish to TestPyPI"
92+
echo ""
93+
echo "⚠️ TestPyPI Publish Failed"
94+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
95+
echo ""
96+
echo "This may be due to TestPyPI storage limits."
97+
echo "See: https://docs.pypi.org/project-management/storage-limits"
98+
echo ""
99+
echo "To resolve this issue, use the pypi-cleanup utility to clean up old TestPyPI artifacts:"
100+
echo "https://pypi.org/project/pypi-cleanup/"
101+
echo ""
102+
echo " uvx pypi-cleanup --package pyiceberg --host https://test.pypi.org/ \\"
103+
echo " --verbose -d 10 --do-it --username <username>"
104+
echo ""
105+
echo "Requirements:"
106+
echo " • Must be a maintainer for pyiceberg on TestPyPI"
107+
echo " (https://test.pypi.org/project/pyiceberg)"
108+
echo " • Requires TestPyPI password and 2FA"
109+
echo " • ⚠️ ONLY do this for TestPyPI, NOT for production PyPI!"
110+
echo ""
111+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
112+
exit 1

.github/workflows/pypi-build-artifacts.yml

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,49 +32,51 @@ jobs:
3232
runs-on: ${{ matrix.os }}
3333
strategy:
3434
matrix:
35-
os: [ ubuntu-22.04, windows-2022, macos-13, macos-14 ]
35+
os: [ ubuntu-latest, windows-latest, macos-latest ]
3636

3737
steps:
38-
- uses: actions/checkout@v5
38+
- uses: actions/checkout@v6
3939
with:
4040
fetch-depth: 1
4141

4242
- uses: actions/setup-python@v6
4343
with:
4444
python-version: |
45-
3.9
4645
3.10
4746
3.11
4847
3.12
4948
50-
- name: Install poetry
51-
run: make install-poetry
49+
- name: Install UV
50+
uses: astral-sh/setup-uv@v7
5251

5352
- name: Set version with RC
5453
env:
5554
VERSION: ${{ inputs.VERSION }}
56-
run: python -m poetry version "${{ env.VERSION }}"
55+
run: uv version "${{ env.VERSION }}"
5756

5857
# Publish the source distribution with the version that's in
5958
# the repository, otherwise the tests will fail
6059
- name: Compile source distribution
61-
run: python3 -m poetry build --format=sdist
60+
run: uv build --sdist
6261
if: startsWith(matrix.os, 'ubuntu')
6362

6463
- name: Build wheels
65-
uses: pypa/cibuildwheel@v3.1.4
64+
uses: pypa/cibuildwheel@v3.3.0
6665
with:
6766
output-dir: wheelhouse
6867
config-file: "pyproject.toml"
6968
env:
7069
# Ignore 32 bit architectures
7170
CIBW_ARCHS: "auto64"
72-
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9,<3.13"
71+
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.10"
7372
CIBW_TEST_REQUIRES: "pytest==7.4.2 moto==5.0.1"
7473
CIBW_TEST_COMMAND: "pytest {project}/tests/avro/test_decoder.py"
7574
# Ignore tests for pypy since not all dependencies are compiled for it
7675
# and would require a local rust build chain
7776
CIBW_TEST_SKIP: "pp*"
77+
# Skip free-threaded (PEP 703) builds until we evaluate decoder_fast support
78+
CIBW_SKIP: "cp3*t-*"
79+
7880

7981
- name: Add source distribution
8082
if: startsWith(matrix.os, 'ubuntu')

.github/workflows/python-ci-docs.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,18 @@ concurrency:
3232

3333
jobs:
3434
docs:
35-
runs-on: ubuntu-22.04
35+
runs-on: ubuntu-latest
3636

3737
steps:
38-
- uses: actions/checkout@v5
38+
- uses: actions/checkout@v6
3939
- uses: actions/setup-python@v6
4040
with:
4141
python-version: 3.12
42-
- name: Install poetry
43-
run: make install-poetry
42+
- name: Install UV
43+
uses: astral-sh/setup-uv@v7
4444
- name: Install
4545
run: make docs-install
4646
- name: Build docs
4747
run: make docs-build
48+
- name: Run linters
49+
run: make lint

.github/workflows/python-ci.yml

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,18 +44,18 @@ concurrency:
4444

4545
jobs:
4646
lint-and-test:
47-
runs-on: ubuntu-22.04
47+
runs-on: ubuntu-latest
4848
strategy:
4949
matrix:
50-
python: ['3.9', '3.10', '3.11', '3.12']
50+
python: ['3.10', '3.11', '3.12']
5151

5252
steps:
53-
- uses: actions/checkout@v5
53+
- uses: actions/checkout@v6
5454
- uses: actions/setup-python@v6
5555
with:
5656
python-version: ${{ matrix.python }}
57-
- name: Install poetry
58-
run: make install-poetry
57+
- name: Install UV
58+
uses: astral-sh/setup-uv@v7
5959
- name: Install system dependencies
6060
run: sudo apt-get update && sudo apt-get install -y libkrb5-dev # for kerberos
6161
- name: Install
@@ -68,13 +68,16 @@ jobs:
6868
run: COVERAGE_FAIL_UNDER=85 make coverage-report
6969

7070
integration-test:
71-
runs-on: ubuntu-22.04
71+
runs-on: ubuntu-latest
7272
strategy:
7373
matrix:
74-
python: ['3.9', '3.10', '3.11', '3.12']
74+
python: ['3.10', '3.11', '3.12']
7575

7676
steps:
77-
- uses: actions/checkout@v5
77+
- uses: actions/checkout@v6
78+
- uses: actions/setup-python@v6
79+
with:
80+
python-version: ${{ matrix.python }}
7881
- name: Install system dependencies
7982
run: sudo apt-get update && sudo apt-get install -y libkrb5-dev # for kerberos
8083
- name: Install

.github/workflows/python-release-docs.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ concurrency:
2727

2828
jobs:
2929
docs:
30-
runs-on: ubuntu-22.04
30+
runs-on: ubuntu-latest
3131

3232
steps:
33-
- uses: actions/checkout@v5
33+
- uses: actions/checkout@v6
3434
- uses: actions/setup-python@v6
3535
with:
3636
python-version: ${{ matrix.python }}
37-
- name: Install poetry
38-
run: make install-poetry
37+
- name: Install UV
38+
uses: astral-sh/setup-uv@v7
3939
- name: Install docs
4040
run: make docs-install
4141
- name: Build docs

.github/workflows/python-release.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,28 +89,28 @@ jobs:
8989
needs:
9090
- validate-inputs
9191
steps:
92-
- uses: actions/checkout@v5
92+
- uses: actions/checkout@v6
9393
with:
9494
fetch-depth: 1
9595

9696
- uses: actions/setup-python@v6
9797
with:
9898
python-version: 3.12
9999

100-
- name: Install Poetry
101-
run: make install-poetry
100+
- name: Install UV
101+
uses: astral-sh/setup-uv@v7
102102

103103
- name: Validate current pyiceberg version
104104
env:
105105
VERSION: ${{ needs.validate-inputs.outputs.VERSION }}
106106
run: |
107-
# Extract the current version from Poetry
108-
current_pyiceberg_version=$(poetry version --short)
109-
echo "Detected Poetry version: $current_pyiceberg_version"
107+
# Extract the current version from UV
108+
current_pyiceberg_version=$(uv version --short)
109+
echo "Detected UV version: $current_pyiceberg_version"
110110
111-
# Compare the input version with the Poetry version
111+
# Compare the input version with the UV version
112112
if [[ "$VERSION" != "$current_pyiceberg_version" ]]; then
113-
echo "Error: Input version ($VERSION) does not match the Poetry version ($current_pyiceberg_version)"
113+
echo "Error: Input version ($VERSION) does not match the UV version ($current_pyiceberg_version)"
114114
exit 1
115115
fi
116116

0 commit comments

Comments
 (0)