From 3bd003c254864f9671d66317a02d1a69e240ddff Mon Sep 17 00:00:00 2001 From: Ryan Crabbe Date: Sat, 9 May 2026 17:34:13 -0700 Subject: [PATCH] ci(mutation): uninstall pytest-retry before mutmut runs `-p no:retry` (and similar names) didn't match pytest-retry's entry-point name, so the plugin still loaded and crashed during mutmut's "Running clean tests" phase. Uninstalling the package is surgical and doesn't depend on guessing the entry-point name. --- .github/workflows/mutation-test.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/mutation-test.yml b/.github/workflows/mutation-test.yml index a713d2045be..1d6caf25cff 100644 --- a/.github/workflows/mutation-test.yml +++ b/.github/workflows/mutation-test.yml @@ -75,6 +75,16 @@ jobs: uv pip uninstall litellm uv pip install . --no-deps + # pytest-retry's pytest_configure hook crashes with + # `INTERNALERROR: no option named 'filtered_exceptions'` when invoked + # via mutmut's in-process pytest.main() call. The entry-point name + # doesn't normalize cleanly with `-p no:`, so just remove the + # package outright. Reruns are wrong for mutation testing anyway — + # rerunning a "failed" mutant test would mask which mutants are killed. + - name: Remove pytest plugins that conflict with mutmut + run: | + uv pip uninstall pytest-retry || true + - name: Run mutmut env: # Make the mutants/ sandbox win over site-packages on sys.path so the