1 .. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 |
1 .. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 |
2 .. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt |
2 .. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt |
3 |
3 |
4 ============================== |
4 ============================== |
5 Change history for Coverage.py |
5 Change history for coverage.py |
6 ============================== |
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 This list is detailed and covers changes in each pre-release version. If you |
|
13 want to know what's different in 5.0 since 4.5.x, see :ref:`whatsnew5x`. |
|
14 |
7 |
15 |
8 .. When updating the "Unreleased" header to a specific version, use this |
16 .. When updating the "Unreleased" header to a specific version, use this |
9 .. format. Don't forget the jump target: |
17 .. format. Don't forget the jump target: |
10 .. |
18 .. |
|
19 .. .. _changes_981: |
11 .. |
20 .. |
12 .. .. _changes_781: |
21 .. Version 9.8.1 --- 2027-07-27 |
13 .. |
|
14 .. |
|
15 .. Version 7.8.1 --- 2021-07-27 |
|
16 .. ---------------------------- |
22 .. ---------------------------- |
17 |
23 |
18 |
24 |
19 .. _changes_452: |
25 .. _changes_503: |
20 |
26 |
21 Version 4.5.2 --- 2018-11-12 |
27 Version 5.0.3 --- 2020-01-12 |
22 ---------------------------- |
28 ---------------------------- |
|
29 |
|
30 - A performance improvement in 5.0.2 didn't work for test suites that changed |
|
31 directory before combining data, causing "Couldn't use data file: no such |
|
32 table: meta" errors (`issue 916`_). This is now fixed. |
|
33 |
|
34 - Coverage could fail to run your program with some form of "ModuleNotFound" or |
|
35 "ImportError" trying to import from the current directory. This would happen |
|
36 if coverage had been packaged into a zip file (for example, on Windows), or |
|
37 was found indirectly (for example, by pyenv-virtualenv). A number of |
|
38 different scenarios were described in `issue 862`_ which is now fixed. Huge |
|
39 thanks to Agbonze O. Jeremiah for reporting it, and Alexander Waters and |
|
40 George-Cristian Bîrzan for protracted debugging sessions. |
|
41 |
|
42 - Added the "premain" debug option. |
|
43 |
|
44 - Added SQLite compile-time options to the "debug sys" output. |
|
45 |
|
46 .. _issue 862: https://github.com/nedbat/coveragepy/issues/862 |
|
47 .. _issue 916: https://github.com/nedbat/coveragepy/issues/916 |
|
48 |
|
49 |
|
50 .. _changes_502: |
|
51 |
|
52 Version 5.0.2 --- 2020-01-05 |
|
53 ---------------------------- |
|
54 |
|
55 - Programs that used multiprocessing and changed directories would fail under |
|
56 coverage. This is now fixed (`issue 890`_). A side effect is that debug |
|
57 information about the config files read now shows absolute paths to the |
|
58 files. |
|
59 |
|
60 - When running programs as modules (``coverage run -m``) with ``--source``, |
|
61 some measured modules were imported before coverage starts. This resulted in |
|
62 unwanted warnings ("Already imported a file that will be measured") and a |
|
63 reduction in coverage totals (`issue 909`_). This is now fixed. |
|
64 |
|
65 - If no data was collected, an exception about "No data to report" could happen |
|
66 instead of a 0% report being created (`issue 884`_). This is now fixed. |
|
67 |
|
68 - The handling of source files with non-encodable file names has changed. |
|
69 Previously, if a file name could not be encoded as UTF-8, an error occurred, |
|
70 as described in `issue 891`_. Now, those files will not be measured, since |
|
71 their data would not be recordable. |
|
72 |
|
73 - A new warning ("dynamic-conflict") is issued if two mechanisms are trying to |
|
74 change the dynamic context. Closes `issue 901`_. |
|
75 |
|
76 - ``coverage run --debug=sys`` would fail with an AttributeError. This is now |
|
77 fixed (`issue 907`_). |
|
78 |
|
79 .. _issue 884: https://github.com/nedbat/coveragepy/issues/884 |
|
80 .. _issue 890: https://github.com/nedbat/coveragepy/issues/890 |
|
81 .. _issue 891: https://github.com/nedbat/coveragepy/issues/891 |
|
82 .. _issue 901: https://github.com/nedbat/coveragepy/issues/901 |
|
83 .. _issue 907: https://github.com/nedbat/coveragepy/issues/907 |
|
84 .. _issue 909: https://github.com/nedbat/coveragepy/issues/909 |
|
85 |
|
86 |
|
87 .. _changes_501: |
|
88 |
|
89 Version 5.0.1 --- 2019-12-22 |
|
90 ---------------------------- |
|
91 |
|
92 - If a 4.x data file is the cause of a "file is not a database" error, then use |
|
93 a more specific error message, "Looks like a coverage 4.x data file, are you |
|
94 mixing versions of coverage?" Helps diagnose the problems described in |
|
95 `issue 886`_. |
|
96 |
|
97 - Measurement contexts and relative file names didn't work together, as |
|
98 reported in `issue 899`_ and `issue 900`_. This is now fixed, thanks to |
|
99 David Szotten. |
|
100 |
|
101 - When using ``coverage run --concurrency=multiprocessing``, all data files |
|
102 should be named with parallel-ready suffixes. 5.0 mistakenly named the main |
|
103 process' file with no suffix when using ``--append``. This is now fixed, |
|
104 closing `issue 880`_. |
|
105 |
|
106 - Fixed a problem on Windows when the current directory is changed to a |
|
107 different drive (`issue 895`_). Thanks, Olivier Grisel. |
|
108 |
|
109 - Updated Python 3.9 support to 3.9a2. |
|
110 |
|
111 .. _issue 880: https://github.com/nedbat/coveragepy/issues/880 |
|
112 .. _issue 886: https://github.com/nedbat/coveragepy/issues/886 |
|
113 .. _issue 895: https://github.com/nedbat/coveragepy/issues/895 |
|
114 .. _issue 899: https://github.com/nedbat/coveragepy/issues/899 |
|
115 .. _issue 900: https://github.com/nedbat/coveragepy/issues/900 |
|
116 |
|
117 |
|
118 .. _changes_50: |
|
119 |
|
120 Version 5.0 --- 2019-12-14 |
|
121 -------------------------- |
|
122 |
|
123 Nothing new beyond 5.0b2. |
|
124 |
|
125 |
|
126 .. _changes_50b2: |
|
127 |
|
128 Version 5.0b2 --- 2019-12-08 |
|
129 ---------------------------- |
|
130 |
|
131 - An experimental ``[run] relative_files`` setting tells coverage to store |
|
132 relative file names in the data file. This makes it easier to run tests in |
|
133 one (or many) environments, and then report in another. It has not had much |
|
134 real-world testing, so it may change in incompatible ways in the future. |
|
135 |
|
136 - When constructing a :class:`coverage.Coverage` object, `data_file` can be |
|
137 specified as None to prevent writing any data file at all. In previous |
|
138 versions, an explicit `data_file=None` argument would use the default of |
|
139 ".coverage". Fixes `issue 871`_. |
|
140 |
|
141 - Python files run with ``-m`` now have ``__spec__`` defined properly. This |
|
142 fixes `issue 745`_ (about not being able to run unittest tests that spawn |
|
143 subprocesses), and `issue 838`_, which described the problem directly. |
|
144 |
|
145 - The ``[paths]`` configuration section is now ordered. If you specify more |
|
146 than one list of patterns, the first one that matches will be used. Fixes |
|
147 `issue 649`_. |
|
148 |
|
149 - The :func:`.coverage.numbits.register_sqlite_functions` function now also |
|
150 registers `numbits_to_nums` for use in SQLite queries. Thanks, Simon |
|
151 Willison. |
|
152 |
|
153 - Python 3.9a1 is supported. |
|
154 |
|
155 - Coverage.py has a mascot: :ref:`Sleepy Snake <sleepy>`. |
|
156 |
|
157 .. _issue 649: https://github.com/nedbat/coveragepy/issues/649 |
|
158 .. _issue 745: https://github.com/nedbat/coveragepy/issues/745 |
|
159 .. _issue 838: https://github.com/nedbat/coveragepy/issues/838 |
|
160 .. _issue 871: https://github.com/nedbat/coveragepy/issues/871 |
|
161 |
|
162 |
|
163 .. _changes_50b1: |
|
164 |
|
165 Version 5.0b1 --- 2019-11-11 |
|
166 ---------------------------- |
|
167 |
|
168 - The HTML and textual reports now have a ``--skip-empty`` option that skips |
|
169 files with no statements, notably ``__init__.py`` files. Thanks, Reya B. |
|
170 |
|
171 - Configuration can now be read from `TOML`_ files. This requires installing |
|
172 coverage.py with the ``[toml]`` extra. The standard "pyproject.toml" file |
|
173 will be read automatically if no other configuration file is found, with |
|
174 settings in the ``[tool.coverage.]`` namespace. Thanks to Frazer McLean for |
|
175 implementation and persistence. Finishes `issue 664`_. |
|
176 |
|
177 - The ``[run] note`` setting has been deprecated. Using it will result in a |
|
178 warning, and the note will not be written to the data file. The |
|
179 corresponding :class:`.CoverageData` methods have been removed. |
|
180 |
|
181 - The HTML report has been reimplemented (no more table around the source |
|
182 code). This allowed for a better presentation of the context information, |
|
183 hopefully resolving `issue 855`_. |
|
184 |
|
185 - Added sqlite3 module version information to ``coverage debug sys`` output. |
|
186 |
|
187 - Asking the HTML report to show contexts (``[html] show_contexts=True`` or |
|
188 ``coverage html --show-contexts``) will issue a warning if there were no |
|
189 contexts measured (`issue 851`_). |
|
190 |
|
191 .. _TOML: https://github.com/toml-lang/toml#readme |
|
192 .. _issue 664: https://github.com/nedbat/coveragepy/issues/664 |
|
193 .. _issue 851: https://github.com/nedbat/coveragepy/issues/851 |
|
194 .. _issue 855: https://github.com/nedbat/coveragepy/issues/855 |
|
195 |
|
196 |
|
197 .. _changes_50a8: |
|
198 |
|
199 Version 5.0a8 --- 2019-10-02 |
|
200 ---------------------------- |
|
201 |
|
202 - The :class:`.CoverageData` API has changed how queries are limited to |
|
203 specific contexts. Now you use :meth:`.CoverageData.set_query_context` to |
|
204 set a single exact-match string, or :meth:`.CoverageData.set_query_contexts` |
|
205 to set a list of regular expressions to match contexts. This changes the |
|
206 command-line ``--contexts`` option to use regular expressions instead of |
|
207 filename-style wildcards. |
|
208 |
|
209 |
|
210 .. _changes_50a7: |
|
211 |
|
212 Version 5.0a7 --- 2019-09-21 |
|
213 ---------------------------- |
|
214 |
|
215 - Data can now be "reported" in JSON format, for programmatic use, as requested |
|
216 in `issue 720`_. The new ``coverage json`` command writes raw and summarized |
|
217 data to a JSON file. Thanks, Matt Bachmann. |
|
218 |
|
219 - Dynamic contexts are now supported in the Python tracer, which is important |
|
220 for PyPy users. Closes `issue 846`_. |
|
221 |
|
222 - The compact line number representation introduced in 5.0a6 is called a |
|
223 "numbits." The :mod:`coverage.numbits` module provides functions for working |
|
224 with them. |
|
225 |
|
226 - The reporting methods used to permanently apply their arguments to the |
|
227 configuration of the Coverage object. Now they no longer do. The arguments |
|
228 affect the operation of the method, but do not persist. |
|
229 |
|
230 - A class named "test_something" no longer confuses the ``test_function`` |
|
231 dynamic context setting. Fixes `issue 829`_. |
|
232 |
|
233 - Fixed an unusual tokenizing issue with backslashes in comments. Fixes |
|
234 `issue 822`_. |
|
235 |
|
236 - ``debug=plugin`` didn't properly support configuration or dynamic context |
|
237 plugins, but now it does, closing `issue 834`_. |
|
238 |
|
239 .. _issue 720: https://github.com/nedbat/coveragepy/issues/720 |
|
240 .. _issue 822: https://github.com/nedbat/coveragepy/issues/822 |
|
241 .. _issue 834: https://github.com/nedbat/coveragepy/issues/834 |
|
242 .. _issue 829: https://github.com/nedbat/coveragepy/issues/829 |
|
243 .. _issue 846: https://github.com/nedbat/coveragepy/issues/846 |
|
244 |
|
245 |
|
246 .. _changes_50a6: |
|
247 |
|
248 Version 5.0a6 --- 2019-07-16 |
|
249 ---------------------------- |
|
250 |
|
251 - Reporting on contexts. Big thanks to Stephan Richter and Albertas Agejevas |
|
252 for the contribution. |
|
253 |
|
254 - The ``--contexts`` option is available on the ``report`` and ``html`` |
|
255 commands. It's a comma-separated list of shell-style wildcards, selecting |
|
256 the contexts to report on. Only contexts matching one of the wildcards |
|
257 will be included in the report. |
|
258 |
|
259 - The ``--show-contexts`` option for the ``html`` command adds context |
|
260 information to each covered line. Hovering over the "ctx" marker at the |
|
261 end of the line reveals a list of the contexts that covered the line. |
|
262 |
|
263 - Database changes: |
|
264 |
|
265 - Line numbers are now stored in a much more compact way. For each file and |
|
266 context, a single binary string is stored with a bit per line number. This |
|
267 greatly improves memory use, but makes ad-hoc use difficult. |
|
268 |
|
269 - Dynamic contexts with no data are no longer written to the database. |
|
270 |
|
271 - SQLite data storage is now faster. There's no longer a reason to keep the |
|
272 JSON data file code, so it has been removed. |
|
273 |
|
274 - Changes to the :class:`.CoverageData` interface: |
|
275 |
|
276 - The new :meth:`.CoverageData.dumps` method serializes the data to a string, |
|
277 and a corresponding :meth:`.CoverageData.loads` method reconstitutes this |
|
278 data. The format of the data string is subject to change at any time, and |
|
279 so should only be used between two installations of the same version of |
|
280 coverage.py. |
|
281 |
|
282 - The :meth:`CoverageData constructor<.CoverageData.__init__>` has a new |
|
283 argument, `no_disk` (default: False). Setting it to True prevents writing |
|
284 any data to the disk. This is useful for transient data objects. |
|
285 |
|
286 - Added the classmethod :meth:`.Coverage.current` to get the latest started |
|
287 Coverage instance. |
|
288 |
|
289 - Multiprocessing support in Python 3.8 was broken, but is now fixed. Closes |
|
290 `issue 828`_. |
|
291 |
|
292 - Error handling during reporting has changed slightly. All reporting methods |
|
293 now behave the same. The ``--ignore-errors`` option keeps errors from |
|
294 stopping the reporting, but files that couldn't parse as Python will always |
|
295 be reported as warnings. As with other warnings, you can suppress them with |
|
296 the ``[run] disable_warnings`` configuration setting. |
|
297 |
|
298 - Coverage.py no longer fails if the user program deletes its current |
|
299 directory. Fixes `issue 806`_. Thanks, Dan Hemberger. |
|
300 |
|
301 - The scrollbar markers in the HTML report now accurately show the highlighted |
|
302 lines, regardless of what categories of line are highlighted. |
|
303 |
|
304 - The hack to accommodate ShiningPanda_ looking for an obsolete internal data |
|
305 file has been removed, since ShiningPanda 0.22 fixed it four years ago. |
|
306 |
|
307 - The deprecated `Reporter.file_reporters` property has been removed. |
|
308 |
|
309 .. _ShiningPanda: https://wiki.jenkins.io/display/JENKINS/ShiningPanda+Plugin |
|
310 .. _issue 806: https://github.com/nedbat/coveragepy/pull/806 |
|
311 .. _issue 828: https://github.com/nedbat/coveragepy/issues/828 |
|
312 |
|
313 |
|
314 .. _changes_50a5: |
|
315 |
|
316 Version 5.0a5 --- 2019-05-07 |
|
317 ---------------------------- |
|
318 |
|
319 - Drop support for Python 3.4 |
|
320 |
|
321 - Dynamic contexts can now be set two new ways, both thanks to Justas |
|
322 SadzeviÄŤius. |
|
323 |
|
324 - A plugin can implement a ``dynamic_context`` method to check frames for |
|
325 whether a new context should be started. See |
|
326 :ref:`dynamic_context_plugins` for more details. |
|
327 |
|
328 - Another tool (such as a test runner) can use the new |
|
329 :meth:`.Coverage.switch_context` method to explicitly change the context. |
|
330 |
|
331 - The ``dynamic_context = test_function`` setting now works with Python 2 |
|
332 old-style classes, though it only reports the method name, not the class it |
|
333 was defined on. Closes `issue 797`_. |
|
334 |
|
335 - ``fail_under`` values more than 100 are reported as errors. Thanks to Mike |
|
336 Fiedler for closing `issue 746`_. |
|
337 |
|
338 - The "missing" values in the text output are now sorted by line number, so |
|
339 that missing branches are reported near the other lines they affect. The |
|
340 values used to show all missing lines, and then all missing branches. |
|
341 |
|
342 - Access to the SQLite database used for data storage is now thread-safe. |
|
343 Thanks, Stephan Richter. This closes `issue 702`_. |
|
344 |
|
345 - Combining data stored in SQLite is now about twice as fast, fixing `issue |
|
346 761`_. Thanks, Stephan Richter. |
|
347 |
|
348 - The ``filename`` attribute on :class:`.CoverageData` objects has been made |
|
349 private. You can use the ``data_filename`` method to get the actual file |
|
350 name being used to store data, and the ``base_filename`` method to get the |
|
351 original filename before parallelizing suffixes were added. This is part of |
|
352 fixing `issue 708`_. |
|
353 |
|
354 - Line numbers in the HTML report now align properly with source lines, even |
|
355 when Chrome's minimum font size is set, fixing `issue 748`_. Thanks Wen Ye. |
|
356 |
|
357 .. _issue 702: https://github.com/nedbat/coveragepy/issues/702 |
|
358 .. _issue 708: https://github.com/nedbat/coveragepy/issues/708 |
|
359 .. _issue 746: https://github.com/nedbat/coveragepy/issues/746 |
|
360 .. _issue 748: https://github.com/nedbat/coveragepy/issues/748 |
|
361 .. _issue 761: https://github.com/nedbat/coveragepy/issues/761 |
|
362 .. _issue 797: https://github.com/nedbat/coveragepy/issues/797 |
|
363 |
|
364 |
|
365 .. _changes_50a4: |
|
366 |
|
367 Version 5.0a4 --- 2018-11-25 |
|
368 ---------------------------- |
|
369 |
|
370 - You can specify the command line to run your program with the ``[run] |
|
371 command_line`` configuration setting, as requested in `issue 695`_. |
|
372 |
|
373 - Coverage will create directories as needed for the data file if they don't |
|
374 exist, closing `issue 721`_. |
|
375 |
|
376 - The ``coverage run`` command has always adjusted the first entry in sys.path, |
|
377 to properly emulate how Python runs your program. Now this adjustment is |
|
378 skipped if sys.path[0] is already different than Python's default. This |
|
379 fixes `issue 715`_. |
|
380 |
|
381 - Improvements to context support: |
|
382 |
|
383 - The "no such table: meta" error is fixed.: `issue 716`_. |
|
384 |
|
385 - Combining data files is now much faster. |
|
386 |
|
387 - Python 3.8 (as of today!) passes all tests. |
|
388 |
|
389 .. _issue 695: https://github.com/nedbat/coveragepy/issues/695 |
|
390 .. _issue 715: https://github.com/nedbat/coveragepy/issues/715 |
|
391 .. _issue 716: https://github.com/nedbat/coveragepy/issues/716 |
|
392 .. _issue 721: https://github.com/nedbat/coveragepy/issues/721 |
|
393 |
|
394 |
|
395 .. _changes_50a3: |
|
396 |
|
397 Version 5.0a3 --- 2018-10-06 |
|
398 ---------------------------- |
|
399 |
|
400 - Context support: static contexts let you specify a label for a coverage run, |
|
401 which is recorded in the data, and retained when you combine files. See |
|
402 :ref:`contexts` for more information. |
|
403 |
|
404 - Dynamic contexts: specifying ``[run] dynamic_context = test_function`` in the |
|
405 config file will record the test function name as a dynamic context during |
|
406 execution. This is the core of "Who Tests What" (`issue 170`_). Things to |
|
407 note: |
|
408 |
|
409 - There is no reporting support yet. Use SQLite to query the .coverage file |
|
410 for information. Ideas are welcome about how reporting could be extended |
|
411 to use this data. |
|
412 |
|
413 - There's a noticeable slow-down before any test is run. |
|
414 |
|
415 - Data files will now be roughly N times larger, where N is the number of |
|
416 tests you have. Combining data files is therefore also N times slower. |
|
417 |
|
418 - No other values for ``dynamic_context`` are recognized yet. Let me know |
|
419 what else would be useful. I'd like to use a pytest plugin to get better |
|
420 information directly from pytest, for example. |
|
421 |
|
422 .. _issue 170: https://github.com/nedbat/coveragepy/issues/170 |
|
423 |
|
424 - Environment variable substitution in configuration files now supports two |
|
425 syntaxes for controlling the behavior of undefined variables: if ``VARNAME`` |
|
426 is not defined, ``${VARNAME?}`` will raise an error, and ``${VARNAME-default |
|
427 value}`` will use "default value". |
|
428 |
|
429 - Partial support for Python 3.8, which has not yet released an alpha. Fixes |
|
430 `issue 707`_ and `issue 714`_. |
|
431 |
|
432 .. _issue 707: https://github.com/nedbat/coveragepy/issues/707 |
|
433 .. _issue 714: https://github.com/nedbat/coveragepy/issues/714 |
|
434 |
|
435 |
|
436 .. _changes_50a2: |
|
437 |
|
438 Version 5.0a2 --- 2018-09-03 |
|
439 ---------------------------- |
|
440 |
|
441 - Coverage's data storage has changed. In version 4.x, .coverage files were |
|
442 basically JSON. Now, they are SQLite databases. This means the data file |
|
443 can be created earlier than it used to. A large amount of code was |
|
444 refactored to support this change. |
|
445 |
|
446 - Because the data file is created differently than previous releases, you |
|
447 may need ``parallel=true`` where you didn't before. |
|
448 |
|
449 - The old data format is still available (for now) by setting the environment |
|
450 variable COVERAGE_STORAGE=json. Please tell me if you think you need to |
|
451 keep the JSON format. |
|
452 |
|
453 - The database schema is guaranteed to change in the future, to support new |
|
454 features. I'm looking for opinions about making the schema part of the |
|
455 public API to coverage.py or not. |
|
456 |
|
457 - Development moved from `Bitbucket`_ to `GitHub`_. |
|
458 |
|
459 - HTML files no longer have trailing and extra whitespace. |
|
460 |
|
461 - The sort order in the HTML report is stored in local storage rather than |
|
462 cookies, closing `issue 611`_. Thanks, Federico Bond. |
|
463 |
|
464 - pickle2json, for converting v3 data files to v4 data files, has been removed. |
|
465 |
|
466 .. _Bitbucket: https://bitbucket.org/ned/coveragepy |
|
467 .. _GitHub: https://github.com/nedbat/coveragepy |
|
468 |
|
469 .. _issue 611: https://github.com/nedbat/coveragepy/issues/611 |
|
470 |
|
471 |
|
472 .. _changes_50a1: |
|
473 |
|
474 Version 5.0a1 --- 2018-06-05 |
|
475 ---------------------------- |
|
476 |
|
477 - Coverage.py no longer supports Python 2.6 or 3.3. |
|
478 |
|
479 - The location of the configuration file can now be specified with a |
|
480 ``COVERAGE_RCFILE`` environment variable, as requested in `issue 650`_. |
23 |
481 |
24 - Namespace packages are supported on Python 3.7, where they used to cause |
482 - Namespace packages are supported on Python 3.7, where they used to cause |
25 TypeErrors about path being None. Fixes `issue 700`_. |
483 TypeErrors about path being None. Fixes `issue 700`_. |
26 |
484 |
27 - Python 3.8 (as of today!) passes all tests. Fixes `issue 707` and |
485 - A new warning (``already-imported``) is issued if measurable files have |
|
486 already been imported before coverage.py started measurement. See |
|
487 :ref:`cmd_warnings` for more information. |
|
488 |
|
489 - Running coverage many times for small runs in a single process should be |
|
490 faster, closing `issue 625`_. Thanks, David MacIver. |
|
491 |
|
492 - Large HTML report pages load faster. Thanks, Pankaj Pandey. |
|
493 |
|
494 .. _issue 625: https://bitbucket.org/ned/coveragepy/issues/625/lstat-dominates-in-the-case-of-small |
|
495 .. _issue 650: https://bitbucket.org/ned/coveragepy/issues/650/allow-setting-configuration-file-location |
|
496 .. _issue 700: https://github.com/nedbat/coveragepy/issues/700 |
|
497 |
|
498 |
|
499 .. _changes_454: |
|
500 |
|
501 Version 4.5.4 --- 2019-07-29 |
|
502 ---------------------------- |
|
503 |
|
504 - Multiprocessing support in Python 3.8 was broken, but is now fixed. Closes |
|
505 `issue 828`_. |
|
506 |
|
507 .. _issue 828: https://github.com/nedbat/coveragepy/issues/828 |
|
508 |
|
509 |
|
510 .. _changes_453: |
|
511 |
|
512 Version 4.5.3 --- 2019-03-09 |
|
513 ---------------------------- |
|
514 |
|
515 - Only packaging metadata changes. |
|
516 |
|
517 |
|
518 .. _changes_452: |
|
519 |
|
520 Version 4.5.2 --- 2018-11-12 |
|
521 ---------------------------- |
|
522 |
|
523 - Namespace packages are supported on Python 3.7, where they used to cause |
|
524 TypeErrors about path being None. Fixes `issue 700`_. |
|
525 |
|
526 - Python 3.8 (as of today!) passes all tests. Fixes `issue 707`_ and |
28 `issue 714`_. |
527 `issue 714`_. |
29 |
528 |
30 - Development moved from `Bitbucket`_ to `GitHub`_. |
529 - Development moved from `Bitbucket`_ to `GitHub`_. |
31 |
530 |
32 .. _issue 700: https://github.com/nedbat/coveragepy/issues/700 |
531 .. _issue 700: https://github.com/nedbat/coveragepy/issues/700 |