From ce66dc6ced28d394c0ab4189538502495e591010 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Thu, 23 Jul 2026 21:21:05 +0100 Subject: [PATCH] refactor: validate env profiles for every smoke-profile workspace (PyAutoHands#185) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The PR-time profile validation gate only fired for workspaces carrying a profile_release.yaml, which exempted exactly the smoke-only repos (HowTo*) — the ones whose run_smoke.py forks just collapsed onto the shared resolver. Now the validator runs for any workspace with a config/build/profile_smoke.yaml; the release-only strict flags (--strict-derivation --strict-markers) still apply only where a profile_release.yaml exists. Requires PyAutoHands' companion change making the release profile optional in validate_env_profiles.py (merge that first). Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01MRQH5HrmMPfpWkmfh3ysJb --- .github/workflows/smoke-tests.yml | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 1c6e56c..9191ea8 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -83,21 +83,26 @@ jobs: run: mkdir -p /tmp/numba_cache /tmp/matplotlib - name: Validate env profiles (strict — PyAutoHands#161 step 5) - # Binding PR-time config gate for workspaces that carry a release - # profile (the *_workspace_test repos): both profiles must parse, no - # dead patterns, no PYAUTO_DISABLE_JAX enumeration creeping back - # (strict-derivation), and every script's resolved backend must match - # its JAX name marker (strict-markers). Config-only errors fail here - # in seconds instead of in the next nightly. Workspaces without a - # release profile (user workspaces, HowTo*) are skipped. + # Binding PR-time config gate for every workspace that carries a smoke + # profile: the profile must parse, no dead patterns, no legacy names. + # Config-only errors fail here in seconds instead of in the next + # nightly. The release-only strict flags — no PYAUTO_DISABLE_JAX + # enumeration creeping back (strict-derivation), every script's + # resolved backend matching its JAX name marker (strict-markers) — + # apply only where a canonical profile_release.yaml exists (the + # *_workspace_test repos). run: | - # Fire if the workspace carries a release profile: the canonical - # profile_release.yaml (PyAutoHands#161/#181 step 6 rename). - if [ -f workspace/config/build/profile_release.yaml ]; then - python PyAutoHands/autohands/validate_env_profiles.py workspace \ - --strict-derivation --strict-markers + # Fire if the workspace carries a smoke profile: the canonical + # profile_smoke.yaml (PyAutoHands#161/#181 step 6 rename). + if [ -f workspace/config/build/profile_smoke.yaml ]; then + if [ -f workspace/config/build/profile_release.yaml ]; then + python PyAutoHands/autohands/validate_env_profiles.py workspace \ + --strict-derivation --strict-markers + else + python PyAutoHands/autohands/validate_env_profiles.py workspace + fi else - echo "No config/build/profile_release.yaml — profile validation skipped." + echo "No config/build/profile_smoke.yaml — profile validation skipped." fi - name: Run smoke tests