Skip to content

Run the Whole Test Suite Before a Push, Not the Modules a Change Touches #2280

Description

@ptr727

What Happened

On #2278 the local run covered tests.test_pr_review and tests.test_local_review, the two modules the change touched, and both passed. CI's unit test job then failed in tests/test_tooling_encoding.py. That test walks every text-mode subprocess.run in the tree and requires each one to name its encoding, and a new test in test_pr_review.py did not. A full python3 -m unittest discover -s tests run would have caught it before the push. Instead it cost a fix push and a Copilot round.

Why It Recurs

GOVERNANCE.md "Verification Discipline" requires the whole lint gate before every push, "not the parts that look relevant", because CI runs all of it. Nothing states the same for tests. This repository carries suite-wide meta-tests (tooling encoding, the write-command partition, carried-content contracts) that judge any file, so a change can fail a test module it never touched.

Proposal

Extend that bullet, or add one beside it, to cover tests: run the repository's whole test suite before every push, in the invocation CI uses, for the reason the lint bullet already gives.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    gateA rule with no mechanical check, or a check that misses a shape

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions