Skip to content

Update coverage to 7.15.2 - #2988

Closed
pyup-bot wants to merge 1 commit into
masterfrom
pyup-update-coverage-7.13.1-to-7.15.2
Closed

Update coverage to 7.15.2#2988
pyup-bot wants to merge 1 commit into
masterfrom
pyup-update-coverage-7.13.1-to-7.15.2

Conversation

@pyup-bot

Copy link
Copy Markdown
Collaborator

This PR updates coverage from 7.13.1 to 7.15.2.

Changelog

7.15.2

---------------------------

- Fix: one of the performance improvements in 7.15.1 (pull 2215) dramatically
increased memory use during reporting for large projects. Now we use a
different approach that is both faster and slimmer than 7.15.0. Fixes `issue
2229`_.

.. _issue 2229:  https://github.com/coveragepy/coveragepy/issues/2229


.. _changes_7-15-1:

7.15.1

---------------------------

- Fix: in the HTML report with ``show_contexts`` enabled, a context label
containing ``</script>`` (for example a parametrized pytest node id) could
close the inline ``<script>`` element in a file page early, injecting markup.
Context labels are now fully escaped. Thanks, `Rajath Mohare <pull 2224_>`_.

- A number of performance improvements thanks to Paul Kehrer, in pull requests
`2213 <pull 2213_>`_, `2214 <pull 2214_>`_, `2215 <pull 2215_>`_, `2216
<pull 2216_>`_, `2218 <pull 2218_>`_, `2220 <pull 2220_>`_, and `2221 <pull
2221_>`_.

.. _pull 2213: https://github.com/coveragepy/coveragepy/pull/2213
.. _pull 2214: https://github.com/coveragepy/coveragepy/pull/2214
.. _pull 2215: https://github.com/coveragepy/coveragepy/pull/2215
.. _pull 2216: https://github.com/coveragepy/coveragepy/pull/2216
.. _pull 2218: https://github.com/coveragepy/coveragepy/pull/2218
.. _pull 2220: https://github.com/coveragepy/coveragepy/pull/2220
.. _pull 2221: https://github.com/coveragepy/coveragepy/pull/2221
.. _pull 2224: https://github.com/coveragepy/coveragepy/pull/2224

.. _changes_7-15-0:

7.15.0

---------------------------

- Since 7.14.0, reporting commands implicitly combine parallel data files. Now
those commands have a new option ``--keep-combined`` to retain the data files
after combining them instead of the default, which is to delete them.
Finishes `issue 2198`_.

- Fix: the LCOV report would incorrectly count excluded functions as uncovered,
as described in `issue 2205`_. This is now fixed thanks to `Martin Kuntz
Jacobsen <pull 2206_>`_.

- When running your program, coverage now correctly sets
``yourmodule.__spec__.loader`` as `strongly recommended <--loader--_>`_,
avoiding the deprecation warning described in `issue 2208`_. Thanks, `A5rocks
<pull 2209_>`_.

- Fix: with Python 3.10, running with the ``-I`` (isolated mode) option didn't
correctly omit the current directory from the module search path, as
described in `issue 2103`_. That is now fixed thanks to `Ilia Sorokin <pull
2211_>`_.

.. _--loader--: https://docs.python.org/3/reference/datamodel.html#module.__loader__
.. _issue 2103:  https://github.com/coveragepy/coveragepy/issues/2103
.. _issue 2198:  https://github.com/coveragepy/coveragepy/issues/2198
.. _issue 2205:  https://github.com/coveragepy/coveragepy/issues/2205
.. _pull 2206: https://github.com/coveragepy/coveragepy/pull/2206
.. _issue 2208:  https://github.com/coveragepy/coveragepy/issues/2208
.. _pull 2209: https://github.com/coveragepy/coveragepy/pull/2209
.. _pull 2211: https://github.com/coveragepy/coveragepy/pull/2211


.. _changes_7-14-3:

7.14.3

---------------------------

- Fix: the default ``...`` exclusion rule now also matches function bodies
whose closing return-type bracket is on its own line (for example, after a
long ``-> dict[ ... ]`` annotation that a formatter has split over multiple
lines). Closes `issue 2185`_, thanks `Mengjia Shang <pull 2196_>`_.

- Fix: On 3.13t, we incorrectly issued ``Couldn't import C tracer`` errors.
We can't import the C tracer because in 7.14.2 we stopped shipping compiled
wheels for 3.13t. Thanks, `Hugo van Kemenade <pull 2203_>`_.

.. _issue 2185: https://github.com/coveragepy/coveragepy/issues/2185
.. _pull 2196: https://github.com/coveragepy/coveragepy/pull/2196
.. _pull 2203: https://github.com/coveragepy/coveragepy/pull/2203


.. _changes_7-14-2:

7.14.2

---------------------------

- 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: ``CoverageData`` kept 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 with ``OSError: [Errno 24] Too many open files``.
Connections belonging to terminated threads are now closed and dropped.
Fixes `issue 2192`_.  Thanks, `Matthew Lloyd <pull 2193_>`_.

- Fix: when using sys.monitoring, we were assuming we could use the
``COVERAGE_ID`` tool 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`_.

- Following `the advice of cibuildwheel <no-13t_>`_, we no longer distribute
wheels for Python 3.13 free-threaded.

.. _issue 2187: https://github.com/coveragepy/coveragepy/issues/2187
.. _issue 2192: https://github.com/coveragepy/coveragepy/issues/2192
.. _pull 2193: https://github.com/coveragepy/coveragepy/pull/2193
.. _issue 2197: https://github.com/coveragepy/coveragepy/issues/2197
.. _no-13t: https://py-free-threading.github.io/ci/#building-free-threaded-wheels-with-cibuildwheel


.. _changes_7-14-1:

7.14.1

---------------------------

- Fix: the HTML report used typographic niceties to make file paths more
readable by adding a small amount of space around slashes. Those spaces
interfered with searching the page for file paths of interest. Now the report
uses CSS to accomplish the same visual tweak so that searches with slashes
work correctly. Closes `issue 2170`_.

- `Add a 3.16 PyPI classifier <hugo-316_>`_ since we test on the 3.16 main
branch.

.. _issue 2170: https://github.com/coveragepy/coveragepy/issues/2170
.. _hugo-316: https://mastodon.social/hugovk/116588523571204490


.. _changes_7-14-0:

7.14.0

---------------------------

- Feature: now when running one of the reporting commands, if there are
parallel data files that need combining, they will be implicitly combined
before creating the report. There is no option to avoid the combination; let
us know if you have a use case that requires it.  Thanks, `Tim Hatch
<pull 2162_>`_. Closes `issue 1781`_.

- Fix: the output from ``combine`` was too verbose, listing each file
considered. Now it shows a single line with the counts of files combined,
files skipped, and files with errors. The ``-q`` flag suppresses this line.
The old detailed lines are available with the new ``--debug=combine`` option.

- Fix: running a Python file through a symlink now sets the sys.path correctly,
matching regular Python behavior. Fixes `issue 2157`_.

- Fix: ``Collector.flush_data`` could fail with "RuntimeError: Set changed
size during iteration" when a tracer in another thread added a line to the
per-file set that ``add_lines`` (or ``add_arcs``) was iterating. The values
passed to ``CoverageData`` are now snapshotted via ``dict.copy()`` and
``set.copy()``, which are atomic under the GIL. Thanks, `Alex Vandiver <pull
2165_>`_.

- Fix: the soft keyword ``lazy`` is now bolded in HTML reports.

- We are no longer testing eventlet support. Eventlet started issuing stern
deprecation warnings that break our tests. Our support code is still there.

.. _issue 1781: https://github.com/coveragepy/coveragepy/issues/1781
.. _issue 2157: https://github.com/coveragepy/coveragepy/issues/2157
.. _pull 2162: https://github.com/coveragepy/coveragepy/pull/2162
.. _pull 2165: https://github.com/coveragepy/coveragepy/pull/2165


.. _changes_7-13-5:

7.13.5

---------------------------

- Fix: `issue 2138`_ describes a memory leak that happened when repeatedly
using the Coverage API with in-memory data. This is now fixed.

- Fix: the markdown-formatted coverage report didn't fully escape special
characters in file paths (`issue 2141`_). This would be very unlikely to
cause a problem, but now it's done properly, thanks to `Ellie Ayla
<pull 2142_>`_.

- Fix: the C extension wouldn't build on VS2019, but now it does (`issue
2145`_).

.. _issue 2138: https://github.com/coveragepy/coveragepy/issues/2138
.. _issue 2141: https://github.com/coveragepy/coveragepy/issues/2141
.. _pull 2142: https://github.com/coveragepy/coveragepy/pull/2142
.. _issue 2145: https://github.com/coveragepy/coveragepy/issues/2145


.. _changes_7-13-4:

7.13.4

---------------------------

- Fix: the third-party code fix in 7.13.3 required examining the parent
directories where coverage was run. In the unusual situation that one of the
parent directories is unreadable, a PermissionError would occur, as
described in `issue 2129`_. This is now fixed.

- Fix: in test suites that change sys.path, coverage.py could fail with
"RuntimeError: Set changed size during iteration" as described and fixed in
`pull 2130`_. Thanks, Noah Fatsi.

- We now publish ppc64le wheels, thanks to `Pankhudi Jain <pull 2121_>`_.

.. _pull 2121: https://github.com/coveragepy/coveragepy/pull/2121
.. _issue 2129: https://github.com/coveragepy/coveragepy/issues/2129
.. _pull 2130: https://github.com/coveragepy/coveragepy/pull/2130


.. _changes_7-13-3:

7.13.3

---------------------------

- Fix: in some situations, third-party code was measured when it shouldn't have
been, slowing down test execution. This happened with layered virtual
environments such as uv sometimes makes. The problem is fixed, closing `issue
2082`_. Now any directory on sys.path that is inside a virtualenv is
considered third-party code.

.. _issue 2082: https://github.com/coveragepy/coveragepy/issues/2082


.. _changes_7-13-2:

7.13.2

---------------------------

- Fix: when Python is installed via symlinks, for example with Homebrew, the
standard library files could be incorrectly included in coverage reports.
This is now fixed, closing `issue 2115`_.

- Fix: if a data file is created with no read permissions, the combine step
would fail completely. Now a warning is issued and the file is skipped.
Closes `issue 2117`_.

.. _issue 2115: https://github.com/coveragepy/coveragepy/issues/2115
.. _issue 2117: https://github.com/coveragepy/coveragepy/issues/2117


.. _changes_7-13-1:
Links

@pyup-bot

pyup-bot commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator Author

Closing this in favor of #3007

@pyup-bot pyup-bot closed this Aug 3, 2026
@tapple
tapple deleted the pyup-update-coverage-7.13.1-to-7.15.2 branch August 3, 2026 13:22
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.

1 participant