Path to this page:
Subject: CVS commit: pkgsrc/devel/py-coverage
From: Thomas Klausner
Date: 2023-05-05 12:34:25
Message id: 20230505103425.875F6FA87@cvs.NetBSD.org
Log Message:
py-coverage: update to 7.2.5.
Version 7.2.5 — 2023-04-30
--------------------------
- Fix: ``html_report()`` could fail with an AttributeError on ``isatty`` if run
in an unusual environment where sys.stdout had been replaced. This is now
fixed.
Version 7.2.4 — 2023-04-28
--------------------------
PyCon 2023 sprint fixes!
- Fix: with ``relative_files = true``, specifying a specific file to include or
omit wouldn't work correctly (`issue 1604`_). This is now fixed, with
testing help by `Marc Gibbons <pull 1608_>`_.
- Fix: the XML report would have an incorrect ``<source>`` element when using
relative files and the source option ended with a slash (`issue 1541`_).
This is now fixed, thanks to `Kevin Brown-Silva <pull 1608_>`_.
- When the HTML report location is printed to the terminal, it's now a
terminal-compatible URL, so that you can click the location to open the HTML
file in your browser. Finishes `issue 1523`_ thanks to `Ricardo Newbery
<pull 1613_>`_.
- Docs: a new :ref:`Migrating page <migrating>` with details about how to
migrate between major versions of coverage.py. It currently covers the
wildcard changes in 7.x. Thanks, `Brian Grohe <pull 1610_>`_.
.. _issue 1523: https://github.com/nedbat/coveragepy/issues/1523
.. _issue 1541: https://github.com/nedbat/coveragepy/issues/1541
.. _issue 1604: https://github.com/nedbat/coveragepy/issues/1604
.. _pull 1608: https://github.com/nedbat/coveragepy/pull/1608
.. _pull 1609: https://github.com/nedbat/coveragepy/pull/1609
.. _pull 1610: https://github.com/nedbat/coveragepy/pull/1610
.. _pull 1613: https://github.com/nedbat/coveragepy/pull/1613
Version 7.2.3 — 2023-04-06
--------------------------
- Fix: the :ref:`config_run_sigterm` setting was meant to capture data if a
process was terminated with a SIGTERM signal, but it didn't always. This was
fixed thanks to `Lewis Gaul <pull 1600_>`_, closing `issue 1599`_.
- Performance: HTML reports with context information are now much more compact.
File sizes are typically as small as one-third the previous size, but can be
dramatically smaller. This closes `issue 1584`_ thanks to `Oleh Krehel
<pull 1587_>`_.
- Development dependencies no longer use hashed pins, closing `issue 1592`_.
.. _issue 1584: https://github.com/nedbat/coveragepy/issues/1584
.. _pull 1587: https://github.com/nedbat/coveragepy/pull/1587
.. _issue 1592: https://github.com/nedbat/coveragepy/issues/1592
.. _issue 1599: https://github.com/nedbat/coveragepy/issues/1599
.. _pull 1600: https://github.com/nedbat/coveragepy/pull/1600
Version 7.2.2 — 2023-03-16
--------------------------
- Fix: if a virtualenv was created inside a source directory, and a sourced
package was installed inside the virtualenv, then all of the third-party
packages inside the virtualenv would be measured. This was incorrect, but
has now been fixed: only the specified packages will be measured, thanks to
`Manuel Jacob <pull 1560_>`_.
- Fix: the ``coverage lcov`` command could create a .lcov file with incorrect
LF (lines found) and LH (lines hit) totals. This is now fixed, thanks to
`Ian Moore <pull 1583_>`_.
- Fix: the ``coverage xml`` command on Windows could create a .xml file with
duplicate ``<package>`` elements. This is now fixed, thanks to `Benjamin
Parzella <pull 1574_>`_, closing `issue 1573`_.
.. _pull 1560: https://github.com/nedbat/coveragepy/pull/1560
.. _issue 1573: https://github.com/nedbat/coveragepy/issues/1573
.. _pull 1574: https://github.com/nedbat/coveragepy/pull/1574
.. _pull 1583: https://github.com/nedbat/coveragepy/pull/1583
Version 7.2.1 — 2023-02-26
--------------------------
- Fix: the PyPI page had broken links to documentation pages, but no longer
does, closing `issue 1566`_.
- Fix: public members of the coverage module are now properly indicated so that
mypy will find them, fixing `issue 1564`_.
.. _issue 1564: https://github.com/nedbat/coveragepy/issues/1564
.. _issue 1566: https://github.com/nedbat/coveragepy/issues/1566
Version 7.2.0 — 2023-02-22
--------------------------
- Added a new setting ``[report] exclude_also`` to let you add more exclusions
without overwriting the defaults. Thanks, `Alpha Chen <pull 1557_>`_,
closing `issue 1391`_.
- Added a :meth:`.CoverageData.purge_files` method to remove recorded data for
a particular file. Contributed by `Stephan Deibel <pull 1547_>`_.
- Fix: when reporting commands fail, they will no longer congratulate
themselves with messages like "Wrote XML report to file.xml" before \
spewing a
traceback about their failure.
- Fix: arguments in the public API that name file paths now accept pathlib.Path
objects. This includes the ``data_file`` and ``config_file`` arguments to
the Coverage constructor and the ``basename`` argument to CoverageData.
Closes `issue 1552`_.
- Fix: In some embedded environments, an IndexError could occur on stop() when
the originating thread exits before completion. This is now fixed, thanks to
`Russell Keith-Magee <pull 1543_>`_, closing `issue 1542`_.
- Added a ``py.typed`` file to announce our type-hintedness. Thanks,
`KotlinIsland <pull 1550_>`_.
.. _issue 1391: https://github.com/nedbat/coveragepy/issues/1391
.. _issue 1542: https://github.com/nedbat/coveragepy/issues/1542
.. _pull 1543: https://github.com/nedbat/coveragepy/pull/1543
.. _pull 1547: https://github.com/nedbat/coveragepy/pull/1547
.. _pull 1550: https://github.com/nedbat/coveragepy/pull/1550
.. _issue 1552: https://github.com/nedbat/coveragepy/issues/1552
.. _pull 1557: https://github.com/nedbat/coveragepy/pull/1557
Version 7.1.0 — 2023-01-24
--------------------------
- Added: the debug output file can now be specified with ``[run] debug_file``
in the configuration file. Closes `issue 1319`_.
- Performance: fixed a slowdown with dynamic contexts that's been around since
6.4.3. The fix closes `issue 1538`_. Thankfully this doesn't break the
`Cython change`_ that fixed `issue 972`_. Thanks to Mathieu Kniewallner for
the deep investigative work and comprehensive issue report.
- Typing: all product and test code has type annotations.
.. _Cython change: https://github.com/nedbat/coveragepy/pull/1347
.. _issue 972: https://github.com/nedbat/coveragepy/issues/972
.. _issue 1319: https://github.com/nedbat/coveragepy/issues/1319
.. _issue 1538: https://github.com/nedbat/coveragepy/issues/1538
Version 7.0.5 — 2023-01-10
--------------------------
- Fix: On Python 3.7, a file with type annotations but no ``from __future__
import annotations`` would be missing statements in the coverage report. This
is now fixed, closing `issue 1524`_.
.. _issue 1524: https://github.com/nedbat/coveragepy/issues/1524
Version 7.0.4 — 2023-01-07
--------------------------
- Performance: an internal cache of file names was accidentally disabled,
resulting in sometimes drastic reductions in performance. This is now fixed,
closing `issue 1527`_. Thanks to Ivan Ciuvalschii for the reproducible test
case.
.. _issue 1527: https://github.com/nedbat/coveragepy/issues/1527
Version 7.0.3 — 2023-01-03
--------------------------
- Fix: when using pytest-cov or pytest-xdist, or perhaps both, the combining
step could fail with ``assert row is not None`` using 7.0.2. This was due to
a race condition that has always been possible and is still possible. In
7.0.1 and before, the error was silently swallowed by the combining code.
Now it will produce a message "Couldn't combine data file" and ignore the
data file as it used to do before 7.0.2. Closes `issue 1522`_.
.. _issue 1522: https://github.com/nedbat/coveragepy/issues/1522
Version 7.0.2 — 2023-01-02
--------------------------
- Fix: when using the ``[run] relative_files = True`` setting, a relative
``[paths]`` pattern was still being made absolute. This is now fixed,
closing `issue 1519`_.
- Fix: if Python doesn't provide tomllib, then TOML configuration files can
only be read if coverage.py is installed with the ``[toml]`` extra.
Coverage.py will raise an error if TOML support is not installed when it sees
your settings are in a .toml file. But it didn't understand that
``[tools.coverage]`` was a valid section header, so the error wasn't reported
if you used that header, and settings were silently ignored. This is now
fixed, closing `issue 1516`_.
- Fix: adjusted how decorators are traced on PyPy 7.3.10, fixing `issue 1515`_.
- Fix: the ``coverage lcov`` report did not properly implement the
``--fail-under=MIN`` option. This has been fixed.
- Refactor: added many type annotations, including a number of refactorings.
This should not affect outward behavior, but they were a bit invasive in some
places, so keep your eyes peeled for oddities.
- Refactor: removed the vestigial and long untested support for Jython and
IronPython.
.. _issue 1515: https://github.com/nedbat/coveragepy/issues/1515
.. _issue 1516: https://github.com/nedbat/coveragepy/issues/1516
.. _issue 1519: https://github.com/nedbat/coveragepy/issues/1519
Version 7.0.1 — 2022-12-23
--------------------------
- When checking if a file mapping resolved to a file that exists, we weren't
considering files in .whl files. This is now fixed, closing `issue 1511`_.
- File pattern rules were too strict, forbidding plus signs and curly braces in
directory and file names. This is now fixed, closing `issue 1513`_.
- Unusual Unicode or control characters in source files could prevent
reporting. This is now fixed, closing `issue 1512`_.
- The PyPy wheel now installs on PyPy 3.7, 3.8, and 3.9, closing `issue 1510`_.
.. _issue 1510: https://github.com/nedbat/coveragepy/issues/1510
.. _issue 1511: https://github.com/nedbat/coveragepy/issues/1511
.. _issue 1512: https://github.com/nedbat/coveragepy/issues/1512
.. _issue 1513: https://github.com/nedbat/coveragepy/issues/1513
Version 7.0.0 — 2022-12-18
--------------------------
Nothing new beyond 7.0.0b1.
Version 7.0.0b1 — 2022-12-03
----------------------------
A number of changes have been made to file path handling, including pattern
matching and path remapping with the ``[paths]`` setting (see
:ref:`config_paths`). These changes might affect you, and require you to
update your settings.
(This release includes the changes from `6.6.0b1 <changes_6-6-0b1_>`_, since
6.6.0 was never released.)
- Changes to file pattern matching, which might require updating your
configuration:
- Previously, ``*`` would incorrectly match directory separators, making
precise matching difficult. This is now fixed, closing `issue 1407`_.
- Now ``**`` matches any number of nested directories, including none.
- Improvements to combining data files when using the
:ref:`config_run_relative_files` setting, which might require updating your
configuration:
- During ``coverage combine``, relative file paths are implicitly combined
without needing a ``[paths]`` configuration setting. This also fixed
`issue 991`_.
- A ``[paths]`` setting like ``*/foo`` will now match ``foo/bar.py`` so that
relative file paths can be combined more easily.
- The :ref:`config_run_relative_files` setting is properly interpreted in
more places, fixing `issue 1280`_.
- When remapping file paths with ``[paths]``, a path will be remapped only if
the resulting path exists. The documentation has long said the prefix had to
exist, but it was never enforced. This fixes `issue 608`_, improves `issue
649`_, and closes `issue 757`_.
- Reporting operations now implicitly use the ``[paths]`` setting to remap file
paths within a single data file. Combining multiple files still requires the
``coverage combine`` step, but this simplifies some single-file situations.
Closes `issue 1212`_ and `issue 713`_.
- The ``coverage report`` command now has a ``--format=`` option. The original
style is now ``--format=text``, and is the default.
- Using ``--format=markdown`` will write the table in Markdown format, thanks
to `Steve Oswald <pull 1479_>`_, closing `issue 1418`_.
- Using ``--format=total`` will write a single total number to the
output. This can be useful for making badges or writing status updates.
- Combining data files with ``coverage combine`` now hashes the data files to
skip files that add no new information. This can reduce the time needed.
Many details affect the speed-up, but for coverage.py's own test suite,
combining is about 40% faster. Closes `issue 1483`_.
- When searching for completely un-executed files, coverage.py uses the
presence of ``__init__.py`` files to determine which directories have source
that could have been imported. However, `implicit namespace packages`_ don't
require ``__init__.py``. A new setting ``[report]
include_namespace_packages`` tells coverage.py to consider these directories
during reporting. Thanks to `Felix Horvat <pull 1387_>`_ for the
contribution. Closes `issue 1383`_ and `issue 1024`_.
- Fixed environment variable expansion in pyproject.toml files. It was overly
broad, causing errors outside of coverage.py settings, as described in `issue
1481`_ and `issue 1345`_. This is now fixed, but in rare cases will require
changing your pyproject.toml to quote non-string values that use environment
substitution.
- An empty file has a coverage total of 100%, but used to fail with
``--fail-under``. This has been fixed, closing `issue 1470`_.
- The text report table no longer writes out two separator lines if there are
no files listed in the table. One is plenty.
- Fixed a mis-measurement of a strange use of wildcard alternatives in
match/case statements, closing `issue 1421`_.
- Fixed internal logic that prevented coverage.py from running on
implementations other than CPython or PyPy (`issue 1474`_).
- The deprecated ``[run] note`` setting has been completely removed.
.. _implicit namespace packages: https://peps.python.org/pep-0420/
.. _issue 608: https://github.com/nedbat/coveragepy/issues/608
.. _issue 649: https://github.com/nedbat/coveragepy/issues/649
.. _issue 713: https://github.com/nedbat/coveragepy/issues/713
.. _issue 757: https://github.com/nedbat/coveragepy/issues/757
.. _issue 991: https://github.com/nedbat/coveragepy/issues/991
.. _issue 1024: https://github.com/nedbat/coveragepy/issues/1024
.. _issue 1212: https://github.com/nedbat/coveragepy/issues/1212
.. _issue 1280: https://github.com/nedbat/coveragepy/issues/1280
.. _issue 1345: https://github.com/nedbat/coveragepy/issues/1345
.. _issue 1383: https://github.com/nedbat/coveragepy/issues/1383
.. _issue 1407: https://github.com/nedbat/coveragepy/issues/1407
.. _issue 1418: https://github.com/nedbat/coveragepy/issues/1418
.. _issue 1421: https://github.com/nedbat/coveragepy/issues/1421
.. _issue 1470: https://github.com/nedbat/coveragepy/issues/1470
.. _issue 1474: https://github.com/nedbat/coveragepy/issues/1474
.. _issue 1481: https://github.com/nedbat/coveragepy/issues/1481
.. _issue 1483: https://github.com/nedbat/coveragepy/issues/1483
.. _pull 1387: https://github.com/nedbat/coveragepy/pull/1387
.. _pull 1479: https://github.com/nedbat/coveragepy/pull/1479
Version 6.6.0b1 — 2022-10-31
----------------------------
(Note: 6.6.0 final was never released. These changes are part of `7.0.0b1
<changes_7-0-0b1_>`_.)
- Changes to file pattern matching, which might require updating your
configuration:
- Previously, ``*`` would incorrectly match directory separators, making
precise matching difficult. This is now fixed, closing `issue 1407`_.
- Now ``**`` matches any number of nested directories, including none.
- Improvements to combining data files when using the
:ref:`config_run_relative_files` setting:
- During ``coverage combine``, relative file paths are implicitly combined
without needing a ``[paths]`` configuration setting. This also fixed
`issue 991`_.
- A ``[paths]`` setting like ``*/foo`` will now match ``foo/bar.py`` so that
relative file paths can be combined more easily.
- The setting is properly interpreted in more places, fixing `issue 1280`_.
- Fixed environment variable expansion in pyproject.toml files. It was overly
broad, causing errors outside of coverage.py settings, as described in `issue
1481`_ and `issue 1345`_. This is now fixed, but in rare cases will require
changing your pyproject.toml to quote non-string values that use environment
substitution.
- Fixed internal logic that prevented coverage.py from running on
implementations other than CPython or PyPy (`issue 1474`_).
.. _issue 991: https://github.com/nedbat/coveragepy/issues/991
.. _issue 1280: https://github.com/nedbat/coveragepy/issues/1280
.. _issue 1345: https://github.com/nedbat/coveragepy/issues/1345
.. _issue 1407: https://github.com/nedbat/coveragepy/issues/1407
.. _issue 1474: https://github.com/nedbat/coveragepy/issues/1474
.. _issue 1481: https://github.com/nedbat/coveragepy/issues/1481
Files: