Version 7.14.2 — 2026-06-20
- Fix: some messages were being written to stdout, making
coverage json -o -useless for capturing JSON output. Now messages are written to stderr, fixing issue 2197. - Fix:
CoverageDatakept one SQLite connection per thread that recorded coverage, but never closed them when those threads terminated. On long runs with many short-lived threads this leaked one file descriptor per dead thread, eventually failing withOSError: [Errno 24] Too many open files. Connections belonging to terminated threads are now closed and dropped. Fixes issue 2192. - Fix: when using sys.monitoring, we were assuming we could use the
COVERAGE_IDtool id. But other tools might also assume they could use that id. Pre-allocated ids don’t really make sense, so now we search for a usable one instead. Fixes issue 2187. Thanks, Matthew Lloyd. - Following the advice of cibuildwheel, we no longer distribute wheels for Python 3.13 free-threaded.
➡️ PyPI page: coverage 7.14.2.
➡️ To install: python3 -m pip install coverage==7.14.2