1 ------------------------------ |
1 ------------------------------ |
2 Change history for Coverage.py |
2 Change history for Coverage.py |
3 ------------------------------ |
3 ------------------------------ |
4 |
4 |
5 |
5 3.7.1 -- 13 December 2013 |
6 Version 3.2, 5 December 2009 |
6 ------------------------- |
|
7 |
|
8 - Improved the speed of HTML report generation by about 20%. |
|
9 |
|
10 - Fixed the mechanism for finding OS-installed static files for the HTML report |
|
11 so that it will actually find OS-installed static files. |
|
12 |
|
13 |
|
14 3.7 --- 6 October 2013 |
|
15 ---------------------- |
|
16 |
|
17 - Added the ``--debug`` switch to ``coverage run``. It accepts a list of |
|
18 options indicating the type of internal activity to log to stderr. |
|
19 |
|
20 - Improved the branch coverage facility, fixing `issue 92`_ and `issue 175`_. |
|
21 |
|
22 - Running code with ``coverage run -m`` now behaves more like Python does, |
|
23 setting sys.path properly, which fixes `issue 207`_ and `issue 242`_. |
|
24 |
|
25 - Coverage can now run .pyc files directly, closing `issue 264`_. |
|
26 |
|
27 - Coverage properly supports .pyw files, fixing `issue 261`_. |
|
28 |
|
29 - Omitting files within a tree specified with the ``source`` option would |
|
30 cause them to be incorrectly marked as unexecuted, as described in |
|
31 `issue 218`_. This is now fixed. |
|
32 |
|
33 - When specifying paths to alias together during data combining, you can now |
|
34 specify relative paths, fixing `issue 267`_. |
|
35 |
|
36 - Most file paths can now be specified with username expansion (``~/src``, or |
|
37 ``~build/src``, for example), and with environment variable expansion |
|
38 (``build/$BUILDNUM/src``). |
|
39 |
|
40 - Trying to create an XML report with no files to report on, would cause a |
|
41 ZeroDivideError, but no longer does, fixing `issue 250`_. |
|
42 |
|
43 - When running a threaded program under the Python tracer, coverage no longer |
|
44 issues a spurious warning about the trace function changing: "Trace function |
|
45 changed, measurement is likely wrong: None." This fixes `issue 164`_. |
|
46 |
|
47 - Static files necessary for HTML reports are found in system-installed places, |
|
48 to ease OS-level packaging of coverage.py. Closes `issue 259`_. |
|
49 |
|
50 - Source files with encoding declarations, but a blank first line, were not |
|
51 decoded properly. Now they are. Thanks, Roger Hu. |
|
52 |
|
53 - The source kit now includes the ``__main__.py`` file in the root coverage |
|
54 directory, fixing `issue 255`_. |
|
55 |
|
56 .. _issue 92: https://bitbucket.org/ned/coveragepy/issue/92/finally-clauses-arent-treated-properly-in |
|
57 .. _issue 164: https://bitbucket.org/ned/coveragepy/issue/164/trace-function-changed-warning-when-using |
|
58 .. _issue 175: https://bitbucket.org/ned/coveragepy/issue/175/branch-coverage-gets-confused-in-certain |
|
59 .. _issue 207: https://bitbucket.org/ned/coveragepy/issue/207/run-m-cannot-find-module-or-package-in |
|
60 .. _issue 242: https://bitbucket.org/ned/coveragepy/issue/242/running-a-two-level-package-doesnt-work |
|
61 .. _issue 218: https://bitbucket.org/ned/coveragepy/issue/218/run-command-does-not-respect-the-omit-flag |
|
62 .. _issue 250: https://bitbucket.org/ned/coveragepy/issue/250/uncaught-zerodivisionerror-when-generating |
|
63 .. _issue 255: https://bitbucket.org/ned/coveragepy/issue/255/directory-level-__main__py-not-included-in |
|
64 .. _issue 259: https://bitbucket.org/ned/coveragepy/issue/259/allow-use-of-system-installed-third-party |
|
65 .. _issue 261: https://bitbucket.org/ned/coveragepy/issue/261/pyw-files-arent-reported-properly |
|
66 .. _issue 264: https://bitbucket.org/ned/coveragepy/issue/264/coverage-wont-run-pyc-files |
|
67 .. _issue 267: https://bitbucket.org/ned/coveragepy/issue/267/relative-path-aliases-dont-work |
|
68 |
|
69 |
|
70 Version 3.6 --- 5 January 2013 |
|
71 ------------------------------ |
|
72 |
|
73 - Added a page to the docs about troublesome situations, closing `issue 226`_, |
|
74 and added some info to the TODO file, closing `issue 227`_. |
|
75 |
|
76 .. _issue 226: https://bitbucket.org/ned/coveragepy/issue/226/make-readme-section-to-describe-when |
|
77 .. _issue 227: https://bitbucket.org/ned/coveragepy/issue/227/update-todo |
|
78 |
|
79 |
|
80 Version 3.6b3 --- 29 December 2012 |
|
81 ---------------------------------- |
|
82 |
|
83 - Beta 2 broke the nose plugin. It's fixed again, closing `issue 224`_. |
|
84 |
|
85 .. _issue 224: https://bitbucket.org/ned/coveragepy/issue/224/36b2-breaks-nosexcover |
|
86 |
|
87 |
|
88 Version 3.6b2 --- 23 December 2012 |
|
89 ---------------------------------- |
|
90 |
|
91 - Coverage.py runs on Python 2.3 and 2.4 again. It was broken in 3.6b1. |
|
92 |
|
93 - The C extension is optionally compiled using a different more widely-used |
|
94 technique, taking another stab at fixing `issue 80`_ once and for all. |
|
95 |
|
96 - Combining data files would create entries for phantom files if used with |
|
97 ``source`` and path aliases. It no longer does. |
|
98 |
|
99 - ``debug sys`` now shows the configuration file path that was read. |
|
100 |
|
101 - If an oddly-behaved package claims that code came from an empty-string |
|
102 filename, coverage.py no longer associates it with the directory name, |
|
103 fixing `issue 221`_. |
|
104 |
|
105 .. _issue 80: https://bitbucket.org/ned/coveragepy/issue/80/is-there-a-duck-typing-way-to-know-we-cant |
|
106 .. _issue 221: https://bitbucket.org/ned/coveragepy/issue/221/coveragepy-incompatible-with-pyratemp |
|
107 |
|
108 |
|
109 Version 3.6b1 --- 28 November 2012 |
|
110 ---------------------------------- |
|
111 |
|
112 - Wildcards in ``include=`` and ``omit=`` arguments were not handled properly |
|
113 in reporting functions, though they were when running. Now they are handled |
|
114 uniformly, closing `issue 143`_ and `issue 163`_. **NOTE**: it is possible |
|
115 that your configurations may now be incorrect. If you use ``include`` or |
|
116 ``omit`` during reporting, whether on the command line, through the API, or |
|
117 in a configuration file, please check carefully that you were not relying on |
|
118 the old broken behavior. |
|
119 |
|
120 - The **report**, **html**, and **xml** commands now accept a ``--fail-under`` |
|
121 switch that indicates in the exit status whether the coverage percentage was |
|
122 less than a particular value. Closes `issue 139`_. |
|
123 |
|
124 - The reporting functions coverage.report(), coverage.html_report(), and |
|
125 coverage.xml_report() now all return a float, the total percentage covered |
|
126 measurement. |
|
127 |
|
128 - The HTML report's title can now be set in the configuration file, with the |
|
129 ``--title`` switch on the command line, or via the API. |
|
130 |
|
131 - Configuration files now support substitution of environment variables, using |
|
132 syntax like ``${WORD}``. Closes `issue 97`_. |
|
133 |
|
134 - Embarrassingly, the `[xml] output=` setting in the .coveragerc file simply |
|
135 didn't work. Now it does. |
|
136 |
|
137 - The XML report now consistently uses filenames for the filename attribute, |
|
138 rather than sometimes using module names. Fixes `issue 67`_. |
|
139 Thanks, Marcus Cobden. |
|
140 |
|
141 - Coverage percentage metrics are now computed slightly differently under |
|
142 branch coverage. This means that completely unexecuted files will now |
|
143 correctly have 0% coverage, fixing `issue 156`_. This also means that your |
|
144 total coverage numbers will generally now be lower if you are measuring |
|
145 branch coverage. |
|
146 |
|
147 - When installing, now in addition to creating a "coverage" command, two new |
|
148 aliases are also installed. A "coverage2" or "coverage3" command will be |
|
149 created, depending on whether you are installing in Python 2.x or 3.x. |
|
150 A "coverage-X.Y" command will also be created corresponding to your specific |
|
151 version of Python. Closes `issue 111`_. |
|
152 |
|
153 - The coverage.py installer no longer tries to bootstrap setuptools or |
|
154 Distribute. You must have one of them installed first, as `issue 202`_ |
|
155 recommended. |
|
156 |
|
157 - The coverage.py kit now includes docs (closing `issue 137`_) and tests. |
|
158 |
|
159 - On Windows, files are now reported in their correct case, fixing `issue 89`_ |
|
160 and `issue 203`_. |
|
161 |
|
162 - If a file is missing during reporting, the path shown in the error message |
|
163 is now correct, rather than an incorrect path in the current directory. |
|
164 Fixes `issue 60`_. |
|
165 |
|
166 - Running an HTML report in Python 3 in the same directory as an old Python 2 |
|
167 HTML report would fail with a UnicodeDecodeError. This issue (`issue 193`_) |
|
168 is now fixed. |
|
169 |
|
170 - Fixed yet another error trying to parse non-Python files as Python, this |
|
171 time an IndentationError, closing `issue 82`_ for the fourth time... |
|
172 |
|
173 - If `coverage xml` fails because there is no data to report, it used to |
|
174 create a zero-length XML file. Now it doesn't, fixing `issue 210`_. |
|
175 |
|
176 - Jython files now work with the ``--source`` option, fixing `issue 100`_. |
|
177 |
|
178 - Running coverage under a debugger is unlikely to work, but it shouldn't fail |
|
179 with "TypeError: 'NoneType' object is not iterable". Fixes `issue 201`_. |
|
180 |
|
181 - On some Linux distributions, when installed with the OS package manager, |
|
182 coverage.py would report its own code as part of the results. Now it won't, |
|
183 fixing `issue 214`_, though this will take some time to be repackaged by the |
|
184 operating systems. |
|
185 |
|
186 - Docstrings for the legacy singleton methods are more helpful. Thanks Marius |
|
187 Gedminas. Closes `issue 205`_. |
|
188 |
|
189 - The pydoc tool can now show docmentation for the class `coverage.coverage`. |
|
190 Closes `issue 206`_. |
|
191 |
|
192 - Added a page to the docs about contributing to coverage.py, closing |
|
193 `issue 171`_. |
|
194 |
|
195 - When coverage.py ended unsuccessfully, it may have reported odd errors like |
|
196 ``'NoneType' object has no attribute 'isabs'``. It no longer does, |
|
197 so kiss `issue 153`_ goodbye. |
|
198 |
|
199 .. _issue 60: https://bitbucket.org/ned/coveragepy/issue/60/incorrect-path-to-orphaned-pyc-files |
|
200 .. _issue 67: https://bitbucket.org/ned/coveragepy/issue/67/xml-report-filenames-may-be-generated |
|
201 .. _issue 82: https://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-generating-html-report |
|
202 .. _issue 89: https://bitbucket.org/ned/coveragepy/issue/89/on-windows-all-packages-are-reported-in |
|
203 .. _issue 97: https://bitbucket.org/ned/coveragepy/issue/97/allow-environment-variables-to-be |
|
204 .. _issue 100: https://bitbucket.org/ned/coveragepy/issue/100/source-directive-doesnt-work-for-packages |
|
205 .. _issue 111: https://bitbucket.org/ned/coveragepy/issue/111/when-installing-coverage-with-pip-not |
|
206 .. _issue 137: https://bitbucket.org/ned/coveragepy/issue/137/provide-docs-with-source-distribution |
|
207 .. _issue 139: https://bitbucket.org/ned/coveragepy/issue/139/easy-check-for-a-certain-coverage-in-tests |
|
208 .. _issue 143: https://bitbucket.org/ned/coveragepy/issue/143/omit-doesnt-seem-to-work-in-coverage |
|
209 .. _issue 153: https://bitbucket.org/ned/coveragepy/issue/153/non-existent-filename-triggers |
|
210 .. _issue 156: https://bitbucket.org/ned/coveragepy/issue/156/a-completely-unexecuted-file-shows-14 |
|
211 .. _issue 163: https://bitbucket.org/ned/coveragepy/issue/163/problem-with-include-and-omit-filename |
|
212 .. _issue 171: https://bitbucket.org/ned/coveragepy/issue/171/how-to-contribute-and-run-tests |
|
213 .. _issue 193: https://bitbucket.org/ned/coveragepy/issue/193/unicodedecodeerror-on-htmlpy |
|
214 .. _issue 201: https://bitbucket.org/ned/coveragepy/issue/201/coverage-using-django-14-with-pydb-on |
|
215 .. _issue 202: https://bitbucket.org/ned/coveragepy/issue/202/get-rid-of-ez_setuppy-and |
|
216 .. _issue 203: https://bitbucket.org/ned/coveragepy/issue/203/duplicate-filenames-reported-when-filename |
|
217 .. _issue 205: https://bitbucket.org/ned/coveragepy/issue/205/make-pydoc-coverage-more-friendly |
|
218 .. _issue 206: https://bitbucket.org/ned/coveragepy/issue/206/pydoc-coveragecoverage-fails-with-an-error |
|
219 .. _issue 210: https://bitbucket.org/ned/coveragepy/issue/210/if-theres-no-coverage-data-coverage-xml |
|
220 .. _issue 214: https://bitbucket.org/ned/coveragepy/issue/214/coveragepy-measures-itself-on-precise |
|
221 |
|
222 |
|
223 Version 3.5.3 --- 29 September 2012 |
|
224 ----------------------------------- |
|
225 |
|
226 - Line numbers in the HTML report line up better with the source lines, fixing |
|
227 `issue 197`_, thanks Marius Gedminas. |
|
228 |
|
229 - When specifying a directory as the source= option, the directory itself no |
|
230 longer needs to have a ``__init__.py`` file, though its subdirectories do, to |
|
231 be considered as source files. |
|
232 |
|
233 - Files encoded as UTF-8 with a BOM are now properly handled, fixing |
|
234 `issue 179`_. Thanks, Pablo Carballo. |
|
235 |
|
236 - Fixed more cases of non-Python files being reported as Python source, and |
|
237 then not being able to parse them as Python. Closes `issue 82`_ (again). |
|
238 Thanks, Julian Berman. |
|
239 |
|
240 - Fixed memory leaks under Python 3, thanks, Brett Cannon. Closes `issue 147`_. |
|
241 |
|
242 - Optimized .pyo files may not have been handled correctly, `issue 195`_. |
|
243 Thanks, Marius Gedminas. |
|
244 |
|
245 - Certain unusually named file paths could have been mangled during reporting, |
|
246 `issue 194`_. Thanks, Marius Gedminas. |
|
247 |
|
248 - Try to do a better job of the impossible task of detecting when we can't |
|
249 build the C extension, fixing `issue 183`_. |
|
250 |
|
251 - Testing is now done with `tox`_, thanks, Marc Abramowitz. |
|
252 |
|
253 .. _issue 82: https://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-generating-html-report |
|
254 .. _issue 147: https://bitbucket.org/ned/coveragepy/issue/147/massive-memory-usage-by-ctracer |
|
255 .. _issue 179: https://bitbucket.org/ned/coveragepy/issue/179/htmlreporter-fails-when-source-file-is |
|
256 .. _issue 183: https://bitbucket.org/ned/coveragepy/issue/183/install-fails-for-python-23 |
|
257 .. _issue 194: https://bitbucket.org/ned/coveragepy/issue/194/filelocatorrelative_filename-could-mangle |
|
258 .. _issue 195: https://bitbucket.org/ned/coveragepy/issue/195/pyo-file-handling-in-codeunit |
|
259 .. _issue 197: https://bitbucket.org/ned/coveragepy/issue/197/line-numbers-in-html-report-do-not-align |
|
260 .. _tox: http://tox.readthedocs.org/ |
|
261 |
|
262 |
|
263 |
|
264 Version 3.5.2 --- 4 May 2012 |
7 ---------------------------- |
265 ---------------------------- |
8 |
266 |
9 - Added a --version options on the command line. |
267 No changes since 3.5.2.b1 |
10 |
268 |
11 |
269 |
12 Version 3.2b4, 1 December 2009 |
270 Version 3.5.2b1 --- 29 April 2012 |
|
271 --------------------------------- |
|
272 |
|
273 - The HTML report has slightly tweaked controls: the buttons at the top of |
|
274 the page are color-coded to the source lines they affect. |
|
275 |
|
276 - Custom CSS can be applied to the HTML report by specifying a CSS file as |
|
277 the extra_css configuration value in the [html] section. |
|
278 |
|
279 - Source files with custom encodings declared in a comment at the top are now |
|
280 properly handled during reporting on Python 2. Python 3 always handled them |
|
281 properly. This fixes `issue 157`_. |
|
282 |
|
283 - Backup files left behind by editors are no longer collected by the source= |
|
284 option, fixing `issue 168`_. |
|
285 |
|
286 - If a file doesn't parse properly as Python, we don't report it as an error |
|
287 if the filename seems like maybe it wasn't meant to be Python. This is a |
|
288 pragmatic fix for `issue 82`_. |
|
289 |
|
290 - The ``-m`` switch on ``coverage report``, which includes missing line numbers |
|
291 in the summary report, can now be specifed as ``show_missing`` in the |
|
292 config file. Closes `issue 173`_. |
|
293 |
|
294 - When running a module with ``coverage run -m <modulename>``, certain details |
|
295 of the execution environment weren't the same as for |
|
296 ``python -m <modulename>``. This had the unfortunate side-effect of making |
|
297 ``coverage run -m unittest discover`` not work if you had tests in a |
|
298 directory named "test". This fixes `issue 155`_ and `issue 142`_. |
|
299 |
|
300 - Now the exit status of your product code is properly used as the process |
|
301 status when running ``python -m coverage run ...``. Thanks, JT Olds. |
|
302 |
|
303 - When installing into pypy, we no longer attempt (and fail) to compile |
|
304 the C tracer function, closing `issue 166`_. |
|
305 |
|
306 .. _issue 82: https://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-generating-html-report |
|
307 .. _issue 142: https://bitbucket.org/ned/coveragepy/issue/142/executing-python-file-syspath-is-replaced |
|
308 .. _issue 155: https://bitbucket.org/ned/coveragepy/issue/155/cant-use-coverage-run-m-unittest-discover |
|
309 .. _issue 157: https://bitbucket.org/ned/coveragepy/issue/157/chokes-on-source-files-with-non-utf-8 |
|
310 .. _issue 166: https://bitbucket.org/ned/coveragepy/issue/166/dont-try-to-compile-c-extension-on-pypy |
|
311 .. _issue 168: https://bitbucket.org/ned/coveragepy/issue/168/dont-be-alarmed-by-emacs-droppings |
|
312 .. _issue 173: https://bitbucket.org/ned/coveragepy/issue/173/theres-no-way-to-specify-show-missing-in |
|
313 |
|
314 |
|
315 Version 3.5.1 --- 23 September 2011 |
|
316 ----------------------------------- |
|
317 |
|
318 - The ``[paths]`` feature unfortunately didn't work in real world situations |
|
319 where you wanted to, you know, report on the combined data. Now all paths |
|
320 stored in the combined file are canonicalized properly. |
|
321 |
|
322 |
|
323 Version 3.5.1b1 --- 28 August 2011 |
|
324 ---------------------------------- |
|
325 |
|
326 - When combining data files from parallel runs, you can now instruct coverage |
|
327 about which directories are equivalent on different machines. A ``[paths]`` |
|
328 section in the configuration file lists paths that are to be considered |
|
329 equivalent. Finishes `issue 17`_. |
|
330 |
|
331 - for-else constructs are understood better, and don't cause erroneous partial |
|
332 branch warnings. Fixes `issue 122`_. |
|
333 |
|
334 - Branch coverage for ``with`` statements is improved, fixing `issue 128`_. |
|
335 |
|
336 - The number of partial branches reported on the HTML summary page was |
|
337 different than the number reported on the individual file pages. This is |
|
338 now fixed. |
|
339 |
|
340 - An explicit include directive to measure files in the Python installation |
|
341 wouldn't work because of the standard library exclusion. Now the include |
|
342 directive takes precendence, and the files will be measured. Fixes |
|
343 `issue 138`_. |
|
344 |
|
345 - The HTML report now handles Unicode characters in Python source files |
|
346 properly. This fixes `issue 124`_ and `issue 144`_. Thanks, Devin |
|
347 Jeanpierre. |
|
348 |
|
349 - In order to help the core developers measure the test coverage of the |
|
350 standard library, Brandon Rhodes devised an aggressive hack to trick Python |
|
351 into running some coverage code before anything else in the process. |
|
352 See the coverage/fullcoverage directory if you are interested. |
|
353 |
|
354 .. _issue 17: http://bitbucket.org/ned/coveragepy/issue/17/support-combining-coverage-data-from |
|
355 .. _issue 122: http://bitbucket.org/ned/coveragepy/issue/122/for-else-always-reports-missing-branch |
|
356 .. _issue 124: http://bitbucket.org/ned/coveragepy/issue/124/no-arbitrary-unicode-in-html-reports-in |
|
357 .. _issue 128: http://bitbucket.org/ned/coveragepy/issue/128/branch-coverage-of-with-statement-in-27 |
|
358 .. _issue 138: http://bitbucket.org/ned/coveragepy/issue/138/include-should-take-precedence-over-is |
|
359 .. _issue 144: http://bitbucket.org/ned/coveragepy/issue/144/failure-generating-html-output-for |
|
360 |
|
361 |
|
362 Version 3.5 --- 29 June 2011 |
|
363 ---------------------------- |
|
364 |
|
365 - The HTML report hotkeys now behave slightly differently when the current |
|
366 chunk isn't visible at all: a chunk on the screen will be selected, |
|
367 instead of the old behavior of jumping to the literal next chunk. |
|
368 The hotkeys now work in Google Chrome. Thanks, Guido van Rossum. |
|
369 |
|
370 |
|
371 Version 3.5b1 --- 5 June 2011 |
|
372 ----------------------------- |
|
373 |
|
374 - The HTML report now has hotkeys. Try ``n``, ``s``, ``m``, ``x``, ``b``, |
|
375 ``p``, and ``c`` on the overview page to change the column sorting. |
|
376 On a file page, ``r``, ``m``, ``x``, and ``p`` toggle the run, missing, |
|
377 excluded, and partial line markings. You can navigate the highlighted |
|
378 sections of code by using the ``j`` and ``k`` keys for next and previous. |
|
379 The ``1`` (one) key jumps to the first highlighted section in the file, |
|
380 and ``0`` (zero) scrolls to the top of the file. |
|
381 |
|
382 - The ``--omit`` and ``--include`` switches now interpret their values more |
|
383 usefully. If the value starts with a wildcard character, it is used as-is. |
|
384 If it does not, it is interpreted relative to the current directory. |
|
385 Closes `issue 121`_. |
|
386 |
|
387 - Partial branch warnings can now be pragma'd away. The configuration option |
|
388 ``partial_branches`` is a list of regular expressions. Lines matching any of |
|
389 those expressions will never be marked as a partial branch. In addition, |
|
390 there's a built-in list of regular expressions marking statements which should |
|
391 never be marked as partial. This list includes ``while True:``, ``while 1:``, |
|
392 ``if 1:``, and ``if 0:``. |
|
393 |
|
394 - The ``coverage()`` constructor accepts single strings for the ``omit=`` and |
|
395 ``include=`` arguments, adapting to a common error in programmatic use. |
|
396 |
|
397 - Modules can now be run directly using ``coverage run -m modulename``, to |
|
398 mirror Python's ``-m`` flag. Closes `issue 95`_, thanks, Brandon Rhodes. |
|
399 |
|
400 - ``coverage run`` didn't emulate Python accurately in one small detail: the |
|
401 current directory inserted into ``sys.path`` was relative rather than |
|
402 absolute. This is now fixed. |
|
403 |
|
404 - HTML reporting is now incremental: a record is kept of the data that |
|
405 produced the HTML reports, and only files whose data has changed will |
|
406 be generated. This should make most HTML reporting faster. |
|
407 |
|
408 - Pathological code execution could disable the trace function behind our |
|
409 backs, leading to incorrect code measurement. Now if this happens, |
|
410 coverage.py will issue a warning, at least alerting you to the problem. |
|
411 Closes `issue 93`_. Thanks to Marius Gedminas for the idea. |
|
412 |
|
413 - The C-based trace function now behaves properly when saved and restored |
|
414 with ``sys.gettrace()`` and ``sys.settrace()``. This fixes `issue 125`_ |
|
415 and `issue 123`_. Thanks, Devin Jeanpierre. |
|
416 |
|
417 - Source files are now opened with Python 3.2's ``tokenize.open()`` where |
|
418 possible, to get the best handling of Python source files with encodings. |
|
419 Closes `issue 107`_, thanks, Brett Cannon. |
|
420 |
|
421 - Syntax errors in supposed Python files can now be ignored during reporting |
|
422 with the ``-i`` switch just like other source errors. Closes `issue 115`_. |
|
423 |
|
424 - Installation from source now succeeds on machines without a C compiler, |
|
425 closing `issue 80`_. |
|
426 |
|
427 - Coverage.py can now be run directly from a working tree by specifying |
|
428 the directory name to python: ``python coverage_py_working_dir run ...``. |
|
429 Thanks, Brett Cannon. |
|
430 |
|
431 - A little bit of Jython support: `coverage run` can now measure Jython |
|
432 execution by adapting when $py.class files are traced. Thanks, Adi Roiban. |
|
433 Jython still doesn't provide the Python libraries needed to make |
|
434 coverage reporting work, unfortunately. |
|
435 |
|
436 - Internally, files are now closed explicitly, fixing `issue 104`_. Thanks, |
|
437 Brett Cannon. |
|
438 |
|
439 .. _issue 80: https://bitbucket.org/ned/coveragepy/issue/80/is-there-a-duck-typing-way-to-know-we-cant |
|
440 .. _issue 93: http://bitbucket.org/ned/coveragepy/issue/93/copying-a-mock-object-breaks-coverage |
|
441 .. _issue 95: https://bitbucket.org/ned/coveragepy/issue/95/run-subcommand-should-take-a-module-name |
|
442 .. _issue 104: https://bitbucket.org/ned/coveragepy/issue/104/explicitly-close-files |
|
443 .. _issue 107: https://bitbucket.org/ned/coveragepy/issue/107/codeparser-not-opening-source-files-with |
|
444 .. _issue 115: https://bitbucket.org/ned/coveragepy/issue/115/fail-gracefully-when-reporting-on-file |
|
445 .. _issue 121: https://bitbucket.org/ned/coveragepy/issue/121/filename-patterns-are-applied-stupidly |
|
446 .. _issue 123: https://bitbucket.org/ned/coveragepy/issue/123/pyeval_settrace-used-in-way-that-breaks |
|
447 .. _issue 125: https://bitbucket.org/ned/coveragepy/issue/125/coverage-removes-decoratortoolss-tracing |
|
448 |
|
449 |
|
450 Version 3.4 --- 19 September 2010 |
|
451 --------------------------------- |
|
452 |
|
453 - The XML report is now sorted by package name, fixing `issue 88`_. |
|
454 |
|
455 - Programs that exited with ``sys.exit()`` with no argument weren't handled |
|
456 properly, producing a coverage.py stack trace. That is now fixed. |
|
457 |
|
458 .. _issue 88: http://bitbucket.org/ned/coveragepy/issue/88/xml-report-lists-packages-in-random-order |
|
459 |
|
460 |
|
461 Version 3.4b2 --- 6 September 2010 |
|
462 ---------------------------------- |
|
463 |
|
464 - Completely unexecuted files can now be included in coverage results, reported |
|
465 as 0% covered. This only happens if the --source option is specified, since |
|
466 coverage.py needs guidance about where to look for source files. |
|
467 |
|
468 - The XML report output now properly includes a percentage for branch coverage, |
|
469 fixing `issue 65`_ and `issue 81`_. |
|
470 |
|
471 - Coverage percentages are now displayed uniformly across reporting methods. |
|
472 Previously, different reports could round percentages differently. Also, |
|
473 percentages are only reported as 0% or 100% if they are truly 0 or 100, and |
|
474 are rounded otherwise. Fixes `issue 41`_ and `issue 70`_. |
|
475 |
|
476 - The precision of reported coverage percentages can be set with the |
|
477 ``[report] precision`` config file setting. Completes `issue 16`_. |
|
478 |
|
479 - Threads derived from ``threading.Thread`` with an overridden `run` method |
|
480 would report no coverage for the `run` method. This is now fixed, closing |
|
481 `issue 85`_. |
|
482 |
|
483 .. _issue 16: http://bitbucket.org/ned/coveragepy/issue/16/allow-configuration-of-accuracy-of-percentage-totals |
|
484 .. _issue 41: http://bitbucket.org/ned/coveragepy/issue/41/report-says-100-when-it-isnt-quite-there |
|
485 .. _issue 65: http://bitbucket.org/ned/coveragepy/issue/65/branch-option-not-reported-in-cobertura |
|
486 .. _issue 70: http://bitbucket.org/ned/coveragepy/issue/70/text-report-and-html-report-disagree-on-coverage |
|
487 .. _issue 81: http://bitbucket.org/ned/coveragepy/issue/81/xml-report-does-not-have-condition-coverage-attribute-for-lines-with-a |
|
488 .. _issue 85: http://bitbucket.org/ned/coveragepy/issue/85/threadrun-isnt-measured |
|
489 |
|
490 |
|
491 Version 3.4b1 --- 21 August 2010 |
|
492 -------------------------------- |
|
493 |
|
494 - BACKWARD INCOMPATIBILITY: the ``--omit`` and ``--include`` switches now take |
|
495 file patterns rather than file prefixes, closing `issue 34`_ and `issue 36`_. |
|
496 |
|
497 - BACKWARD INCOMPATIBILITY: the `omit_prefixes` argument is gone throughout |
|
498 coverage.py, replaced with `omit`, a list of filename patterns suitable for |
|
499 `fnmatch`. A parallel argument `include` controls what files are included. |
|
500 |
|
501 - The run command now has a ``--source`` switch, a list of directories or |
|
502 module names. If provided, coverage.py will only measure execution in those |
|
503 source files. |
|
504 |
|
505 - Various warnings are printed to stderr for problems encountered during data |
|
506 measurement: if a ``--source`` module has no Python source to measure, or is |
|
507 never encountered at all, or if no data is collected. |
|
508 |
|
509 - The reporting commands (report, annotate, html, and xml) now have an |
|
510 ``--include`` switch to restrict reporting to modules matching those file |
|
511 patterns, similar to the existing ``--omit`` switch. Thanks, Zooko. |
|
512 |
|
513 - The run command now supports ``--include`` and ``--omit`` to control what |
|
514 modules it measures. This can speed execution and reduce the amount of data |
|
515 during reporting. Thanks Zooko. |
|
516 |
|
517 - Since coverage.py 3.1, using the Python trace function has been slower than |
|
518 it needs to be. A cache of tracing decisions was broken, but has now been |
|
519 fixed. |
|
520 |
|
521 - Python 2.7 and 3.2 have introduced new opcodes that are now supported. |
|
522 |
|
523 - Python files with no statements, for example, empty ``__init__.py`` files, |
|
524 are now reported as having zero statements instead of one. Fixes `issue 1`_. |
|
525 |
|
526 - Reports now have a column of missed line counts rather than executed line |
|
527 counts, since developers should focus on reducing the missed lines to zero, |
|
528 rather than increasing the executed lines to varying targets. Once |
|
529 suggested, this seemed blindingly obvious. |
|
530 |
|
531 - Line numbers in HTML source pages are clickable, linking directly to that |
|
532 line, which is highlighted on arrival. Added a link back to the index page |
|
533 at the bottom of each HTML page. |
|
534 |
|
535 - Programs that call ``os.fork`` will properly collect data from both the child |
|
536 and parent processes. Use ``coverage run -p`` to get two data files that can |
|
537 be combined with ``coverage combine``. Fixes `issue 56`_. |
|
538 |
|
539 - Coverage is now runnable as a module: ``python -m coverage``. Thanks, |
|
540 Brett Cannon. |
|
541 |
|
542 - When measuring code running in a virtualenv, most of the system library was |
|
543 being measured when it shouldn't have been. This is now fixed. |
|
544 |
|
545 - Doctest text files are no longer recorded in the coverage data, since they |
|
546 can't be reported anyway. Fixes `issue 52`_ and `issue 61`_. |
|
547 |
|
548 - Jinja HTML templates compile into Python code using the HTML filename, |
|
549 which confused coverage.py. Now these files are no longer traced, fixing |
|
550 `issue 82`_. |
|
551 |
|
552 - Source files can have more than one dot in them (foo.test.py), and will be |
|
553 treated properly while reporting. Fixes `issue 46`_. |
|
554 |
|
555 - Source files with DOS line endings are now properly tokenized for syntax |
|
556 coloring on non-DOS machines. Fixes `issue 53`_. |
|
557 |
|
558 - Unusual code structure that confused exits from methods with exits from |
|
559 classes is now properly analyzed. See `issue 62`_. |
|
560 |
|
561 - Asking for an HTML report with no files now shows a nice error message rather |
|
562 than a cryptic failure ('int' object is unsubscriptable). Fixes `issue 59`_. |
|
563 |
|
564 .. _issue 1: http://bitbucket.org/ned/coveragepy/issue/1/empty-__init__py-files-are-reported-as-1-executable |
|
565 .. _issue 34: http://bitbucket.org/ned/coveragepy/issue/34/enhanced-omit-globbing-handling |
|
566 .. _issue 36: http://bitbucket.org/ned/coveragepy/issue/36/provide-regex-style-omit |
|
567 .. _issue 46: http://bitbucket.org/ned/coveragepy/issue/46 |
|
568 .. _issue 53: http://bitbucket.org/ned/coveragepy/issue/53 |
|
569 .. _issue 52: http://bitbucket.org/ned/coveragepy/issue/52/doctesttestfile-confuses-source-detection |
|
570 .. _issue 56: http://bitbucket.org/ned/coveragepy/issue/56 |
|
571 .. _issue 61: http://bitbucket.org/ned/coveragepy/issue/61/annotate-i-doesnt-work |
|
572 .. _issue 62: http://bitbucket.org/ned/coveragepy/issue/62 |
|
573 .. _issue 59: http://bitbucket.org/ned/coveragepy/issue/59/html-report-fails-with-int-object-is |
|
574 .. _issue 82: http://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-generating-html-report |
|
575 |
|
576 |
|
577 Version 3.3.1 --- 6 March 2010 |
13 ------------------------------ |
578 ------------------------------ |
|
579 |
|
580 - Using `parallel=True` in .coveragerc file prevented reporting, but now does |
|
581 not, fixing `issue 49`_. |
|
582 |
|
583 - When running your code with "coverage run", if you call `sys.exit()`, |
|
584 coverage.py will exit with that status code, fixing `issue 50`_. |
|
585 |
|
586 .. _issue 49: http://bitbucket.org/ned/coveragepy/issue/49 |
|
587 .. _issue 50: http://bitbucket.org/ned/coveragepy/issue/50 |
|
588 |
|
589 |
|
590 Version 3.3 --- 24 February 2010 |
|
591 -------------------------------- |
|
592 |
|
593 - Settings are now read from a .coveragerc file. A specific file can be |
|
594 specified on the command line with --rcfile=FILE. The name of the file can |
|
595 be programmatically set with the `config_file` argument to the coverage() |
|
596 constructor, or reading a config file can be disabled with |
|
597 `config_file=False`. |
|
598 |
|
599 - Fixed a problem with nested loops having their branch possibilities |
|
600 mischaracterized: `issue 39`_. |
|
601 |
|
602 - Added coverage.process_start to enable coverage measurement when Python |
|
603 starts. |
|
604 |
|
605 - Parallel data file names now have a random number appended to them in |
|
606 addition to the machine name and process id. |
|
607 |
|
608 - Parallel data files combined with "coverage combine" are deleted after |
|
609 they're combined, to clean up unneeded files. Fixes `issue 40`_. |
|
610 |
|
611 - Exceptions thrown from product code run with "coverage run" are now displayed |
|
612 without internal coverage.py frames, so the output is the same as when the |
|
613 code is run without coverage.py. |
|
614 |
|
615 - The `data_suffix` argument to the coverage constructor is now appended with |
|
616 an added dot rather than simply appended, so that .coveragerc files will not |
|
617 be confused for data files. |
|
618 |
|
619 - Python source files that don't end with a newline can now be executed, fixing |
|
620 `issue 47`_. |
|
621 |
|
622 - Added an AUTHORS.txt file. |
|
623 |
|
624 .. _issue 39: http://bitbucket.org/ned/coveragepy/issue/39 |
|
625 .. _issue 40: http://bitbucket.org/ned/coveragepy/issue/40 |
|
626 .. _issue 47: http://bitbucket.org/ned/coveragepy/issue/47 |
|
627 |
|
628 |
|
629 Version 3.2 --- 5 December 2009 |
|
630 ------------------------------- |
|
631 |
|
632 - Added a ``--version`` option on the command line. |
|
633 |
|
634 |
|
635 Version 3.2b4 --- 1 December 2009 |
|
636 --------------------------------- |
14 |
637 |
15 - Branch coverage improvements: |
638 - Branch coverage improvements: |
16 |
639 |
17 - The XML report now includes branch information. |
640 - The XML report now includes branch information. |
18 |
641 |