eric6/DebugClients/Python/coverage/doc/CHANGES.rst

changeset 7427
362cd1b6f81a
parent 6942
2602857055c5
child 7975
7d493839a8fc
equal deleted inserted replaced
7426:dc171b1d8261 7427:362cd1b6f81a
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
60 .. _changes_45: 559 .. _changes_45:
61 560
62 Version 4.5 --- 2018-02-03 561 Version 4.5 --- 2018-02-03
63 -------------------------- 562 --------------------------
64 563
65 - A new kind of plugin is supported: configurators are invoked at start-up to 564 - A new kind of plugin is supported: configurers are invoked at start-up to
66 allow more complex configuration than the .coveragerc file can easily do. 565 allow more complex configuration than the .coveragerc file can easily do.
67 See :ref:`api_plugin` for details. This solves the complex configuration 566 See :ref:`api_plugin` for details. This solves the complex configuration
68 problem described in `issue 563`_. 567 problem described in `issue 563`_.
69 568
70 - The ``fail_under`` option can now be a float. Note that you must specify the 569 - The ``fail_under`` option can now be a float. Note that you must specify the
277 coverage.py 4.3, the old HTML file with the less-than-100% coverage would be 776 coverage.py 4.3, the old HTML file with the less-than-100% coverage would be
278 left behind. This file is now properly deleted. 777 left behind. This file is now properly deleted.
279 778
280 .. _issue 322: https://bitbucket.org/ned/coveragepy/issues/322/cannot-use-coverage-with-jython 779 .. _issue 322: https://bitbucket.org/ned/coveragepy/issues/322/cannot-use-coverage-with-jython
281 .. _issue 426: https://bitbucket.org/ned/coveragepy/issues/426/difference-between-coverage-results-with 780 .. _issue 426: https://bitbucket.org/ned/coveragepy/issues/426/difference-between-coverage-results-with
282 .. _issue 522: https://bitbucket.org/ned/coveragepy/issues/522/incorrect-branch-reporting-with-__debug__ 781 .. _issue 522: https://bitbucket.org/ned/coveragepy/issues/522/incorrect-branch-reporting
283 .. _issue 549: https://bitbucket.org/ned/coveragepy/issues/549/skip-covered-with-100-coverage-throws-a-no 782 .. _issue 549: https://bitbucket.org/ned/coveragepy/issues/549/skip-covered-with-100-coverage-throws-a-no
284 .. _issue 551: https://bitbucket.org/ned/coveragepy/issues/551/coveragepy-cannot-be-imported-in-jython27 783 .. _issue 551: https://bitbucket.org/ned/coveragepy/issues/551/coveragepy-cannot-be-imported-in-jython27
285 784
286 785
287 .. _changes_431: 786 .. _changes_431:
504 .. _issue 396: https://bitbucket.org/ned/coveragepy/issues/396/coverage-xml-shouldnt-bail-out-on-parse 1003 .. _issue 396: https://bitbucket.org/ned/coveragepy/issues/396/coverage-xml-shouldnt-bail-out-on-parse
505 .. _issue 454: https://bitbucket.org/ned/coveragepy/issues/454/coverage-debug-config-should-be 1004 .. _issue 454: https://bitbucket.org/ned/coveragepy/issues/454/coverage-debug-config-should-be
506 .. _issue 478: https://bitbucket.org/ned/coveragepy/issues/478/help-shows-silly-program-name-when-running 1005 .. _issue 478: https://bitbucket.org/ned/coveragepy/issues/478/help-shows-silly-program-name-when-running
507 .. _issue 484: https://bitbucket.org/ned/coveragepy/issues/484/multiprocessing-greenlet-concurrency 1006 .. _issue 484: https://bitbucket.org/ned/coveragepy/issues/484/multiprocessing-greenlet-concurrency
508 .. _issue 492: https://bitbucket.org/ned/coveragepy/issues/492/subprocess-coverage-strange-detection-of 1007 .. _issue 492: https://bitbucket.org/ned/coveragepy/issues/492/subprocess-coverage-strange-detection-of
509 .. _unittest-mixins: https://pypi.python.org/pypi/unittest-mixins 1008 .. _unittest-mixins: https://pypi.org/project/unittest-mixins/
510 1009
511 1010
512 .. _changes_41: 1011 .. _changes_41:
513 1012
514 Version 4.1 --- 2016-05-21 1013 Version 4.1 --- 2016-05-21
591 - Problems with the new branch measurement in 4.1 beta 1 were fixed: 1090 - Problems with the new branch measurement in 4.1 beta 1 were fixed:
592 1091
593 - Class docstrings were considered executable. Now they no longer are. 1092 - Class docstrings were considered executable. Now they no longer are.
594 1093
595 - ``yield from`` and ``await`` were considered returns from functions, since 1094 - ``yield from`` and ``await`` were considered returns from functions, since
596 they could tranfer control to the caller. This produced unhelpful "missing 1095 they could transfer control to the caller. This produced unhelpful
597 branch" reports in a number of circumstances. Now they no longer are 1096 "missing branch" reports in a number of circumstances. Now they no longer
598 considered returns. 1097 are considered returns.
599 1098
600 - In unusual situations, a missing branch to a negative number was reported. 1099 - In unusual situations, a missing branch to a negative number was reported.
601 This has been fixed, closing `issue 466`_. 1100 This has been fixed, closing `issue 466`_.
602 1101
603 - The XML report now produces correct package names for modules found in 1102 - The XML report now produces correct package names for modules found in
674 hanging the process (`issue 420`_), sometimes making database connections 1173 hanging the process (`issue 420`_), sometimes making database connections
675 fail (`issue 445`_). 1174 fail (`issue 445`_).
676 1175
677 - The XML report now has correct ``<source>`` elements when using a 1176 - The XML report now has correct ``<source>`` elements when using a
678 ``--source=`` option somewhere besides the current directory. This fixes 1177 ``--source=`` option somewhere besides the current directory. This fixes
679 `issue 439`_. Thanks, Arcady Ivanov. 1178 `issue 439`_. Thanks, Arcadiy Ivanov.
680 1179
681 - Fixed an unusual edge case of detecting source encodings, described in 1180 - Fixed an unusual edge case of detecting source encodings, described in
682 `issue 443`_. 1181 `issue 443`_.
683 1182
684 - Help messages that mention the command to use now properly use the actual 1183 - Help messages that mention the command to use now properly use the actual
773 ---------------------------- 1272 ----------------------------
774 1273
775 - Reporting on an unmeasured file would fail with a traceback. This is now 1274 - Reporting on an unmeasured file would fail with a traceback. This is now
776 fixed, closing `issue 403`_. 1275 fixed, closing `issue 403`_.
777 1276
778 - The Jenkins ShiningPanda plugin looks for an obsolete file name to find the 1277 - The Jenkins ShiningPanda_ plugin looks for an obsolete file name to find the
779 HTML reports to publish, so it was failing under coverage.py 4.0. Now we 1278 HTML reports to publish, so it was failing under coverage.py 4.0. Now we
780 create that file if we are running under Jenkins, to keep things working 1279 create that file if we are running under Jenkins, to keep things working
781 smoothly. `issue 404`_. 1280 smoothly. `issue 404`_.
782 1281
783 - Kits used to include tests and docs, but didn't install them anywhere, or 1282 - Kits used to include tests and docs, but didn't install them anywhere, or
1823 a report will sort it first the way you last had a coverage report sorted. 2322 a report will sort it first the way you last had a coverage report sorted.
1824 Thanks, `Chris Adams`_. 2323 Thanks, `Chris Adams`_.
1825 2324
1826 - On Python 3.x, setuptools has been replaced by `Distribute`_. 2325 - On Python 3.x, setuptools has been replaced by `Distribute`_.
1827 2326
1828 .. _Distribute: https://pypi.python.org/pypi/distribute 2327 .. _Distribute: https://pypi.org/project/distribute/
1829 2328
1830 2329
1831 Version 3.2b3 --- 2009-11-23 2330 Version 3.2b3 --- 2009-11-23
1832 ---------------------------- 2331 ----------------------------
1833 2332
2036 - Precisely which lines are considered executable has changed in some cases. 2535 - Precisely which lines are considered executable has changed in some cases.
2037 Therefore, your coverage stats may also change slightly. 2536 Therefore, your coverage stats may also change slightly.
2038 2537
2039 - The singleton coverage object is only created if the module-level functions 2538 - The singleton coverage object is only created if the module-level functions
2040 are used. This maintains the old interface while allowing better 2539 are used. This maintains the old interface while allowing better
2041 programmatic use of Coverage.py. 2540 programmatic use of coverage.py.
2042 2541
2043 - The minimum supported Python version is 2.3. 2542 - The minimum supported Python version is 2.3.
2044 2543
2045 2544
2046 Version 2.85 --- 2008-09-14 2545 Version 2.85 --- 2008-09-14

eric ide

mercurial