Skip to content

Conversation

pyup-bot
Copy link
Collaborator

This PR updates coverage from 7.8.0 to 7.11.0.

Changelog

7.11.0

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

- Dropped support for Python 3.9, declared support for Python 3.15 alpha.


.. _changes_7-10-7:

7.10.7

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

- Performance: with branch coverage in large files, generating HTML, JSON, or
LCOV reports could take far too long due to some quadratic behavior when
creating the function and class index pages.  This is now fixed, closing
`issue 2048`_.  Thanks to Daniel Diniz for help diagnosing the problem.

- Most warnings and a few errors now have links to a page in the docs
explaining the specific message.  Closes `issue 1921`_.

.. _issue 1921: https://github.com/nedbat/coveragepy/issues/1921
.. _issue 2048: https://github.com/nedbat/coveragepy/issues/2048


.. _changes_7-10-6:

7.10.6

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

- Fix: ``source`` directories were not properly communicated to subprocesses
that ran in different directories, as reported in `issue 1499`_.  This is now
fixed.

- Performance: `Alex Gaynor continues fine-tuning <pull 2038_>`_ the speed of
combination, especially with many contexts.

.. _issue 1499: https://github.com/nedbat/coveragepy/issues/1499
.. _pull 2038: https://github.com/nedbat/coveragepy/pull/2038


.. _changes_7-10-5:

7.10.5

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

- Big speed improvements for ``coverage combine``: it's now about twice as
fast! Huge thanks to Alex Gaynor for pull requests `2032 <pull 2032_>`_,
`2033 <pull 2033_>`_, and `2034 <pull 2034_>`_.

.. _pull 2032: https://github.com/nedbat/coveragepy/pull/2032
.. _pull 2033: https://github.com/nedbat/coveragepy/pull/2033
.. _pull 2034: https://github.com/nedbat/coveragepy/pull/2034


.. _changes_7-10-4:

7.10.4

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

- Added ``patch = fork`` for times when the built-in forking support is
insufficient.

- Fix: ``patch = execv`` also inherits the entire coverage configuration now.


.. _changes_7-10-3:

7.10.3

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

- Fixes for ``patch = subprocess``:

- If subprocesses spawned yet more subprocesses simultaneously, some coverage
 could be missed.  This is now fixed, closing `issue 2024`_.

- If subprocesses were created in other directories, their data files were
 stranded there and not combined into the totals, as described in `issue
 2025`_.  This is now fixed.

- On Windows (or maybe only some Windows?) the patch would fail with a
 ``ModuleNotFound`` error trying to import coverage.  This is now fixed,
 closing `issue 2022`_.

- Originally only options set in the coverage configuration file would apply
 to subprocesses.  Options set on the ``coverage run`` command line (such as
 ``--branch``) wouldn't be communicated to the subprocesses.  This could
 lead to combining failures, as described in `issue 2021`_. Now the entire
 configuration is used in subprocesses, regardless of its origin.

- Added ``debug=patch`` to help diagnose problems.

- Fix: really close all SQLite databases, even in-memory ones. Closes `issue
2017`_.

.. _issue 2017: https://github.com/nedbat/coveragepy/issues/2017
.. _issue 2021: https://github.com/nedbat/coveragepy/issues/2021
.. _issue 2022: https://github.com/nedbat/coveragepy/issues/2022
.. _issue 2024: https://github.com/nedbat/coveragepy/issues/2024
.. _issue 2025: https://github.com/nedbat/coveragepy/issues/2025


.. _changes_7-10-2:

7.10.2

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

- Fix: some code with NOP bytecodes could report missing branches that are
actually executed. This is now fixed, closing `issue 1999`_. Python 3.9
still shows the problem.

.. _issue 1999: https://github.com/nedbat/coveragepy/issues/1999


.. _changes_7-10-1:

7.10.1

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

- Fix: the exclusion for ``if TYPE_CHECKING:`` was wrong: it marked the branch
as partial, but it should have been a line exclusion so the entire clause
would be excluded. Improves `issue 831`_.

- Fix: changed where .pth files are written for ``patch = subprocess``, closing
`issue 2006`_.

.. _issue 2006: https://github.com/nedbat/coveragepy/issues/2006


.. _changes_7-10-0:

7.10.0

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

- A new configuration option: ":ref:`config_run_patch`" specifies named patches
to work around some limitations in coverage measurement.  These patches are
available:

- ``patch = _exit`` lets coverage save its data even when :func:`os._exit()
 <python:os._exit>` is used to abruptly end the process.  This closes
 long-standing `issue 310`_ as well as its duplicates: `issue 312`_, `issue
 1673`_, `issue 1845`_, and `issue 1941`_.

- ``patch = subprocess`` measures coverage in Python subprocesses created
 with :mod:`subprocess`, :func:`os.system`, or one of the :func:`execv
 <python:os.execl>` or :func:`spawnv <python:os.spawnl>` family of
 functions. Closes old `issue 367`_, its duplicate `issue 378`_ and old
 `issue 689`_.

- ``patch = execv`` adjusts the :func:`execv <python:os.execl>` family of
 functions to save coverage data before ending the current program and
 starting the next. Not available on Windows. Closes `issue 43`_ after 15
 years!

- The HTML report now dimly colors subsequent lines in multi-line statements.
They used to have no color.  This gives a better indication of the amount of
code missing in the report.  Closes `issue 1308`_.

- Two new exclusion patterns are part of the defaults: ``...`` is automatically
excluded as a line and ``if TYPE_CHECKING:`` is excluded as a branch.  Closes
`issue 831`_.

- A new command-line option: ``--save-signal=USR1`` specifies a signal that
coverage.py will listen for.  When the signal is sent, the coverage data will
be saved.  This makes it possible to save data from within long-running
processes.  Thanks, `Arkady Gilinsky <pull 1998_>`_.

- A new configuration option: ":ref:`config_report_partial_also`" is a list of
regexes to add as pragmas for partial branches.  This parallels the
":ref:`config_report_exclude_also`" setting for adding line exclusion
patterns.

- A few file path configuration settings didn't allow for tilde expansion:
:ref:`config_json_output`, :ref:`config_lcov_output` and
:ref:`config_run_debug_file`.  This is now fixed.

- Wheels are included for 3.14 now that 3.14 rc1 is available.

- We no longer ship a PyPy-specific wheel. PyPy will install the pure-Python
wheel.  Closes `issue 2001`_.

- In the very unusual situation of not having a current frame, coverage no
longer crashes when using the sysmon core, fixing `issue 2005`_.

.. _issue 43: https://github.com/nedbat/coveragepy/issues/43
.. _issue 310: https://github.com/nedbat/coveragepy/issues/310
.. _issue 312: https://github.com/nedbat/coveragepy/issues/312
.. _issue 367: https://github.com/nedbat/coveragepy/issues/367
.. _issue 378: https://github.com/nedbat/coveragepy/issues/378
.. _issue 689: https://github.com/nedbat/coveragepy/issues/689
.. _issue 831: https://github.com/nedbat/coveragepy/issues/831
.. _issue 1308: https://github.com/nedbat/coveragepy/issues/1308
.. _issue 1673: https://github.com/nedbat/coveragepy/issues/1673
.. _issue 1845: https://github.com/nedbat/coveragepy/issues/1845
.. _issue 1941: https://github.com/nedbat/coveragepy/issues/1941
.. _pull 1998: https://github.com/nedbat/coveragepy/pull/1998
.. _issue 2001: https://github.com/nedbat/coveragepy/issues/2001
.. _issue 2005: https://github.com/nedbat/coveragepy/issues/2005

.. _changes_7-9-2:

7.9.2

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

- Fix: complex conditionals within a line might cause a KeyError when using
sys.monitoring, as reported in `issue 1991`_.  This is now fixed.

- Fix: we can now measure coverage for code in Python archive (.par) files.
Thanks, `Itamer Oren <pull 1984_>`_.

.. _pull 1984: https://github.com/nedbat/coveragepy/pull/1984
.. _issue 1991: https://github.com/nedbat/coveragepy/issues/1991


.. _changes_7-9-1:

7.9.1

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

- 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.


.. _changes_7-9-0:

7.9.0

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

- 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 <pull 1978_>`_.

- Fixed a "ValueError: min() arg is an empty sequence" error caused by strange
empty modules, found by `oss-fuzz`_.

.. _issue 1746: https://github.com/nedbat/coveragepy/issues/1746
.. _issue 1977: https://github.com/nedbat/coveragepy/issues/1977
.. _pull 1978: https://github.com/nedbat/coveragepy/pull/1978
.. _issue 1980: https://github.com/nedbat/coveragepy/issues/1980
.. _PEP 489: https://peps.python.org/pep-0489
.. _oss-fuzz: https://google.github.io/oss-fuzz/


.. _changes_7-8-2:

7.8.2

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

- Wheels are provided for Windows ARM64 on Python 3.11, 3.12, and 3.13.
Thanks, `Finn Womack <pull 1972_>`_.

.. _issue 1971: https://github.com/nedbat/coveragepy/pull/1971
.. _pull 1972: https://github.com/nedbat/coveragepy/pull/1972

.. _changes_7-8-1:

7.8.1

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

- A number of EncodingWarnings were fixed that could appear if you've enabled
PYTHONWARNDEFAULTENCODING, fixing `issue 1966`_.  Thanks, `Henry Schreiner
<pull 1967_>`_.

- Fixed a race condition when using sys.monitoring with free-threading Python,
closing `issue 1970`_.

.. _issue 1966: https://github.com/nedbat/coveragepy/issues/1966
.. _pull 1967: https://github.com/nedbat/coveragepy/pull/1967
.. _issue 1970: https://github.com/nedbat/coveragepy/issues/1970

.. _changes_7-8-0:
Links

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