From 77c11c52e417711293a76a94b9e5bc54b5b0ce55 Mon Sep 17 00:00:00 2001 From: ScottW514 Date: Wed, 2 Sep 2026 19:09:07 -0400 Subject: [PATCH] forgetest CI: run the python steps with -B so no bytecode enters the recipe fetch B-16: the forgetest recipe fetches the package directory whole, and the file fetcher's checksum is taken before do_unpack drops __pycache__, so a host `__pycache__` written by running the tests moves the recipe's task hash with no source change. The three python steps run with -B now; `src-sync` to the build VM excludes the caches as well. A developer who runs the tests locally without -B still creates them; there is no exclude on the file fetcher, so this is the floor, not a cure (BRINGUP item 11). --- .github/workflows/forgetest-ci.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/forgetest-ci.yml b/.github/workflows/forgetest-ci.yml index 9885b11..d83190e 100644 --- a/.github/workflows/forgetest-ci.yml +++ b/.github/workflows/forgetest-ci.yml @@ -54,13 +54,15 @@ jobs: - name: Unit tests working-directory: forgefirm/forgetest - run: python -m unittest discover -s tests -v + # -B: no bytecode caches under the package directory (the recipe's fetch + # checksum would otherwise move without a source change) + run: python -B -m unittest discover -s tests -v - name: No undefined names (the live drills never execute on the host) working-directory: forgefirm/forgetest run: | pip install pyflakes - if python -m pyflakes forgetest tests | grep -E "undefined name"; then exit 1; fi + if python -B -m pyflakes forgetest tests | grep -E "undefined name"; then exit 1; fi - name: Shared UI files match forgectrl at its pinned revision working-directory: forgefirm @@ -68,7 +70,7 @@ jobs: - name: Coverage lint (enforced) working-directory: forgefirm/forgetest - run: python -m forgetest.coverage --manifest ../tree-manifest.json --enforce | tee "$GITHUB_STEP_SUMMARY" + run: python -B -m forgetest.coverage --manifest ../tree-manifest.json --enforce | tee "$GITHUB_STEP_SUMMARY" - name: Gate self-check on the tree manifest working-directory: forgefirm