From 09e311e8e85c5563d43688b67aa527cfea199d4b Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Mon, 14 Sep 2026 09:32:03 -0700 Subject: [PATCH 1/4] CI: Allow two concurrent merge-queue builds Overlap validation while retaining one-at-a-time ALLGREEN squash merges. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .asf.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.asf.yaml b/.asf.yaml index f2d710ec8e..277c618701 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -69,7 +69,7 @@ github: parameters: check_response_timeout_minutes: 90 grouping_strategy: ALLGREEN - max_entries_to_build: 1 + max_entries_to_build: 2 max_entries_to_merge: 1 merge_method: SQUASH min_entries_to_merge: 1 From a04bb4cfa0475a7d915af57d3fcfdd2c2d8f5441 Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Mon, 14 Sep 2026 09:32:16 -0700 Subject: [PATCH 2/4] CI: Cancel superseded pull request checks Apply the existing workflow/ref concurrency policy to policy and documentation checks, cancelling active predecessors only for pull requests. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/asf-allowlist-check.yml | 4 ++++ .github/workflows/check-md-link.yml | 4 ++++ .github/workflows/codeql.yml | 4 ++++ .github/workflows/license_check.yml | 4 ++++ .github/workflows/zizmor.yml | 4 ++++ 5 files changed, 20 insertions(+) diff --git a/.github/workflows/asf-allowlist-check.yml b/.github/workflows/asf-allowlist-check.yml index 7fb2aaad71..f2ba3c1f02 100644 --- a/.github/workflows/asf-allowlist-check.yml +++ b/.github/workflows/asf-allowlist-check.yml @@ -30,6 +30,10 @@ on: permissions: contents: read +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: asf-allowlist-check: runs-on: ubuntu-24.04 diff --git a/.github/workflows/check-md-link.yml b/.github/workflows/check-md-link.yml index 1379444e7f..72f41507bb 100644 --- a/.github/workflows/check-md-link.yml +++ b/.github/workflows/check-md-link.yml @@ -27,6 +27,10 @@ on: permissions: contents: read +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: markdown-link-check: runs-on: ubuntu-latest diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 4d45826067..3d2e465364 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -31,6 +31,10 @@ on: permissions: contents: read +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: analyze: name: Analyze Actions diff --git a/.github/workflows/license_check.yml b/.github/workflows/license_check.yml index b5bf11b8ad..7028b5dac1 100644 --- a/.github/workflows/license_check.yml +++ b/.github/workflows/license_check.yml @@ -25,6 +25,10 @@ on: permissions: contents: read +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: rat: runs-on: ubuntu-latest diff --git a/.github/workflows/zizmor.yml b/.github/workflows/zizmor.yml index 9b0147d598..bcd88ae1e2 100644 --- a/.github/workflows/zizmor.yml +++ b/.github/workflows/zizmor.yml @@ -26,6 +26,10 @@ on: permissions: {} +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: zizmor: name: Run zizmor 🌈 From 7aa5d082c5a61924073739ea06d70deffa5b72ee Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Mon, 14 Sep 2026 09:32:22 -0700 Subject: [PATCH 3/4] CI: Use slim runners for lightweight jobs Use ubuntu-slim for eleven validation, reporting, artifact-merging, documentation, and maintenance jobs that do not require Docker or a full VM. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/asf-allowlist-check.yml | 2 +- .github/workflows/nightly-pypi-build.yml | 2 +- .github/workflows/pypi-build-artifacts.yml | 2 +- .github/workflows/python-ci.yml | 2 +- .github/workflows/python-integration.yml | 4 ++-- .github/workflows/python-release-docs.yml | 2 +- .github/workflows/python-release.yml | 4 ++-- .github/workflows/stale.yml | 2 +- .github/workflows/svn-build-artifacts.yml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/asf-allowlist-check.yml b/.github/workflows/asf-allowlist-check.yml index f2ba3c1f02..e2e408d358 100644 --- a/.github/workflows/asf-allowlist-check.yml +++ b/.github/workflows/asf-allowlist-check.yml @@ -36,7 +36,7 @@ concurrency: jobs: asf-allowlist-check: - runs-on: ubuntu-24.04 + runs-on: ubuntu-slim steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: diff --git a/.github/workflows/nightly-pypi-build.yml b/.github/workflows/nightly-pypi-build.yml index a302daa436..322f2a3639 100644 --- a/.github/workflows/nightly-pypi-build.yml +++ b/.github/workflows/nightly-pypi-build.yml @@ -30,7 +30,7 @@ permissions: jobs: set-version: if: github.repository == 'apache/iceberg-python' || github.event_name == 'workflow_dispatch' # Run on schedule for apache repo, or on manual dispatch from any repo - runs-on: ubuntu-latest + runs-on: ubuntu-slim outputs: VERSION: ${{ steps.set-version.outputs.VERSION }} steps: diff --git a/.github/workflows/pypi-build-artifacts.yml b/.github/workflows/pypi-build-artifacts.yml index 5e742fbd8c..53939c7a52 100644 --- a/.github/workflows/pypi-build-artifacts.yml +++ b/.github/workflows/pypi-build-artifacts.yml @@ -95,7 +95,7 @@ jobs: path: ./wheelhouse/* pypi-merge-artifacts: - runs-on: ubuntu-latest + runs-on: ubuntu-slim needs: - pypi-build-artifacts steps: diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml index c0cb1f6f68..f5f1c24203 100644 --- a/.github/workflows/python-ci.yml +++ b/.github/workflows/python-ci.yml @@ -118,7 +118,7 @@ jobs: python-ci-required: if: ${{ always() }} needs: [lint-and-unit-test, windows-unit-test, cibw-dev-env-smoke-test] - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - name: Verify Python CI jobs succeeded env: diff --git a/.github/workflows/python-integration.yml b/.github/workflows/python-integration.yml index 124aca96d5..d2c6be323c 100644 --- a/.github/workflows/python-integration.yml +++ b/.github/workflows/python-integration.yml @@ -152,7 +152,7 @@ jobs: include-hidden-files: true integration-coverage-report: - runs-on: ubuntu-latest + runs-on: ubuntu-slim needs: [integration-test, integration-test-s3, integration-test-adls, integration-test-gcs] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 @@ -178,7 +178,7 @@ jobs: python-integration-required: if: ${{ always() }} needs: [integration-test, integration-test-s3, integration-test-adls, integration-test-gcs, integration-coverage-report] - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - name: Verify Python integration jobs succeeded env: diff --git a/.github/workflows/python-release-docs.yml b/.github/workflows/python-release-docs.yml index a7c1601307..3f46e79fa8 100644 --- a/.github/workflows/python-release-docs.yml +++ b/.github/workflows/python-release-docs.yml @@ -30,7 +30,7 @@ concurrency: jobs: docs: - runs-on: ubuntu-latest + runs-on: ubuntu-slim permissions: contents: write diff --git a/.github/workflows/python-release.yml b/.github/workflows/python-release.yml index 28f784c31e..04295ae0d1 100644 --- a/.github/workflows/python-release.yml +++ b/.github/workflows/python-release.yml @@ -41,7 +41,7 @@ permissions: jobs: validate-inputs: - runs-on: ubuntu-latest + runs-on: ubuntu-slim outputs: VERSION: ${{ steps.validate-inputs.outputs.VERSION }} # e.g. 0.8.0 RC: ${{ steps.validate-inputs.outputs.RC }} # e.g. 1 @@ -96,7 +96,7 @@ jobs: STEPS_VALIDATE_INPUTS_OUTPUTS_RC: ${{ steps.validate-inputs.outputs.RC }} validate-library-version: - runs-on: ubuntu-latest + runs-on: ubuntu-slim needs: - validate-inputs steps: diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 6e5560b535..54e88b0928 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -30,7 +30,7 @@ permissions: jobs: stale: if: github.repository_owner == 'apache' - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0 with: diff --git a/.github/workflows/svn-build-artifacts.yml b/.github/workflows/svn-build-artifacts.yml index 250901b9f9..2a9bd75632 100644 --- a/.github/workflows/svn-build-artifacts.yml +++ b/.github/workflows/svn-build-artifacts.yml @@ -86,7 +86,7 @@ jobs: path: ./wheelhouse/* svn-merge-artifacts: - runs-on: ubuntu-latest + runs-on: ubuntu-slim needs: - svn-build-artifacts steps: From 152f61784151d9d04b359c6cdf35ce31a29c47eb Mon Sep 17 00:00:00 2001 From: Kevin Liu Date: Mon, 14 Sep 2026 09:32:22 -0700 Subject: [PATCH 4/4] Docs: Skip default development dependencies Build and serve documentation with the docs group without installing the unrelated default test dependency stack. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index c1fa3ca8e3..9f0282c65b 100644 --- a/Makefile +++ b/Makefile @@ -165,10 +165,10 @@ test-notebook: ## Run notebook tests (pyiceberg_example and spark_integration_ex ##@ Documentation docs-serve: ## Serve local docs preview (hot reload) - uv run $(PYTHON_ARG) --group docs mkdocs serve -f mkdocs/mkdocs.yml --livereload + uv run $(PYTHON_ARG) --no-default-groups --group docs mkdocs serve -f mkdocs/mkdocs.yml --livereload docs-build: ## Build the static documentation site - uv run $(PYTHON_ARG) --group docs mkdocs build -f mkdocs/mkdocs.yml --strict + uv run $(PYTHON_ARG) --no-default-groups --group docs mkdocs build -f mkdocs/mkdocs.yml --strict # ======================== # Experimentation