Releases: nedbat/coveragepy
7.3.1
Version 7.3.1 — 2023-09-06
- The semantics of stars in file patterns has been clarified in the docs. A leading or trailing star matches any number of path components, like a double star would. This is different than the behavior of a star in the middle of a pattern. This discrepancy was identified by Sviatoslav Sydorenko, who provided patient detailed diagnosis and graciously agreed to a pragmatic resolution.
- The API docs were missing from the last version. They are now restored.
➡️ PyPI page: coverage 7.3.1.
➡️ To install: python3 -m pip install coverage==7.3.1
7.3.0
Version 7.3.0 — 2023-08-12
- Added a Coverage.collect() context manager to start and stop coverage data collection.
- Dropped support for Python 3.7.
- Fix: in unusual circumstances, SQLite cannot be set to asynchronous mode. Coverage.py would fail with the error
Safety level may not be changed inside a transaction.
This is now avoided, closing issue 1646. Thanks to Michael Bell for the detailed bug report. - Docs: examples of configuration files now include separate examples for the different syntaxes: .coveragerc, pyproject.toml, setup.cfg, and tox.ini.
- Fix: added
nosemgrep
comments to our JavaScript code so that semgrep-based SAST security checks won’t raise false alarms about security problems that aren’t problems. - Added a CITATION.cff file, thanks to Ken Schackart.
➡️ PyPI page: coverage 7.3.0.
➡️ To install: python3 -m pip install coverage==7.3.0
7.2.7
Version 7.2.7 — 2023-05-29
- Fix: reverted a change from 6.4.3 that helped Cython, but also increased the size of data files when using dynamic contexts, as described in the now-fixed issue 1586. The problem is now avoided due to a recent change (issue 1538). Thanks to Anders Kaseorg and David Szotten for persisting with problem reports and detailed diagnoses.
- Wheels are now provided for CPython 3.12.
➡️ PyPI page: coverage 7.2.7.
➡️ To install: python3 -m pip install coverage==7.2.7
7.2.6
Version 7.2.6 — 2023-05-23
- Fix: the
lcov
command could raise an IndexError exception if a file is translated to Python but then executed under its own name. Jinja2 does this when rendering templates. Fixes issue 1553. - Python 3.12 beta 1 now inlines comprehensions. Previously they were compiled as invisible functions and coverage.py would warn you if they weren’t completely executed. This no longer happens under Python 3.12.
- Fix: the
coverage debug sys
command includes some environment variables in its output. This could have included sensitive data. Those values are now hidden with asterisks, closing issue 1628.
➡️ PyPI page: coverage 7.2.6.
➡️ To install: python3 -m pip install coverage==7.2.6
7.2.5
Version 7.2.5 — 2023-04-30
- Fix:
html_report()
could fail with an AttributeError onisatty
if run in an unusual environment where sys.stdout had been replaced. This is now fixed.
➡️ PyPI page: coverage 7.2.5.
➡️ To install: python3 -m pip install coverage==7.2.5
7.2.4
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. - 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. - 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.
- Docs: a new Migrating page with details about how to migrate between major versions of coverage.py. It currently covers the wildcard changes in 7.x. Thanks, Brian Grohe.
➡️ PyPI page: coverage 7.2.4.
➡️ To install: python3 -m pip install coverage==7.2.4
7.2.3
Version 7.2.3 — 2023-04-06
- Fix: the [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, 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.
- Development dependencies no longer use hashed pins, closing issue 1592.
➡️ PyPI page: coverage 7.2.3.
➡️ To install: python3 -m pip install coverage==7.2.3
7.2.2
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.
- 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. - Fix: the
coverage xml
command on Windows could create a .xml file with duplicate<package>
elements. This is now fixed, thanks to Benjamin Parzella, closing issue 1573.
➡️ PyPI page: coverage 7.2.2.
➡️ To install: python3 -m pip install coverage==7.2.2
7.2.1
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.
➡️ PyPI page: coverage 7.2.1.
➡️ To install: python3 -m pip install coverage==7.2.1
7.2.0
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, closing issue 1391. - Added a CoverageData.purge_files() method to remove recorded data for a particular file. Contributed by Stephan Deibel.
- 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
andconfig_file
arguments to the Coverage constructor and thebasename
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, closing issue 1542.
- Added a
py.typed
file to announce our type-hintedness. Thanks, KotlinIsland.
➡️ PyPI page: coverage 7.2.0.
➡️ To install: python3 -m pip install coverage==7.2.0