1 .. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 |
|
2 .. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt |
|
3 |
|
4 ============================== |
|
5 Change history for Coverage.py |
|
6 ============================== |
|
7 |
|
8 |
|
9 Version 4.1 --- 2016-05-21 |
|
10 -------------------------- |
|
11 |
|
12 - The internal attribute `Reporter.file_reporters` was removed in 4.1b3. It |
|
13 should have come has no surprise that there were third-party tools out there |
|
14 using that attribute. It has been restored, but with a deprecation warning. |
|
15 |
|
16 |
|
17 Version 4.1b3 --- 2016-05-10 |
|
18 ---------------------------- |
|
19 |
|
20 - When running your program, execution can jump from an ``except X:`` line to |
|
21 some other line when an exception other than ``X`` happens. This jump is no |
|
22 longer considered a branch when measuring branch coverage. |
|
23 |
|
24 - When measuring branch coverage, ``yield`` statements that were never resumed |
|
25 were incorrectly marked as missing, as reported in `issue 440`_. This is now |
|
26 fixed. |
|
27 |
|
28 - During branch coverage of single-line callables like lambdas and generator |
|
29 expressions, coverage.py can now distinguish between them never being called, |
|
30 or being called but not completed. Fixes `issue 90`_, `issue 460`_ and |
|
31 `issue 475`_. |
|
32 |
|
33 - The HTML report now has a map of the file along the rightmost edge of the |
|
34 page, giving an overview of where the missed lines are. Thanks, Dmitry |
|
35 Shishov. |
|
36 |
|
37 - The HTML report now uses different monospaced fonts, favoring Consolas over |
|
38 Courier. Along the way, `issue 472`_ about not properly handling one-space |
|
39 indents was fixed. The index page also has slightly different styling, to |
|
40 try to make the clickable detail pages more apparent. |
|
41 |
|
42 - Missing branches reported with ``coverage report -m`` will now say ``->exit`` |
|
43 for missed branches to the exit of a function, rather than a negative number. |
|
44 Fixes `issue 469`_. |
|
45 |
|
46 - ``coverage --help`` and ``coverage --version`` now mention which tracer is |
|
47 installed, to help diagnose problems. The docs mention which features need |
|
48 the C extension. (`issue 479`_) |
|
49 |
|
50 - Officially support PyPy 5.1, which required no changes, just updates to the |
|
51 docs. |
|
52 |
|
53 - The `Coverage.report` function had two parameters with non-None defaults, |
|
54 which have been changed. `show_missing` used to default to True, but now |
|
55 defaults to None. If you had been calling `Coverage.report` without |
|
56 specifying `show_missing`, you'll need to explicitly set it to True to keep |
|
57 the same behavior. `skip_covered` used to default to False. It is now None, |
|
58 which doesn't change the behavior. This fixes `issue 485`_. |
|
59 |
|
60 - It's never been possible to pass a namespace module to one of the analysis |
|
61 functions, but now at least we raise a more specific error message, rather |
|
62 than getting confused. (`issue 456`_) |
|
63 |
|
64 - The `coverage.process_startup` function now returns the `Coverage` instance |
|
65 it creates, as suggested in `issue 481`_. |
|
66 |
|
67 - Make a small tweak to how we compare threads, to avoid buggy custom |
|
68 comparison code in thread classes. (`issue 245`_) |
|
69 |
|
70 .. _issue 90: https://bitbucket.org/ned/coveragepy/issues/90/lambda-expression-confuses-branch |
|
71 .. _issue 245: https://bitbucket.org/ned/coveragepy/issues/245/change-solution-for-issue-164 |
|
72 .. _issue 440: https://bitbucket.org/ned/coveragepy/issues/440/yielded-twisted-failure-marked-as-missed |
|
73 .. _issue 456: https://bitbucket.org/ned/coveragepy/issues/456/coverage-breaks-with-implicit-namespaces |
|
74 .. _issue 460: https://bitbucket.org/ned/coveragepy/issues/460/confusing-html-report-for-certain-partial |
|
75 .. _issue 469: https://bitbucket.org/ned/coveragepy/issues/469/strange-1-line-number-in-branch-coverage |
|
76 .. _issue 472: https://bitbucket.org/ned/coveragepy/issues/472/html-report-indents-incorrectly-for-one |
|
77 .. _issue 475: https://bitbucket.org/ned/coveragepy/issues/475/generator-expression-is-marked-as-not |
|
78 .. _issue 479: https://bitbucket.org/ned/coveragepy/issues/479/clarify-the-need-for-the-c-extension |
|
79 .. _issue 481: https://bitbucket.org/ned/coveragepy/issues/481/asyncioprocesspoolexecutor-tracing-not |
|
80 .. _issue 485: https://bitbucket.org/ned/coveragepy/issues/485/coveragereport-ignores-show_missing-and |
|
81 |
|
82 |
|
83 Version 4.1b2 --- 2016-01-23 |
|
84 ---------------------------- |
|
85 |
|
86 - Problems with the new branch measurement in 4.1 beta 1 were fixed: |
|
87 |
|
88 - Class docstrings were considered executable. Now they no longer are. |
|
89 |
|
90 - ``yield from`` and ``await`` were considered returns from functions, since |
|
91 they could tranfer control to the caller. This produced unhelpful "missing |
|
92 branch" reports in a number of circumstances. Now they no longer are |
|
93 considered returns. |
|
94 |
|
95 - In unusual situations, a missing branch to a negative number was reported. |
|
96 This has been fixed, closing `issue 466`_. |
|
97 |
|
98 - The XML report now produces correct package names for modules found in |
|
99 directories specified with ``source=``. Fixes `issue 465`_. |
|
100 |
|
101 - ``coverage report`` won't produce trailing whitespace. |
|
102 |
|
103 .. _issue 465: https://bitbucket.org/ned/coveragepy/issues/465/coveragexml-produces-package-names-with-an |
|
104 .. _issue 466: https://bitbucket.org/ned/coveragepy/issues/466/impossible-missed-branch-to-a-negative |
|
105 |
|
106 |
|
107 Version 4.1b1 --- 2016-01-10 |
|
108 ---------------------------- |
|
109 |
|
110 - Branch analysis has been rewritten: it used to be based on bytecode, but now |
|
111 uses AST analysis. This has changed a number of things: |
|
112 |
|
113 - More code paths are now considered runnable, especially in |
|
114 ``try``/``except`` structures. This may mean that coverage.py will |
|
115 identify more code paths as uncovered. This could either raise or lower |
|
116 your overall coverage number. |
|
117 |
|
118 - Python 3.5's ``async`` and ``await`` keywords are properly supported, |
|
119 fixing `issue 434`_. |
|
120 |
|
121 - Some long-standing branch coverage bugs were fixed: |
|
122 |
|
123 - `issue 129`_: functions with only a docstring for a body would |
|
124 incorrectly report a missing branch on the ``def`` line. |
|
125 |
|
126 - `issue 212`_: code in an ``except`` block could be incorrectly marked as |
|
127 a missing branch. |
|
128 |
|
129 - `issue 146`_: context managers (``with`` statements) in a loop or ``try`` |
|
130 block could confuse the branch measurement, reporting incorrect partial |
|
131 branches. |
|
132 |
|
133 - `issue 422`_: in Python 3.5, an actual partial branch could be marked as |
|
134 complete. |
|
135 |
|
136 - Pragmas to disable coverage measurement can now be used on decorator lines, |
|
137 and they will apply to the entire function or class being decorated. This |
|
138 implements the feature requested in `issue 131`_. |
|
139 |
|
140 - Multiprocessing support is now available on Windows. Thanks, Rodrigue |
|
141 Cloutier. |
|
142 |
|
143 - Files with two encoding declarations are properly supported, fixing |
|
144 `issue 453`_. Thanks, Max Linke. |
|
145 |
|
146 - Non-ascii characters in regexes in the configuration file worked in 3.7, but |
|
147 stopped working in 4.0. Now they work again, closing `issue 455`_. |
|
148 |
|
149 - Form-feed characters would prevent accurate determination of the beginning of |
|
150 statements in the rest of the file. This is now fixed, closing `issue 461`_. |
|
151 |
|
152 .. _issue 129: https://bitbucket.org/ned/coveragepy/issues/129/misleading-branch-coverage-of-empty |
|
153 .. _issue 131: https://bitbucket.org/ned/coveragepy/issues/131/pragma-on-a-decorator-line-should-affect |
|
154 .. _issue 146: https://bitbucket.org/ned/coveragepy/issues/146/context-managers-confuse-branch-coverage |
|
155 .. _issue 212: https://bitbucket.org/ned/coveragepy/issues/212/coverage-erroneously-reports-partial |
|
156 .. _issue 422: https://bitbucket.org/ned/coveragepy/issues/422/python35-partial-branch-marked-as-fully |
|
157 .. _issue 434: https://bitbucket.org/ned/coveragepy/issues/434/indexerror-in-python-35 |
|
158 .. _issue 453: https://bitbucket.org/ned/coveragepy/issues/453/source-code-encoding-can-only-be-specified |
|
159 .. _issue 455: https://bitbucket.org/ned/coveragepy/issues/455/unusual-exclusions-stopped-working-in |
|
160 .. _issue 461: https://bitbucket.org/ned/coveragepy/issues/461/multiline-asserts-need-too-many-pragma |
|
161 |
|
162 |
|
163 Version 4.0.3 --- 2015-11-24 |
|
164 ---------------------------- |
|
165 |
|
166 - Fixed a mysterious problem that manifested in different ways: sometimes |
|
167 hanging the process (`issue 420`_), sometimes making database connections |
|
168 fail (`issue 445`_). |
|
169 |
|
170 - The XML report now has correct ``<source>`` elements when using a |
|
171 ``--source=`` option somewhere besides the current directory. This fixes |
|
172 `issue 439`_. Thanks, Arcady Ivanov. |
|
173 |
|
174 - Fixed an unusual edge case of detecting source encodings, described in |
|
175 `issue 443`_. |
|
176 |
|
177 - Help messages that mention the command to use now properly use the actual |
|
178 command name, which might be different than "coverage". Thanks to Ben |
|
179 Finney, this closes `issue 438`_. |
|
180 |
|
181 .. _issue 420: https://bitbucket.org/ned/coveragepy/issues/420/coverage-40-hangs-indefinitely-on-python27 |
|
182 .. _issue 438: https://bitbucket.org/ned/coveragepy/issues/438/parameterise-coverage-command-name |
|
183 .. _issue 439: https://bitbucket.org/ned/coveragepy/issues/439/incorrect-cobertura-file-sources-generated |
|
184 .. _issue 443: https://bitbucket.org/ned/coveragepy/issues/443/coverage-gets-confused-when-encoding |
|
185 .. _issue 445: https://bitbucket.org/ned/coveragepy/issues/445/django-app-cannot-connect-to-cassandra |
|
186 |
|
187 |
|
188 Version 4.0.2 --- 2015-11-04 |
|
189 ---------------------------- |
|
190 |
|
191 - More work on supporting unusually encoded source. Fixed `issue 431`_. |
|
192 |
|
193 - Files or directories with non-ASCII characters are now handled properly, |
|
194 fixing `issue 432`_. |
|
195 |
|
196 - Setting a trace function with sys.settrace was broken by a change in 4.0.1, |
|
197 as reported in `issue 436`_. This is now fixed. |
|
198 |
|
199 - Officially support PyPy 4.0, which required no changes, just updates to the |
|
200 docs. |
|
201 |
|
202 .. _issue 431: https://bitbucket.org/ned/coveragepy/issues/431/couldnt-parse-python-file-with-cp1252 |
|
203 .. _issue 432: https://bitbucket.org/ned/coveragepy/issues/432/path-with-unicode-characters-various |
|
204 .. _issue 436: https://bitbucket.org/ned/coveragepy/issues/436/disabled-coverage-ctracer-may-rise-from |
|
205 |
|
206 |
|
207 Version 4.0.1 --- 2015-10-13 |
|
208 ---------------------------- |
|
209 |
|
210 - When combining data files, unreadable files will now generate a warning |
|
211 instead of failing the command. This is more in line with the older |
|
212 coverage.py v3.7.1 behavior, which silently ignored unreadable files. |
|
213 Prompted by `issue 418`_. |
|
214 |
|
215 - The --skip-covered option would skip reporting on 100% covered files, but |
|
216 also skipped them when calculating total coverage. This was wrong, it should |
|
217 only remove lines from the report, not change the final answer. This is now |
|
218 fixed, closing `issue 423`_. |
|
219 |
|
220 - In 4.0, the data file recorded a summary of the system on which it was run. |
|
221 Combined data files would keep all of those summaries. This could lead to |
|
222 enormous data files consisting of mostly repetitive useless information. That |
|
223 summary is now gone, fixing `issue 415`_. If you want summary information, |
|
224 get in touch, and we'll figure out a better way to do it. |
|
225 |
|
226 - Test suites that mocked os.path.exists would experience strange failures, due |
|
227 to coverage.py using their mock inadvertently. This is now fixed, closing |
|
228 `issue 416`_. |
|
229 |
|
230 - Importing a ``__init__`` module explicitly would lead to an error: |
|
231 ``AttributeError: 'module' object has no attribute '__path__'``, as reported |
|
232 in `issue 410`_. This is now fixed. |
|
233 |
|
234 - Code that uses ``sys.settrace(sys.gettrace())`` used to incur a more than 2x |
|
235 speed penalty. Now there's no penalty at all. Fixes `issue 397`_. |
|
236 |
|
237 - Pyexpat C code will no longer be recorded as a source file, fixing |
|
238 `issue 419`_. |
|
239 |
|
240 - The source kit now contains all of the files needed to have a complete source |
|
241 tree, re-fixing `issue 137`_ and closing `issue 281`_. |
|
242 |
|
243 .. _issue 281: https://bitbucket.org/ned/coveragepy/issues/281/supply-scripts-for-testing-in-the |
|
244 .. _issue 397: https://bitbucket.org/ned/coveragepy/issues/397/stopping-and-resuming-coverage-with |
|
245 .. _issue 410: https://bitbucket.org/ned/coveragepy/issues/410/attributeerror-module-object-has-no |
|
246 .. _issue 415: https://bitbucket.org/ned/coveragepy/issues/415/repeated-coveragedataupdates-cause |
|
247 .. _issue 416: https://bitbucket.org/ned/coveragepy/issues/416/mocking-ospathexists-causes-failures |
|
248 .. _issue 418: https://bitbucket.org/ned/coveragepy/issues/418/json-parse-error |
|
249 .. _issue 419: https://bitbucket.org/ned/coveragepy/issues/419/nosource-no-source-for-code-path-to-c |
|
250 .. _issue 423: https://bitbucket.org/ned/coveragepy/issues/423/skip_covered-changes-reported-total |
|
251 |
|
252 |
|
253 Version 4.0 --- 2015-09-20 |
|
254 -------------------------- |
|
255 |
|
256 No changes from 4.0b3 |
|
257 |
|
258 |
|
259 Version 4.0b3 --- 2015-09-07 |
|
260 ---------------------------- |
|
261 |
|
262 - Reporting on an unmeasured file would fail with a traceback. This is now |
|
263 fixed, closing `issue 403`_. |
|
264 |
|
265 - The Jenkins ShiningPanda plugin looks for an obsolete file name to find the |
|
266 HTML reports to publish, so it was failing under coverage.py 4.0. Now we |
|
267 create that file if we are running under Jenkins, to keep things working |
|
268 smoothly. `issue 404`_. |
|
269 |
|
270 - Kits used to include tests and docs, but didn't install them anywhere, or |
|
271 provide all of the supporting tools to make them useful. Kits no longer |
|
272 include tests and docs. If you were using them from the older packages, get |
|
273 in touch and help me understand how. |
|
274 |
|
275 .. _issue 403: https://bitbucket.org/ned/coveragepy/issues/403/hasherupdate-fails-with-typeerror-nonetype |
|
276 .. _issue 404: https://bitbucket.org/ned/coveragepy/issues/404/shiningpanda-jenkins-plugin-cant-find-html |
|
277 |
|
278 |
|
279 |
|
280 Version 4.0b2 --- 2015-08-22 |
|
281 ---------------------------- |
|
282 |
|
283 - 4.0b1 broke ``--append`` creating new data files. This is now fixed, closing |
|
284 `issue 392`_. |
|
285 |
|
286 - ``py.test --cov`` can write empty data, then touch files due to ``--source``, |
|
287 which made coverage.py mistakenly force the data file to record lines instead |
|
288 of arcs. This would lead to a "Can't combine line data with arc data" error |
|
289 message. This is now fixed, and changed some method names in the |
|
290 CoverageData interface. Fixes `issue 399`_. |
|
291 |
|
292 - `CoverageData.read_fileobj` and `CoverageData.write_fileobj` replace the |
|
293 `.read` and `.write` methods, and are now properly inverses of each other. |
|
294 |
|
295 - When using ``report --skip-covered``, a message will now be included in the |
|
296 report output indicating how many files were skipped, and if all files are |
|
297 skipped, coverage.py won't accidentally scold you for having no data to |
|
298 report. Thanks, Krystian Kichewko. |
|
299 |
|
300 - A new conversion utility has been added: ``python -m coverage.pickle2json`` |
|
301 will convert v3.x pickle data files to v4.x JSON data files. Thanks, |
|
302 Alexander Todorov. Closes `issue 395`_. |
|
303 |
|
304 - A new version identifier is available, `coverage.version_info`, a plain tuple |
|
305 of values similar to `sys.version_info`_. |
|
306 |
|
307 .. _issue 392: https://bitbucket.org/ned/coveragepy/issues/392/run-append-doesnt-create-coverage-file |
|
308 .. _issue 395: https://bitbucket.org/ned/coveragepy/issues/395/rfe-read-pickled-files-as-well-for |
|
309 .. _issue 399: https://bitbucket.org/ned/coveragepy/issues/399/coverageexception-cant-combine-line-data |
|
310 .. _sys.version_info: https://docs.python.org/3/library/sys.html#sys.version_info |
|
311 |
|
312 |
|
313 Version 4.0b1 --- 2015-08-02 |
|
314 ---------------------------- |
|
315 |
|
316 - Coverage.py is now licensed under the Apache 2.0 license. See NOTICE.txt for |
|
317 details. Closes `issue 313`_. |
|
318 |
|
319 - The data storage has been completely revamped. The data file is now |
|
320 JSON-based instead of a pickle, closing `issue 236`_. The `CoverageData` |
|
321 class is now a public supported documented API to the data file. |
|
322 |
|
323 - A new configuration option, ``[run] note``, lets you set a note that will be |
|
324 stored in the `runs` section of the data file. You can use this to annotate |
|
325 the data file with any information you like. |
|
326 |
|
327 - Unrecognized configuration options will now print an error message and stop |
|
328 coverage.py. This should help prevent configuration mistakes from passing |
|
329 silently. Finishes `issue 386`_. |
|
330 |
|
331 - In parallel mode, ``coverage erase`` will now delete all of the data files, |
|
332 fixing `issue 262`_. |
|
333 |
|
334 - Coverage.py now accepts a directory name for ``coverage run`` and will run a |
|
335 ``__main__.py`` found there, just like Python will. Fixes `issue 252`_. |
|
336 Thanks, Dmitry Trofimov. |
|
337 |
|
338 - The XML report now includes a ``missing-branches`` attribute. Thanks, Steve |
|
339 Peak. This is not a part of the Cobertura DTD, so the XML report no longer |
|
340 references the DTD. |
|
341 |
|
342 - Missing branches in the HTML report now have a bit more information in the |
|
343 right-hand annotations. Hopefully this will make their meaning clearer. |
|
344 |
|
345 - All the reporting functions now behave the same if no data had been |
|
346 collected, exiting with a status code of 1. Fixed ``fail_under`` to be |
|
347 applied even when the report is empty. Thanks, Ionel Cristian Mărieș. |
|
348 |
|
349 - Plugins are now initialized differently. Instead of looking for a class |
|
350 called ``Plugin``, coverage.py looks for a function called ``coverage_init``. |
|
351 |
|
352 - A file-tracing plugin can now ask to have built-in Python reporting by |
|
353 returning `"python"` from its `file_reporter()` method. |
|
354 |
|
355 - Code that was executed with `exec` would be mis-attributed to the file that |
|
356 called it. This is now fixed, closing `issue 380`_. |
|
357 |
|
358 - The ability to use item access on `Coverage.config` (introduced in 4.0a2) has |
|
359 been changed to a more explicit `Coverage.get_option` and |
|
360 `Coverage.set_option` API. |
|
361 |
|
362 - The ``Coverage.use_cache`` method is no longer supported. |
|
363 |
|
364 - The private method ``Coverage._harvest_data`` is now called |
|
365 ``Coverage.get_data``, and returns the ``CoverageData`` containing the |
|
366 collected data. |
|
367 |
|
368 - The project is consistently referred to as "coverage.py" throughout the code |
|
369 and the documentation, closing `issue 275`_. |
|
370 |
|
371 - Combining data files with an explicit configuration file was broken in 4.0a6, |
|
372 but now works again, closing `issue 385`_. |
|
373 |
|
374 - ``coverage combine`` now accepts files as well as directories. |
|
375 |
|
376 - The speed is back to 3.7.1 levels, after having slowed down due to plugin |
|
377 support, finishing up `issue 387`_. |
|
378 |
|
379 .. _issue 236: https://bitbucket.org/ned/coveragepy/issues/236/pickles-are-bad-and-you-should-feel-bad |
|
380 .. _issue 252: https://bitbucket.org/ned/coveragepy/issues/252/coverage-wont-run-a-program-with |
|
381 .. _issue 262: https://bitbucket.org/ned/coveragepy/issues/262/when-parallel-true-erase-should-erase-all |
|
382 .. _issue 275: https://bitbucket.org/ned/coveragepy/issues/275/refer-consistently-to-project-as-coverage |
|
383 .. _issue 313: https://bitbucket.org/ned/coveragepy/issues/313/add-license-file-containing-2-3-or-4 |
|
384 .. _issue 380: https://bitbucket.org/ned/coveragepy/issues/380/code-executed-by-exec-excluded-from |
|
385 .. _issue 385: https://bitbucket.org/ned/coveragepy/issues/385/coverage-combine-doesnt-work-with-rcfile |
|
386 .. _issue 386: https://bitbucket.org/ned/coveragepy/issues/386/error-on-unrecognised-configuration |
|
387 .. _issue 387: https://bitbucket.org/ned/coveragepy/issues/387/performance-degradation-from-371-to-40 |
|
388 |
|
389 .. 40 issues closed in 4.0 below here |
|
390 |
|
391 |
|
392 Version 4.0a6 --- 2015-06-21 |
|
393 ---------------------------- |
|
394 |
|
395 - Python 3.5b2 and PyPy 2.6.0 are supported. |
|
396 |
|
397 - The original module-level function interface to coverage.py is no longer |
|
398 supported. You must now create a ``coverage.Coverage`` object, and use |
|
399 methods on it. |
|
400 |
|
401 - The ``coverage combine`` command now accepts any number of directories as |
|
402 arguments, and will combine all the data files from those directories. This |
|
403 means you don't have to copy the files to one directory before combining. |
|
404 Thanks, Christine Lytwynec. Finishes `issue 354`_. |
|
405 |
|
406 - Branch coverage couldn't properly handle certain extremely long files. This |
|
407 is now fixed (`issue 359`_). |
|
408 |
|
409 - Branch coverage didn't understand yield statements properly. Mickie Betz |
|
410 persisted in pursuing this despite Ned's pessimism. Fixes `issue 308`_ and |
|
411 `issue 324`_. |
|
412 |
|
413 - The COVERAGE_DEBUG environment variable can be used to set the ``[run] debug`` |
|
414 configuration option to control what internal operations are logged. |
|
415 |
|
416 - HTML reports were truncated at formfeed characters. This is now fixed |
|
417 (`issue 360`_). It's always fun when the problem is due to a `bug in the |
|
418 Python standard library <http://bugs.python.org/issue19035>`_. |
|
419 |
|
420 - Files with incorrect encoding declaration comments are no longer ignored by |
|
421 the reporting commands, fixing `issue 351`_. |
|
422 |
|
423 - HTML reports now include a timestamp in the footer, closing `issue 299`_. |
|
424 Thanks, Conrad Ho. |
|
425 |
|
426 - HTML reports now begrudgingly use double-quotes rather than single quotes, |
|
427 because there are "software engineers" out there writing tools that read HTML |
|
428 and somehow have no idea that single quotes exist. Capitulates to the absurd |
|
429 `issue 361`_. Thanks, Jon Chappell. |
|
430 |
|
431 - The ``coverage annotate`` command now handles non-ASCII characters properly, |
|
432 closing `issue 363`_. Thanks, Leonardo Pistone. |
|
433 |
|
434 - Drive letters on Windows were not normalized correctly, now they are. Thanks, |
|
435 Ionel Cristian Mărieș. |
|
436 |
|
437 - Plugin support had some bugs fixed, closing `issue 374`_ and `issue 375`_. |
|
438 Thanks, Stefan Behnel. |
|
439 |
|
440 .. _issue 299: https://bitbucket.org/ned/coveragepy/issue/299/inserted-created-on-yyyy-mm-dd-hh-mm-in |
|
441 .. _issue 308: https://bitbucket.org/ned/coveragepy/issue/308/yield-lambda-branch-coverage |
|
442 .. _issue 324: https://bitbucket.org/ned/coveragepy/issue/324/yield-in-loop-confuses-branch-coverage |
|
443 .. _issue 351: https://bitbucket.org/ned/coveragepy/issue/351/files-with-incorrect-encoding-are-ignored |
|
444 .. _issue 354: https://bitbucket.org/ned/coveragepy/issue/354/coverage-combine-should-take-a-list-of |
|
445 .. _issue 359: https://bitbucket.org/ned/coveragepy/issue/359/xml-report-chunk-error |
|
446 .. _issue 360: https://bitbucket.org/ned/coveragepy/issue/360/html-reports-get-confused-by-l-in-the-code |
|
447 .. _issue 361: https://bitbucket.org/ned/coveragepy/issue/361/use-double-quotes-in-html-output-to |
|
448 .. _issue 363: https://bitbucket.org/ned/coveragepy/issue/363/annotate-command-hits-unicode-happy-fun |
|
449 .. _issue 374: https://bitbucket.org/ned/coveragepy/issue/374/c-tracer-lookups-fail-in |
|
450 .. _issue 375: https://bitbucket.org/ned/coveragepy/issue/375/ctracer_handle_return-reads-byte-code |
|
451 |
|
452 |
|
453 Version 4.0a5 --- 2015-02-16 |
|
454 ---------------------------- |
|
455 |
|
456 - Plugin support is now implemented in the C tracer instead of the Python |
|
457 tracer. This greatly improves the speed of tracing projects using plugins. |
|
458 |
|
459 - Coverage.py now always adds the current directory to sys.path, so that |
|
460 plugins can import files in the current directory (`issue 358`_). |
|
461 |
|
462 - If the `config_file` argument to the Coverage constructor is specified as |
|
463 ".coveragerc", it is treated as if it were True. This means setup.cfg is |
|
464 also examined, and a missing file is not considered an error (`issue 357`_). |
|
465 |
|
466 - Wildly experimental: support for measuring processes started by the |
|
467 multiprocessing module. To use, set ``--concurrency=multiprocessing``, |
|
468 either on the command line or in the .coveragerc file (`issue 117`_). Thanks, |
|
469 Eduardo Schettino. Currently, this does not work on Windows. |
|
470 |
|
471 - A new warning is possible, if a desired file isn't measured because it was |
|
472 imported before coverage.py was started (`issue 353`_). |
|
473 |
|
474 - The `coverage.process_startup` function now will start coverage measurement |
|
475 only once, no matter how many times it is called. This fixes problems due |
|
476 to unusual virtualenv configurations (`issue 340`_). |
|
477 |
|
478 - Added 3.5.0a1 to the list of supported CPython versions. |
|
479 |
|
480 .. _issue 117: https://bitbucket.org/ned/coveragepy/issue/117/enable-coverage-measurement-of-code-run-by |
|
481 .. _issue 340: https://bitbucket.org/ned/coveragepy/issue/340/keyerror-subpy |
|
482 .. _issue 353: https://bitbucket.org/ned/coveragepy/issue/353/40a3-introduces-an-unexpected-third-case |
|
483 .. _issue 357: https://bitbucket.org/ned/coveragepy/issue/357/behavior-changed-when-coveragerc-is |
|
484 .. _issue 358: https://bitbucket.org/ned/coveragepy/issue/358/all-coverage-commands-should-adjust |
|
485 |
|
486 |
|
487 Version 4.0a4 --- 2015-01-25 |
|
488 ---------------------------- |
|
489 |
|
490 - Plugins can now provide sys_info for debugging output. |
|
491 |
|
492 - Started plugins documentation. |
|
493 |
|
494 - Prepared to move the docs to readthedocs.org. |
|
495 |
|
496 |
|
497 Version 4.0a3 --- 2015-01-20 |
|
498 ---------------------------- |
|
499 |
|
500 - Reports now use file names with extensions. Previously, a report would |
|
501 describe a/b/c.py as "a/b/c". Now it is shown as "a/b/c.py". This allows |
|
502 for better support of non-Python files, and also fixed `issue 69`_. |
|
503 |
|
504 - The XML report now reports each directory as a package again. This was a bad |
|
505 regression, I apologize. This was reported in `issue 235`_, which is now |
|
506 fixed. |
|
507 |
|
508 - A new configuration option for the XML report: ``[xml] package_depth`` |
|
509 controls which directories are identified as packages in the report. |
|
510 Directories deeper than this depth are not reported as packages. |
|
511 The default is that all directories are reported as packages. |
|
512 Thanks, Lex Berezhny. |
|
513 |
|
514 - When looking for the source for a frame, check if the file exists. On |
|
515 Windows, .pyw files are no longer recorded as .py files. Along the way, this |
|
516 fixed `issue 290`_. |
|
517 |
|
518 - Empty files are now reported as 100% covered in the XML report, not 0% |
|
519 covered (`issue 345`_). |
|
520 |
|
521 - Regexes in the configuration file are now compiled as soon as they are read, |
|
522 to provide error messages earlier (`issue 349`_). |
|
523 |
|
524 .. _issue 69: https://bitbucket.org/ned/coveragepy/issue/69/coverage-html-overwrite-files-that-doesnt |
|
525 .. _issue 235: https://bitbucket.org/ned/coveragepy/issue/235/package-name-is-missing-in-xml-report |
|
526 .. _issue 290: https://bitbucket.org/ned/coveragepy/issue/290/running-programmatically-with-pyw-files |
|
527 .. _issue 345: https://bitbucket.org/ned/coveragepy/issue/345/xml-reports-line-rate-0-for-empty-files |
|
528 .. _issue 349: https://bitbucket.org/ned/coveragepy/issue/349/bad-regex-in-config-should-get-an-earlier |
|
529 |
|
530 |
|
531 Version 4.0a2 --- 2015-01-14 |
|
532 ---------------------------- |
|
533 |
|
534 - Officially support PyPy 2.4, and PyPy3 2.4. Drop support for |
|
535 CPython 3.2 and older versions of PyPy. The code won't work on CPython 3.2. |
|
536 It will probably still work on older versions of PyPy, but I'm not testing |
|
537 against them. |
|
538 |
|
539 - Plugins! |
|
540 |
|
541 - The original command line switches (`-x` to run a program, etc) are no |
|
542 longer supported. |
|
543 |
|
544 - A new option: `coverage report --skip-covered` will reduce the number of |
|
545 files reported by skipping files with 100% coverage. Thanks, Krystian |
|
546 Kichewko. This means that empty `__init__.py` files will be skipped, since |
|
547 they are 100% covered, closing `issue 315`_. |
|
548 |
|
549 - You can now specify the ``--fail-under`` option in the ``.coveragerc`` file |
|
550 as the ``[report] fail_under`` option. This closes `issue 314`_. |
|
551 |
|
552 - The ``COVERAGE_OPTIONS`` environment variable is no longer supported. It was |
|
553 a hack for ``--timid`` before configuration files were available. |
|
554 |
|
555 - The HTML report now has filtering. Type text into the Filter box on the |
|
556 index page, and only modules with that text in the name will be shown. |
|
557 Thanks, Danny Allen. |
|
558 |
|
559 - The textual report and the HTML report used to report partial branches |
|
560 differently for no good reason. Now the text report's "missing branches" |
|
561 column is a "partial branches" column so that both reports show the same |
|
562 numbers. This closes `issue 342`_. |
|
563 |
|
564 - If you specify a ``--rcfile`` that cannot be read, you will get an error |
|
565 message. Fixes `issue 343`_. |
|
566 |
|
567 - The ``--debug`` switch can now be used on any command. |
|
568 |
|
569 - You can now programmatically adjust the configuration of coverage.py by |
|
570 setting items on `Coverage.config` after construction. |
|
571 |
|
572 - A module run with ``-m`` can be used as the argument to ``--source``, fixing |
|
573 `issue 328`_. Thanks, Buck Evan. |
|
574 |
|
575 - The regex for matching exclusion pragmas has been fixed to allow more kinds |
|
576 of whitespace, fixing `issue 334`_. |
|
577 |
|
578 - Made some PyPy-specific tweaks to improve speed under PyPy. Thanks, Alex |
|
579 Gaynor. |
|
580 |
|
581 - In some cases, with a source file missing a final newline, coverage.py would |
|
582 count statements incorrectly. This is now fixed, closing `issue 293`_. |
|
583 |
|
584 - The status.dat file that HTML reports use to avoid re-creating files that |
|
585 haven't changed is now a JSON file instead of a pickle file. This obviates |
|
586 `issue 287`_ and `issue 237`_. |
|
587 |
|
588 .. _issue 237: https://bitbucket.org/ned/coveragepy/issue/237/htmlcov-with-corrupt-statusdat |
|
589 .. _issue 287: https://bitbucket.org/ned/coveragepy/issue/287/htmlpy-doesnt-specify-pickle-protocol |
|
590 .. _issue 293: https://bitbucket.org/ned/coveragepy/issue/293/number-of-statement-detection-wrong-if-no |
|
591 .. _issue 314: https://bitbucket.org/ned/coveragepy/issue/314/fail_under-param-not-working-in-coveragerc |
|
592 .. _issue 315: https://bitbucket.org/ned/coveragepy/issue/315/option-to-omit-empty-files-eg-__init__py |
|
593 .. _issue 328: https://bitbucket.org/ned/coveragepy/issue/328/misbehavior-in-run-source |
|
594 .. _issue 334: https://bitbucket.org/ned/coveragepy/issue/334/pragma-not-recognized-if-tab-character |
|
595 .. _issue 342: https://bitbucket.org/ned/coveragepy/issue/342/console-and-html-coverage-reports-differ |
|
596 .. _issue 343: https://bitbucket.org/ned/coveragepy/issue/343/an-explicitly-named-non-existent-config |
|
597 |
|
598 |
|
599 Version 4.0a1 --- 2014-09-27 |
|
600 ---------------------------- |
|
601 |
|
602 - Python versions supported are now CPython 2.6, 2.7, 3.2, 3.3, and 3.4, and |
|
603 PyPy 2.2. |
|
604 |
|
605 - Gevent, eventlet, and greenlet are now supported, closing `issue 149`_. |
|
606 The ``concurrency`` setting specifies the concurrency library in use. Huge |
|
607 thanks to Peter Portante for initial implementation, and to Joe Jevnik for |
|
608 the final insight that completed the work. |
|
609 |
|
610 - Options are now also read from a setup.cfg file, if any. Sections are |
|
611 prefixed with "coverage:", so the ``[run]`` options will be read from the |
|
612 ``[coverage:run]`` section of setup.cfg. Finishes `issue 304`_. |
|
613 |
|
614 - The ``report -m`` command can now show missing branches when reporting on |
|
615 branch coverage. Thanks, Steve Leonard. Closes `issue 230`_. |
|
616 |
|
617 - The XML report now contains a <source> element, fixing `issue 94`_. Thanks |
|
618 Stan Hu. |
|
619 |
|
620 - The class defined in the coverage module is now called ``Coverage`` instead |
|
621 of ``coverage``, though the old name still works, for backward compatibility. |
|
622 |
|
623 - The ``fail-under`` value is now rounded the same as reported results, |
|
624 preventing paradoxical results, fixing `issue 284`_. |
|
625 |
|
626 - The XML report will now create the output directory if need be, fixing |
|
627 `issue 285`_. Thanks, Chris Rose. |
|
628 |
|
629 - HTML reports no longer raise UnicodeDecodeError if a Python file has |
|
630 undecodable characters, fixing `issue 303`_ and `issue 331`_. |
|
631 |
|
632 - The annotate command will now annotate all files, not just ones relative to |
|
633 the current directory, fixing `issue 57`_. |
|
634 |
|
635 - The coverage module no longer causes deprecation warnings on Python 3.4 by |
|
636 importing the imp module, fixing `issue 305`_. |
|
637 |
|
638 - Encoding declarations in source files are only considered if they are truly |
|
639 comments. Thanks, Anthony Sottile. |
|
640 |
|
641 .. _issue 57: https://bitbucket.org/ned/coveragepy/issue/57/annotate-command-fails-to-annotate-many |
|
642 .. _issue 94: https://bitbucket.org/ned/coveragepy/issue/94/coverage-xml-doesnt-produce-sources |
|
643 .. _issue 149: https://bitbucket.org/ned/coveragepy/issue/149/coverage-gevent-looks-broken |
|
644 .. _issue 230: https://bitbucket.org/ned/coveragepy/issue/230/show-line-no-for-missing-branches-in |
|
645 .. _issue 284: https://bitbucket.org/ned/coveragepy/issue/284/fail-under-should-show-more-precision |
|
646 .. _issue 285: https://bitbucket.org/ned/coveragepy/issue/285/xml-report-fails-if-output-file-directory |
|
647 .. _issue 303: https://bitbucket.org/ned/coveragepy/issue/303/unicodedecodeerror |
|
648 .. _issue 304: https://bitbucket.org/ned/coveragepy/issue/304/attempt-to-get-configuration-from-setupcfg |
|
649 .. _issue 305: https://bitbucket.org/ned/coveragepy/issue/305/pendingdeprecationwarning-the-imp-module |
|
650 .. _issue 331: https://bitbucket.org/ned/coveragepy/issue/331/failure-of-encoding-detection-on-python2 |
|
651 |
|
652 |
|
653 Version 3.7.1 --- 2013-12-13 |
|
654 ---------------------------- |
|
655 |
|
656 - Improved the speed of HTML report generation by about 20%. |
|
657 |
|
658 - Fixed the mechanism for finding OS-installed static files for the HTML report |
|
659 so that it will actually find OS-installed static files. |
|
660 |
|
661 |
|
662 Version 3.7 --- 2013-10-06 |
|
663 -------------------------- |
|
664 |
|
665 - Added the ``--debug`` switch to ``coverage run``. It accepts a list of |
|
666 options indicating the type of internal activity to log to stderr. |
|
667 |
|
668 - Improved the branch coverage facility, fixing `issue 92`_ and `issue 175`_. |
|
669 |
|
670 - Running code with ``coverage run -m`` now behaves more like Python does, |
|
671 setting sys.path properly, which fixes `issue 207`_ and `issue 242`_. |
|
672 |
|
673 - Coverage.py can now run .pyc files directly, closing `issue 264`_. |
|
674 |
|
675 - Coverage.py properly supports .pyw files, fixing `issue 261`_. |
|
676 |
|
677 - Omitting files within a tree specified with the ``source`` option would |
|
678 cause them to be incorrectly marked as unexecuted, as described in |
|
679 `issue 218`_. This is now fixed. |
|
680 |
|
681 - When specifying paths to alias together during data combining, you can now |
|
682 specify relative paths, fixing `issue 267`_. |
|
683 |
|
684 - Most file paths can now be specified with username expansion (``~/src``, or |
|
685 ``~build/src``, for example), and with environment variable expansion |
|
686 (``build/$BUILDNUM/src``). |
|
687 |
|
688 - Trying to create an XML report with no files to report on, would cause a |
|
689 ZeroDivideError, but no longer does, fixing `issue 250`_. |
|
690 |
|
691 - When running a threaded program under the Python tracer, coverage.py no |
|
692 longer issues a spurious warning about the trace function changing: "Trace |
|
693 function changed, measurement is likely wrong: None." This fixes `issue |
|
694 164`_. |
|
695 |
|
696 - Static files necessary for HTML reports are found in system-installed places, |
|
697 to ease OS-level packaging of coverage.py. Closes `issue 259`_. |
|
698 |
|
699 - Source files with encoding declarations, but a blank first line, were not |
|
700 decoded properly. Now they are. Thanks, Roger Hu. |
|
701 |
|
702 - The source kit now includes the ``__main__.py`` file in the root coverage |
|
703 directory, fixing `issue 255`_. |
|
704 |
|
705 .. _issue 92: https://bitbucket.org/ned/coveragepy/issue/92/finally-clauses-arent-treated-properly-in |
|
706 .. _issue 164: https://bitbucket.org/ned/coveragepy/issue/164/trace-function-changed-warning-when-using |
|
707 .. _issue 175: https://bitbucket.org/ned/coveragepy/issue/175/branch-coverage-gets-confused-in-certain |
|
708 .. _issue 207: https://bitbucket.org/ned/coveragepy/issue/207/run-m-cannot-find-module-or-package-in |
|
709 .. _issue 242: https://bitbucket.org/ned/coveragepy/issue/242/running-a-two-level-package-doesnt-work |
|
710 .. _issue 218: https://bitbucket.org/ned/coveragepy/issue/218/run-command-does-not-respect-the-omit-flag |
|
711 .. _issue 250: https://bitbucket.org/ned/coveragepy/issue/250/uncaught-zerodivisionerror-when-generating |
|
712 .. _issue 255: https://bitbucket.org/ned/coveragepy/issue/255/directory-level-__main__py-not-included-in |
|
713 .. _issue 259: https://bitbucket.org/ned/coveragepy/issue/259/allow-use-of-system-installed-third-party |
|
714 .. _issue 261: https://bitbucket.org/ned/coveragepy/issue/261/pyw-files-arent-reported-properly |
|
715 .. _issue 264: https://bitbucket.org/ned/coveragepy/issue/264/coverage-wont-run-pyc-files |
|
716 .. _issue 267: https://bitbucket.org/ned/coveragepy/issue/267/relative-path-aliases-dont-work |
|
717 |
|
718 |
|
719 Version 3.6 --- 2013-01-05 |
|
720 -------------------------- |
|
721 |
|
722 - Added a page to the docs about troublesome situations, closing `issue 226`_, |
|
723 and added some info to the TODO file, closing `issue 227`_. |
|
724 |
|
725 .. _issue 226: https://bitbucket.org/ned/coveragepy/issue/226/make-readme-section-to-describe-when |
|
726 .. _issue 227: https://bitbucket.org/ned/coveragepy/issue/227/update-todo |
|
727 |
|
728 |
|
729 Version 3.6b3 --- 2012-12-29 |
|
730 ---------------------------- |
|
731 |
|
732 - Beta 2 broke the nose plugin. It's fixed again, closing `issue 224`_. |
|
733 |
|
734 .. _issue 224: https://bitbucket.org/ned/coveragepy/issue/224/36b2-breaks-nosexcover |
|
735 |
|
736 |
|
737 Version 3.6b2 --- 2012-12-23 |
|
738 ---------------------------- |
|
739 |
|
740 - Coverage.py runs on Python 2.3 and 2.4 again. It was broken in 3.6b1. |
|
741 |
|
742 - The C extension is optionally compiled using a different more widely-used |
|
743 technique, taking another stab at fixing `issue 80`_ once and for all. |
|
744 |
|
745 - Combining data files would create entries for phantom files if used with |
|
746 ``source`` and path aliases. It no longer does. |
|
747 |
|
748 - ``debug sys`` now shows the configuration file path that was read. |
|
749 |
|
750 - If an oddly-behaved package claims that code came from an empty-string |
|
751 file name, coverage.py no longer associates it with the directory name, |
|
752 fixing `issue 221`_. |
|
753 |
|
754 .. _issue 221: https://bitbucket.org/ned/coveragepy/issue/221/coveragepy-incompatible-with-pyratemp |
|
755 |
|
756 |
|
757 Version 3.6b1 --- 2012-11-28 |
|
758 ---------------------------- |
|
759 |
|
760 - Wildcards in ``include=`` and ``omit=`` arguments were not handled properly |
|
761 in reporting functions, though they were when running. Now they are handled |
|
762 uniformly, closing `issue 143`_ and `issue 163`_. **NOTE**: it is possible |
|
763 that your configurations may now be incorrect. If you use ``include`` or |
|
764 ``omit`` during reporting, whether on the command line, through the API, or |
|
765 in a configuration file, please check carefully that you were not relying on |
|
766 the old broken behavior. |
|
767 |
|
768 - The **report**, **html**, and **xml** commands now accept a ``--fail-under`` |
|
769 switch that indicates in the exit status whether the coverage percentage was |
|
770 less than a particular value. Closes `issue 139`_. |
|
771 |
|
772 - The reporting functions coverage.report(), coverage.html_report(), and |
|
773 coverage.xml_report() now all return a float, the total percentage covered |
|
774 measurement. |
|
775 |
|
776 - The HTML report's title can now be set in the configuration file, with the |
|
777 ``--title`` switch on the command line, or via the API. |
|
778 |
|
779 - Configuration files now support substitution of environment variables, using |
|
780 syntax like ``${WORD}``. Closes `issue 97`_. |
|
781 |
|
782 - Embarrassingly, the ``[xml] output=`` setting in the .coveragerc file simply |
|
783 didn't work. Now it does. |
|
784 |
|
785 - The XML report now consistently uses file names for the file name attribute, |
|
786 rather than sometimes using module names. Fixes `issue 67`_. |
|
787 Thanks, Marcus Cobden. |
|
788 |
|
789 - Coverage percentage metrics are now computed slightly differently under |
|
790 branch coverage. This means that completely unexecuted files will now |
|
791 correctly have 0% coverage, fixing `issue 156`_. This also means that your |
|
792 total coverage numbers will generally now be lower if you are measuring |
|
793 branch coverage. |
|
794 |
|
795 - When installing, now in addition to creating a "coverage" command, two new |
|
796 aliases are also installed. A "coverage2" or "coverage3" command will be |
|
797 created, depending on whether you are installing in Python 2.x or 3.x. |
|
798 A "coverage-X.Y" command will also be created corresponding to your specific |
|
799 version of Python. Closes `issue 111`_. |
|
800 |
|
801 - The coverage.py installer no longer tries to bootstrap setuptools or |
|
802 Distribute. You must have one of them installed first, as `issue 202`_ |
|
803 recommended. |
|
804 |
|
805 - The coverage.py kit now includes docs (closing `issue 137`_) and tests. |
|
806 |
|
807 - On Windows, files are now reported in their correct case, fixing `issue 89`_ |
|
808 and `issue 203`_. |
|
809 |
|
810 - If a file is missing during reporting, the path shown in the error message |
|
811 is now correct, rather than an incorrect path in the current directory. |
|
812 Fixes `issue 60`_. |
|
813 |
|
814 - Running an HTML report in Python 3 in the same directory as an old Python 2 |
|
815 HTML report would fail with a UnicodeDecodeError. This issue (`issue 193`_) |
|
816 is now fixed. |
|
817 |
|
818 - Fixed yet another error trying to parse non-Python files as Python, this |
|
819 time an IndentationError, closing `issue 82`_ for the fourth time... |
|
820 |
|
821 - If `coverage xml` fails because there is no data to report, it used to |
|
822 create a zero-length XML file. Now it doesn't, fixing `issue 210`_. |
|
823 |
|
824 - Jython files now work with the ``--source`` option, fixing `issue 100`_. |
|
825 |
|
826 - Running coverage.py under a debugger is unlikely to work, but it shouldn't |
|
827 fail with "TypeError: 'NoneType' object is not iterable". Fixes `issue |
|
828 201`_. |
|
829 |
|
830 - On some Linux distributions, when installed with the OS package manager, |
|
831 coverage.py would report its own code as part of the results. Now it won't, |
|
832 fixing `issue 214`_, though this will take some time to be repackaged by the |
|
833 operating systems. |
|
834 |
|
835 - Docstrings for the legacy singleton methods are more helpful. Thanks Marius |
|
836 Gedminas. Closes `issue 205`_. |
|
837 |
|
838 - The pydoc tool can now show documentation for the class `coverage.coverage`. |
|
839 Closes `issue 206`_. |
|
840 |
|
841 - Added a page to the docs about contributing to coverage.py, closing |
|
842 `issue 171`_. |
|
843 |
|
844 - When coverage.py ended unsuccessfully, it may have reported odd errors like |
|
845 ``'NoneType' object has no attribute 'isabs'``. It no longer does, |
|
846 so kiss `issue 153`_ goodbye. |
|
847 |
|
848 .. _issue 60: https://bitbucket.org/ned/coveragepy/issue/60/incorrect-path-to-orphaned-pyc-files |
|
849 .. _issue 67: https://bitbucket.org/ned/coveragepy/issue/67/xml-report-filenames-may-be-generated |
|
850 .. _issue 89: https://bitbucket.org/ned/coveragepy/issue/89/on-windows-all-packages-are-reported-in |
|
851 .. _issue 97: https://bitbucket.org/ned/coveragepy/issue/97/allow-environment-variables-to-be |
|
852 .. _issue 100: https://bitbucket.org/ned/coveragepy/issue/100/source-directive-doesnt-work-for-packages |
|
853 .. _issue 111: https://bitbucket.org/ned/coveragepy/issue/111/when-installing-coverage-with-pip-not |
|
854 .. _issue 137: https://bitbucket.org/ned/coveragepy/issue/137/provide-docs-with-source-distribution |
|
855 .. _issue 139: https://bitbucket.org/ned/coveragepy/issue/139/easy-check-for-a-certain-coverage-in-tests |
|
856 .. _issue 143: https://bitbucket.org/ned/coveragepy/issue/143/omit-doesnt-seem-to-work-in-coverage |
|
857 .. _issue 153: https://bitbucket.org/ned/coveragepy/issue/153/non-existent-filename-triggers |
|
858 .. _issue 156: https://bitbucket.org/ned/coveragepy/issue/156/a-completely-unexecuted-file-shows-14 |
|
859 .. _issue 163: https://bitbucket.org/ned/coveragepy/issue/163/problem-with-include-and-omit-filename |
|
860 .. _issue 171: https://bitbucket.org/ned/coveragepy/issue/171/how-to-contribute-and-run-tests |
|
861 .. _issue 193: https://bitbucket.org/ned/coveragepy/issue/193/unicodedecodeerror-on-htmlpy |
|
862 .. _issue 201: https://bitbucket.org/ned/coveragepy/issue/201/coverage-using-django-14-with-pydb-on |
|
863 .. _issue 202: https://bitbucket.org/ned/coveragepy/issue/202/get-rid-of-ez_setuppy-and |
|
864 .. _issue 203: https://bitbucket.org/ned/coveragepy/issue/203/duplicate-filenames-reported-when-filename |
|
865 .. _issue 205: https://bitbucket.org/ned/coveragepy/issue/205/make-pydoc-coverage-more-friendly |
|
866 .. _issue 206: https://bitbucket.org/ned/coveragepy/issue/206/pydoc-coveragecoverage-fails-with-an-error |
|
867 .. _issue 210: https://bitbucket.org/ned/coveragepy/issue/210/if-theres-no-coverage-data-coverage-xml |
|
868 .. _issue 214: https://bitbucket.org/ned/coveragepy/issue/214/coveragepy-measures-itself-on-precise |
|
869 |
|
870 |
|
871 Version 3.5.3 --- 2012-09-29 |
|
872 ---------------------------- |
|
873 |
|
874 - Line numbers in the HTML report line up better with the source lines, fixing |
|
875 `issue 197`_, thanks Marius Gedminas. |
|
876 |
|
877 - When specifying a directory as the source= option, the directory itself no |
|
878 longer needs to have a ``__init__.py`` file, though its sub-directories do, |
|
879 to be considered as source files. |
|
880 |
|
881 - Files encoded as UTF-8 with a BOM are now properly handled, fixing |
|
882 `issue 179`_. Thanks, Pablo Carballo. |
|
883 |
|
884 - Fixed more cases of non-Python files being reported as Python source, and |
|
885 then not being able to parse them as Python. Closes `issue 82`_ (again). |
|
886 Thanks, Julian Berman. |
|
887 |
|
888 - Fixed memory leaks under Python 3, thanks, Brett Cannon. Closes `issue 147`_. |
|
889 |
|
890 - Optimized .pyo files may not have been handled correctly, `issue 195`_. |
|
891 Thanks, Marius Gedminas. |
|
892 |
|
893 - Certain unusually named file paths could have been mangled during reporting, |
|
894 `issue 194`_. Thanks, Marius Gedminas. |
|
895 |
|
896 - Try to do a better job of the impossible task of detecting when we can't |
|
897 build the C extension, fixing `issue 183`_. |
|
898 |
|
899 - Testing is now done with `tox`_, thanks, Marc Abramowitz. |
|
900 |
|
901 .. _issue 147: https://bitbucket.org/ned/coveragepy/issue/147/massive-memory-usage-by-ctracer |
|
902 .. _issue 179: https://bitbucket.org/ned/coveragepy/issue/179/htmlreporter-fails-when-source-file-is |
|
903 .. _issue 183: https://bitbucket.org/ned/coveragepy/issue/183/install-fails-for-python-23 |
|
904 .. _issue 194: https://bitbucket.org/ned/coveragepy/issue/194/filelocatorrelative_filename-could-mangle |
|
905 .. _issue 195: https://bitbucket.org/ned/coveragepy/issue/195/pyo-file-handling-in-codeunit |
|
906 .. _issue 197: https://bitbucket.org/ned/coveragepy/issue/197/line-numbers-in-html-report-do-not-align |
|
907 .. _tox: http://tox.readthedocs.org/ |
|
908 |
|
909 |
|
910 Version 3.5.2 --- 2012-05-04 |
|
911 ---------------------------- |
|
912 |
|
913 No changes since 3.5.2.b1 |
|
914 |
|
915 |
|
916 Version 3.5.2b1 --- 2012-04-29 |
|
917 ------------------------------ |
|
918 |
|
919 - The HTML report has slightly tweaked controls: the buttons at the top of |
|
920 the page are color-coded to the source lines they affect. |
|
921 |
|
922 - Custom CSS can be applied to the HTML report by specifying a CSS file as |
|
923 the ``extra_css`` configuration value in the ``[html]`` section. |
|
924 |
|
925 - Source files with custom encodings declared in a comment at the top are now |
|
926 properly handled during reporting on Python 2. Python 3 always handled them |
|
927 properly. This fixes `issue 157`_. |
|
928 |
|
929 - Backup files left behind by editors are no longer collected by the source= |
|
930 option, fixing `issue 168`_. |
|
931 |
|
932 - If a file doesn't parse properly as Python, we don't report it as an error |
|
933 if the file name seems like maybe it wasn't meant to be Python. This is a |
|
934 pragmatic fix for `issue 82`_. |
|
935 |
|
936 - The ``-m`` switch on ``coverage report``, which includes missing line numbers |
|
937 in the summary report, can now be specified as ``show_missing`` in the |
|
938 config file. Closes `issue 173`_. |
|
939 |
|
940 - When running a module with ``coverage run -m <modulename>``, certain details |
|
941 of the execution environment weren't the same as for |
|
942 ``python -m <modulename>``. This had the unfortunate side-effect of making |
|
943 ``coverage run -m unittest discover`` not work if you had tests in a |
|
944 directory named "test". This fixes `issue 155`_ and `issue 142`_. |
|
945 |
|
946 - Now the exit status of your product code is properly used as the process |
|
947 status when running ``python -m coverage run ...``. Thanks, JT Olds. |
|
948 |
|
949 - When installing into pypy, we no longer attempt (and fail) to compile |
|
950 the C tracer function, closing `issue 166`_. |
|
951 |
|
952 .. _issue 142: https://bitbucket.org/ned/coveragepy/issue/142/executing-python-file-syspath-is-replaced |
|
953 .. _issue 155: https://bitbucket.org/ned/coveragepy/issue/155/cant-use-coverage-run-m-unittest-discover |
|
954 .. _issue 157: https://bitbucket.org/ned/coveragepy/issue/157/chokes-on-source-files-with-non-utf-8 |
|
955 .. _issue 166: https://bitbucket.org/ned/coveragepy/issue/166/dont-try-to-compile-c-extension-on-pypy |
|
956 .. _issue 168: https://bitbucket.org/ned/coveragepy/issue/168/dont-be-alarmed-by-emacs-droppings |
|
957 .. _issue 173: https://bitbucket.org/ned/coveragepy/issue/173/theres-no-way-to-specify-show-missing-in |
|
958 |
|
959 |
|
960 Version 3.5.1 --- 2011-09-23 |
|
961 ---------------------------- |
|
962 |
|
963 - The ``[paths]`` feature unfortunately didn't work in real world situations |
|
964 where you wanted to, you know, report on the combined data. Now all paths |
|
965 stored in the combined file are canonicalized properly. |
|
966 |
|
967 |
|
968 Version 3.5.1b1 --- 2011-08-28 |
|
969 ------------------------------ |
|
970 |
|
971 - When combining data files from parallel runs, you can now instruct |
|
972 coverage.py about which directories are equivalent on different machines. A |
|
973 ``[paths]`` section in the configuration file lists paths that are to be |
|
974 considered equivalent. Finishes `issue 17`_. |
|
975 |
|
976 - for-else constructs are understood better, and don't cause erroneous partial |
|
977 branch warnings. Fixes `issue 122`_. |
|
978 |
|
979 - Branch coverage for ``with`` statements is improved, fixing `issue 128`_. |
|
980 |
|
981 - The number of partial branches reported on the HTML summary page was |
|
982 different than the number reported on the individual file pages. This is |
|
983 now fixed. |
|
984 |
|
985 - An explicit include directive to measure files in the Python installation |
|
986 wouldn't work because of the standard library exclusion. Now the include |
|
987 directive takes precedence, and the files will be measured. Fixes |
|
988 `issue 138`_. |
|
989 |
|
990 - The HTML report now handles Unicode characters in Python source files |
|
991 properly. This fixes `issue 124`_ and `issue 144`_. Thanks, Devin |
|
992 Jeanpierre. |
|
993 |
|
994 - In order to help the core developers measure the test coverage of the |
|
995 standard library, Brandon Rhodes devised an aggressive hack to trick Python |
|
996 into running some coverage.py code before anything else in the process. |
|
997 See the coverage/fullcoverage directory if you are interested. |
|
998 |
|
999 .. _issue 17: http://bitbucket.org/ned/coveragepy/issue/17/support-combining-coverage-data-from |
|
1000 .. _issue 122: http://bitbucket.org/ned/coveragepy/issue/122/for-else-always-reports-missing-branch |
|
1001 .. _issue 124: http://bitbucket.org/ned/coveragepy/issue/124/no-arbitrary-unicode-in-html-reports-in |
|
1002 .. _issue 128: http://bitbucket.org/ned/coveragepy/issue/128/branch-coverage-of-with-statement-in-27 |
|
1003 .. _issue 138: http://bitbucket.org/ned/coveragepy/issue/138/include-should-take-precedence-over-is |
|
1004 .. _issue 144: http://bitbucket.org/ned/coveragepy/issue/144/failure-generating-html-output-for |
|
1005 |
|
1006 |
|
1007 Version 3.5 --- 2011-06-29 |
|
1008 -------------------------- |
|
1009 |
|
1010 - The HTML report hotkeys now behave slightly differently when the current |
|
1011 chunk isn't visible at all: a chunk on the screen will be selected, |
|
1012 instead of the old behavior of jumping to the literal next chunk. |
|
1013 The hotkeys now work in Google Chrome. Thanks, Guido van Rossum. |
|
1014 |
|
1015 |
|
1016 Version 3.5b1 --- 2011-06-05 |
|
1017 ---------------------------- |
|
1018 |
|
1019 - The HTML report now has hotkeys. Try ``n``, ``s``, ``m``, ``x``, ``b``, |
|
1020 ``p``, and ``c`` on the overview page to change the column sorting. |
|
1021 On a file page, ``r``, ``m``, ``x``, and ``p`` toggle the run, missing, |
|
1022 excluded, and partial line markings. You can navigate the highlighted |
|
1023 sections of code by using the ``j`` and ``k`` keys for next and previous. |
|
1024 The ``1`` (one) key jumps to the first highlighted section in the file, |
|
1025 and ``0`` (zero) scrolls to the top of the file. |
|
1026 |
|
1027 - The ``--omit`` and ``--include`` switches now interpret their values more |
|
1028 usefully. If the value starts with a wildcard character, it is used as-is. |
|
1029 If it does not, it is interpreted relative to the current directory. |
|
1030 Closes `issue 121`_. |
|
1031 |
|
1032 - Partial branch warnings can now be pragma'd away. The configuration option |
|
1033 ``partial_branches`` is a list of regular expressions. Lines matching any of |
|
1034 those expressions will never be marked as a partial branch. In addition, |
|
1035 there's a built-in list of regular expressions marking statements which should |
|
1036 never be marked as partial. This list includes ``while True:``, ``while 1:``, |
|
1037 ``if 1:``, and ``if 0:``. |
|
1038 |
|
1039 - The ``coverage()`` constructor accepts single strings for the ``omit=`` and |
|
1040 ``include=`` arguments, adapting to a common error in programmatic use. |
|
1041 |
|
1042 - Modules can now be run directly using ``coverage run -m modulename``, to |
|
1043 mirror Python's ``-m`` flag. Closes `issue 95`_, thanks, Brandon Rhodes. |
|
1044 |
|
1045 - ``coverage run`` didn't emulate Python accurately in one small detail: the |
|
1046 current directory inserted into ``sys.path`` was relative rather than |
|
1047 absolute. This is now fixed. |
|
1048 |
|
1049 - HTML reporting is now incremental: a record is kept of the data that |
|
1050 produced the HTML reports, and only files whose data has changed will |
|
1051 be generated. This should make most HTML reporting faster. |
|
1052 |
|
1053 - Pathological code execution could disable the trace function behind our |
|
1054 backs, leading to incorrect code measurement. Now if this happens, |
|
1055 coverage.py will issue a warning, at least alerting you to the problem. |
|
1056 Closes `issue 93`_. Thanks to Marius Gedminas for the idea. |
|
1057 |
|
1058 - The C-based trace function now behaves properly when saved and restored |
|
1059 with ``sys.gettrace()`` and ``sys.settrace()``. This fixes `issue 125`_ |
|
1060 and `issue 123`_. Thanks, Devin Jeanpierre. |
|
1061 |
|
1062 - Source files are now opened with Python 3.2's ``tokenize.open()`` where |
|
1063 possible, to get the best handling of Python source files with encodings. |
|
1064 Closes `issue 107`_, thanks, Brett Cannon. |
|
1065 |
|
1066 - Syntax errors in supposed Python files can now be ignored during reporting |
|
1067 with the ``-i`` switch just like other source errors. Closes `issue 115`_. |
|
1068 |
|
1069 - Installation from source now succeeds on machines without a C compiler, |
|
1070 closing `issue 80`_. |
|
1071 |
|
1072 - Coverage.py can now be run directly from a working tree by specifying |
|
1073 the directory name to python: ``python coverage_py_working_dir run ...``. |
|
1074 Thanks, Brett Cannon. |
|
1075 |
|
1076 - A little bit of Jython support: `coverage run` can now measure Jython |
|
1077 execution by adapting when $py.class files are traced. Thanks, Adi Roiban. |
|
1078 Jython still doesn't provide the Python libraries needed to make |
|
1079 coverage reporting work, unfortunately. |
|
1080 |
|
1081 - Internally, files are now closed explicitly, fixing `issue 104`_. Thanks, |
|
1082 Brett Cannon. |
|
1083 |
|
1084 .. _issue 80: https://bitbucket.org/ned/coveragepy/issue/80/is-there-a-duck-typing-way-to-know-we-cant |
|
1085 .. _issue 93: http://bitbucket.org/ned/coveragepy/issue/93/copying-a-mock-object-breaks-coverage |
|
1086 .. _issue 95: https://bitbucket.org/ned/coveragepy/issue/95/run-subcommand-should-take-a-module-name |
|
1087 .. _issue 104: https://bitbucket.org/ned/coveragepy/issue/104/explicitly-close-files |
|
1088 .. _issue 107: https://bitbucket.org/ned/coveragepy/issue/107/codeparser-not-opening-source-files-with |
|
1089 .. _issue 115: https://bitbucket.org/ned/coveragepy/issue/115/fail-gracefully-when-reporting-on-file |
|
1090 .. _issue 121: https://bitbucket.org/ned/coveragepy/issue/121/filename-patterns-are-applied-stupidly |
|
1091 .. _issue 123: https://bitbucket.org/ned/coveragepy/issue/123/pyeval_settrace-used-in-way-that-breaks |
|
1092 .. _issue 125: https://bitbucket.org/ned/coveragepy/issue/125/coverage-removes-decoratortoolss-tracing |
|
1093 |
|
1094 |
|
1095 Version 3.4 --- 2010-09-19 |
|
1096 -------------------------- |
|
1097 |
|
1098 - The XML report is now sorted by package name, fixing `issue 88`_. |
|
1099 |
|
1100 - Programs that exited with ``sys.exit()`` with no argument weren't handled |
|
1101 properly, producing a coverage.py stack trace. That is now fixed. |
|
1102 |
|
1103 .. _issue 88: http://bitbucket.org/ned/coveragepy/issue/88/xml-report-lists-packages-in-random-order |
|
1104 |
|
1105 |
|
1106 Version 3.4b2 --- 2010-09-06 |
|
1107 ---------------------------- |
|
1108 |
|
1109 - Completely unexecuted files can now be included in coverage results, reported |
|
1110 as 0% covered. This only happens if the --source option is specified, since |
|
1111 coverage.py needs guidance about where to look for source files. |
|
1112 |
|
1113 - The XML report output now properly includes a percentage for branch coverage, |
|
1114 fixing `issue 65`_ and `issue 81`_. |
|
1115 |
|
1116 - Coverage percentages are now displayed uniformly across reporting methods. |
|
1117 Previously, different reports could round percentages differently. Also, |
|
1118 percentages are only reported as 0% or 100% if they are truly 0 or 100, and |
|
1119 are rounded otherwise. Fixes `issue 41`_ and `issue 70`_. |
|
1120 |
|
1121 - The precision of reported coverage percentages can be set with the |
|
1122 ``[report] precision`` config file setting. Completes `issue 16`_. |
|
1123 |
|
1124 - Threads derived from ``threading.Thread`` with an overridden `run` method |
|
1125 would report no coverage for the `run` method. This is now fixed, closing |
|
1126 `issue 85`_. |
|
1127 |
|
1128 .. _issue 16: http://bitbucket.org/ned/coveragepy/issue/16/allow-configuration-of-accuracy-of-percentage-totals |
|
1129 .. _issue 41: http://bitbucket.org/ned/coveragepy/issue/41/report-says-100-when-it-isnt-quite-there |
|
1130 .. _issue 65: http://bitbucket.org/ned/coveragepy/issue/65/branch-option-not-reported-in-cobertura |
|
1131 .. _issue 70: http://bitbucket.org/ned/coveragepy/issue/70/text-report-and-html-report-disagree-on-coverage |
|
1132 .. _issue 81: http://bitbucket.org/ned/coveragepy/issue/81/xml-report-does-not-have-condition-coverage-attribute-for-lines-with-a |
|
1133 .. _issue 85: http://bitbucket.org/ned/coveragepy/issue/85/threadrun-isnt-measured |
|
1134 |
|
1135 |
|
1136 Version 3.4b1 --- 2010-08-21 |
|
1137 ---------------------------- |
|
1138 |
|
1139 - BACKWARD INCOMPATIBILITY: the ``--omit`` and ``--include`` switches now take |
|
1140 file patterns rather than file prefixes, closing `issue 34`_ and `issue 36`_. |
|
1141 |
|
1142 - BACKWARD INCOMPATIBILITY: the `omit_prefixes` argument is gone throughout |
|
1143 coverage.py, replaced with `omit`, a list of file name patterns suitable for |
|
1144 `fnmatch`. A parallel argument `include` controls what files are included. |
|
1145 |
|
1146 - The run command now has a ``--source`` switch, a list of directories or |
|
1147 module names. If provided, coverage.py will only measure execution in those |
|
1148 source files. |
|
1149 |
|
1150 - Various warnings are printed to stderr for problems encountered during data |
|
1151 measurement: if a ``--source`` module has no Python source to measure, or is |
|
1152 never encountered at all, or if no data is collected. |
|
1153 |
|
1154 - The reporting commands (report, annotate, html, and xml) now have an |
|
1155 ``--include`` switch to restrict reporting to modules matching those file |
|
1156 patterns, similar to the existing ``--omit`` switch. Thanks, Zooko. |
|
1157 |
|
1158 - The run command now supports ``--include`` and ``--omit`` to control what |
|
1159 modules it measures. This can speed execution and reduce the amount of data |
|
1160 during reporting. Thanks Zooko. |
|
1161 |
|
1162 - Since coverage.py 3.1, using the Python trace function has been slower than |
|
1163 it needs to be. A cache of tracing decisions was broken, but has now been |
|
1164 fixed. |
|
1165 |
|
1166 - Python 2.7 and 3.2 have introduced new opcodes that are now supported. |
|
1167 |
|
1168 - Python files with no statements, for example, empty ``__init__.py`` files, |
|
1169 are now reported as having zero statements instead of one. Fixes `issue 1`_. |
|
1170 |
|
1171 - Reports now have a column of missed line counts rather than executed line |
|
1172 counts, since developers should focus on reducing the missed lines to zero, |
|
1173 rather than increasing the executed lines to varying targets. Once |
|
1174 suggested, this seemed blindingly obvious. |
|
1175 |
|
1176 - Line numbers in HTML source pages are clickable, linking directly to that |
|
1177 line, which is highlighted on arrival. Added a link back to the index page |
|
1178 at the bottom of each HTML page. |
|
1179 |
|
1180 - Programs that call ``os.fork`` will properly collect data from both the child |
|
1181 and parent processes. Use ``coverage run -p`` to get two data files that can |
|
1182 be combined with ``coverage combine``. Fixes `issue 56`_. |
|
1183 |
|
1184 - Coverage.py is now runnable as a module: ``python -m coverage``. Thanks, |
|
1185 Brett Cannon. |
|
1186 |
|
1187 - When measuring code running in a virtualenv, most of the system library was |
|
1188 being measured when it shouldn't have been. This is now fixed. |
|
1189 |
|
1190 - Doctest text files are no longer recorded in the coverage data, since they |
|
1191 can't be reported anyway. Fixes `issue 52`_ and `issue 61`_. |
|
1192 |
|
1193 - Jinja HTML templates compile into Python code using the HTML file name, |
|
1194 which confused coverage.py. Now these files are no longer traced, fixing |
|
1195 `issue 82`_. |
|
1196 |
|
1197 - Source files can have more than one dot in them (foo.test.py), and will be |
|
1198 treated properly while reporting. Fixes `issue 46`_. |
|
1199 |
|
1200 - Source files with DOS line endings are now properly tokenized for syntax |
|
1201 coloring on non-DOS machines. Fixes `issue 53`_. |
|
1202 |
|
1203 - Unusual code structure that confused exits from methods with exits from |
|
1204 classes is now properly analyzed. See `issue 62`_. |
|
1205 |
|
1206 - Asking for an HTML report with no files now shows a nice error message rather |
|
1207 than a cryptic failure ('int' object is unsubscriptable). Fixes `issue 59`_. |
|
1208 |
|
1209 .. _issue 1: http://bitbucket.org/ned/coveragepy/issue/1/empty-__init__py-files-are-reported-as-1-executable |
|
1210 .. _issue 34: http://bitbucket.org/ned/coveragepy/issue/34/enhanced-omit-globbing-handling |
|
1211 .. _issue 36: http://bitbucket.org/ned/coveragepy/issue/36/provide-regex-style-omit |
|
1212 .. _issue 46: http://bitbucket.org/ned/coveragepy/issue/46 |
|
1213 .. _issue 53: http://bitbucket.org/ned/coveragepy/issue/53 |
|
1214 .. _issue 52: http://bitbucket.org/ned/coveragepy/issue/52/doctesttestfile-confuses-source-detection |
|
1215 .. _issue 56: http://bitbucket.org/ned/coveragepy/issue/56 |
|
1216 .. _issue 61: http://bitbucket.org/ned/coveragepy/issue/61/annotate-i-doesnt-work |
|
1217 .. _issue 62: http://bitbucket.org/ned/coveragepy/issue/62 |
|
1218 .. _issue 59: http://bitbucket.org/ned/coveragepy/issue/59/html-report-fails-with-int-object-is |
|
1219 .. _issue 82: http://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-generating-html-report |
|
1220 |
|
1221 |
|
1222 Version 3.3.1 --- 2010-03-06 |
|
1223 ---------------------------- |
|
1224 |
|
1225 - Using `parallel=True` in .coveragerc file prevented reporting, but now does |
|
1226 not, fixing `issue 49`_. |
|
1227 |
|
1228 - When running your code with "coverage run", if you call `sys.exit()`, |
|
1229 coverage.py will exit with that status code, fixing `issue 50`_. |
|
1230 |
|
1231 .. _issue 49: http://bitbucket.org/ned/coveragepy/issue/49 |
|
1232 .. _issue 50: http://bitbucket.org/ned/coveragepy/issue/50 |
|
1233 |
|
1234 |
|
1235 Version 3.3 --- 2010-02-24 |
|
1236 -------------------------- |
|
1237 |
|
1238 - Settings are now read from a .coveragerc file. A specific file can be |
|
1239 specified on the command line with --rcfile=FILE. The name of the file can |
|
1240 be programmatically set with the `config_file` argument to the coverage() |
|
1241 constructor, or reading a config file can be disabled with |
|
1242 `config_file=False`. |
|
1243 |
|
1244 - Fixed a problem with nested loops having their branch possibilities |
|
1245 mischaracterized: `issue 39`_. |
|
1246 |
|
1247 - Added coverage.process_start to enable coverage measurement when Python |
|
1248 starts. |
|
1249 |
|
1250 - Parallel data file names now have a random number appended to them in |
|
1251 addition to the machine name and process id. |
|
1252 |
|
1253 - Parallel data files combined with "coverage combine" are deleted after |
|
1254 they're combined, to clean up unneeded files. Fixes `issue 40`_. |
|
1255 |
|
1256 - Exceptions thrown from product code run with "coverage run" are now displayed |
|
1257 without internal coverage.py frames, so the output is the same as when the |
|
1258 code is run without coverage.py. |
|
1259 |
|
1260 - The `data_suffix` argument to the coverage constructor is now appended with |
|
1261 an added dot rather than simply appended, so that .coveragerc files will not |
|
1262 be confused for data files. |
|
1263 |
|
1264 - Python source files that don't end with a newline can now be executed, fixing |
|
1265 `issue 47`_. |
|
1266 |
|
1267 - Added an AUTHORS.txt file. |
|
1268 |
|
1269 .. _issue 39: http://bitbucket.org/ned/coveragepy/issue/39 |
|
1270 .. _issue 40: http://bitbucket.org/ned/coveragepy/issue/40 |
|
1271 .. _issue 47: http://bitbucket.org/ned/coveragepy/issue/47 |
|
1272 |
|
1273 |
|
1274 Version 3.2 --- 2009-12-05 |
|
1275 -------------------------- |
|
1276 |
|
1277 - Added a ``--version`` option on the command line. |
|
1278 |
|
1279 |
|
1280 Version 3.2b4 --- 2009-12-01 |
|
1281 ---------------------------- |
|
1282 |
|
1283 - Branch coverage improvements: |
|
1284 |
|
1285 - The XML report now includes branch information. |
|
1286 |
|
1287 - Click-to-sort HTML report columns are now persisted in a cookie. Viewing |
|
1288 a report will sort it first the way you last had a coverage report sorted. |
|
1289 Thanks, `Chris Adams`_. |
|
1290 |
|
1291 - On Python 3.x, setuptools has been replaced by `Distribute`_. |
|
1292 |
|
1293 .. _Distribute: http://packages.python.org/distribute/ |
|
1294 |
|
1295 |
|
1296 Version 3.2b3 --- 2009-11-23 |
|
1297 ---------------------------- |
|
1298 |
|
1299 - Fixed a memory leak in the C tracer that was introduced in 3.2b1. |
|
1300 |
|
1301 - Branch coverage improvements: |
|
1302 |
|
1303 - Branches to excluded code are ignored. |
|
1304 |
|
1305 - The table of contents in the HTML report is now sortable: click the headers |
|
1306 on any column. Thanks, `Chris Adams`_. |
|
1307 |
|
1308 .. _Chris Adams: http://improbable.org/chris/ |
|
1309 |
|
1310 |
|
1311 Version 3.2b2 --- 2009-11-19 |
|
1312 ---------------------------- |
|
1313 |
|
1314 - Branch coverage improvements: |
|
1315 |
|
1316 - Classes are no longer incorrectly marked as branches: `issue 32`_. |
|
1317 |
|
1318 - "except" clauses with types are no longer incorrectly marked as branches: |
|
1319 `issue 35`_. |
|
1320 |
|
1321 - Fixed some problems syntax coloring sources with line continuations and |
|
1322 source with tabs: `issue 30`_ and `issue 31`_. |
|
1323 |
|
1324 - The --omit option now works much better than before, fixing `issue 14`_ and |
|
1325 `issue 33`_. Thanks, Danek Duvall. |
|
1326 |
|
1327 .. _issue 14: http://bitbucket.org/ned/coveragepy/issue/14 |
|
1328 .. _issue 30: http://bitbucket.org/ned/coveragepy/issue/30 |
|
1329 .. _issue 31: http://bitbucket.org/ned/coveragepy/issue/31 |
|
1330 .. _issue 32: http://bitbucket.org/ned/coveragepy/issue/32 |
|
1331 .. _issue 33: http://bitbucket.org/ned/coveragepy/issue/33 |
|
1332 .. _issue 35: http://bitbucket.org/ned/coveragepy/issue/35 |
|
1333 |
|
1334 |
|
1335 Version 3.2b1 --- 2009-11-10 |
|
1336 ---------------------------- |
|
1337 |
|
1338 - Branch coverage! |
|
1339 |
|
1340 - XML reporting has file paths that let Cobertura find the source code. |
|
1341 |
|
1342 - The tracer code has changed, it's a few percent faster. |
|
1343 |
|
1344 - Some exceptions reported by the command line interface have been cleaned up |
|
1345 so that tracebacks inside coverage.py aren't shown. Fixes `issue 23`_. |
|
1346 |
|
1347 .. _issue 23: http://bitbucket.org/ned/coveragepy/issue/23 |
|
1348 |
|
1349 |
|
1350 Version 3.1 --- 2009-10-04 |
|
1351 -------------------------- |
|
1352 |
|
1353 - Source code can now be read from eggs. Thanks, Ross Lawley. Fixes |
|
1354 `issue 25`_. |
|
1355 |
|
1356 .. _issue 25: http://bitbucket.org/ned/coveragepy/issue/25 |
|
1357 |
|
1358 |
|
1359 Version 3.1b1 --- 2009-09-27 |
|
1360 ---------------------------- |
|
1361 |
|
1362 - Python 3.1 is now supported. |
|
1363 |
|
1364 - Coverage.py has a new command line syntax with sub-commands. This expands |
|
1365 the possibilities for adding features and options in the future. The old |
|
1366 syntax is still supported. Try "coverage help" to see the new commands. |
|
1367 Thanks to Ben Finney for early help. |
|
1368 |
|
1369 - Added an experimental "coverage xml" command for producing coverage reports |
|
1370 in a Cobertura-compatible XML format. Thanks, Bill Hart. |
|
1371 |
|
1372 - Added the --timid option to enable a simpler slower trace function that works |
|
1373 for DecoratorTools projects, including TurboGears. Fixed `issue 12`_ and |
|
1374 `issue 13`_. |
|
1375 |
|
1376 - HTML reports show modules from other directories. Fixed `issue 11`_. |
|
1377 |
|
1378 - HTML reports now display syntax-colored Python source. |
|
1379 |
|
1380 - Programs that change directory will still write .coverage files in the |
|
1381 directory where execution started. Fixed `issue 24`_. |
|
1382 |
|
1383 - Added a "coverage debug" command for getting diagnostic information about the |
|
1384 coverage.py installation. |
|
1385 |
|
1386 .. _issue 11: http://bitbucket.org/ned/coveragepy/issue/11 |
|
1387 .. _issue 12: http://bitbucket.org/ned/coveragepy/issue/12 |
|
1388 .. _issue 13: http://bitbucket.org/ned/coveragepy/issue/13 |
|
1389 .. _issue 24: http://bitbucket.org/ned/coveragepy/issue/24 |
|
1390 |
|
1391 |
|
1392 Version 3.0.1 --- 2009-07-07 |
|
1393 ---------------------------- |
|
1394 |
|
1395 - Removed the recursion limit in the tracer function. Previously, code that |
|
1396 ran more than 500 frames deep would crash. Fixed `issue 9`_. |
|
1397 |
|
1398 - Fixed a bizarre problem involving pyexpat, whereby lines following XML parser |
|
1399 invocations could be overlooked. Fixed `issue 10`_. |
|
1400 |
|
1401 - On Python 2.3, coverage.py could mis-measure code with exceptions being |
|
1402 raised. This is now fixed. |
|
1403 |
|
1404 - The coverage.py code itself will now not be measured by coverage.py, and no |
|
1405 coverage.py modules will be mentioned in the nose --with-cover plug-in. |
|
1406 Fixed `issue 8`_. |
|
1407 |
|
1408 - When running source files, coverage.py now opens them in universal newline |
|
1409 mode just like Python does. This lets it run Windows files on Mac, for |
|
1410 example. |
|
1411 |
|
1412 .. _issue 9: http://bitbucket.org/ned/coveragepy/issue/9 |
|
1413 .. _issue 10: http://bitbucket.org/ned/coveragepy/issue/10 |
|
1414 .. _issue 8: http://bitbucket.org/ned/coveragepy/issue/8 |
|
1415 |
|
1416 |
|
1417 Version 3.0 --- 2009-06-13 |
|
1418 -------------------------- |
|
1419 |
|
1420 - Fixed the way the Python library was ignored. Too much code was being |
|
1421 excluded the old way. |
|
1422 |
|
1423 - Tabs are now properly converted in HTML reports. Previously indentation was |
|
1424 lost. Fixed `issue 6`_. |
|
1425 |
|
1426 - Nested modules now get a proper flat_rootname. Thanks, Christian Heimes. |
|
1427 |
|
1428 .. _issue 6: http://bitbucket.org/ned/coveragepy/issue/6 |
|
1429 |
|
1430 |
|
1431 Version 3.0b3 --- 2009-05-16 |
|
1432 ---------------------------- |
|
1433 |
|
1434 - Added parameters to coverage.__init__ for options that had been set on the |
|
1435 coverage object itself. |
|
1436 |
|
1437 - Added clear_exclude() and get_exclude_list() methods for programmatic |
|
1438 manipulation of the exclude regexes. |
|
1439 |
|
1440 - Added coverage.load() to read previously-saved data from the data file. |
|
1441 |
|
1442 - Improved the finding of code files. For example, .pyc files that have been |
|
1443 installed after compiling are now located correctly. Thanks, Detlev |
|
1444 Offenbach. |
|
1445 |
|
1446 - When using the object API (that is, constructing a coverage() object), data |
|
1447 is no longer saved automatically on process exit. You can re-enable it with |
|
1448 the auto_data=True parameter on the coverage() constructor. The module-level |
|
1449 interface still uses automatic saving. |
|
1450 |
|
1451 |
|
1452 Version 3.0b --- 2009-04-30 |
|
1453 --------------------------- |
|
1454 |
|
1455 HTML reporting, and continued refactoring. |
|
1456 |
|
1457 - HTML reports and annotation of source files: use the new -b (browser) switch. |
|
1458 Thanks to George Song for code, inspiration and guidance. |
|
1459 |
|
1460 - Code in the Python standard library is not measured by default. If you need |
|
1461 to measure standard library code, use the -L command-line switch during |
|
1462 execution, or the cover_pylib=True argument to the coverage() constructor. |
|
1463 |
|
1464 - Source annotation into a directory (-a -d) behaves differently. The |
|
1465 annotated files are named with their hierarchy flattened so that same-named |
|
1466 files from different directories no longer collide. Also, only files in the |
|
1467 current tree are included. |
|
1468 |
|
1469 - coverage.annotate_file is no longer available. |
|
1470 |
|
1471 - Programs executed with -x now behave more as they should, for example, |
|
1472 __file__ has the correct value. |
|
1473 |
|
1474 - .coverage data files have a new pickle-based format designed for better |
|
1475 extensibility. |
|
1476 |
|
1477 - Removed the undocumented cache_file argument to coverage.usecache(). |
|
1478 |
|
1479 |
|
1480 Version 3.0b1 --- 2009-03-07 |
|
1481 ---------------------------- |
|
1482 |
|
1483 Major overhaul. |
|
1484 |
|
1485 - Coverage.py is now a package rather than a module. Functionality has been |
|
1486 split into classes. |
|
1487 |
|
1488 - The trace function is implemented in C for speed. Coverage.py runs are now |
|
1489 much faster. Thanks to David Christian for productive micro-sprints and |
|
1490 other encouragement. |
|
1491 |
|
1492 - Executable lines are identified by reading the line number tables in the |
|
1493 compiled code, removing a great deal of complicated analysis code. |
|
1494 |
|
1495 - Precisely which lines are considered executable has changed in some cases. |
|
1496 Therefore, your coverage stats may also change slightly. |
|
1497 |
|
1498 - The singleton coverage object is only created if the module-level functions |
|
1499 are used. This maintains the old interface while allowing better |
|
1500 programmatic use of Coverage.py. |
|
1501 |
|
1502 - The minimum supported Python version is 2.3. |
|
1503 |
|
1504 |
|
1505 Version 2.85 --- 2008-09-14 |
|
1506 --------------------------- |
|
1507 |
|
1508 - Add support for finding source files in eggs. Don't check for |
|
1509 morf's being instances of ModuleType, instead use duck typing so that |
|
1510 pseudo-modules can participate. Thanks, Imri Goldberg. |
|
1511 |
|
1512 - Use os.realpath as part of the fixing of file names so that symlinks won't |
|
1513 confuse things. Thanks, Patrick Mezard. |
|
1514 |
|
1515 |
|
1516 Version 2.80 --- 2008-05-25 |
|
1517 --------------------------- |
|
1518 |
|
1519 - Open files in rU mode to avoid line ending craziness. Thanks, Edward Loper. |
|
1520 |
|
1521 |
|
1522 Version 2.78 --- 2007-09-30 |
|
1523 --------------------------- |
|
1524 |
|
1525 - Don't try to predict whether a file is Python source based on the extension. |
|
1526 Extension-less files are often Pythons scripts. Instead, simply parse the file |
|
1527 and catch the syntax errors. Hat tip to Ben Finney. |
|
1528 |
|
1529 |
|
1530 Version 2.77 --- 2007-07-29 |
|
1531 --------------------------- |
|
1532 |
|
1533 - Better packaging. |
|
1534 |
|
1535 |
|
1536 Version 2.76 --- 2007-07-23 |
|
1537 --------------------------- |
|
1538 |
|
1539 - Now Python 2.5 is *really* fully supported: the body of the new with |
|
1540 statement is counted as executable. |
|
1541 |
|
1542 |
|
1543 Version 2.75 --- 2007-07-22 |
|
1544 --------------------------- |
|
1545 |
|
1546 - Python 2.5 now fully supported. The method of dealing with multi-line |
|
1547 statements is now less sensitive to the exact line that Python reports during |
|
1548 execution. Pass statements are handled specially so that their disappearance |
|
1549 during execution won't throw off the measurement. |
|
1550 |
|
1551 |
|
1552 Version 2.7 --- 2007-07-21 |
|
1553 -------------------------- |
|
1554 |
|
1555 - "#pragma: nocover" is excluded by default. |
|
1556 |
|
1557 - Properly ignore docstrings and other constant expressions that appear in the |
|
1558 middle of a function, a problem reported by Tim Leslie. |
|
1559 |
|
1560 - coverage.erase() shouldn't clobber the exclude regex. Change how parallel |
|
1561 mode is invoked, and fix erase() so that it erases the cache when called |
|
1562 programmatically. |
|
1563 |
|
1564 - In reports, ignore code executed from strings, since we can't do anything |
|
1565 useful with it anyway. |
|
1566 |
|
1567 - Better file handling on Linux, thanks Guillaume Chazarain. |
|
1568 |
|
1569 - Better shell support on Windows, thanks Noel O'Boyle. |
|
1570 |
|
1571 - Python 2.2 support maintained, thanks Catherine Proulx. |
|
1572 |
|
1573 - Minor changes to avoid lint warnings. |
|
1574 |
|
1575 |
|
1576 Version 2.6 --- 2006-08-23 |
|
1577 -------------------------- |
|
1578 |
|
1579 - Applied Joseph Tate's patch for function decorators. |
|
1580 |
|
1581 - Applied Sigve Tjora and Mark van der Wal's fixes for argument handling. |
|
1582 |
|
1583 - Applied Geoff Bache's parallel mode patch. |
|
1584 |
|
1585 - Refactorings to improve testability. Fixes to command-line logic for parallel |
|
1586 mode and collect. |
|
1587 |
|
1588 |
|
1589 Version 2.5 --- 2005-12-04 |
|
1590 -------------------------- |
|
1591 |
|
1592 - Call threading.settrace so that all threads are measured. Thanks Martin |
|
1593 Fuzzey. |
|
1594 |
|
1595 - Add a file argument to report so that reports can be captured to a different |
|
1596 destination. |
|
1597 |
|
1598 - Coverage.py can now measure itself. |
|
1599 |
|
1600 - Adapted Greg Rogers' patch for using relative file names, and sorting and |
|
1601 omitting files to report on. |
|
1602 |
|
1603 |
|
1604 Version 2.2 --- 2004-12-31 |
|
1605 -------------------------- |
|
1606 |
|
1607 - Allow for keyword arguments in the module global functions. Thanks, Allen. |
|
1608 |
|
1609 |
|
1610 Version 2.1 --- 2004-12-14 |
|
1611 -------------------------- |
|
1612 |
|
1613 - Return 'analysis' to its original behavior and add 'analysis2'. Add a global |
|
1614 for 'annotate', and factor it, adding 'annotate_file'. |
|
1615 |
|
1616 |
|
1617 Version 2.0 --- 2004-12-12 |
|
1618 -------------------------- |
|
1619 |
|
1620 Significant code changes. |
|
1621 |
|
1622 - Finding executable statements has been rewritten so that docstrings and |
|
1623 other quirks of Python execution aren't mistakenly identified as missing |
|
1624 lines. |
|
1625 |
|
1626 - Lines can be excluded from consideration, even entire suites of lines. |
|
1627 |
|
1628 - The file system cache of covered lines can be disabled programmatically. |
|
1629 |
|
1630 - Modernized the code. |
|
1631 |
|
1632 |
|
1633 Earlier History |
|
1634 --------------- |
|
1635 |
|
1636 2001-12-04 GDR Created. |
|
1637 |
|
1638 2001-12-06 GDR Added command-line interface and source code annotation. |
|
1639 |
|
1640 2001-12-09 GDR Moved design and interface to separate documents. |
|
1641 |
|
1642 2001-12-10 GDR Open cache file as binary on Windows. Allow simultaneous -e and |
|
1643 -x, or -a and -r. |
|
1644 |
|
1645 2001-12-12 GDR Added command-line help. Cache analysis so that it only needs to |
|
1646 be done once when you specify -a and -r. |
|
1647 |
|
1648 2001-12-13 GDR Improved speed while recording. Portable between Python 1.5.2 |
|
1649 and 2.1.1. |
|
1650 |
|
1651 2002-01-03 GDR Module-level functions work correctly. |
|
1652 |
|
1653 2002-01-07 GDR Update sys.path when running a file with the -x option, so that |
|
1654 it matches the value the program would get if it were run on its own. |
|