From 34a967100d8a529dd9dccb93ec1062605a63ec85 Mon Sep 17 00:00:00 2001 From: jialin <51790758+yyjeqhc@users.noreply.github.com> Date: Wed, 26 Aug 2026 07:18:56 +0800 Subject: [PATCH 1/4] Run all Python tooling tests from one entrypoint --- .github/workflows/ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ed5519e5..afed4172 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -121,8 +121,7 @@ jobs: node-version: 22 - name: Test release verification tooling run: | - python3 -m unittest scripts.tests.test_verify_public_release scripts.tests.test_collect_release_bundle scripts.tests.test_release_readiness scripts.tests.test_release_publication scripts.tests.test_check_markdown_links - python3 -m py_compile scripts/verify_public_release.py scripts/collect_release_bundle.py scripts/release_readiness.py scripts/release_publication.py scripts/release_operator.py scripts/check_markdown_links.py + bash scripts/test_python_tooling.sh python3 scripts/release_operator.py --help >/dev/null python3 scripts/release_operator.py preflight --help >/dev/null python3 scripts/release_operator.py readiness-start --help >/dev/null From fb76154deb1c1b977623282aa44e3d85b848d76c Mon Sep 17 00:00:00 2001 From: jialin <51790758+yyjeqhc@users.noreply.github.com> Date: Wed, 26 Aug 2026 07:19:17 +0800 Subject: [PATCH 2/4] Run all Python tooling tests from one entrypoint --- scripts/release_check.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/release_check.sh b/scripts/release_check.sh index 33d3bdf8..6ac03a6d 100755 --- a/scripts/release_check.sh +++ b/scripts/release_check.sh @@ -160,8 +160,7 @@ done # Stage 9: release verification tooling self-tests # ---------------------------------------------------------------------------- stage_start "release verification tooling self-tests" -if python3 -m unittest scripts.tests.test_verify_public_release scripts.tests.test_collect_release_bundle scripts.tests.test_release_readiness scripts.tests.test_release_publication scripts.tests.test_check_markdown_links \ - && python3 -m py_compile scripts/verify_public_release.py scripts/collect_release_bundle.py scripts/release_readiness.py scripts/release_publication.py scripts/release_operator.py scripts/check_markdown_links.py \ +if bash scripts/test_python_tooling.sh \ && python3 scripts/release_operator.py --help >/dev/null \ && python3 scripts/release_operator.py preflight --help >/dev/null \ && python3 scripts/release_operator.py reclaim-tag --help >/dev/null \ From bf848038ca998a63fdbefd7810ef6c2ee2dd8dc8 Mon Sep 17 00:00:00 2001 From: jialin <51790758+yyjeqhc@users.noreply.github.com> Date: Wed, 26 Aug 2026 07:19:26 +0800 Subject: [PATCH 3/4] Run all Python tooling tests from one entrypoint --- scripts/test_python_tooling.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 scripts/test_python_tooling.sh diff --git a/scripts/test_python_tooling.sh b/scripts/test_python_tooling.sh new file mode 100644 index 00000000..52a8ba72 --- /dev/null +++ b/scripts/test_python_tooling.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +cd "$ROOT" + +python3 - <<'PY' +from pathlib import Path + +paths = sorted(Path("scripts").rglob("*.py")) +for path in paths: + source = path.read_bytes() + compile(source, str(path), "exec") +print(f"syntax-checked {len(paths)} Python files under scripts/") +PY + +python3 -m unittest discover \ + --start-directory scripts/tests \ + --pattern 'test_*.py' From f9e509663efab779f225de1c8f9193477b2b0c8d Mon Sep 17 00:00:00 2001 From: jialin <51790758+yyjeqhc@users.noreply.github.com> Date: Wed, 26 Aug 2026 07:27:17 +0800 Subject: [PATCH 4/4] Install Python tooling test dependencies in CI --- .github/workflows/ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index afed4172..d8c11c2f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,6 +119,12 @@ jobs: - uses: actions/setup-node@v4 with: node-version: 22 + - name: Ensure Python tooling test dependencies + run: | + if ! command -v rg >/dev/null 2>&1; then + sudo apt-get update + sudo apt-get install --no-install-recommends -y ripgrep + fi - name: Test release verification tooling run: | bash scripts/test_python_tooling.sh