Skip to content

perf(tests): skip coverage on 3.13t - #1391

Merged
henryiii merged 1 commit into
pypa:mainfrom
henryiii:tests-no-coverage-3.13t
Aug 16, 2026
Merged

perf(tests): skip coverage on 3.13t#1391
henryiii merged 1 commit into
pypa:mainfrom
henryiii:tests-no-coverage-3.13t

Conversation

@henryiii

@henryiii henryiii commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Our 3.13t job is reallllly slow (8 mins on CI). This brings it in line with the others, under 2 mins. No need to check coverage on every job, they all report 100% (not combined later, in other words).

Also now support turning off (or on) coverage from nox.

$ nox -s tests -j 12
...
nox > Ran 11 sessions in 41 seconds:
nox > * tests-3.10: success, took 40 seconds
nox > * tests-3.11: success, took 41 seconds
nox > * tests-3.12: success, took 31 seconds
nox > * tests-3.13: success, took 32 seconds
nox > * tests-3.14: success, took 19 seconds
nox > * tests-3.15: success, took 16 seconds
nox > * tests-3.13t: success, took 29 seconds
nox > * tests-3.14t: success, took 27 seconds
nox > * tests-3.15t: success, took 25 seconds
nox > * tests-pypy3.10: success, took 24 seconds
nox > * tests-pypy3.11: success, took 21 seconds

$ nox -s tests -j 12 -- --no-coverage
...
nox > Ran 11 sessions in 22 seconds:
nox > * tests-3.10: success, took 18 seconds
nox > * tests-3.11: success, took 15 seconds
nox > * tests-3.12: success, took 14 seconds
nox > * tests-3.13: success, took 15 seconds
nox > * tests-3.14: success, took 16 seconds
nox > * tests-3.15: success, took 15 seconds
nox > * tests-3.13t: success, took 21 seconds
nox > * tests-3.14t: success, took 16 seconds
nox > * tests-3.15t: success, took 16 seconds
nox > * tests-pypy3.10: success, took 14 seconds
nox > * tests-pypy3.11: success, took 13 seconds

$ nox -s tests -j 12 -- --coverage
...
nox > Ran 11 sessions in 2 minutes:
nox > * tests-3.10: success, took 35 seconds
nox > * tests-3.11: success, took 34 seconds
nox > * tests-3.12: success, took 30 seconds
nox > * tests-3.13: success, took 32 seconds
nox > * tests-3.14: success, took 17 seconds
nox > * tests-3.15: success, took 16 seconds
nox > * tests-3.13t: success, took 2 minutes
nox > * tests-3.14t: success, took 17 seconds
nox > * tests-3.15t: success, took 17 seconds
nox > * tests-pypy3.10: failed, took a minute
nox > * tests-pypy3.11: failed, took 2 minutes

(FWIW, here's the PyPy missing coverage:

src/packaging/tags.py                  397      0    220      4    99%   916->918, 918->920, 920->922, 922->924

)

🤖 AI text below 🤖

Free-threaded 3.13 has no fast C tracer, so coverage tracking there is as slow as on PyPy.

The hardcoded PyPy check in the tests session becomes a NO_COVERAGE default (pypy, 3.13t) plus a --coverage/--no-coverage flag, so any session can turn coverage on or off:

nox -s tests-3.13t -- --coverage
nox -s tests-3.13 -- --no-coverage

Free-threaded 3.13 has no fast C tracer, so coverage is as slow as on
PyPy. Replace the hardcoded PyPy check with a NO_COVERAGE default and a
--coverage/--no-coverage flag for the tests session.

Assisted-by: ClaudeCode:claude-opus-5
@notatallshaw

Copy link
Copy Markdown
Member

No need to check coverage on every job, they all report 100% (not combined later, in other words).

Well, because different versions of Python emit different bytecode, usually due to optimizations in the compiler, I have many times had to fix coverage on some versions of Python (usually on older versions) but not others.

However, I don't think we should waste our, or CI's, time on 3.13t support.

@henryiii
henryiii merged commit 4840c3a into pypa:main Aug 16, 2026
62 checks passed
@henryiii
henryiii deleted the tests-no-coverage-3.13t branch August 16, 2026 16:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants