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