From 50e7448ac61c6a9e8f25845ff40eb5d9141313d4 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Thu, 23 Jul 2026 18:32:53 +0100 Subject: [PATCH] feat: legacy env-profile names die in workflows (#161 step 6, stage 3) The step-6 rename is complete in every workspace repo, so the workflow fallbacks for env_vars*.yaml go: workspace-validation.yml and the reusable smoke workflow's strict validate step resolve profile_release.yaml only. Docs and skill text drop the legacy notes. Co-Authored-By: Claude Fable 5 --- .github/workflows/smoke-tests.yml | 7 +++---- .github/workflows/workspace-validation.yml | 19 +++++++------------ docs/release_validation.md | 3 +-- skills/smoke_test/SKILL.md | 3 +-- skills/smoke_test/reference.md | 3 +-- 5 files changed, 13 insertions(+), 22 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index ec37cea..1c6e56c 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -91,10 +91,9 @@ jobs: # in seconds instead of in the next nightly. Workspaces without a # release profile (user workspaces, HowTo*) are skipped. run: | - # Fire if the workspace carries a release profile under either name: - # canonical profile_release.yaml (PyAutoHands#161/#181 step 6 rename) - # or legacy env_vars_release.yaml. The validator resolves both names. - if [ -f workspace/config/build/profile_release.yaml ] || [ -f workspace/config/build/env_vars_release.yaml ]; then + # 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 else diff --git a/.github/workflows/workspace-validation.yml b/.github/workflows/workspace-validation.yml index 8b15d67..077cb0c 100644 --- a/.github/workflows/workspace-validation.yml +++ b/.github/workflows/workspace-validation.yml @@ -6,8 +6,8 @@ name: Workspace Validation # mode=smoke (default — schedule / bare workflow_dispatch / workflow_call) # Runs every workspace's scripts AND generated notebooks against the # CURRENT source `main` of the 5 libraries (source-shadowed via PYTHONPATH, -# under the `smoke` env profile — config/build/profile_smoke.yaml, legacy -# env_vars.yaml accepted during migration). Unchanged by +# under the `smoke` env profile — config/build/profile_smoke.yaml). +# Unchanged by # M3 — this remains the continuous readiness signal / weekly sweep, and # `test_run`/`readiness` keep reading its conclusion the same way. # @@ -20,8 +20,7 @@ name: Workspace Validation # still run FROM WITHIN each workspace checkout so autonerves resolves the # workspace's own config/ + dataset/, not the wheel's packaged defaults # (closes Gap 4). Uses the `release` env profile — each workspace/ -# workspace_test repo's config/build/profile_release.yaml (legacy -# env_vars_release.yaml accepted during migration) — which is +# workspace_test repo's config/build/profile_release.yaml — which is # PYAUTO_TEST_MODE=1 (reduced, real sampler) + SMALL_DATASETS=1 + # FAST_PLOTS=1 for user workspaces, PYAUTO_TEST_MODE=0 (real searches, # each script's own n_like_max caps) + full-res + real plots for @@ -82,8 +81,7 @@ env: # Workspace pins lag the libraries' source __version__ between releases; # without this every script fails fast with WorkspaceVersionMismatchError. # Same bypass run_scripts uses in release.yml. mode=release also carries this - # in profile_release.yaml (legacy env_vars_release.yaml accepted during - # migration; the TestPyPI dev version never matches the + # in profile_release.yaml (the TestPyPI dev version never matches the # workspace pin either) — belt and braces. PYAUTO_SKIP_WORKSPACE_VERSION_CHECK: "1" @@ -317,15 +315,12 @@ jobs: # the wheel's packaged defaults (closes Gap 4). set -e pushd workspace - # Prefer the canonical profile_release.yaml (PyAutoHands#161/#181 step - # 6 rename); fall back to the legacy env_vars_release.yaml so this - # workflow accepts both names during the migration window. + # Use the canonical profile_release.yaml (PyAutoHands#161/#181 step + # 6 rename). if [ -f "config/build/profile_release.yaml" ]; then ENV_CONFIG="config/build/profile_release.yaml" - elif [ -f "config/build/env_vars_release.yaml" ]; then - ENV_CONFIG="config/build/env_vars_release.yaml" else - echo "::error::config/build/profile_release.yaml missing (legacy env_vars_release.yaml also accepted) — no release profile defined for this workspace" + echo "::error::config/build/profile_release.yaml missing — no release profile defined for this workspace" exit 1 fi python3 "$(pwd)/../PyAutoHands/autohands/run_python.py" \ diff --git a/docs/release_validation.md b/docs/release_validation.md index ea15107..c01e97d 100644 --- a/docs/release_validation.md +++ b/docs/release_validation.md @@ -11,8 +11,7 @@ readiness hard gate. **M3 wires the acceptance criteria below into untouched, default `mode: smoke` per-PR path): - The `release` env profile lives in each workspace/`*_workspace_test` repo as - `config/build/profile_release.yaml` (legacy `env_vars_release.yaml` is still - accepted during the migration window) — a self-contained sibling of + `config/build/profile_release.yaml` — a self-contained sibling of `profile_smoke.yaml` (the `smoke` profile), passed to Build's `run_python.py` unmodified via its existing `--env-config` flag. No changes were needed in PyAutoHands's executor primitives to support this — `--env-config` already diff --git a/skills/smoke_test/SKILL.md b/skills/smoke_test/SKILL.md index a6ba6e1..408997e 100644 --- a/skills/smoke_test/SKILL.md +++ b/skills/smoke_test/SKILL.md @@ -49,8 +49,7 @@ the user explicitly passes workspace names. ### 2. Load env config + wipe stale output -For each workspace, read `config/build/profile_smoke.yaml` (legacy -`env_vars.yaml` is still accepted during the migration window) to build the per-script env +For each workspace, read `config/build/profile_smoke.yaml` to build the per-script env prefix (`defaults` minus matching `overrides` `unset`s, plus optional `args_default`). Before launching, wipe `/output/*` (glob — keep the tracked `output/` dir). Detail: [`reference.md`](reference.md) → diff --git a/skills/smoke_test/reference.md b/skills/smoke_test/reference.md index b91cb85..637dbca 100644 --- a/skills/smoke_test/reference.md +++ b/skills/smoke_test/reference.md @@ -16,8 +16,7 @@ notebook. ## Environment config -Each workspace's `config/build/profile_smoke.yaml` (legacy `env_vars.yaml` is -still accepted during the migration window) has: +Each workspace's `config/build/profile_smoke.yaml` has: - `defaults` — env vars applied to every script (`PYAUTO_TEST_MODE`, `PYAUTO_SMALL_DATASETS`, …).