Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: third_party/coverage-3.6/CHANGES.txt

Issue 14988009: First cut of testing infrastructure for recipes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Add coverage to third_party. The C module is a speed-only optimization. Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 ------------------------------
2 Change history for Coverage.py
3 ------------------------------
4
5 Version 3.6 --- 5 January 2013
6 ------------------------------
7
8 - Added a page to the docs about troublesome situations, closing `issue 226`_,
9 and added some info to the TODO file, closing `issue 227`_.
10
11 .. _issue 226: https://bitbucket.org/ned/coveragepy/issue/226/make-readme-sectio n-to-describe-when
12 .. _issue 227: https://bitbucket.org/ned/coveragepy/issue/227/update-todo
13
14
15 Version 3.6b3 --- 29 December 2012
16 ----------------------------------
17
18 - Beta 2 broke the nose plugin. It's fixed again, closing `issue 224`_.
19
20 .. _issue 224: https://bitbucket.org/ned/coveragepy/issue/224/36b2-breaks-nosexc over
21
22
23 Version 3.6b2 --- 23 December 2012
24 ----------------------------------
25
26 - Coverage.py runs on Python 2.3 and 2.4 again. It was broken in 3.6b1.
27
28 - The C extension is optionally compiled using a different more widely-used
29 technique, taking another stab at fixing `issue 80`_ once and for all.
30
31 - Combining data files would create entries for phantom files if used with
32 ``source`` and path aliases. It no longer does.
33
34 - ``debug sys`` now shows the configuration file path that was read.
35
36 - If an oddly-behaved package claims that code came from an empty-string
37 filename, coverage.py no longer associates it with the directory name,
38 fixing `issue 221`_.
39
40 .. _issue 80: https://bitbucket.org/ned/coveragepy/issue/80/is-there-a-duck-typi ng-way-to-know-we-cant
41 .. _issue 221: https://bitbucket.org/ned/coveragepy/issue/221/coveragepy-incompa tible-with-pyratemp
42
43
44 Version 3.6b1 --- 28 November 2012
45 ----------------------------------
46
47 - Wildcards in ``include=`` and ``omit=`` arguments were not handled properly
48 in reporting functions, though they were when running. Now they are handled
49 uniformly, closing `issue 143`_ and `issue 163`_. **NOTE**: it is possible
50 that your configurations may now be incorrect. If you use ``include`` or
51 ``omit`` during reporting, whether on the command line, through the API, or
52 in a configuration file, please check carefully that you were not relying on
53 the old broken behavior.
54
55 - The **report**, **html**, and **xml** commands now accept a ``--fail-under``
56 switch that indicates in the exit status whether the coverage percentage was
57 less than a particular value. Closes `issue 139`_.
58
59 - The reporting functions coverage.report(), coverage.html_report(), and
60 coverage.xml_report() now all return a float, the total percentage covered
61 measurement.
62
63 - The HTML report's title can now be set in the configuration file, with the
64 ``--title`` switch on the command line, or via the API.
65
66 - Configuration files now support substitution of environment variables, using
67 syntax like ``${WORD}``. Closes `issue 97`_.
68
69 - Embarrassingly, the `[xml] output=` setting in the .coveragerc file simply
70 didn't work. Now it does.
71
72 - The XML report now consistently uses filenames for the filename attribute,
73 rather than sometimes using module names. Fixes `issue 67`_.
74 Thanks, Marcus Cobden.
75
76 - Coverage percentage metrics are now computed slightly differently under
77 branch coverage. This means that completely unexecuted files will now
78 correctly have 0% coverage, fixing `issue 156`_. This also means that your
79 total coverage numbers will generally now be lower if you are measuring
80 branch coverage.
81
82 - When installing, now in addition to creating a "coverage" command, two new
83 aliases are also installed. A "coverage2" or "coverage3" command will be
84 created, depending on whether you are installing in Python 2.x or 3.x.
85 A "coverage-X.Y" command will also be created corresponding to your specific
86 version of Python. Closes `issue 111`_.
87
88 - The coverage.py installer no longer tries to bootstrap setuptools or
89 Distribute. You must have one of them installed first, as `issue 202`_
90 recommended.
91
92 - The coverage.py kit now includes docs (closing `issue 137`_) and tests.
93
94 - On Windows, files are now reported in their correct case, fixing `issue 89`_
95 and `issue 203`_.
96
97 - If a file is missing during reporting, the path shown in the error message
98 is now correct, rather than an incorrect path in the current directory.
99 Fixes `issue 60`_.
100
101 - Running an HTML report in Python 3 in the same directory as an old Python 2
102 HTML report would fail with a UnicodeDecodeError. This issue (`issue 193`_)
103 is now fixed.
104
105 - Fixed yet another error trying to parse non-Python files as Python, this
106 time an IndentationError, closing `issue 82`_ for the fourth time...
107
108 - If `coverage xml` fails because there is no data to report, it used to
109 create a zero-length XML file. Now it doesn't, fixing `issue 210`_.
110
111 - Jython files now work with the ``--source`` option, fixing `issue 100`_.
112
113 - Running coverage under a debugger is unlikely to work, but it shouldn't fail
114 with "TypeError: 'NoneType' object is not iterable". Fixes `issue 201`_.
115
116 - On some Linux distributions, when installed with the OS package manager,
117 coverage.py would report its own code as part of the results. Now it won't,
118 fixing `issue 214`_, though this will take some time to be repackaged by the
119 operating systems.
120
121 - Docstrings for the legacy singleton methods are more helpful. Thanks Marius
122 Gedminas. Closes `issue 205`_.
123
124 - The pydoc tool can now show docmentation for the class `coverage.coverage`.
125 Closes `issue 206`_.
126
127 - Added a page to the docs about contributing to coverage.py, closing
128 `issue 171`_.
129
130 - When coverage.py ended unsuccessfully, it may have reported odd errors like
131 ``'NoneType' object has no attribute 'isabs'``. It no longer does,
132 so kiss `issue 153`_ goodbye.
133
134 .. _issue 60: https://bitbucket.org/ned/coveragepy/issue/60/incorrect-path-to-or phaned-pyc-files
135 .. _issue 67: https://bitbucket.org/ned/coveragepy/issue/67/xml-report-filenames -may-be-generated
136 .. _issue 82: https://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-gene rating-html-report
137 .. _issue 89: https://bitbucket.org/ned/coveragepy/issue/89/on-windows-all-packa ges-are-reported-in
138 .. _issue 97: https://bitbucket.org/ned/coveragepy/issue/97/allow-environment-va riables-to-be
139 .. _issue 100: https://bitbucket.org/ned/coveragepy/issue/100/source-directive-d oesnt-work-for-packages
140 .. _issue 111: https://bitbucket.org/ned/coveragepy/issue/111/when-installing-co verage-with-pip-not
141 .. _issue 137: https://bitbucket.org/ned/coveragepy/issue/137/provide-docs-with- source-distribution
142 .. _issue 139: https://bitbucket.org/ned/coveragepy/issue/139/easy-check-for-a-c ertain-coverage-in-tests
143 .. _issue 143: https://bitbucket.org/ned/coveragepy/issue/143/omit-doesnt-seem-t o-work-in-coverage
144 .. _issue 153: https://bitbucket.org/ned/coveragepy/issue/153/non-existent-filen ame-triggers
145 .. _issue 156: https://bitbucket.org/ned/coveragepy/issue/156/a-completely-unexe cuted-file-shows-14
146 .. _issue 163: https://bitbucket.org/ned/coveragepy/issue/163/problem-with-inclu de-and-omit-filename
147 .. _issue 171: https://bitbucket.org/ned/coveragepy/issue/171/how-to-contribute- and-run-tests
148 .. _issue 193: https://bitbucket.org/ned/coveragepy/issue/193/unicodedecodeerror -on-htmlpy
149 .. _issue 201: https://bitbucket.org/ned/coveragepy/issue/201/coverage-using-dja ngo-14-with-pydb-on
150 .. _issue 202: https://bitbucket.org/ned/coveragepy/issue/202/get-rid-of-ez_setu ppy-and
151 .. _issue 203: https://bitbucket.org/ned/coveragepy/issue/203/duplicate-filename s-reported-when-filename
152 .. _issue 205: https://bitbucket.org/ned/coveragepy/issue/205/make-pydoc-coverag e-more-friendly
153 .. _issue 206: https://bitbucket.org/ned/coveragepy/issue/206/pydoc-coveragecove rage-fails-with-an-error
154 .. _issue 210: https://bitbucket.org/ned/coveragepy/issue/210/if-theres-no-cover age-data-coverage-xml
155 .. _issue 214: https://bitbucket.org/ned/coveragepy/issue/214/coveragepy-measure s-itself-on-precise
156
157
158 Version 3.5.3 --- 29 September 2012
159 -----------------------------------
160
161 - Line numbers in the HTML report line up better with the source lines, fixing
162 `issue 197`_, thanks Marius Gedminas.
163
164 - When specifying a directory as the source= option, the directory itself no
165 longer needs to have a ``__init__.py`` file, though its subdirectories do, to
166 be considered as source files.
167
168 - Files encoded as UTF-8 with a BOM are now properly handled, fixing
169 `issue 179`_. Thanks, Pablo Carballo.
170
171 - Fixed more cases of non-Python files being reported as Python source, and
172 then not being able to parse them as Python. Closes `issue 82`_ (again).
173 Thanks, Julian Berman.
174
175 - Fixed memory leaks under Python 3, thanks, Brett Cannon. Closes `issue 147`_.
176
177 - Optimized .pyo files may not have been handled correctly, `issue 195`_.
178 Thanks, Marius Gedminas.
179
180 - Certain unusually named file paths could have been mangled during reporting,
181 `issue 194`_. Thanks, Marius Gedminas.
182
183 - Try to do a better job of the impossible task of detecting when we can't
184 build the C extension, fixing `issue 183`_.
185
186 - Testing is now done with `tox`_, thanks, Marc Abramowitz.
187
188 .. _issue 82: https://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-gene rating-html-report
189 .. _issue 147: https://bitbucket.org/ned/coveragepy/issue/147/massive-memory-usa ge-by-ctracer
190 .. _issue 179: https://bitbucket.org/ned/coveragepy/issue/179/htmlreporter-fails -when-source-file-is
191 .. _issue 183: https://bitbucket.org/ned/coveragepy/issue/183/install-fails-for- python-23
192 .. _issue 194: https://bitbucket.org/ned/coveragepy/issue/194/filelocatorrelativ e_filename-could-mangle
193 .. _issue 195: https://bitbucket.org/ned/coveragepy/issue/195/pyo-file-handling- in-codeunit
194 .. _issue 197: https://bitbucket.org/ned/coveragepy/issue/197/line-numbers-in-ht ml-report-do-not-align
195 .. _tox: http://tox.readthedocs.org/
196
197
198
199 Version 3.5.2 --- 4 May 2012
200 ----------------------------
201
202 No changes since 3.5.2.b1
203
204
205 Version 3.5.2b1 --- 29 April 2012
206 ---------------------------------
207
208 - The HTML report has slightly tweaked controls: the buttons at the top of
209 the page are color-coded to the source lines they affect.
210
211 - Custom CSS can be applied to the HTML report by specifying a CSS file as
212 the extra_css configuration value in the [html] section.
213
214 - Source files with custom encodings declared in a comment at the top are now
215 properly handled during reporting on Python 2. Python 3 always handled them
216 properly. This fixes `issue 157`_.
217
218 - Backup files left behind by editors are no longer collected by the source=
219 option, fixing `issue 168`_.
220
221 - If a file doesn't parse properly as Python, we don't report it as an error
222 if the filename seems like maybe it wasn't meant to be Python. This is a
223 pragmatic fix for `issue 82`_.
224
225 - The ``-m`` switch on ``coverage report``, which includes missing line numbers
226 in the summary report, can now be specifed as ``show_missing`` in the
227 config file. Closes `issue 173`_.
228
229 - When running a module with ``coverage run -m <modulename>``, certain details
230 of the execution environment weren't the same as for
231 ``python -m <modulename>``. This had the unfortunate side-effect of making
232 ``coverage run -m unittest discover`` not work if you had tests in a
233 directory named "test". This fixes `issue 155`_.
234
235 - Now the exit status of your product code is properly used as the process
236 status when running ``python -m coverage run ...``. Thanks, JT Olds.
237
238 - When installing into pypy, we no longer attempt (and fail) to compile
239 the C tracer function, closing `issue 166`_.
240
241 .. _issue 82: https://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-gene rating-html-report
242 .. _issue 155: https://bitbucket.org/ned/coveragepy/issue/155/cant-use-coverage- run-m-unittest-discover
243 .. _issue 157: https://bitbucket.org/ned/coveragepy/issue/157/chokes-on-source-f iles-with-non-utf-8
244 .. _issue 166: https://bitbucket.org/ned/coveragepy/issue/166/dont-try-to-compil e-c-extension-on-pypy
245 .. _issue 168: https://bitbucket.org/ned/coveragepy/issue/168/dont-be-alarmed-by -emacs-droppings
246 .. _issue 173: https://bitbucket.org/ned/coveragepy/issue/173/theres-no-way-to-s pecify-show-missing-in
247
248
249 Version 3.5.1 --- 23 September 2011
250 -----------------------------------
251
252 - The ``[paths]`` feature unfortunately didn't work in real world situations
253 where you wanted to, you know, report on the combined data. Now all paths
254 stored in the combined file are canonicalized properly.
255
256
257 Version 3.5.1b1 --- 28 August 2011
258 ----------------------------------
259
260 - When combining data files from parallel runs, you can now instruct coverage
261 about which directories are equivalent on different machines. A ``[paths]``
262 section in the configuration file lists paths that are to be considered
263 equivalent. Finishes `issue 17`_.
264
265 - for-else constructs are understood better, and don't cause erroneous partial
266 branch warnings. Fixes `issue 122`_.
267
268 - Branch coverage for ``with`` statements is improved, fixing `issue 128`_.
269
270 - The number of partial branches reported on the HTML summary page was
271 different than the number reported on the individual file pages. This is
272 now fixed.
273
274 - An explicit include directive to measure files in the Python installation
275 wouldn't work because of the standard library exclusion. Now the include
276 directive takes precendence, and the files will be measured. Fixes
277 `issue 138`_.
278
279 - The HTML report now handles Unicode characters in Python source files
280 properly. This fixes `issue 124`_ and `issue 144`_. Thanks, Devin
281 Jeanpierre.
282
283 - In order to help the core developers measure the test coverage of the
284 standard library, Brandon Rhodes devised an aggressive hack to trick Python
285 into running some coverage code before anything else in the process.
286 See the coverage/fullcoverage directory if you are interested.
287
288 .. _issue 17: http://bitbucket.org/ned/coveragepy/issue/17/support-combining-cov erage-data-from
289 .. _issue 122: http://bitbucket.org/ned/coveragepy/issue/122/for-else-always-rep orts-missing-branch
290 .. _issue 124: http://bitbucket.org/ned/coveragepy/issue/124/no-arbitrary-unicod e-in-html-reports-in
291 .. _issue 128: http://bitbucket.org/ned/coveragepy/issue/128/branch-coverage-of- with-statement-in-27
292 .. _issue 138: http://bitbucket.org/ned/coveragepy/issue/138/include-should-take -precedence-over-is
293 .. _issue 144: http://bitbucket.org/ned/coveragepy/issue/144/failure-generating- html-output-for
294
295
296 Version 3.5 --- 29 June 2011
297 ----------------------------
298
299 - The HTML report hotkeys now behave slightly differently when the current
300 chunk isn't visible at all: a chunk on the screen will be selected,
301 instead of the old behavior of jumping to the literal next chunk.
302 The hotkeys now work in Google Chrome. Thanks, Guido van Rossum.
303
304
305 Version 3.5b1 --- 5 June 2011
306 -----------------------------
307
308 - The HTML report now has hotkeys. Try ``n``, ``s``, ``m``, ``x``, ``b``,
309 ``p``, and ``c`` on the overview page to change the column sorting.
310 On a file page, ``r``, ``m``, ``x``, and ``p`` toggle the run, missing,
311 excluded, and partial line markings. You can navigate the highlighted
312 sections of code by using the ``j`` and ``k`` keys for next and previous.
313 The ``1`` (one) key jumps to the first highlighted section in the file,
314 and ``0`` (zero) scrolls to the top of the file.
315
316 - The ``--omit`` and ``--include`` switches now interpret their values more
317 usefully. If the value starts with a wildcard character, it is used as-is.
318 If it does not, it is interpreted relative to the current directory.
319 Closes `issue 121`_.
320
321 - Partial branch warnings can now be pragma'd away. The configuration option
322 ``partial_branches`` is a list of regular expressions. Lines matching any of
323 those expressions will never be marked as a partial branch. In addition,
324 there's a built-in list of regular expressions marking statements which should
325 never be marked as partial. This list includes ``while True:``, ``while 1:``,
326 ``if 1:``, and ``if 0:``.
327
328 - The ``coverage()`` constructor accepts single strings for the ``omit=`` and
329 ``include=`` arguments, adapting to a common error in programmatic use.
330
331 - Modules can now be run directly using ``coverage run -m modulename``, to
332 mirror Python's ``-m`` flag. Closes `issue 95`_, thanks, Brandon Rhodes.
333
334 - ``coverage run`` didn't emulate Python accurately in one small detail: the
335 current directory inserted into ``sys.path`` was relative rather than
336 absolute. This is now fixed.
337
338 - HTML reporting is now incremental: a record is kept of the data that
339 produced the HTML reports, and only files whose data has changed will
340 be generated. This should make most HTML reporting faster.
341
342 - Pathological code execution could disable the trace function behind our
343 backs, leading to incorrect code measurement. Now if this happens,
344 coverage.py will issue a warning, at least alerting you to the problem.
345 Closes `issue 93`_. Thanks to Marius Gedminas for the idea.
346
347 - The C-based trace function now behaves properly when saved and restored
348 with ``sys.gettrace()`` and ``sys.settrace()``. This fixes `issue 125`_
349 and `issue 123`_. Thanks, Devin Jeanpierre.
350
351 - Source files are now opened with Python 3.2's ``tokenize.open()`` where
352 possible, to get the best handling of Python source files with encodings.
353 Closes `issue 107`_, thanks, Brett Cannon.
354
355 - Syntax errors in supposed Python files can now be ignored during reporting
356 with the ``-i`` switch just like other source errors. Closes `issue 115`_.
357
358 - Installation from source now succeeds on machines without a C compiler,
359 closing `issue 80`_.
360
361 - Coverage.py can now be run directly from a working tree by specifying
362 the directory name to python: ``python coverage_py_working_dir run ...``.
363 Thanks, Brett Cannon.
364
365 - A little bit of Jython support: `coverage run` can now measure Jython
366 execution by adapting when $py.class files are traced. Thanks, Adi Roiban.
367 Jython still doesn't provide the Python libraries needed to make
368 coverage reporting work, unfortunately.
369
370 - Internally, files are now closed explicitly, fixing `issue 104`_. Thanks,
371 Brett Cannon.
372
373 .. _issue 80: https://bitbucket.org/ned/coveragepy/issue/80/is-there-a-duck-typi ng-way-to-know-we-cant
374 .. _issue 93: http://bitbucket.org/ned/coveragepy/issue/93/copying-a-mock-object -breaks-coverage
375 .. _issue 95: https://bitbucket.org/ned/coveragepy/issue/95/run-subcommand-shoul d-take-a-module-name
376 .. _issue 104: https://bitbucket.org/ned/coveragepy/issue/104/explicitly-close-f iles
377 .. _issue 107: https://bitbucket.org/ned/coveragepy/issue/107/codeparser-not-ope ning-source-files-with
378 .. _issue 115: https://bitbucket.org/ned/coveragepy/issue/115/fail-gracefully-wh en-reporting-on-file
379 .. _issue 121: https://bitbucket.org/ned/coveragepy/issue/121/filename-patterns- are-applied-stupidly
380 .. _issue 123: https://bitbucket.org/ned/coveragepy/issue/123/pyeval_settrace-us ed-in-way-that-breaks
381 .. _issue 125: https://bitbucket.org/ned/coveragepy/issue/125/coverage-removes-d ecoratortoolss-tracing
382
383
384 Version 3.4 --- 19 September 2010
385 ---------------------------------
386
387 - The XML report is now sorted by package name, fixing `issue 88`_.
388
389 - Programs that exited with ``sys.exit()`` with no argument weren't handled
390 properly, producing a coverage.py stack trace. That is now fixed.
391
392 .. _issue 88: http://bitbucket.org/ned/coveragepy/issue/88/xml-report-lists-pack ages-in-random-order
393
394
395 Version 3.4b2 --- 6 September 2010
396 ----------------------------------
397
398 - Completely unexecuted files can now be included in coverage results, reported
399 as 0% covered. This only happens if the --source option is specified, since
400 coverage.py needs guidance about where to look for source files.
401
402 - The XML report output now properly includes a percentage for branch coverage,
403 fixing `issue 65`_ and `issue 81`_.
404
405 - Coverage percentages are now displayed uniformly across reporting methods.
406 Previously, different reports could round percentages differently. Also,
407 percentages are only reported as 0% or 100% if they are truly 0 or 100, and
408 are rounded otherwise. Fixes `issue 41`_ and `issue 70`_.
409
410 - The precision of reported coverage percentages can be set with the
411 ``[report] precision`` config file setting. Completes `issue 16`_.
412
413 - Threads derived from ``threading.Thread`` with an overridden `run` method
414 would report no coverage for the `run` method. This is now fixed, closing
415 `issue 85`_.
416
417 .. _issue 16: http://bitbucket.org/ned/coveragepy/issue/16/allow-configuration-o f-accuracy-of-percentage-totals
418 .. _issue 41: http://bitbucket.org/ned/coveragepy/issue/41/report-says-100-when- it-isnt-quite-there
419 .. _issue 65: http://bitbucket.org/ned/coveragepy/issue/65/branch-option-not-rep orted-in-cobertura
420 .. _issue 70: http://bitbucket.org/ned/coveragepy/issue/70/text-report-and-html- report-disagree-on-coverage
421 .. _issue 81: http://bitbucket.org/ned/coveragepy/issue/81/xml-report-does-not-h ave-condition-coverage-attribute-for-lines-with-a
422 .. _issue 85: http://bitbucket.org/ned/coveragepy/issue/85/threadrun-isnt-measur ed
423
424
425 Version 3.4b1 --- 21 August 2010
426 --------------------------------
427
428 - BACKWARD INCOMPATIBILITY: the ``--omit`` and ``--include`` switches now take
429 file patterns rather than file prefixes, closing `issue 34`_ and `issue 36`_.
430
431 - BACKWARD INCOMPATIBILITY: the `omit_prefixes` argument is gone throughout
432 coverage.py, replaced with `omit`, a list of filename patterns suitable for
433 `fnmatch`. A parallel argument `include` controls what files are included.
434
435 - The run command now has a ``--source`` switch, a list of directories or
436 module names. If provided, coverage.py will only measure execution in those
437 source files.
438
439 - Various warnings are printed to stderr for problems encountered during data
440 measurement: if a ``--source`` module has no Python source to measure, or is
441 never encountered at all, or if no data is collected.
442
443 - The reporting commands (report, annotate, html, and xml) now have an
444 ``--include`` switch to restrict reporting to modules matching those file
445 patterns, similar to the existing ``--omit`` switch. Thanks, Zooko.
446
447 - The run command now supports ``--include`` and ``--omit`` to control what
448 modules it measures. This can speed execution and reduce the amount of data
449 during reporting. Thanks Zooko.
450
451 - Since coverage.py 3.1, using the Python trace function has been slower than
452 it needs to be. A cache of tracing decisions was broken, but has now been
453 fixed.
454
455 - Python 2.7 and 3.2 have introduced new opcodes that are now supported.
456
457 - Python files with no statements, for example, empty ``__init__.py`` files,
458 are now reported as having zero statements instead of one. Fixes `issue 1`_.
459
460 - Reports now have a column of missed line counts rather than executed line
461 counts, since developers should focus on reducing the missed lines to zero,
462 rather than increasing the executed lines to varying targets. Once
463 suggested, this seemed blindingly obvious.
464
465 - Line numbers in HTML source pages are clickable, linking directly to that
466 line, which is highlighted on arrival. Added a link back to the index page
467 at the bottom of each HTML page.
468
469 - Programs that call ``os.fork`` will properly collect data from both the child
470 and parent processes. Use ``coverage run -p`` to get two data files that can
471 be combined with ``coverage combine``. Fixes `issue 56`_.
472
473 - Coverage is now runnable as a module: ``python -m coverage``. Thanks,
474 Brett Cannon.
475
476 - When measuring code running in a virtualenv, most of the system library was
477 being measured when it shouldn't have been. This is now fixed.
478
479 - Doctest text files are no longer recorded in the coverage data, since they
480 can't be reported anyway. Fixes `issue 52`_ and `issue 61`_.
481
482 - Jinja HTML templates compile into Python code using the HTML filename,
483 which confused coverage.py. Now these files are no longer traced, fixing
484 `issue 82`_.
485
486 - Source files can have more than one dot in them (foo.test.py), and will be
487 treated properly while reporting. Fixes `issue 46`_.
488
489 - Source files with DOS line endings are now properly tokenized for syntax
490 coloring on non-DOS machines. Fixes `issue 53`_.
491
492 - Unusual code structure that confused exits from methods with exits from
493 classes is now properly analyzed. See `issue 62`_.
494
495 - Asking for an HTML report with no files now shows a nice error message rather
496 than a cryptic failure ('int' object is unsubscriptable). Fixes `issue 59`_.
497
498 .. _issue 1: http://bitbucket.org/ned/coveragepy/issue/1/empty-__init__py-files -are-reported-as-1-executable
499 .. _issue 34: http://bitbucket.org/ned/coveragepy/issue/34/enhanced-omit-globbin g-handling
500 .. _issue 36: http://bitbucket.org/ned/coveragepy/issue/36/provide-regex-style-o mit
501 .. _issue 46: http://bitbucket.org/ned/coveragepy/issue/46
502 .. _issue 53: http://bitbucket.org/ned/coveragepy/issue/53
503 .. _issue 52: http://bitbucket.org/ned/coveragepy/issue/52/doctesttestfile-confu ses-source-detection
504 .. _issue 56: http://bitbucket.org/ned/coveragepy/issue/56
505 .. _issue 61: http://bitbucket.org/ned/coveragepy/issue/61/annotate-i-doesnt-wor k
506 .. _issue 62: http://bitbucket.org/ned/coveragepy/issue/62
507 .. _issue 59: http://bitbucket.org/ned/coveragepy/issue/59/html-report-fails-wit h-int-object-is
508 .. _issue 82: http://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-gener ating-html-report
509
510
511 Version 3.3.1 --- 6 March 2010
512 ------------------------------
513
514 - Using `parallel=True` in .coveragerc file prevented reporting, but now does
515 not, fixing `issue 49`_.
516
517 - When running your code with "coverage run", if you call `sys.exit()`,
518 coverage.py will exit with that status code, fixing `issue 50`_.
519
520 .. _issue 49: http://bitbucket.org/ned/coveragepy/issue/49
521 .. _issue 50: http://bitbucket.org/ned/coveragepy/issue/50
522
523
524 Version 3.3 --- 24 February 2010
525 --------------------------------
526
527 - Settings are now read from a .coveragerc file. A specific file can be
528 specified on the command line with --rcfile=FILE. The name of the file can
529 be programmatically set with the `config_file` argument to the coverage()
530 constructor, or reading a config file can be disabled with
531 `config_file=False`.
532
533 - Fixed a problem with nested loops having their branch possibilities
534 mischaracterized: `issue 39`_.
535
536 - Added coverage.process_start to enable coverage measurement when Python
537 starts.
538
539 - Parallel data file names now have a random number appended to them in
540 addition to the machine name and process id.
541
542 - Parallel data files combined with "coverage combine" are deleted after
543 they're combined, to clean up unneeded files. Fixes `issue 40`_.
544
545 - Exceptions thrown from product code run with "coverage run" are now displayed
546 without internal coverage.py frames, so the output is the same as when the
547 code is run without coverage.py.
548
549 - The `data_suffix` argument to the coverage constructor is now appended with
550 an added dot rather than simply appended, so that .coveragerc files will not
551 be confused for data files.
552
553 - Python source files that don't end with a newline can now be executed, fixing
554 `issue 47`_.
555
556 - Added an AUTHORS.txt file.
557
558 .. _issue 39: http://bitbucket.org/ned/coveragepy/issue/39
559 .. _issue 40: http://bitbucket.org/ned/coveragepy/issue/40
560 .. _issue 47: http://bitbucket.org/ned/coveragepy/issue/47
561
562
563 Version 3.2 --- 5 December 2009
564 -------------------------------
565
566 - Added a ``--version`` option on the command line.
567
568
569 Version 3.2b4 --- 1 December 2009
570 ---------------------------------
571
572 - Branch coverage improvements:
573
574 - The XML report now includes branch information.
575
576 - Click-to-sort HTML report columns are now persisted in a cookie. Viewing
577 a report will sort it first the way you last had a coverage report sorted.
578 Thanks, `Chris Adams`_.
579
580 - On Python 3.x, setuptools has been replaced by `Distribute`_.
581
582 .. _Distribute: http://packages.python.org/distribute/
583
584
585 Version 3.2b3 --- 23 November 2009
586 ----------------------------------
587
588 - Fixed a memory leak in the C tracer that was introduced in 3.2b1.
589
590 - Branch coverage improvements:
591
592 - Branches to excluded code are ignored.
593
594 - The table of contents in the HTML report is now sortable: click the headers
595 on any column. Thanks, `Chris Adams`_.
596
597 .. _Chris Adams: http://improbable.org/chris/
598
599
600 Version 3.2b2 --- 19 November 2009
601 ----------------------------------
602
603 - Branch coverage improvements:
604
605 - Classes are no longer incorrectly marked as branches: `issue 32`_.
606
607 - "except" clauses with types are no longer incorrectly marked as branches:
608 `issue 35`_.
609
610 - Fixed some problems syntax coloring sources with line continuations and
611 source with tabs: `issue 30`_ and `issue 31`_.
612
613 - The --omit option now works much better than before, fixing `issue 14`_ and
614 `issue 33`_. Thanks, Danek Duvall.
615
616 .. _issue 14: http://bitbucket.org/ned/coveragepy/issue/14
617 .. _issue 30: http://bitbucket.org/ned/coveragepy/issue/30
618 .. _issue 31: http://bitbucket.org/ned/coveragepy/issue/31
619 .. _issue 32: http://bitbucket.org/ned/coveragepy/issue/32
620 .. _issue 33: http://bitbucket.org/ned/coveragepy/issue/33
621 .. _issue 35: http://bitbucket.org/ned/coveragepy/issue/35
622
623
624 Version 3.2b1 --- 10 November 2009
625 ----------------------------------
626
627 - Branch coverage!
628
629 - XML reporting has file paths that let Cobertura find the source code.
630
631 - The tracer code has changed, it's a few percent faster.
632
633 - Some exceptions reported by the command line interface have been cleaned up
634 so that tracebacks inside coverage.py aren't shown. Fixes `issue 23`_.
635
636 .. _issue 23: http://bitbucket.org/ned/coveragepy/issue/23
637
638
639 Version 3.1 --- 4 October 2009
640 ------------------------------
641
642 - Source code can now be read from eggs. Thanks, Ross Lawley. Fixes
643 `issue 25`_.
644
645 .. _issue 25: http://bitbucket.org/ned/coveragepy/issue/25
646
647
648 Version 3.1b1 --- 27 September 2009
649 -----------------------------------
650
651 - Python 3.1 is now supported.
652
653 - Coverage.py has a new command line syntax with sub-commands. This expands
654 the possibilities for adding features and options in the future. The old
655 syntax is still supported. Try "coverage help" to see the new commands.
656 Thanks to Ben Finney for early help.
657
658 - Added an experimental "coverage xml" command for producing coverage reports
659 in a Cobertura-compatible XML format. Thanks, Bill Hart.
660
661 - Added the --timid option to enable a simpler slower trace function that works
662 for DecoratorTools projects, including TurboGears. Fixed `issue 12`_ and
663 `issue 13`_.
664
665 - HTML reports show modules from other directories. Fixed `issue 11`_.
666
667 - HTML reports now display syntax-colored Python source.
668
669 - Programs that change directory will still write .coverage files in the
670 directory where execution started. Fixed `issue 24`_.
671
672 - Added a "coverage debug" command for getting diagnostic information about the
673 coverage.py installation.
674
675 .. _issue 11: http://bitbucket.org/ned/coveragepy/issue/11
676 .. _issue 12: http://bitbucket.org/ned/coveragepy/issue/12
677 .. _issue 13: http://bitbucket.org/ned/coveragepy/issue/13
678 .. _issue 24: http://bitbucket.org/ned/coveragepy/issue/24
679
680
681 Version 3.0.1 --- 7 July 2009
682 -----------------------------
683
684 - Removed the recursion limit in the tracer function. Previously, code that
685 ran more than 500 frames deep would crash. Fixed `issue 9`_.
686
687 - Fixed a bizarre problem involving pyexpat, whereby lines following XML parser
688 invocations could be overlooked. Fixed `issue 10`_.
689
690 - On Python 2.3, coverage.py could mis-measure code with exceptions being
691 raised. This is now fixed.
692
693 - The coverage.py code itself will now not be measured by coverage.py, and no
694 coverage modules will be mentioned in the nose --with-cover plug-in. Fixed
695 `issue 8`_.
696
697 - When running source files, coverage.py now opens them in universal newline
698 mode just like Python does. This lets it run Windows files on Mac, for
699 example.
700
701 .. _issue 9: http://bitbucket.org/ned/coveragepy/issue/9
702 .. _issue 10: http://bitbucket.org/ned/coveragepy/issue/10
703 .. _issue 8: http://bitbucket.org/ned/coveragepy/issue/8
704
705
706 Version 3.0 --- 13 June 2009
707 ----------------------------
708
709 - Fixed the way the Python library was ignored. Too much code was being
710 excluded the old way.
711
712 - Tabs are now properly converted in HTML reports. Previously indentation was
713 lost. Fixed `issue 6`_.
714
715 - Nested modules now get a proper flat_rootname. Thanks, Christian Heimes.
716
717 .. _issue 6: http://bitbucket.org/ned/coveragepy/issue/6
718
719
720 Version 3.0b3 --- 16 May 2009
721 -----------------------------
722
723 - Added parameters to coverage.__init__ for options that had been set on the
724 coverage object itself.
725
726 - Added clear_exclude() and get_exclude_list() methods for programmatic
727 manipulation of the exclude regexes.
728
729 - Added coverage.load() to read previously-saved data from the data file.
730
731 - Improved the finding of code files. For example, .pyc files that have been
732 installed after compiling are now located correctly. Thanks, Detlev
733 Offenbach.
734
735 - When using the object API (that is, constructing a coverage() object), data
736 is no longer saved automatically on process exit. You can re-enable it with
737 the auto_data=True parameter on the coverage() constructor. The module-level
738 interface still uses automatic saving.
739
740
741 Version 3.0b --- 30 April 2009
742 ------------------------------
743
744 HTML reporting, and continued refactoring.
745
746 - HTML reports and annotation of source files: use the new -b (browser) switch.
747 Thanks to George Song for code, inspiration and guidance.
748
749 - Code in the Python standard library is not measured by default. If you need
750 to measure standard library code, use the -L command-line switch during
751 execution, or the cover_pylib=True argument to the coverage() constructor.
752
753 - Source annotation into a directory (-a -d) behaves differently. The
754 annotated files are named with their hierarchy flattened so that same-named
755 files from different directories no longer collide. Also, only files in the
756 current tree are included.
757
758 - coverage.annotate_file is no longer available.
759
760 - Programs executed with -x now behave more as they should, for example,
761 __file__ has the correct value.
762
763 - .coverage data files have a new pickle-based format designed for better
764 extensibility.
765
766 - Removed the undocumented cache_file argument to coverage.usecache().
767
768
769 Version 3.0b1 --- 7 March 2009
770 ------------------------------
771
772 Major overhaul.
773
774 - Coverage is now a package rather than a module. Functionality has been split
775 into classes.
776
777 - The trace function is implemented in C for speed. Coverage runs are now
778 much faster. Thanks to David Christian for productive micro-sprints and
779 other encouragement.
780
781 - Executable lines are identified by reading the line number tables in the
782 compiled code, removing a great deal of complicated analysis code.
783
784 - Precisely which lines are considered executable has changed in some cases.
785 Therefore, your coverage stats may also change slightly.
786
787 - The singleton coverage object is only created if the module-level functions
788 are used. This maintains the old interface while allowing better
789 programmatic use of Coverage.
790
791 - The minimum supported Python version is 2.3.
792
793
794 Version 2.85 --- 14 September 2008
795 ----------------------------------
796
797 - Add support for finding source files in eggs. Don't check for
798 morf's being instances of ModuleType, instead use duck typing so that
799 pseudo-modules can participate. Thanks, Imri Goldberg.
800
801 - Use os.realpath as part of the fixing of file names so that symlinks won't
802 confuse things. Thanks, Patrick Mezard.
803
804
805 Version 2.80 --- 25 May 2008
806 ----------------------------
807
808 - Open files in rU mode to avoid line ending craziness. Thanks, Edward Loper.
809
810
811 Version 2.78 --- 30 September 2007
812 ----------------------------------
813
814 - Don't try to predict whether a file is Python source based on the extension.
815 Extension-less files are often Pythons scripts. Instead, simply parse the file
816 and catch the syntax errors. Hat tip to Ben Finney.
817
818
819 Version 2.77 --- 29 July 2007
820 -----------------------------
821
822 - Better packaging.
823
824
825 Version 2.76 --- 23 July 2007
826 -----------------------------
827
828 - Now Python 2.5 is *really* fully supported: the body of the new with
829 statement is counted as executable.
830
831
832 Version 2.75 --- 22 July 2007
833 -----------------------------
834
835 - Python 2.5 now fully supported. The method of dealing with multi-line
836 statements is now less sensitive to the exact line that Python reports during
837 execution. Pass statements are handled specially so that their disappearance
838 during execution won't throw off the measurement.
839
840
841 Version 2.7 --- 21 July 2007
842 ----------------------------
843
844 - "#pragma: nocover" is excluded by default.
845
846 - Properly ignore docstrings and other constant expressions that appear in the
847 middle of a function, a problem reported by Tim Leslie.
848
849 - coverage.erase() shouldn't clobber the exclude regex. Change how parallel
850 mode is invoked, and fix erase() so that it erases the cache when called
851 programmatically.
852
853 - In reports, ignore code executed from strings, since we can't do anything
854 useful with it anyway.
855
856 - Better file handling on Linux, thanks Guillaume Chazarain.
857
858 - Better shell support on Windows, thanks Noel O'Boyle.
859
860 - Python 2.2 support maintained, thanks Catherine Proulx.
861
862 - Minor changes to avoid lint warnings.
863
864
865 Version 2.6 --- 23 August 2006
866 ------------------------------
867
868 - Applied Joseph Tate's patch for function decorators.
869
870 - Applied Sigve Tjora and Mark van der Wal's fixes for argument handling.
871
872 - Applied Geoff Bache's parallel mode patch.
873
874 - Refactorings to improve testability. Fixes to command-line logic for parallel
875 mode and collect.
876
877
878 Version 2.5 --- 4 December 2005
879 -------------------------------
880
881 - Call threading.settrace so that all threads are measured. Thanks Martin
882 Fuzzey.
883
884 - Add a file argument to report so that reports can be captured to a different
885 destination.
886
887 - coverage.py can now measure itself.
888
889 - Adapted Greg Rogers' patch for using relative file names, and sorting and
890 omitting files to report on.
891
892
893 Version 2.2 --- 31 December 2004
894 --------------------------------
895
896 - Allow for keyword arguments in the module global functions. Thanks, Allen.
897
898
899 Version 2.1 --- 14 December 2004
900 --------------------------------
901
902 - Return 'analysis' to its original behavior and add 'analysis2'. Add a global
903 for 'annotate', and factor it, adding 'annotate_file'.
904
905
906 Version 2.0 --- 12 December 2004
907 --------------------------------
908
909 Significant code changes.
910
911 - Finding executable statements has been rewritten so that docstrings and
912 other quirks of Python execution aren't mistakenly identified as missing
913 lines.
914
915 - Lines can be excluded from consideration, even entire suites of lines.
916
917 - The file system cache of covered lines can be disabled programmatically.
918
919 - Modernized the code.
920
921
922 Earlier History
923 ---------------
924
925 2001-12-04 GDR Created.
926
927 2001-12-06 GDR Added command-line interface and source code annotation.
928
929 2001-12-09 GDR Moved design and interface to separate documents.
930
931 2001-12-10 GDR Open cache file as binary on Windows. Allow simultaneous -e and
932 -x, or -a and -r.
933
934 2001-12-12 GDR Added command-line help. Cache analysis so that it only needs to
935 be done once when you specify -a and -r.
936
937 2001-12-13 GDR Improved speed while recording. Portable between Python 1.5.2
938 and 2.1.1.
939
940 2002-01-03 GDR Module-level functions work correctly.
941
942 2002-01-07 GDR Update sys.path when running a file with the -x option, so that
943 it matches the value the program would get if it were run on its own.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698