Skip to content

Commit 1f19b02

Browse files
authored
Merge branch 'main' into fix/json-serializable-and-expression
2 parents 321c5b6 + 36baca9 commit 1f19b02

File tree

149 files changed

+10099
-10331
lines changed

Some content is hidden

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

149 files changed

+10099
-10331
lines changed

.asf.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,5 @@ notifications:
5757
commits: commits@iceberg.apache.org
5858
issues: issues@iceberg.apache.org
5959
pullrequests: issues@iceberg.apache.org
60+
jobs: ci-jobs@iceberg.apache.org
6061
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@f3d33029dca1c4a24b87e2df648f9f4604ef6533

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

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ jobs:
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: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,39 +42,41 @@ jobs:
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.2.0
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: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,11 @@ jobs:
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: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,15 @@ jobs:
4747
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:
5353
- uses: actions/checkout@v5
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
@@ -71,10 +71,13 @@ jobs:
7171
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:
7777
- uses: actions/checkout@v5
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: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ jobs:
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: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,20 +97,20 @@ jobs:
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

.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-latest
3333
steps:
34-
- uses: actions/stale@v10.0.0
34+
- uses: actions/stale@v10.1.0
3535
with:
3636
stale-issue-label: 'stale'
3737
exempt-issue-labels: 'not-stale'

0 commit comments

Comments
 (0)