Releases: nedbat/coveragepy
5.6b1
Version 5.6b1 — 2021-04-13
Note: 5.6 final was never released. These changes are part of 6.0.
- Third-party packages are now ignored in coverage reporting. This solves a few problems:
- The HTML report uses j/k to move up and down among the highlighted chunks of code. They used to highlight the current chunk, but 5.0 broke that behavior. Now the highlighting is working again.
- The JSON report now includes
percent_covered_display
, a string with the total percentage, rounded to the same number of decimal places as the other reports’ totals.
➡️ PyPI page: coverage 5.6b1.
➡️ To install: python3 -m pip install coverage==5.6b1
5.4
Version 5.4 — 2021-01-24
- The text report produced by
coverage report
now always outputs a TOTAL line, even if only one Python file is reported. This makes regex parsing of the output easier. Thanks, Judson Neer. This had been requested a number of times (issue 1086, issue 922, issue 732). - The
skip_covered
andskip_empty
settings in the configuration file can now be specified in the[html]
section, so that text reports and HTML reports can use separate settings. The HTML report will still use the[report]
settings if there isn’t a value in the[html]
section. Closes issue 1090. - Combining files on Windows across drives now works properly, fixing issue 577. Thanks, Valentin Lab.
- Fix an obscure warning from deep in the decimal module, as reported in issue 1084.
- Update to support Python 3.10 alphas in progress, including PEP 626: Precise line numbers for debugging and other tools.
➡️ PyPI page: coverage 5.4.
➡️ To install: python3 -m pip install coverage==5.4
5.3.1
Version 5.3.1 — 2020-12-19
- When using
--source
on a large source tree, v5.x was slower than previous versions. This performance regression is now fixed, closing issue 1037. - Mysterious SQLite errors can happen on PyPy, as reported in issue 1010. An immediate retry seems to fix the problem, although it is an unsatisfying solution.
- The HTML report now saves the sort order in a more widely supported way, fixing issue 986. Thanks, Sebastián Ramírez (pull request 1066).
- The HTML report pages now have a Sleepy Snake favicon.
- Wheels are now provided for manylinux2010, and for PyPy3 (pp36 and pp37).
- Continuous integration has moved from Travis and AppVeyor to GitHub Actions.
➡️ PyPI page: coverage 5.3.1.
➡️ To install: python3 -m pip install coverage==5.3.1
5.3
Version 5.3 — 2020-09-13
- The
source
setting has always been interpreted as either a file path or a module, depending on which existed. If both interpretations were valid, it was assumed to be a file path. The newsource_pkgs
setting can be used to name a package to disambiguate this case. Thanks, Thomas Grainger. Fixes issue 268. - If a plugin was disabled due to an exception, we used to still try to record its information, causing an exception, as reported in issue 1011. This is now fixed.
➡️ PyPI page: coverage 5.3.
➡️ To install: python3 -m pip install coverage==5.3
5.2.1
Version 5.2.1 — 2020-07-23
- The dark mode HTML report still used light colors for the context listing, making them unreadable (issue 1009). This is now fixed.
- The time stamp on the HTML report now includes the time zone. Thanks, Xie Yanbo (pull request 960).
➡️ PyPI page: coverage 5.2.1.
➡️ To install: python3 -m pip install coverage==5.2.1
5.2
Version 5.2 — 2020-07-05
- The HTML report has been redesigned by Vince Salvino. There is now a dark mode, the code text is larger, and system sans serif fonts are used, in addition to other small changes (issue 858 and pull request 931).
- The
coverage report
andcoverage html
commands now accept a--precision
option to control the number of decimal points displayed. Thanks, Teake Nutma (pull request 982). - The
coverage report
andcoverage html
commands now accept a--no-skip-covered
option to negate--skip-covered
. Thanks, Anthony Sottile (issue 779 and pull request 932). - The
--skip-empty
option is now available for the XML report, closing issue 976. - The
coverage report
command now accepts a--sort
option to specify how to sort the results. Thanks, Jerin Peter George (pull request 1005). - If coverage fails due to the coverage total not reaching the
--fail-under
value, it will now print a message making the condition clear. Thanks, Naveen Yadav (pull request 977). - TOML configuration files with non-ASCII characters would cause errors on Windows (issue 990). This is now fixed.
- The output of
--debug=trace
now includes information about how the--source
option is being interpreted, and the module names being considered.
➡️ PyPI page: coverage 5.2.
➡️ To install: python3 -m pip install coverage==5.2
5.1
Version 5.1 — 2020-04-12
- The JSON report now includes counts of covered and missing branches. Thanks, Salvatore Zagaria.
- On Python 3.8, try-finally-return reported wrong branch coverage with decorated async functions (issue 964). This is now fixed. Thanks, Kjell Braden.
- The get_option() and set_option() methods can now manipulate the
[paths]
configuration setting. Thanks to Bernát Gábor for the fix for issue 967.
➡️ PyPI page: coverage 5.1.
➡️ To install: python3 -m pip install coverage==5.1
5.0.4
Version 5.0.4 — 2020-03-16
- If using the
[run] relative_files
setting, the XML report will use relative files in the<source>
elements indicating the location of source code. Closes issue 948. - The textual summary report could report missing lines with negative line numbers on PyPy3 7.1 (issue 943). This is now fixed.
- Windows wheels for Python 3.8 were incorrectly built, but are now fixed. (issue 949)
- Updated Python 3.9 support to 3.9a4.
- HTML reports couldn’t be sorted if localStorage wasn’t available. This is now fixed: sorting works even though the sorting setting isn’t retained. (issue 944 and pull request 945). Thanks, Abdeali Kothari.
➡️ PyPI page: coverage 5.0.4.
➡️ To install: python3 -m pip install coverage==5.0.4
5.0.3
Version 5.0.3 — 2020-01-12
- A performance improvement in 5.0.2 didn’t work for test suites that changed directory before combining data, causing “Couldn’t use data file: no such table: meta” errors (issue 916). This is now fixed.
- Coverage could fail to run your program with some form of “ModuleNotFound” or “ImportError” trying to import from the current directory. This would happen if coverage had been packaged into a zip file (for example, on Windows), or was found indirectly (for example, by pyenv-virtualenv). A number of different scenarios were described in issue 862 which is now fixed. Huge thanks to Agbonze O. Jeremiah for reporting it, and Alexander Waters and George-Cristian Bîrzan for protracted debugging sessions.
- Added the “premain” debug option.
- Added SQLite compile-time options to the “debug sys” output.
➡️ PyPI page: coverage 5.0.3.
➡️ To install: python3 -m pip install coverage==5.0.3
5.0.2
Version 5.0.2 — 2020-01-05
- Programs that used multiprocessing and changed directories would fail under coverage. This is now fixed (issue 890). A side effect is that debug information about the config files read now shows absolute paths to the files.
- When running programs as modules (
coverage run -m
) with--source
, some measured modules were imported before coverage starts. This resulted in unwanted warnings (“Already imported a file that will be measured”) and a reduction in coverage totals (issue 909). This is now fixed. - If no data was collected, an exception about “No data to report” could happen instead of a 0% report being created (issue 884). This is now fixed.
- The handling of source files with non-encodable file names has changed. Previously, if a file name could not be encoded as UTF-8, an error occurred, as described in issue 891. Now, those files will not be measured, since their data would not be recordable.
- A new warning (“dynamic-conflict”) is issued if two mechanisms are trying to change the dynamic context. Closes issue 901.
coverage run --debug=sys
would fail with an AttributeError. This is now fixed (issue 907).
➡️ PyPI page: coverage 5.0.2.
➡️ To install: python3 -m pip install coverage==5.0.2