Skip to content

Upgrading coverage 6 to 7

Breaking6.5.0 → 7.17.0Breaking4Security4Platform9Deprecated2New38Changed55Fixed153Other21

BreakingUpgrade verdict

4 breaking changes and 9 platform requirement changes and 4 security fixes.

  • The fullcoverage feature is gone, since CPython stopped using it in 2021 and it stopped working in Python 3.13.
  • The old note option is gone; remove it from your configuration.
  • Patterns used to select files now behave differently: a single star stays within one folder, and a double star can span any number of folders.
  • If you explicitly ask for the sysmon engine but your settings are incompatible, coverage now stops with an error rather than just warning.
Top 5 of 19 that need code or config changes

Python requirement changed in 7.17.0: >=3.7 → >=3.11.

Breaking4
Removes the "fullcoverage" feature used by CPython to measure coverage of early-imported standard library modules.
fullcoverage
Removes the deprecated [run] note setting completely.
[run] note
Changes file pattern matching: * no longer matches directory separators, and ** matches any number of nested directories including none.
***
Explicitly requesting the sysmon core when other settings conflict now raises an error instead of a warning.
sysmon
Security4
Fixes HTML report escaping of double quotes in source file names used in href attributes of index and prev/next links.
Fixes LCOV report to replace control characters in fields, preventing forged records from file names containing newlines.
Fixes HTML report injection where a context label containing </script> could close the inline script element early when show_contexts is enabled.
show_contexts
Hides environment variable values in coverage debug sys output with asterisks, since they could have included sensitive data.
coverage debug sys
Platform9
Drops support for Python 3.10.
Drops support for Python 3.9 and declares support for Python 3.15 alpha.
Drops support for Python 3.8 and PyPy 3.8.
Adds support for Python 3.13.0b3.
Starts testing on Python 3.13 free-threading (nogil) builds, without claiming full support yet.
Adds support for Python 3.13.0b1.
Adds support for Python 3.13.0a6.
Adds support for Python 3.13.0a3.
Drops support for Python 3.7.
Deprecated2
Eventlet support is no longer tested because eventlet's deprecation warnings break the test suite; support code remains.
eventlet
Deprecates the coverage3 and coverage-3.10 command entry points, which still work but print a deprecation message.
coveragecoverage3coverage-3.10