OLD | NEW |
| (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. | |
OLD | NEW |