From 47ded2e34481afe38bef532cd725b197136f429f 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 5be9016a3f..319c47872e 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -91,7 +91,7 @@ github: parameters: check_response_timeout_minutes: 180 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 35df684e37c9bfb763654ba9b5d864bbc2de387f 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/codeql.yml | 4 ++++ .github/workflows/license_check.yml | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/.github/workflows/asf-allowlist-check.yml b/.github/workflows/asf-allowlist-check.yml index 132faa1bc3..e2e408d358 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-slim diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 5de3f9d366..3df052476c 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 a6155c84cc..f196f2fffd 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-slim From c96f335b71f88ff1226eb4806a3f900cf5a886cc 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/nightly-pypi-build.yml | 2 +- .github/workflows/pypi-build-artifacts.yml | 2 +- .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 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/nightly-pypi-build.yml b/.github/workflows/nightly-pypi-build.yml index 1f4aae490c..016b10ec25 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 1d2717cf4c..dc1d35d126 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-release-docs.yml b/.github/workflows/python-release-docs.yml index d69fb638e5..0f9343f11a 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 d409757251..47b324ce9b 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 7031343409..1b275369b6 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 c3699badf96499a2334ac921fe45511e157be5cc 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