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