|
1 .. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 |
|
2 .. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt |
|
3 |
|
4 ============================== |
|
5 Change history for coverage.py |
|
6 ============================== |
|
7 |
|
8 These changes are listed in decreasing version number order. Note this can be |
|
9 different from a strict chronological order when there are two branches in |
|
10 development at the same time, such as 4.5.x and 5.0. |
|
11 |
|
12 .. When updating the "Unreleased" header to a specific version, use this |
|
13 .. format. Don't forget the jump target: |
|
14 .. |
|
15 .. .. _changes_981: |
|
16 .. |
|
17 .. Version 9.8.1 — 2027-07-27 |
|
18 .. -------------------------- |
|
19 |
|
20 .. _changes_64: |
|
21 |
|
22 Version 6.4 — 2022-05-22 |
|
23 ------------------------ |
|
24 |
|
25 - A new setting, :ref:`config_run_sigterm`, controls whether a SIGTERM signal |
|
26 handler is used. In 6.3, the signal handler was always installed, to capture |
|
27 data at unusual process ends. Unfortunately, this introduced other problems |
|
28 (see `issue 1310`_). Now the signal handler is only used if you opt-in by |
|
29 setting ``[run] sigterm = true``. |
|
30 |
|
31 - Small changes to the HTML report: |
|
32 |
|
33 - Added links to next and previous file, and more keyboard shortcuts: ``[`` |
|
34 and ``]`` for next file and previous file; ``u`` for up to the index; and |
|
35 ``?`` to open/close the help panel. Thanks, `J. M. F. Tsang |
|
36 <pull 1364_>`_. |
|
37 |
|
38 - The timestamp and version are displayed at the top of the report. Thanks, |
|
39 `Ammar Askar <pull 1354_>`_. Closes `issue 1351`_. |
|
40 |
|
41 - A new debug option ``debug=sqldata`` adds more detail to ``debug=sql``, |
|
42 logging all the data being written to the database. |
|
43 |
|
44 - Previously, running ``coverage report`` (or any of the reporting commands) in |
|
45 an empty directory would create a .coverage data file. Now they do not, |
|
46 fixing `issue 1328`_. |
|
47 |
|
48 - On Python 3.11, the ``[toml]`` extra no longer installs tomli, instead using |
|
49 tomllib from the standard library. Thanks `Shantanu <pull 1359_>`_. |
|
50 |
|
51 - In-memory CoverageData objects now properly update(), closing `issue 1323`_. |
|
52 |
|
53 .. _issue 1310: https://github.com/nedbat/coveragepy/issues/1310 |
|
54 .. _issue 1323: https://github.com/nedbat/coveragepy/issues/1323 |
|
55 .. _issue 1328: https://github.com/nedbat/coveragepy/issues/1328 |
|
56 .. _issue 1351: https://github.com/nedbat/coveragepy/issues/1351 |
|
57 .. _pull 1354: https://github.com/nedbat/coveragepy/pull/1354 |
|
58 .. _pull 1359: https://github.com/nedbat/coveragepy/pull/1359 |
|
59 .. _pull 1364: https://github.com/nedbat/coveragepy/pull/1364 |
|
60 |
|
61 |
|
62 .. _changes_633: |
|
63 |
|
64 Version 6.3.3 — 2022-05-12 |
|
65 -------------------------- |
|
66 |
|
67 - Fix: Coverage.py now builds successfully on CPython 3.11 (3.11.0b1) again. |
|
68 Closes `issue 1367`_. Some results for generators may have changed. |
|
69 |
|
70 .. _issue 1367: https://github.com/nedbat/coveragepy/issues/1367 |
|
71 |
|
72 |
|
73 .. _changes_632: |
|
74 |
|
75 Version 6.3.2 — 2022-02-20 |
|
76 -------------------------- |
|
77 |
|
78 - Fix: adapt to pypy3.9's decorator tracing behavior. It now traces function |
|
79 decorators like CPython 3.8: both the @-line and the def-line are traced. |
|
80 Fixes `issue 1326`_. |
|
81 |
|
82 - Debug: added ``pybehave`` to the list of :ref:`cmd_debug` and |
|
83 :ref:`cmd_run_debug` options. |
|
84 |
|
85 - Fix: show an intelligible error message if ``--concurrency=multiprocessing`` |
|
86 is used without a configuration file. Closes `issue 1320`_. |
|
87 |
|
88 .. _issue 1320: https://github.com/nedbat/coveragepy/issues/1320 |
|
89 .. _issue 1326: https://github.com/nedbat/coveragepy/issues/1326 |
|
90 |
|
91 |
|
92 .. _changes_631: |
|
93 |
|
94 Version 6.3.1 — 2022-02-01 |
|
95 -------------------------- |
|
96 |
|
97 - Fix: deadlocks could occur when terminating processes. Some of these |
|
98 deadlocks (described in `issue 1310`_) are now fixed. |
|
99 |
|
100 - Fix: a signal handler was being set from multiple threads, causing an error: |
|
101 "ValueError: signal only works in main thread". This is now fixed, closing |
|
102 `issue 1312`_. |
|
103 |
|
104 - Fix: ``--precision`` on the command-line was being ignored while considering |
|
105 ``--fail-under``. This is now fixed, thanks to |
|
106 `Marcelo Trylesinski <pull 1317_>`_. |
|
107 |
|
108 - Fix: releases no longer provide 3.11.0-alpha wheels. Coverage.py uses CPython |
|
109 internal fields which are moving during the alpha phase. Fixes `issue 1316`_. |
|
110 |
|
111 .. _issue 1310: https://github.com/nedbat/coveragepy/issues/1310 |
|
112 .. _issue 1312: https://github.com/nedbat/coveragepy/issues/1312 |
|
113 .. _issue 1316: https://github.com/nedbat/coveragepy/issues/1316 |
|
114 .. _pull 1317: https://github.com/nedbat/coveragepy/pull/1317 |
|
115 |
|
116 |
|
117 .. _changes_63: |
|
118 |
|
119 Version 6.3 — 2022-01-25 |
|
120 ------------------------ |
|
121 |
|
122 - Feature: Added the ``lcov`` command to generate reports in LCOV format. |
|
123 Thanks, `Bradley Burns <pull 1289_>`_. Closes issues `587 <issue 587_>`_ |
|
124 and `626 <issue 626_>`_. |
|
125 |
|
126 - Feature: the coverage data file can now be specified on the command line with |
|
127 the ``--data-file`` option in any command that reads or writes data. This is |
|
128 in addition to the existing ``COVERAGE_FILE`` environment variable. Closes |
|
129 `issue 624`_. Thanks, `Nikita Bloshchanevich <pull 1304_>`_. |
|
130 |
|
131 - Feature: coverage measurement data will now be written when a SIGTERM signal |
|
132 is received by the process. This includes |
|
133 :meth:`Process.terminate <python:multiprocessing.Process.terminate>`, |
|
134 and other ways to terminate a process. Currently this is only on Linux and |
|
135 Mac; Windows is not supported. Fixes `issue 1307`_. |
|
136 |
|
137 - Dropped support for Python 3.6, which reached end-of-life on 2021-12-23. |
|
138 |
|
139 - Updated Python 3.11 support to 3.11.0a4, fixing `issue 1294`_. |
|
140 |
|
141 - Fix: the coverage data file is now created in a more robust way, to avoid |
|
142 problems when multiple processes are trying to write data at once. Fixes |
|
143 issues `1303 <issue 1303_>`_ and `883 <issue 883_>`_. |
|
144 |
|
145 - Fix: a .gitignore file will only be written into the HTML report output |
|
146 directory if the directory is empty. This should prevent certain unfortunate |
|
147 accidents of writing the file where it is not wanted. |
|
148 |
|
149 - Releases now have MacOS arm64 wheels for Apple Silicon, fixing `issue 1288`_. |
|
150 |
|
151 .. _issue 587: https://github.com/nedbat/coveragepy/issues/587 |
|
152 .. _issue 624: https://github.com/nedbat/coveragepy/issues/624 |
|
153 .. _issue 626: https://github.com/nedbat/coveragepy/issues/626 |
|
154 .. _issue 883: https://github.com/nedbat/coveragepy/issues/883 |
|
155 .. _issue 1288: https://github.com/nedbat/coveragepy/issues/1288 |
|
156 .. _issue 1294: https://github.com/nedbat/coveragepy/issues/1294 |
|
157 .. _issue 1303: https://github.com/nedbat/coveragepy/issues/1303 |
|
158 .. _issue 1307: https://github.com/nedbat/coveragepy/issues/1307 |
|
159 .. _pull 1289: https://github.com/nedbat/coveragepy/pull/1289 |
|
160 .. _pull 1304: https://github.com/nedbat/coveragepy/pull/1304 |
|
161 |
|
162 |
|
163 .. _changes_62: |
|
164 |
|
165 Version 6.2 — 2021-11-26 |
|
166 ------------------------ |
|
167 |
|
168 - Feature: Now the ``--concurrency`` setting can now have a list of values, so |
|
169 that threads and another lightweight threading package can be measured |
|
170 together, such as ``--concurrency=gevent,thread``. Closes `issue 1012`_ and |
|
171 `issue 1082`_. |
|
172 |
|
173 - Fix: A module specified as the ``source`` setting is imported during startup, |
|
174 before the user program imports it. This could cause problems if the rest of |
|
175 the program isn't ready yet. For example, `issue 1203`_ describes a Django |
|
176 setting that is accessed before settings have been configured. Now the early |
|
177 import is wrapped in a try/except so errors then don't stop execution. |
|
178 |
|
179 - Fix: A colon in a decorator expression would cause an exclusion to end too |
|
180 early, preventing the exclusion of the decorated function. This is now fixed. |
|
181 |
|
182 - Fix: The HTML report now will not overwrite a .gitignore file that already |
|
183 exists in the HTML output directory (follow-on for `issue 1244`_). |
|
184 |
|
185 - API: The exceptions raised by Coverage.py have been specialized, to provide |
|
186 finer-grained catching of exceptions by third-party code. |
|
187 |
|
188 - API: Using ``suffix=False`` when constructing a Coverage object with |
|
189 multiprocessing wouldn't suppress the data file suffix (`issue 989`_). This |
|
190 is now fixed. |
|
191 |
|
192 - Debug: The ``coverage debug data`` command will now sniff out combinable data |
|
193 files, and report on all of them. |
|
194 |
|
195 - Debug: The ``coverage debug`` command used to accept a number of topics at a |
|
196 time, and show all of them, though this was never documented. This no longer |
|
197 works, to allow for command-line options in the future. |
|
198 |
|
199 .. _issue 989: https://github.com/nedbat/coveragepy/issues/989 |
|
200 .. _issue 1012: https://github.com/nedbat/coveragepy/issues/1012 |
|
201 .. _issue 1082: https://github.com/nedbat/coveragepy/issues/1082 |
|
202 .. _issue 1203: https://github.com/nedbat/coveragepy/issues/1203 |
|
203 |
|
204 |
|
205 .. _changes_612: |
|
206 |
|
207 Version 6.1.2 — 2021-11-10 |
|
208 -------------------------- |
|
209 |
|
210 - Python 3.11 is supported (tested with 3.11.0a2). One still-open issue has to |
|
211 do with `exits through with-statements <issue 1270_>`_. |
|
212 |
|
213 - Fix: When remapping file paths through the ``[paths]`` setting while |
|
214 combining, the ``[run] relative_files`` setting was ignored, resulting in |
|
215 absolute paths for remapped file names (`issue 1147`_). This is now fixed. |
|
216 |
|
217 - Fix: Complex conditionals over excluded lines could have incorrectly reported |
|
218 a missing branch (`issue 1271`_). This is now fixed. |
|
219 |
|
220 - Fix: More exceptions are now handled when trying to parse source files for |
|
221 reporting. Problems that used to terminate coverage.py can now be handled |
|
222 with ``[report] ignore_errors``. This helps with plugins failing to read |
|
223 files (`django_coverage_plugin issue 78`_). |
|
224 |
|
225 - Fix: Removed another vestige of jQuery from the source tarball |
|
226 (`issue 840`_). |
|
227 |
|
228 - Fix: Added a default value for a new-to-6.x argument of an internal class. |
|
229 This unsupported class is being used by coveralls (`issue 1273`_). Although |
|
230 I'd rather not "fix" unsupported interfaces, it's actually nicer with a |
|
231 default value. |
|
232 |
|
233 .. _django_coverage_plugin issue 78: https://github.com/nedbat/django_coverage_plugin/issues/78 |
|
234 .. _issue 1147: https://github.com/nedbat/coveragepy/issues/1147 |
|
235 .. _issue 1270: https://github.com/nedbat/coveragepy/issues/1270 |
|
236 .. _issue 1271: https://github.com/nedbat/coveragepy/issues/1271 |
|
237 .. _issue 1273: https://github.com/nedbat/coveragepy/issues/1273 |
|
238 |
|
239 |
|
240 .. _changes_611: |
|
241 |
|
242 Version 6.1.1 — 2021-10-31 |
|
243 -------------------------- |
|
244 |
|
245 - Fix: The sticky header on the HTML report didn't work unless you had branch |
|
246 coverage enabled. This is now fixed: the sticky header works for everyone. |
|
247 (Do people still use coverage without branch measurement!? j/k) |
|
248 |
|
249 - Fix: When using explicitly declared namespace packages, the "already imported |
|
250 a file that will be measured" warning would be issued (`issue 888`_). This |
|
251 is now fixed. |
|
252 |
|
253 .. _issue 888: https://github.com/nedbat/coveragepy/issues/888 |
|
254 |
|
255 |
|
256 .. _changes_61: |
|
257 |
|
258 Version 6.1 — 2021-10-30 |
|
259 ------------------------ |
|
260 |
|
261 - Deprecated: The ``annotate`` command and the ``Coverage.annotate`` function |
|
262 will be removed in a future version, unless people let me know that they are |
|
263 using it. Instead, the ``html`` command gives better-looking (and more |
|
264 accurate) output, and the ``report -m`` command will tell you line numbers of |
|
265 missing lines. Please get in touch if you have a reason to use ``annotate`` |
|
266 over those better options: ned@nedbatchelder.com. |
|
267 |
|
268 - Feature: Coverage now sets an environment variable, ``COVERAGE_RUN`` when |
|
269 running your code with the ``coverage run`` command. The value is not |
|
270 important, and may change in the future. Closes `issue 553`_. |
|
271 |
|
272 - Feature: The HTML report pages for Python source files now have a sticky |
|
273 header so the file name and controls are always visible. |
|
274 |
|
275 - Feature: The ``xml`` and ``json`` commands now describe what they wrote |
|
276 where. |
|
277 |
|
278 - Feature: The ``html``, ``combine``, ``xml``, and ``json`` commands all accept |
|
279 a ``-q/--quiet`` option to suppress the messages they write to stdout about |
|
280 what they are doing (`issue 1254`_). |
|
281 |
|
282 - Feature: The ``html`` command writes a ``.gitignore`` file into the HTML |
|
283 output directory, to prevent the report from being committed to git. If you |
|
284 want to commit it, you will need to delete that file. Closes `issue 1244`_. |
|
285 |
|
286 - Feature: Added support for PyPy 3.8. |
|
287 |
|
288 - Fix: More generated code is now excluded from measurement. Code such as |
|
289 `attrs`_ boilerplate, or doctest code, was being measured though the |
|
290 synthetic line numbers meant they were never reported. Once Cython was |
|
291 involved though, the generated .so files were parsed as Python, raising |
|
292 syntax errors, as reported in `issue 1160`_. This is now fixed. |
|
293 |
|
294 - Fix: When sorting human-readable names, numeric components are sorted |
|
295 correctly: file10.py will appear after file9.py. This applies to file names, |
|
296 module names, environment variables, and test contexts. |
|
297 |
|
298 - Performance: Branch coverage measurement is faster, though you might only |
|
299 notice on code that is executed many times, such as long-running loops. |
|
300 |
|
301 - Build: jQuery is no longer used or vendored (`issue 840`_ and `issue 1118`_). |
|
302 Huge thanks to Nils Kattenbeck (septatrix) for the conversion to vanilla |
|
303 JavaScript in `pull request 1248`_. |
|
304 |
|
305 .. _issue 553: https://github.com/nedbat/coveragepy/issues/553 |
|
306 .. _issue 840: https://github.com/nedbat/coveragepy/issues/840 |
|
307 .. _issue 1118: https://github.com/nedbat/coveragepy/issues/1118 |
|
308 .. _issue 1160: https://github.com/nedbat/coveragepy/issues/1160 |
|
309 .. _issue 1244: https://github.com/nedbat/coveragepy/issues/1244 |
|
310 .. _pull request 1248: https://github.com/nedbat/coveragepy/pull/1248 |
|
311 .. _issue 1254: https://github.com/nedbat/coveragepy/issues/1254 |
|
312 .. _attrs: https://www.attrs.org/ |
|
313 |
|
314 |
|
315 .. _changes_602: |
|
316 |
|
317 Version 6.0.2 — 2021-10-11 |
|
318 -------------------------- |
|
319 |
|
320 - Namespace packages being measured weren't properly handled by the new code |
|
321 that ignores third-party packages. If the namespace package was installed, it |
|
322 was ignored as a third-party package. That problem (`issue 1231`_) is now |
|
323 fixed. |
|
324 |
|
325 - Packages named as "source packages" (with ``source``, or ``source_pkgs``, or |
|
326 pytest-cov's ``--cov``) might have been only partially measured. Their |
|
327 top-level statements could be marked as unexecuted, because they were |
|
328 imported by coverage.py before measurement began (`issue 1232`_). This is |
|
329 now fixed, but the package will be imported twice, once by coverage.py, then |
|
330 again by your test suite. This could cause problems if importing the package |
|
331 has side effects. |
|
332 |
|
333 - The :meth:`.CoverageData.contexts_by_lineno` method was documented to return |
|
334 a dict, but was returning a defaultdict. Now it returns a plain dict. It |
|
335 also no longer returns negative numbered keys. |
|
336 |
|
337 .. _issue 1231: https://github.com/nedbat/coveragepy/issues/1231 |
|
338 .. _issue 1232: https://github.com/nedbat/coveragepy/issues/1232 |
|
339 |
|
340 |
|
341 .. _changes_601: |
|
342 |
|
343 Version 6.0.1 — 2021-10-06 |
|
344 -------------------------- |
|
345 |
|
346 - In 6.0, the coverage.py exceptions moved from coverage.misc to |
|
347 coverage.exceptions. These exceptions are not part of the public supported |
|
348 API, CoverageException is. But a number of other third-party packages were |
|
349 importing the exceptions from coverage.misc, so they are now available from |
|
350 there again (`issue 1226`_). |
|
351 |
|
352 - Changed an internal detail of how tomli is imported, so that tomli can use |
|
353 coverage.py for their own test suite (`issue 1228`_). |
|
354 |
|
355 - Defend against an obscure possibility under code obfuscation, where a |
|
356 function can have an argument called "self", but no local named "self" |
|
357 (`pull request 1210`_). Thanks, Ben Carlsson. |
|
358 |
|
359 .. _pull request 1210: https://github.com/nedbat/coveragepy/pull/1210 |
|
360 .. _issue 1226: https://github.com/nedbat/coveragepy/issues/1226 |
|
361 .. _issue 1228: https://github.com/nedbat/coveragepy/issues/1228 |
|
362 |
|
363 |
|
364 .. _changes_60: |
|
365 |
|
366 Version 6.0 — 2021-10-03 |
|
367 ------------------------ |
|
368 |
|
369 - The ``coverage html`` command now prints a message indicating where the HTML |
|
370 report was written. Fixes `issue 1195`_. |
|
371 |
|
372 - The ``coverage combine`` command now prints messages indicating each data |
|
373 file being combined. Fixes `issue 1105`_. |
|
374 |
|
375 - The HTML report now includes a sentence about skipped files due to |
|
376 ``skip_covered`` or ``skip_empty`` settings. Fixes `issue 1163`_. |
|
377 |
|
378 - Unrecognized options in the configuration file are no longer errors. They are |
|
379 now warnings, to ease the use of coverage across versions. Fixes `issue |
|
380 1035`_. |
|
381 |
|
382 - Fix handling of exceptions through context managers in Python 3.10. A missing |
|
383 exception is no longer considered a missing branch from the with statement. |
|
384 Fixes `issue 1205`_. |
|
385 |
|
386 - Fix another rarer instance of "Error binding parameter 0 - probably |
|
387 unsupported type." (`issue 1010`_). |
|
388 |
|
389 - Creating a directory for the coverage data file now is safer against |
|
390 conflicts when two coverage runs happen simultaneously (`pull 1220`_). |
|
391 Thanks, Clément Pit-Claudel. |
|
392 |
|
393 .. _issue 1035: https://github.com/nedbat/coveragepy/issues/1035 |
|
394 .. _issue 1105: https://github.com/nedbat/coveragepy/issues/1105 |
|
395 .. _issue 1163: https://github.com/nedbat/coveragepy/issues/1163 |
|
396 .. _issue 1195: https://github.com/nedbat/coveragepy/issues/1195 |
|
397 .. _issue 1205: https://github.com/nedbat/coveragepy/issues/1205 |
|
398 .. _pull 1220: https://github.com/nedbat/coveragepy/pull/1220 |
|
399 |
|
400 |
|
401 .. _changes_60b1: |
|
402 |
|
403 Version 6.0b1 — 2021-07-18 |
|
404 -------------------------- |
|
405 |
|
406 - Dropped support for Python 2.7, PyPy 2, and Python 3.5. |
|
407 |
|
408 - Added support for the Python 3.10 ``match/case`` syntax. |
|
409 |
|
410 - Data collection is now thread-safe. There may have been rare instances of |
|
411 exceptions raised in multi-threaded programs. |
|
412 |
|
413 - Plugins (like the `Django coverage plugin`_) were generating "Already |
|
414 imported a file that will be measured" warnings about Django itself. These |
|
415 have been fixed, closing `issue 1150`_. |
|
416 |
|
417 - Warnings generated by coverage.py are now real Python warnings. |
|
418 |
|
419 - Using ``--fail-under=100`` with coverage near 100% could result in the |
|
420 self-contradictory message :code:`total of 100 is less than fail-under=100`. |
|
421 This bug (`issue 1168`_) is now fixed. |
|
422 |
|
423 - The ``COVERAGE_DEBUG_FILE`` environment variable now accepts ``stdout`` and |
|
424 ``stderr`` to write to those destinations. |
|
425 |
|
426 - TOML parsing now uses the `tomli`_ library. |
|
427 |
|
428 - Some minor changes to usually invisible details of the HTML report: |
|
429 |
|
430 - Use a modern hash algorithm when fingerprinting, for high-security |
|
431 environments (`issue 1189`_). When generating the HTML report, we save the |
|
432 hash of the data, to avoid regenerating an unchanged HTML page. We used to |
|
433 use MD5 to generate the hash, and now use SHA-3-256. This was never a |
|
434 security concern, but security scanners would notice the MD5 algorithm and |
|
435 raise a false alarm. |
|
436 |
|
437 - Change how report file names are generated, to avoid leading underscores |
|
438 (`issue 1167`_), to avoid rare file name collisions (`issue 584`_), and to |
|
439 avoid file names becoming too long (`issue 580`_). |
|
440 |
|
441 .. _Django coverage plugin: https://pypi.org/project/django-coverage-plugin/ |
|
442 .. _issue 580: https://github.com/nedbat/coveragepy/issues/580 |
|
443 .. _issue 584: https://github.com/nedbat/coveragepy/issues/584 |
|
444 .. _issue 1150: https://github.com/nedbat/coveragepy/issues/1150 |
|
445 .. _issue 1167: https://github.com/nedbat/coveragepy/issues/1167 |
|
446 .. _issue 1168: https://github.com/nedbat/coveragepy/issues/1168 |
|
447 .. _issue 1189: https://github.com/nedbat/coveragepy/issues/1189 |
|
448 .. _tomli: https://pypi.org/project/tomli/ |
|
449 |
|
450 |
|
451 .. _changes_56b1: |
|
452 |
|
453 Version 5.6b1 — 2021-04-13 |
|
454 -------------------------- |
|
455 |
|
456 Note: 5.6 final was never released. These changes are part of 6.0. |
|
457 |
|
458 - Third-party packages are now ignored in coverage reporting. This solves a |
|
459 few problems: |
|
460 |
|
461 - Coverage will no longer report about other people's code (`issue 876`_). |
|
462 This is true even when using ``--source=.`` with a venv in the current |
|
463 directory. |
|
464 |
|
465 - Coverage will no longer generate "Already imported a file that will be |
|
466 measured" warnings about coverage itself (`issue 905`_). |
|
467 |
|
468 - The HTML report uses j/k to move up and down among the highlighted chunks of |
|
469 code. They used to highlight the current chunk, but 5.0 broke that behavior. |
|
470 Now the highlighting is working again. |
|
471 |
|
472 - The JSON report now includes ``percent_covered_display``, a string with the |
|
473 total percentage, rounded to the same number of decimal places as the other |
|
474 reports' totals. |
|
475 |
|
476 .. _issue 876: https://github.com/nedbat/coveragepy/issues/876 |
|
477 .. _issue 905: https://github.com/nedbat/coveragepy/issues/905 |
|
478 |
|
479 |
|
480 .. _changes_55: |
|
481 |
|
482 Version 5.5 — 2021-02-28 |
|
483 ------------------------ |
|
484 |
|
485 - ``coverage combine`` has a new option, ``--keep`` to keep the original data |
|
486 files after combining them. The default is still to delete the files after |
|
487 they have been combined. This was requested in `issue 1108`_ and implemented |
|
488 in `pull request 1110`_. Thanks, Éric Larivière. |
|
489 |
|
490 - When reporting missing branches in ``coverage report``, branches aren't |
|
491 reported that jump to missing lines. This adds to the long-standing behavior |
|
492 of not reporting branches from missing lines. Now branches are only reported |
|
493 if both the source and destination lines are executed. Closes both `issue |
|
494 1065`_ and `issue 955`_. |
|
495 |
|
496 - Minor improvements to the HTML report: |
|
497 |
|
498 - The state of the line visibility selector buttons is saved in local storage |
|
499 so you don't have to fiddle with them so often, fixing `issue 1123`_. |
|
500 |
|
501 - It has a little more room for line numbers so that 4-digit numbers work |
|
502 well, fixing `issue 1124`_. |
|
503 |
|
504 - Improved the error message when combining line and branch data, so that users |
|
505 will be more likely to understand what's happening, closing `issue 803`_. |
|
506 |
|
507 .. _issue 803: https://github.com/nedbat/coveragepy/issues/803 |
|
508 .. _issue 955: https://github.com/nedbat/coveragepy/issues/955 |
|
509 .. _issue 1065: https://github.com/nedbat/coveragepy/issues/1065 |
|
510 .. _issue 1108: https://github.com/nedbat/coveragepy/issues/1108 |
|
511 .. _pull request 1110: https://github.com/nedbat/coveragepy/pull/1110 |
|
512 .. _issue 1123: https://github.com/nedbat/coveragepy/issues/1123 |
|
513 .. _issue 1124: https://github.com/nedbat/coveragepy/issues/1124 |
|
514 |
|
515 |
|
516 .. _changes_54: |
|
517 |
|
518 Version 5.4 — 2021-01-24 |
|
519 ------------------------ |
|
520 |
|
521 - The text report produced by ``coverage report`` now always outputs a TOTAL |
|
522 line, even if only one Python file is reported. This makes regex parsing |
|
523 of the output easier. Thanks, Judson Neer. This had been requested a number |
|
524 of times (`issue 1086`_, `issue 922`_, `issue 732`_). |
|
525 |
|
526 - The ``skip_covered`` and ``skip_empty`` settings in the configuration file |
|
527 can now be specified in the ``[html]`` section, so that text reports and HTML |
|
528 reports can use separate settings. The HTML report will still use the |
|
529 ``[report]`` settings if there isn't a value in the ``[html]`` section. |
|
530 Closes `issue 1090`_. |
|
531 |
|
532 - Combining files on Windows across drives now works properly, fixing `issue |
|
533 577`_. Thanks, `Valentin Lab <pr1080_>`_. |
|
534 |
|
535 - Fix an obscure warning from deep in the _decimal module, as reported in |
|
536 `issue 1084`_. |
|
537 |
|
538 - Update to support Python 3.10 alphas in progress, including `PEP 626: Precise |
|
539 line numbers for debugging and other tools <pep626_>`_. |
|
540 |
|
541 .. _issue 577: https://github.com/nedbat/coveragepy/issues/577 |
|
542 .. _issue 732: https://github.com/nedbat/coveragepy/issues/732 |
|
543 .. _issue 922: https://github.com/nedbat/coveragepy/issues/922 |
|
544 .. _issue 1084: https://github.com/nedbat/coveragepy/issues/1084 |
|
545 .. _issue 1086: https://github.com/nedbat/coveragepy/issues/1086 |
|
546 .. _issue 1090: https://github.com/nedbat/coveragepy/issues/1090 |
|
547 .. _pr1080: https://github.com/nedbat/coveragepy/pull/1080 |
|
548 .. _pep626: https://www.python.org/dev/peps/pep-0626/ |
|
549 |
|
550 |
|
551 .. _changes_531: |
|
552 |
|
553 Version 5.3.1 — 2020-12-19 |
|
554 -------------------------- |
|
555 |
|
556 - When using ``--source`` on a large source tree, v5.x was slower than previous |
|
557 versions. This performance regression is now fixed, closing `issue 1037`_. |
|
558 |
|
559 - Mysterious SQLite errors can happen on PyPy, as reported in `issue 1010`_. An |
|
560 immediate retry seems to fix the problem, although it is an unsatisfying |
|
561 solution. |
|
562 |
|
563 - The HTML report now saves the sort order in a more widely supported way, |
|
564 fixing `issue 986`_. Thanks, Sebastián Ramírez (`pull request 1066`_). |
|
565 |
|
566 - The HTML report pages now have a :ref:`Sleepy Snake <sleepy>` favicon. |
|
567 |
|
568 - Wheels are now provided for manylinux2010, and for PyPy3 (pp36 and pp37). |
|
569 |
|
570 - Continuous integration has moved from Travis and AppVeyor to GitHub Actions. |
|
571 |
|
572 .. _issue 986: https://github.com/nedbat/coveragepy/issues/986 |
|
573 .. _issue 1037: https://github.com/nedbat/coveragepy/issues/1037 |
|
574 .. _issue 1010: https://github.com/nedbat/coveragepy/issues/1010 |
|
575 .. _pull request 1066: https://github.com/nedbat/coveragepy/pull/1066 |
|
576 |
|
577 .. _changes_53: |
|
578 |
|
579 Version 5.3 — 2020-09-13 |
|
580 ------------------------ |
|
581 |
|
582 - The ``source`` setting has always been interpreted as either a file path or a |
|
583 module, depending on which existed. If both interpretations were valid, it |
|
584 was assumed to be a file path. The new ``source_pkgs`` setting can be used |
|
585 to name a package to disambiguate this case. Thanks, Thomas Grainger. Fixes |
|
586 `issue 268`_. |
|
587 |
|
588 - If a plugin was disabled due to an exception, we used to still try to record |
|
589 its information, causing an exception, as reported in `issue 1011`_. This is |
|
590 now fixed. |
|
591 |
|
592 .. _issue 268: https://github.com/nedbat/coveragepy/issues/268 |
|
593 .. _issue 1011: https://github.com/nedbat/coveragepy/issues/1011 |
|
594 |
|
595 |
|
596 .. endchangesinclude |
|
597 |
|
598 Older changes |
|
599 ------------- |
|
600 |
|
601 The complete history is available in the `coverage.py docs`__. |
|
602 |
|
603 __ https://coverage.readthedocs.io/en/latest/changes.html |