Skip to content

Commit 9c8181e

Browse files
Merge branch 'apache:main' into fix-2938-snapshot-timestamp
2 parents c8eca78 + f6fcefc commit 9c8181e

Some content is hidden

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

54 files changed

+2743
-896
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 version are you using?
2929
multiple: false
3030
options:
31-
- "0.10.0 (latest release)"
31+
- "0.11.0 (latest release)"
32+
- "0.10.0"
3233
- "0.9.1"
3334
- "0.9.0"
3435
- "0.8.1"

.github/dependabot.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,5 @@ updates:
2424
schedule:
2525
interval: "weekly"
2626
open-pull-requests-limit: 50
27-
- package-ecosystem: "github-actions"
28-
directory: "/"
29-
schedule:
30-
interval: "weekly"
27+
ignore:
28+
- dependency-name: "datafusion"

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ on:
3232
- 'mkdocs/**'
3333
workflow_dispatch:
3434

35+
permissions:
36+
contents: read
37+
3538
jobs:
3639
markdown-link-check:
3740
runs-on: ubuntu-latest

.github/workflows/codeql.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,21 @@ on:
2727
schedule:
2828
- cron: '16 4 * * 1'
2929

30+
permissions:
31+
contents: read
32+
3033
jobs:
3134
analyze:
3235
name: Analyze Actions
33-
runs-on: ubuntu-latest
36+
runs-on: ubuntu-slim
3437
permissions:
38+
contents: read
3539
security-events: write
3640
packages: read
3741

3842
steps:
3943
- name: Checkout repository
40-
uses: actions/checkout@v4
44+
uses: actions/checkout@v6
4145

4246
- name: Initialize CodeQL
4347
uses: github/codeql-action/init@v4

.github/workflows/license_check.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
name: "Run License Check"
2121
on: pull_request
2222

23+
permissions:
24+
contents: read
25+
2326
jobs:
2427
rat:
2528
runs-on: ubuntu-latest

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ on:
2424
- cron: "0 0 * * *" # Runs at midnight UTC every day
2525
workflow_dispatch: # Allows manual triggering
2626

27+
permissions:
28+
contents: read
29+
2730
jobs:
2831
set-version:
2932
if: github.repository == 'apache/iceberg-python' # Only run for apache repo
@@ -40,7 +43,7 @@ jobs:
4043
python-version: 3.12
4144

4245
- name: Install UV
43-
uses: astral-sh/setup-uv@v7
46+
uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
4447

4548
- name: Set version
4649
id: set-version
@@ -71,7 +74,7 @@ jobs:
7174

7275
steps:
7376
- name: Download all the artifacts
74-
uses: actions/download-artifact@v7
77+
uses: actions/download-artifact@v8
7578
with:
7679
merge-multiple: true
7780
path: dist/

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ on:
2626
required: true
2727
type: string
2828

29+
permissions:
30+
contents: read
31+
2932
jobs:
3033
pypi-build-artifacts:
3134
name: Build artifacts for PyPi on ${{ matrix.os }}
@@ -49,7 +52,7 @@ jobs:
4952
3.13
5053
5154
- name: Install UV
52-
uses: astral-sh/setup-uv@v7
55+
uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
5356

5457
- name: Set version with RC
5558
env:
@@ -63,14 +66,16 @@ jobs:
6366
if: matrix.os == 'ubuntu-latest'
6467

6568
- name: Build wheels
66-
uses: pypa/cibuildwheel@v3.3.1
69+
uses: pypa/cibuildwheel@v3.4.0
6770
with:
6871
output-dir: wheelhouse
6972
config-file: "pyproject.toml"
7073
env:
7174
# Ignore 32 bit architectures
7275
CIBW_ARCHS: "auto64"
7376
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.10,<3.14"
77+
# Keep these in sync with Python CI job `cibw-dev-env-smoke-test`
78+
# in .github/workflows/python-ci.yml to catch import-time regressions early.
7479
CIBW_BEFORE_TEST: "uv sync --directory {project} --only-group dev --no-install-project"
7580
CIBW_TEST_COMMAND: "uv run --directory {project} pytest tests/avro/test_decoder.py"
7681
# Skip free-threaded (PEP 703) builds until we evaluate decoder_fast support

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,25 @@ on:
2525
- 'main'
2626
pull_request:
2727

28+
permissions:
29+
contents: read
30+
2831

2932
concurrency:
3033
group: ${{ github.workflow }}-${{ github.ref }}
3134
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
3235

3336
jobs:
3437
docs:
35-
runs-on: ubuntu-latest
38+
runs-on: ubuntu-slim
3639

3740
steps:
3841
- uses: actions/checkout@v6
3942
- uses: actions/setup-python@v6
4043
with:
4144
python-version: 3.12
4245
- name: Install UV
43-
uses: astral-sh/setup-uv@v7
44-
- name: Install
45-
run: make docs-install
46+
uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
4647
- name: Build docs
4748
run: make docs-build
4849
- name: Run linters

.github/workflows/python-ci.yml

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ on:
3838
- '!LICENSE'
3939
- '!NOTICE'
4040

41+
permissions:
42+
contents: read
43+
4144
concurrency:
4245
group: ${{ github.workflow }}-${{ github.ref }}
4346
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
@@ -57,11 +60,13 @@ jobs:
5760
with:
5861
python-version: ${{ matrix.python }}
5962
- name: Install UV
60-
uses: astral-sh/setup-uv@v7
63+
uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
6164
with:
6265
enable-cache: true
6366
- name: Install system dependencies
6467
run: sudo apt-get update && sudo apt-get install -y libkrb5-dev # for kerberos
68+
- name: Check uv.lock is up to date
69+
run: uv lock --check
6570
- name: Install
6671
run: make install
6772
- name: Run linters
@@ -79,7 +84,7 @@ jobs:
7984
with:
8085
python-version: '3.12'
8186
- name: Install UV
82-
uses: astral-sh/setup-uv@v7
87+
uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
8388
with:
8489
enable-cache: true
8590
- name: Install system dependencies
@@ -106,7 +111,7 @@ jobs:
106111
with:
107112
python-version: '3.12'
108113
- name: Install UV
109-
uses: astral-sh/setup-uv@v7
114+
uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
110115
with:
111116
enable-cache: true
112117
- name: Install system dependencies
@@ -133,7 +138,7 @@ jobs:
133138
with:
134139
python-version: '3.12'
135140
- name: Install UV
136-
uses: astral-sh/setup-uv@v7
141+
uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
137142
with:
138143
enable-cache: true
139144
- name: Install system dependencies
@@ -160,7 +165,7 @@ jobs:
160165
with:
161166
python-version: '3.12'
162167
- name: Install UV
163-
uses: astral-sh/setup-uv@v7
168+
uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
164169
with:
165170
enable-cache: true
166171
- name: Install system dependencies
@@ -188,15 +193,38 @@ jobs:
188193
with:
189194
python-version: '3.12'
190195
- name: Install UV
191-
uses: astral-sh/setup-uv@v7
196+
uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
192197
with:
193198
enable-cache: true
194199
- name: Install dependencies
195200
run: uv sync --group dev
196201
- name: Download all coverage artifacts
197-
uses: actions/download-artifact@v7
202+
uses: actions/download-artifact@v8
198203
with:
199204
pattern: coverage-*
200205
merge-multiple: true
201206
- name: Generate coverage report (75%) # Coverage threshold should only increase over time — never decrease it!
202207
run: COVERAGE_FAIL_UNDER=75 make coverage-report
208+
209+
cibw-dev-env-smoke-test:
210+
runs-on: ubuntu-latest
211+
steps:
212+
- uses: actions/checkout@v6
213+
- uses: actions/setup-python@v6
214+
with:
215+
python-version: '3.12'
216+
- name: Install UV
217+
uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
218+
with:
219+
enable-cache: true
220+
# Why this exists:
221+
# Catch import-time regressions (e.g., global conftest optional deps)
222+
# in the same dev-only environment used by cibuildwheel wheel tests.
223+
# Keep this in sync with wheel build test setup in
224+
# .github/workflows/pypi-build-artifacts.yml:
225+
# CIBW_BEFORE_TEST: uv sync --directory {project} --only-group dev --no-install-project
226+
# CIBW_TEST_COMMAND: uv run --directory {project} pytest tests/avro/test_decoder.py
227+
- name: Mirror wheel CIBW_BEFORE_TEST
228+
run: uv sync --directory . --only-group dev --no-install-project
229+
- name: Mirror wheel CIBW_TEST_COMMAND
230+
run: uv run --directory . pytest tests/avro/test_decoder.py

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

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,26 @@ name: "Release Docs"
2121
on:
2222
workflow_dispatch:
2323

24+
permissions:
25+
contents: read
26+
2427
concurrency:
2528
group: ${{ github.workflow }}-${{ github.ref }}
2629
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
2730

2831
jobs:
2932
docs:
3033
runs-on: ubuntu-latest
34+
permissions:
35+
contents: write
3136

3237
steps:
3338
- uses: actions/checkout@v6
3439
- uses: actions/setup-python@v6
3540
with:
36-
python-version: ${{ matrix.python }}
41+
python-version: 3.12
3742
- name: Install UV
38-
uses: astral-sh/setup-uv@v7
39-
- name: Install docs
40-
run: make docs-install
43+
uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098
4144
- name: Build docs
4245
run: make docs-build
4346
- name: Copy

0 commit comments

Comments
 (0)