Releases: nedbat/coveragepy
7.9.1
Version 7.9.1 — 2025-06-13
- The “no-ctracer” warning is not issued for Python pre-release versions. Coverage doesn’t ship compiled wheels for those versions, so this was far too noisy.
- On Python 3.14+, the “sysmon” core is now the default if it’s supported for your configuration. Plugins and dynamic contexts are still not supported with it.
➡️ PyPI page: coverage 7.9.1.
➡️ To install: python3 -m pip install coverage==7.9.1
7.9.0
Version 7.9.0 — 2025-06-11
- Added a
[run] core
configuration setting to specify the measurement core, which was previously only available through the COVERAGE_CORE environment variable. Finishes issue 1746. - Fixed incorrect rendering of f-strings with doubled braces, closing issue 1980.
- If the C tracer core can’t be imported, a warning (“no-ctracer”) is issued with the reason.
- The C tracer core extension module now conforms to PEP 489, closing issue 1977. Thanks, Adam Turner.
- Fixed a “ValueError: min() arg is an empty sequence” error caused by strange empty modules, found by oss-fuzz.
➡️ PyPI page: coverage 7.9.0.
➡️ To install: python3 -m pip install coverage==7.9.0
7.8.2
Version 7.8.2 — 2025-05-23
- Wheels are provided for Windows ARM64 on Python 3.11, 3.12, and 3.13. Thanks, Finn Womack.
➡️ PyPI page: coverage 7.8.2.
➡️ To install: python3 -m pip install coverage==7.8.2
7.8.1
Version 7.8.1 — 2025-05-21
- A number of EncodingWarnings were fixed that could appear if you’ve enabled PYTHONWARNDEFAULTENCODING, fixing issue 1966. Thanks, Henry Schreiner.
- Fixed a race condition when using sys.monitoring with free-threading Python, closing issue 1970.
➡️ PyPI page: coverage 7.8.1.
➡️ To install: python3 -m pip install coverage==7.8.1
7.8.0
Version 7.8.0 — 2025-03-30
- Added a new
source_dirs
setting for symmetry with the existingsource_pkgs
setting. It’s preferable to the existingsource
setting, because you’ll get a clear error when directories don’t exist. Fixes issue 1942. Thanks, Jeremy Fleischman. - Fix: the PYTHONSAFEPATH environment variable new in Python 3.11 is properly supported, closing issue 1696. Thanks, Philipp A.. This works properly except for a detail when using the
coverage
command on Windows. There you can usepython -m coverage
instead if you need exact emulation.
➡️ PyPI page: coverage 7.8.0.
➡️ To install: python3 -m pip install coverage==7.8.0
7.7.1
Version 7.7.1 — 2025-03-21
- A few small tweaks to the sys.monitoring support for Python 3.14. Please test!
➡️ PyPI page: coverage 7.7.1.
➡️ To install: python3 -m pip install coverage==7.7.1
7.7.0
Version 7.7.0 — 2025-03-16
- The Coverage object has a new method, Coverage.branch_stats() for getting simple branch information for a module. Closes issue 1888.
- The Coverage constructor now has a
plugins
parameter for passing in plugin objects directly, thanks to Alex Gaynor. - Many constant tests in if statements are now recognized as being optimized away. For example, previously
if 13:
would have been considered a branch with one path not taken. Now it is understood as always true and no coverage is missing. - The experimental sys.monitoring support now works for branch coverage if you are using Python 3.14.0 alpha 6 or newer. This should reduce the overhead coverage.py imposes on your test suite. Set the environment variable
COVERAGE_CORE=sysmon
to try it out. - Confirmed support for PyPy 3.11. Thanks Michał Górny.
➡️ PyPI page: coverage 7.7.0.
➡️ To install: python3 -m pip install coverage==7.7.0
7.6.12
Version 7.6.12 — 2025-02-11
- Fix: some aarch64 distributions were missing (issue 1927). These are now building reliably.
➡️ PyPI page: coverage 7.6.12.
➡️ To install: python3 -m pip install coverage==7.6.12
7.6.11
Version 7.6.11 — 2025-02-08
- Fix: a memory leak in CTracer has been fixed. The details are in issue 1924 and pytest-dev 676. This should reduce the memory footprint for everyone even if it hadn’t caused a problem before.
- We now ship a py3-none-any.whl wheel file. Thanks, Russell Keith-Magee.
➡️ PyPI page: coverage 7.6.11.
➡️ To install: python3 -m pip install coverage==7.6.11
7.6.10
Version 7.6.10 — 2024-12-26
- Fix: some descriptions of missing branches in HTML and LCOV reports were incorrect when multi-line statements were involved (issue 1874 and issue 1875). These are now fixed.
- Fix: Python 3.14 defers evaluation of annotations by moving them into separate code objects. That code is rarely executed, so coverage.py would mark them as missing, as reported in issue 1908. Now they are ignored by coverage automatically.
- Fixed an obscure and mysterious problem on PyPy 3.10 seemingly involving mocks, imports, and trace functions: issue 1902. To be honest, I don’t understand the problem or the solution, but
git bisect
helped find it, and now it’s fixed. - Docs: re-wrote the Measuring subprocesses page to put multiprocessing first and to highlight the correct use of https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.
➡️ PyPI page: coverage 7.6.10.
➡️ To install: python3 -m pip install coverage==7.6.10