Upgrading coverage 6 to 7
Breaking6.5.0 → 7.17.0Breaking4Security4Platform9Deprecated2New38Changed55Fixed153Other21
SecurityFixes HTML report escaping of double quotes in source file names used in href attributes of index and prev/next links.#2227 ↗
BreakingUpgrade verdict
4 breaking changes and 9 platform requirement changes and 4 security fixes.
In plain terms
- 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.
Must act Top 5 of 19 that need code or config changes
Python requirement changed in 7.17.0: >=3.7 → >=3.11.
What you must change
Breaking4
Removes the "fullcoverage" feature used by CPython to measure coverage of early-imported standard library modules.
fullcoverageRemoves the deprecated
[run] note setting completely.[run] noteChanges 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.
sysmonSecurity4
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_contextsHides environment variable values in coverage debug sys output with asterisks, since they could have included sensitive data.
coverage debug sysPlatform9
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.
Deprecations to plan for
Deprecated2
Eventlet support is no longer tested because eventlet's deprecation warnings break the test suite; support code remains.
eventletDeprecates the
coverage3 and coverage-3.10 command entry points, which still work but print a deprecation message.coveragecoverage3coverage-3.10