GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||
GeezerVison is showing github.com — Update dependency coverage to v7.17.3 by renovate[bot] · Pull Request #51 · protoconf/client-python Conversation
|
| Package | Change | Age | Confidence |
|---|---|---|---|
| coverage | ==7.6.1 → ==7.17.3 |
v7.17.3Fix: using patch = fork, a child process wasn't measured unless patch = subprocess was also used, as described in issue 2340. This is now fixed
in pull 2342.
Fix: the JSON report keys functions and classes by name, but names can
repeat, for example a property getter and setter. Only the last one was
kept, so the others were missing from the report. Now repeated names get a
@<line number> suffix, as in the LCOV report. pull 2353_.
Fix: when combining parallel data files, a file that disappears after it
has been listed (for example, when the process writing it is still finishing
its write) is now reported with a warning, instead of stopping the combine
with a DataError. This was a regression in 7.17.1. Closes issue 2364_.
Fix: with patch = subprocess on Python 3.13, a measured subprocess that
was stopped with SIGINT would exit with status 1 instead of dying from the
signal. This was a regression in 7.17.1, and is now fixed, closing issue 2362_.
Performance: on Python 3.13 and later, using the C tracer should result in
test suites running about 8% to 12% faster (pull 2371_).
.. _issue 2340: #2340
.. _pull 2342: #2342
.. _pull 2353: #2353
.. _issue 2364: #2364
.. _issue 2362: #2362
.. _pull 2371: #2371
.. _changes_7-17-2:
v7.17.2Fix: two different scenarios failed with "attempt to write a readonly
database". These were regressions in 7.17.1. They are fixed, closing issue 2356_:
When using a version of SQLite older than 3.34.0, such as on RHEL 8 or
Ubuntu 20.04, coverage combine (and pytest-cov, which combines
automatically) always failed.
coverage combine and coverage debug data failed when a data file
existed but had no coverage schema, for example an empty file left behind
by a worker that died. A file we can't read is now reported like any other
unusable data file, and is left in place.
.. _issue 2356: #2356
.. _changes_7-17-1:
v7.17.1Fix: a one-line class or function body immediately followed by another
statement (such as class Foo: ... on its own line) was incorrectly
reported as a missing branch when using the sys.monitoring core. This is now
fixed, closing issue 2167_ and issue 2337_.
Fix: the HTML report only rewrites a file's page when the file or its data
has changed, but each page also links to the previous and next files. When
the set of reported files changed, unchanged pages kept their old links. For
example, with skip_covered, a file that became 100% covered had its page
deleted, but the pages next to it still linked to it. Now a page is also
rewritten when its neighbors change.
Fix: --fail-under now uses at least the decimal precision of the
threshold for both the comparison and failure message. With precision=0,
a total of 0.4 now passes --fail-under=0.3 and fails --fail-under=0.5
with the message "total of 0.4 is less than fail-under=0.5". Previously, the
comparison rounded the total to zero and the message could claim "1 is less
than 0". Closes issue 2295_.
Fix: the HTML report escaped file names twice, so a name with &, <,
or quotes in it was shown with entities like &. Now they are properly
escaped only once.
Fix: --source=/ measured no files. A file system root can't be a source
directory, so now it is an error. Closes issue 2291_.
In an abundance of caution, prevent forged SQLite journal files from deleting
files they shouldn't.
.. _issue 2167: #2167
.. _issue 2291: #2291
.. _issue 2295: #2295
.. _issue 2337: #2337
.. _changes_7-17-0:
v7.17.0Dropped support for Python 3.10.
Binary wheels are now provided for iOS and Android. This allows the use of
the optimized C tracer on mobile platforms.
Fix: three or more levels of nested with statements could make a with
line look like a branch with an exit that can never happen. Using the
sys.monitoring core, these phantom branches were reported as partial. Other
cores hid the problem but still counted the phantom branches in the total.
Closes issue 1987_.
Fix: a comment or string that merely mentioned if True: or
while True: could mark its line as a branch that is known to be partial,
so a branch that never ran was reported as taken. These built-in patterns
now only match at the start of the statement. Closes issue 2314_.
Fix: region detection missed functions defined in unusual places, such as
else and except clauses. This is now fixed.
Fix: recent versions of the lcov tool complain if the same function name
appears more than once in a report. Python can have multiple same-named
functions in a few ways, for example, getters/setters or conditionally
defined functions. These are now disambiguated by adding a @<line number>
suffix to the function name. Fixes issue 2335.
Fix: The "Can't combine statement coverage data with branch data" error now
names the two data files it couldn't combine. The :ref:error description <error_cant_combine> in the docs now lists common causes and how to find the
process that wrote the file.
Fix: at coverage totals close to 0 or 100, the XML report could get incorrect
line-rate values like 8.333e-05 or 1. This is now fixed, closing
issue 2293_ and issue 2294_.
Fix: a parallel data file saved more than once kept the hash of its first
save in its file name. Combining could then skip it as a duplicate of another
file that had the same data at that point, and delete it, losing the data
recorded after the first save. Each save now updates the hash. This had been
a problem since 7.13.1. Fixes issue 2338_.
Fixes for obscure but legal file names:
File names (and plugin names) can contain control characters, which are
legal in POSIX paths but unsafe in reports: in XML 1.0 they make the
document non-well-formed, and in a terminal they act as escape sequences
(colors, title/clipboard sequences, cursor moves that forge output). Now
the XML report, the text and Markdown summary reports, and coverage debug data replace non-printable characters in names. Printable names are
unchanged.
A file pattern (from include, omit, or a [paths] alias)
containing a newline sent the glob-to-regex translation into an infinite
loop, hanging the process. Newlines in patterns are now handled like any
other character.
Fixes in the implementation of the C tracer:
If a plugin's dynamic_source_filename method raised an exception, lines
in that function could be recorded as belonging to a different file. Also
fixed some minor memory leaks in the C tracer.
The refcount of None was mismanaged during function calls, including
comprehensions. This was unlikely to cause an actual problem, but is now
fixed. Thanks, Andrew Dalke.
The C tracer held borrowed references to dictionary values, which was
unsafe on free-threaded Python. Now it takes its own references.
An internal error while recording a new file could be reported as a
confusing SystemError instead of the actual exception.
Performance: the text summary report (coverage report) held on to every
file's parsed source until it finished, so its memory use grew with the size
of the project: ten times or more what 7.14 used on large projects. Now it
keeps only what it needs to print. Fixes issue 2277_.
Performance: HTML reports should be about 5% faster to produce.
Kept the political banner in the README. Closes issue 2344_.
.. _issue 1987: #1987
.. _issue 2277: #2277
.. _issue 2293: #2293
.. _issue 2294: #2294
.. _issue 2314: #2314
.. _issue 2335: #2335
.. _issue 2338: #2338
.. _issue 2344: #2344
.. _changes_7-16-2:
v7.16.2Fix: on Python 3.14 and later, a for loop completing immediately before a
function return could mistakenly report an uncovered branch. This is now
fixed, closing issue 2168_.
Fix: on Python 3.14 and later, the else clause of a try whose body is
a with statement could incorrectly be reported as covered when the
with raised. This is now fixed, closing issue 2289_.
Fix: with dynamic_context = test_function, test methods written as
@staticmethod or @classmethod were not given a context of their own.
Now they are, on Python 3.11 and later. Closes issue 1923_.
.. _issue 1923: #1923
.. _issue 2168: #2168
.. _issue 2289: #2289
.. _changes_7-16-1:
v7.16.1Fix: when the body of an irrefutable case (like case _:) is entirely
excluded, the case line is now excluded too, just as an excluded
else: body removes the else: line. Previously the case line was
left behind and reported as missing. Closes issue 1563_ with pull 2269_.
Fix: using :meth:.CoverageData.update twice on an in-memory database would
fail, as described in issue 2279_. This is now fixed.
Fix: the Total row in the footer of the HTML report's index page was
recomputed in JavaScript with rounding that could disagree with the total
the server rendered in the heading, including showing 100% when coverage
was not complete. The footer now clamps values the way the rest of the
report does, and when nothing is filtered out it is shown exactly as the
server rendered it, so the two can't disagree. That also keeps rows the
report omits (--skip-covered drops fully covered files) in the total.
Fixes issue 2256_.
.. _issue 1563: #1563
.. _issue 2256: #2256
.. _pull 2269: #2269
.. _issue 2279: #2279
.. _changes_7-16-0:
v7.16.0When combining files, now path separator slashes will automatically be
converted to the local file system style. This makes it less necessary to
define [paths] configuration to combine data across operating systems.
Fixes issue 2266_.
The :meth:.Coverage.switch_context method now returns the previous context.
Fix: previously, a [paths] pattern would be replaced everywhere in a file
path when it was only meant to be replaced once, in the leading portion of
the path. This is now fixed, in pull 2268_.
Fixes to validation of options and configuration settings:
Negative precision settings now always cause useful error messages (pull 2261_).
An invalid regex in the --contexts option (or the [report] contexts setting) reported a confusing "Couldn't use data file ...:
user-defined function raised exception" error. Now it raises a proper
configuration error naming the bad regex, like other regex settings do
(pull 2262_).
Non-string values in TOML configuration settings now produce a helpful
error message instead of a traceback. This affects list settings whose
elements aren't strings (like omit, exclude_lines, or a [paths]
entry), file settings like data_file, and any wrong-typed value in the
[paths] section (pull 2263_).
coverage run refuses run-affecting command-line options like
--branch alongside --concurrency=multiprocessing, since they can't
reach the subprocesses. The check only recognized multiprocessing as
the entire option value, so --concurrency=multiprocessing,thread
slipped through and failed later with "Can't combine statement coverage
data with branch data". Each named concurrency library is now properly
considered (pull 2270_).
Fix: coverage annotate -d DIR raised an AssertionError if any
measured file had an extension other than .py, such as a .pyw file on
Windows. The original extension is now restored on the annotated copy (pull 2265_).
.. _pull 2261: #2261
.. _pull 2262: #2262
.. _pull 2263: #2263
.. _pull 2265: #2265
.. _issue 2266: #2266
.. _pull 2268: #2268
.. _pull 2270: #2270
.. _changes_7-15-4:
v7.15.4Fix: in the HTML report, a source file name containing a double quote (legal
on POSIX) wasn't escaped where it's dropped into the href of the index
and prev/next links, so it could close the attribute early and inject markup.
Page URLs are now escaped. Thanks, Rajath Mohare <pull 2227_>_.
Fix: the LCOV report wrote file names and other fields into its
line-oriented records without neutralizing control characters. A measured
file whose name contained a newline (legal on POSIX) could forge extra
records, inflating the coverage seen by tools that read the report. Control
characters in a field are now replaced. Thanks, Rajath Mohare <pull 2226_>_.
Wheels are now provided for Python 3.15.
.. _pull 2226: #2226
.. _pull 2227: #2227
.. _changes_7-15-3:
v7.15.3Fix: the sysmon core is incompatible with dynamic contexts. Previously, the
combination would be prevented when read from the coverage.py configuration.
But using the context API as pytest-cov does, contexts would be silently
dropped. Now a warning is issued, thanks to Jisang Han <pull 2234_>.
Closes issue 2200.
A performance improvement in the low-level line number bookkeeping when
combining data files, thanks to Kevin Turcios <pull 2239_>_.
Performance improvement in HTML reporting by reducing the number of times
files have to be parsed, thanks to Kevin Turcios <pull 2240_>_.
.. _issue 2200: #2200
.. _pull 2234: #2234
.. _pull 2239: #2239
.. _pull 2240: #2240
.. _changes_7-15-2:
v7.15.2issue 2229_... _issue 2229: #2229
.. _changes_7-15-1:
v7.15.1Fix: 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: #2213
.. _pull 2214: #2214
.. _pull 2215: #2215
.. _pull 2216: #2216
.. _pull 2218: #2218
.. _pull 2220: #2220
.. _pull 2221: #2221
.. _pull 2224: #2224
.. _changes_7-15-0:
v7.15.0Since 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: #2103
.. _issue 2198: #2198
.. _issue 2205: #2205
.. _pull 2206: #2206
.. _issue 2208: #2208
.. _pull 2209: #2209
.. _pull 2211: #2211
.. _changes_7-14-3:
v7.14.3Fix: 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: #2185
.. _pull 2196: #2196
.. _pull 2203: #2203
.. _changes_7-14-2:
v7.14.2Fix: 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: #2187
.. _issue 2192: #2192
.. _pull 2193: #2193
.. _issue 2197: #2197
.. _no-13t: https://py-free-threading.github.io/ci/#building-free-threaded-wheels-with-cibuildwheel
.. _changes_7-14-1:
v7.14.1Fix: 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: #2170
.. _hugo-316: https://mastodon.social/@hugovk/116588523571204490
.. _changes_7-14-0:
v7.14.0Feature: 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: #1781
.. _issue 2157: #2157
.. _pull 2162: #2162
.. _pull 2165: #2165
.. _changes_7-13-5:
v7.13.5Fix: 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: #2138
.. _issue 2141: #2141
.. _pull 2142: #2142
.. _issue 2145: #2145
.. _changes_7-13-4:
v7.13.4Fix: 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: #2121
.. _issue 2129: #2129
.. _pull 2130: #2130
.. _changes_7-13-3:
v7.13.3issue 2082_. Now any directory on sys.path that is inside a virtualenv is.. _issue 2082: #2082
.. _changes_7-13-2:
v7.13.2Fix: 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: #2115
.. _issue 2117: #2117
.. _changes_7-13-1:
v7.13.1Added: the JSON report now includes a "start_line" key for function and
class regions, indicating the first line of the region in the source. Closes
issue 2110_.
Added: The debug data command now takes file names as arguments on the
command line, so you can inspect specific data files without needing to set
the COVERAGE_FILE environment variable.
Fix: the JSON report used to report module docstrings as executed lines,
which no other report did, as described in issue 2105_. This is now fixed,
thanks to Jianrong Zhao.
Fix: coverage.py uses a more disciplined approach to detecting where
third-party code is installed, and avoids measuring it. This shouldn't change
any behavior. If you find that it does, please get in touch.
Performance: data files that will be combined now record their hash as part
of the file name. This lets us skip duplicate data more quickly, speeding the
combining step.
Docs: added a section explaining more about what is considered a missing
branch and how it is reported: :ref:branch_explain, as requested in issue 1597. Thanks to Ayisha Mohammed <pull 2092_>.
Tests: the test suite misunderstood what core was being tested if
COVERAGE_CORE wasn't set on 3.14+. This is now fixed, closing issue 2109_.
.. _issue 1597: #1597
.. _pull 2092: #2092
.. _issue 2105: #2105
.. _issue 2109: #2109
.. _issue 2110: #2110
.. _changes_7-13-0:
v7.13.0Feature: coverage.py now supports :file:.coveragerc.toml configuration
files. These files use TOML syntax and take priority over
:file:pyproject.toml but lower priority than :file:.coveragerc files.
Closes issue 1643_ thanks to Olena Yefymenko <pull 1952_>_.
Fix: we now include a permanent .pth file which is installed with the code,
fixing issue 2084. In 7.12.1b1 this was done incorrectly: it didn't work
when using the source wheel (py3-none-any). This is now fixed. Thanks,
Henry Schreiner <pull 2100_>.
Deprecated: when coverage.py is installed, it creates three command entry
points: coverage, coverage3, and coverage-3.10 (if installed for
Python 3.10). The second and third of these are not needed and will
eventually be removed. They still work for now, but print a message about
their deprecation.
.. _issue 1643: #1643
.. _pull 1952: #1952
.. _pull 2100: #2100
.. _changes_7-12-1b1:
v7.12.0The HTML report now shows separate coverage totals for statements and
branches, as well as the usual combined coverage percentage. Thanks to Ryuta
Otsuka for the discussion <issue 2081_>_ and the implementation <pull 2085_>_.
The JSON report now includes separate coverage totals for statements and
branches, thanks to Ryuta Otsuka <pull 2090_>_.
Fix: except* clauses were not handled properly under the "sysmon"
measurement core, causing KeyError exceptions as described in issue 2086_.
This is now fixed.
Fix: we now defend against aggressive mocking of open() that could cause
errors inside coverage.py. An example of a failure is in issue 2083_.
Fix: in unusual cases where a test suite intentionally exhausts the system's
file descriptors to test handling errors in open(), coverage.py would
fail when trying to open source files, as described in issue 2091_. This
is now fixed.
A small tweak to the HTML report: file paths now use thin spaces around
slashes to make them easier to read.
.. _issue 2081: #2081
.. _issue 2083: #2083
.. _pull 2085: #2085
.. _issue 2086: #2086
.. _pull 2090: #2090
.. _issue 2091: #2091
.. _changes_7-11-3:
v7.11.3Fix: the 7.11.1 changes meant that conflicts between a requested measurement
core and other settings would raise an error. This was a breaking change from
previous behavior, as reported in issue 2076_ and issue 2078_.
The previous behavior has been restored: when the requested core conflicts
with other settings, another core is used instead, and a warning is issued.
For contributors: the repo has moved from Ned's nedbat GitHub account_ to
the coveragepy GitHub organization_. The default branch has changed from
master to main.
.. _issue 2076: #2076
.. _issue 2078: #2078
.. _nedbat GitHub account: https://github.com/nedbat
.. _coveragepy GitHub organization: https://github.com/coveragepy
.. _changes_7-11-2:
v7.11.2Fix: using the "sysmon" measurement core in 7.11.1, if Python code was
claimed to come from a non-Python file, a NotPython exception could be
raised. This could happen for example with Jinja templates compiled to
Python, as reported in issue 2077_. This is now fixed.
Doc: corrected the first entry in the 7.11.1 changelog.
.. _issue 2077: #2077
.. _changes_7-11-1:
v7.11.1Fix: some chanages to details of how the measurement core is chosen, and how
conflicting settings are handled. The "sysmon" core cannot be used with some
concurrency settings, with dynamic context, and in Python 3.12/3.13, with
branch measurement.
If the core is not specified and defaults to "sysmon" (Python 3.14+), but
other settings conflict with sysmon, then the "ctrace" core will be used
instead with no warning. For concurrency conflicts, this used to produce an
error, as described in issue 2064_.
If the "sysmon" core is explicitly requested in your configuration, but
other settings conflict, an error is now raised. This used to produce a
warning.
Fix: some multi-line case clauses or for loops (and probably other
constructs) could cause incorrect claims of missing branches with the
sys.monitoring core, as described in issue 2070_. This is now fixed.
Fix: when running in pytest under coverage, a breakpoint() would stop in
the wrong frame, one level down from where it should, as described in issue 1420_. This was due to a coverage change in v6.4.1 that seemed to give a
slight performance improvement, but I couldn't reproduce the performance
gain, so it's been reverted, fixing the debugger problem.
A new debug option --debug=core shows which core is in use and why.
Split sqlite debugging information out of the sys :ref:coverage debug <cmd_debug> and :ref:cmd_run_debug options since it's bulky and not
very useful.
Updated the :ref:howitworks page to better describe the three different
measurement cores.
.. _issue 1420: #1420
.. _issue 2064: #2064
.. _issue 2070: #2070
.. _changes_7-11-0:
v7.11.0.. _changes_7-10-7:
v7.10.7Performance: 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: #1921
.. _issue 2048: #2048
.. _changes_7-10-6:
v7.10.6Fix: 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: #1499
.. _pull 2038: #2038
.. _changes_7-10-5:
v7.10.5coverage combine: it's now about twice as2032 <pull 2032_>,2033 <pull 2033_>, and 2034 <pull 2034_>_... _pull 2032: #2032
.. _pull 2033: #2033
.. _pull 2034: #2034
.. _changes_7-10-4:
v7.10.4Added 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:
v7.10.3Fixes 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: #2017
.. _issue 2021: #2021
.. _issue 2022: #2022
.. _issue 2024: #2024
.. _issue 2025: #2025
.. _changes_7-10-2:
v7.10.2issue 1999_. Python 3.9.. _issue 1999: #1999
.. _changes_7-10-1:
v7.10.1Fix: 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: #2006
.. _changes_7-10-0:
v7.10.0A 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.
[!IMPORTANT]
✂ PR body was truncated to here.
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
d8e47f5 to
9dbb011
Compare
9dbb011 to
4c1bd91
Compare
4c1bd91 to
a0281cc
Compare
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.