OLD | NEW |
| 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.0 --- 20 September 2015 |
| 10 --------------------------------- |
| 11 |
| 12 No changes from 4.0b3 |
| 13 |
| 14 |
| 15 Version 4.0b3 --- 7 September 2015 |
| 16 ---------------------------------- |
| 17 |
| 18 - Reporting on an unmeasured file would fail with a traceback. This is now |
| 19 fixed, closing `issue 403`_. |
| 20 |
| 21 - The Jenkins ShiningPanda plugin looks for an obsolete file name to find the |
| 22 HTML reports to publish, so it was failing under coverage.py 4.0. Now we |
| 23 create that file if we are running under Jenkins, to keep things working |
| 24 smoothly. `issue 404`_. |
| 25 |
| 26 - Kits used to include tests and docs, but didn't install them anywhere, or |
| 27 provide all of the supporting tools to make them useful. Kits no longer |
| 28 include tests and docs. If you were using them from the older packages, get |
| 29 in touch and help me understand how. |
| 30 |
| 31 .. _issue 403: https://bitbucket.org/ned/coveragepy/issues/403/hasherupdate-fail
s-with-typeerror-nonetype |
| 32 .. _issue 404: https://bitbucket.org/ned/coveragepy/issues/404/shiningpanda-jenk
ins-plugin-cant-find-html |
| 33 |
| 34 |
| 35 |
| 36 Version 4.0b2 --- 22 August 2015 |
| 37 -------------------------------- |
| 38 |
| 39 - 4.0b1 broke --append creating new data files. This is now fixed, closing |
| 40 `issue 392`_. |
| 41 |
| 42 - ``py.test --cov`` can write empty data, then touch files due to ``--source``, |
| 43 which made coverage.py mistakenly force the data file to record lines instead |
| 44 of arcs. This would lead to a "Can't combine line data with arc data" error |
| 45 message. This is now fixed, and changed some method names in the |
| 46 CoverageData interface. Fixes `issue 399`_. |
| 47 |
| 48 - `CoverageData.read_fileobj` and `CoverageData.write_fileobj` replace the |
| 49 `.read` and `.write` methods, and are now properly inverses of each other. |
| 50 |
| 51 - When using ``report --skip-covered``, a message will now be included in the |
| 52 report output indicating how many files were skipped, and if all files are |
| 53 skipped, coverage.py won't accidentally scold you for having no data to |
| 54 report. Thanks, Krystian Kichewko. |
| 55 |
| 56 - A new conversion utility has been added: ``python -m coverage.pickle2json`` |
| 57 will convert v3.x pickle data files to v4.x JSON data files. Thanks, |
| 58 Alexander Todorov. Closes `issue 395`_. |
| 59 |
| 60 - A new version identifier is available, `coverage.version_info`, a plain tuple |
| 61 of values similar to `sys.version_info`_. |
| 62 |
| 63 .. _issue 392: https://bitbucket.org/ned/coveragepy/issues/392/run-append-doesnt
-create-coverage-file |
| 64 .. _issue 395: https://bitbucket.org/ned/coveragepy/issues/395/rfe-read-pickled-
files-as-well-for |
| 65 .. _issue 399: https://bitbucket.org/ned/coveragepy/issues/399/coverageexception
-cant-combine-line-data |
| 66 .. _sys.version_info: https://docs.python.org/3/library/sys.html#sys.version_inf
o |
| 67 |
| 68 |
| 69 Version 4.0b1 --- 2 August 2015 |
| 70 ------------------------------- |
| 71 |
| 72 - Coverage.py is now licensed under the Apache 2.0 license. See NOTICE.txt for |
| 73 details. Closes `issue 313`_. |
| 74 |
| 75 - The data storage has been completely revamped. The data file is now |
| 76 JSON-based instead of a pickle, closing `issue 236`_. The `CoverageData` |
| 77 class is now a public supported documented API to the data file. |
| 78 |
| 79 - A new configuration option, ``[run] note``, lets you set a note that will be |
| 80 stored in the `runs` section of the data file. You can use this to annotate |
| 81 the data file with any information you like. |
| 82 |
| 83 - Unrecognized configuration options will now print an error message and stop |
| 84 coverage.py. This should help prevent configuration mistakes from passing |
| 85 silently. Finishes `issue 386`_. |
| 86 |
| 87 - In parallel mode, ``coverage erase`` will now delete all of the data files, |
| 88 fixing `issue 262`_. |
| 89 |
| 90 - Coverage.py now accepts a directory name for ``coverage run`` and will run a |
| 91 ``__main__.py`` found there, just like Python will. Fixes `issue 252`_. |
| 92 Thanks, Dmitry Trofimov. |
| 93 |
| 94 - The XML report now includes a ``missing-branches`` attribute. Thanks, Steve |
| 95 Peak. This is not a part of the Cobertura DTD, so the XML report no longer |
| 96 references the DTD. |
| 97 |
| 98 - Missing branches in the HTML report now have a bit more information in the |
| 99 right-hand annotations. Hopefully this will make their meaning clearer. |
| 100 |
| 101 - All the reporting functions now behave the same if no data had been |
| 102 collected, exiting with a status code of 1. Fixed ``fail_under`` to be |
| 103 applied even when the report is empty. Thanks, Ionel Cristian Mărieș. |
| 104 |
| 105 - Plugins are now initialized differently. Instead of looking for a class |
| 106 called ``Plugin``, coverage.py looks for a function called ``coverage_init``. |
| 107 |
| 108 - A file-tracing plugin can now ask to have built-in Python reporting by |
| 109 returning `"python"` from its `file_reporter()` method. |
| 110 |
| 111 - Code that was executed with `exec` would be mis-attributed to the file that |
| 112 called it. This is now fixed, closing `issue 380`_. |
| 113 |
| 114 - The ability to use item access on `Coverage.config` (introduced in 4.0a2) has |
| 115 been changed to a more explicit `Coverage.get_option` and |
| 116 `Coverage.set_option` API. |
| 117 |
| 118 - The ``Coverage.use_cache`` method is no longer supported. |
| 119 |
| 120 - The private method ``Coverage._harvest_data`` is now called |
| 121 ``Coverage.get_data``, and returns the ``CoverageData`` containing the |
| 122 collected data. |
| 123 |
| 124 - The project is consistently referred to as "coverage.py" throughout the code |
| 125 and the documentation, closing `issue 275`_. |
| 126 |
| 127 - Combining data files with an explicit configuration file was broken in 4.0a6, |
| 128 but now works again, closing `issue 385`_. |
| 129 |
| 130 - ``coverage combine`` now accepts files as well as directories. |
| 131 |
| 132 - The speed is back to 3.7.1 levels, after having slowed down due to plugin |
| 133 support, finishing up `issue 387`_. |
| 134 |
| 135 .. _issue 236: https://bitbucket.org/ned/coveragepy/issues/236/pickles-are-bad-a
nd-you-should-feel-bad |
| 136 .. _issue 252: https://bitbucket.org/ned/coveragepy/issues/252/coverage-wont-run
-a-program-with |
| 137 .. _issue 262: https://bitbucket.org/ned/coveragepy/issues/262/when-parallel-tru
e-erase-should-erase-all |
| 138 .. _issue 275: https://bitbucket.org/ned/coveragepy/issues/275/refer-consistentl
y-to-project-as-coverage |
| 139 .. _issue 313: https://bitbucket.org/ned/coveragepy/issues/313/add-license-file-
containing-2-3-or-4 |
| 140 .. _issue 380: https://bitbucket.org/ned/coveragepy/issues/380/code-executed-by-
exec-excluded-from |
| 141 .. _issue 385: https://bitbucket.org/ned/coveragepy/issues/385/coverage-combine-
doesnt-work-with-rcfile |
| 142 .. _issue 386: https://bitbucket.org/ned/coveragepy/issues/386/error-on-unrecogn
ised-configuration |
| 143 .. _issue 387: https://bitbucket.org/ned/coveragepy/issues/387/performance-degra
dation-from-371-to-40 |
| 144 |
| 145 .. 40 issues closed in 4.0 below here |
| 146 |
| 147 |
| 148 Version 4.0a6 --- 21 June 2015 |
1 ------------------------------ | 149 ------------------------------ |
2 Change history for Coverage.py | 150 |
3 ------------------------------ | 151 - Python 3.5b2 and PyPy 2.6.0 are supported. |
4 | 152 |
5 3.7.1 -- 13 December 2013 | 153 - The original module-level function interface to coverage.py is no longer |
6 ------------------------- | 154 supported. You must now create a ``coverage.Coverage`` object, and use |
| 155 methods on it. |
| 156 |
| 157 - The ``coverage combine`` command now accepts any number of directories as |
| 158 arguments, and will combine all the data files from those directories. This |
| 159 means you don't have to copy the files to one directory before combining. |
| 160 Thanks, Christine Lytwynec. Finishes `issue 354`_. |
| 161 |
| 162 - Branch coverage couldn't properly handle certain extremely long files. This |
| 163 is now fixed (`issue 359`_). |
| 164 |
| 165 - Branch coverage didn't understand yield statements properly. Mickie Betz |
| 166 persisted in pursuing this despite Ned's pessimism. Fixes `issue 308`_ and |
| 167 `issue 324`_. |
| 168 |
| 169 - The COVERAGE_DEBUG environment variable can be used to set the ``[run] debug`` |
| 170 configuration option to control what internal operations are logged. |
| 171 |
| 172 - HTML reports were truncated at formfeed characters. This is now fixed |
| 173 (`issue 360`_). It's always fun when the problem is due to a `bug in the |
| 174 Python standard library <http://bugs.python.org/issue19035>`_. |
| 175 |
| 176 - Files with incorrect encoding declaration comments are no longer ignored by |
| 177 the reporting commands, fixing `issue 351`_. |
| 178 |
| 179 - HTML reports now include a timestamp in the footer, closing `issue 299`_. |
| 180 Thanks, Conrad Ho. |
| 181 |
| 182 - HTML reports now begrudgingly use double-quotes rather than single quotes, |
| 183 because there are "software engineers" out there writing tools that read HTML |
| 184 and somehow have no idea that single quotes exist. Capitulates to the absurd |
| 185 `issue 361`_. Thanks, Jon Chappell. |
| 186 |
| 187 - The ``coverage annotate`` command now handles non-ASCII characters properly, |
| 188 closing `issue 363`_. Thanks, Leonardo Pistone. |
| 189 |
| 190 - Drive letters on Windows were not normalized correctly, now they are. Thanks, |
| 191 Ionel Cristian Mărieș. |
| 192 |
| 193 - Plugin support had some bugs fixed, closing `issue 374`_ and `issue 375`_. |
| 194 Thanks, Stefan Behnel. |
| 195 |
| 196 .. _issue 299: https://bitbucket.org/ned/coveragepy/issue/299/inserted-created-o
n-yyyy-mm-dd-hh-mm-in |
| 197 .. _issue 308: https://bitbucket.org/ned/coveragepy/issue/308/yield-lambda-branc
h-coverage |
| 198 .. _issue 324: https://bitbucket.org/ned/coveragepy/issue/324/yield-in-loop-conf
uses-branch-coverage |
| 199 .. _issue 351: https://bitbucket.org/ned/coveragepy/issue/351/files-with-incorre
ct-encoding-are-ignored |
| 200 .. _issue 354: https://bitbucket.org/ned/coveragepy/issue/354/coverage-combine-s
hould-take-a-list-of |
| 201 .. _issue 359: https://bitbucket.org/ned/coveragepy/issue/359/xml-report-chunk-e
rror |
| 202 .. _issue 360: https://bitbucket.org/ned/coveragepy/issue/360/html-reports-get-c
onfused-by-l-in-the-code |
| 203 .. _issue 361: https://bitbucket.org/ned/coveragepy/issue/361/use-double-quotes-
in-html-output-to |
| 204 .. _issue 363: https://bitbucket.org/ned/coveragepy/issue/363/annotate-command-h
its-unicode-happy-fun |
| 205 .. _issue 374: https://bitbucket.org/ned/coveragepy/issue/374/c-tracer-lookups-f
ail-in |
| 206 .. _issue 375: https://bitbucket.org/ned/coveragepy/issue/375/ctracer_handle_ret
urn-reads-byte-code |
| 207 |
| 208 |
| 209 Version 4.0a5 --- 16 February 2015 |
| 210 ---------------------------------- |
| 211 |
| 212 - Plugin support is now implemented in the C tracer instead of the Python |
| 213 tracer. This greatly improves the speed of tracing projects using plugins. |
| 214 |
| 215 - Coverage.py now always adds the current directory to sys.path, so that |
| 216 plugins can import files in the current directory (`issue 358`_). |
| 217 |
| 218 - If the `config_file` argument to the Coverage constructor is specified as |
| 219 ".coveragerc", it is treated as if it were True. This means setup.cfg is |
| 220 also examined, and a missing file is not considered an error (`issue 357`_). |
| 221 |
| 222 - Wildly experimental: support for measuring processes started by the |
| 223 multiprocessing module. To use, set ``--concurrency=multiprocessing``, |
| 224 either on the command line or in the .coveragerc file (`issue 117`_). Thanks, |
| 225 Eduardo Schettino. Currently, this does not work on Windows. |
| 226 |
| 227 - A new warning is possible, if a desired file isn't measured because it was |
| 228 imported before coverage.py was started (`issue 353`_). |
| 229 |
| 230 - The `coverage.process_startup` function now will start coverage measurement |
| 231 only once, no matter how many times it is called. This fixes problems due |
| 232 to unusual virtualenv configurations (`issue 340`_). |
| 233 |
| 234 - Added 3.5.0a1 to the list of supported CPython versions. |
| 235 |
| 236 .. _issue 117: https://bitbucket.org/ned/coveragepy/issue/117/enable-coverage-me
asurement-of-code-run-by |
| 237 .. _issue 340: https://bitbucket.org/ned/coveragepy/issue/340/keyerror-subpy |
| 238 .. _issue 353: https://bitbucket.org/ned/coveragepy/issue/353/40a3-introduces-an
-unexpected-third-case |
| 239 .. _issue 357: https://bitbucket.org/ned/coveragepy/issue/357/behavior-changed-w
hen-coveragerc-is |
| 240 .. _issue 358: https://bitbucket.org/ned/coveragepy/issue/358/all-coverage-comma
nds-should-adjust |
| 241 |
| 242 |
| 243 Version 4.0a4 --- 25 January 2015 |
| 244 --------------------------------- |
| 245 |
| 246 - Plugins can now provide sys_info for debugging output. |
| 247 |
| 248 - Started plugins documentation. |
| 249 |
| 250 - Prepared to move the docs to readthedocs.org. |
| 251 |
| 252 |
| 253 Version 4.0a3 --- 20 January 2015 |
| 254 --------------------------------- |
| 255 |
| 256 - Reports now use file names with extensions. Previously, a report would |
| 257 describe a/b/c.py as "a/b/c". Now it is shown as "a/b/c.py". This allows |
| 258 for better support of non-Python files, and also fixed `issue 69`_. |
| 259 |
| 260 - The XML report now reports each directory as a package again. This was a bad |
| 261 regression, I apologize. This was reported in `issue 235`_, which is now |
| 262 fixed. |
| 263 |
| 264 - A new configuration option for the XML report: ``[xml] package_depth`` |
| 265 controls which directories are identified as packages in the report. |
| 266 Directories deeper than this depth are not reported as packages. |
| 267 The default is that all directories are reported as packages. |
| 268 Thanks, Lex Berezhny. |
| 269 |
| 270 - When looking for the source for a frame, check if the file exists. On |
| 271 Windows, .pyw files are no longer recorded as .py files. Along the way, this |
| 272 fixed `issue 290`_. |
| 273 |
| 274 - Empty files are now reported as 100% covered in the XML report, not 0% |
| 275 covered (`issue 345`_). |
| 276 |
| 277 - Regexes in the configuration file are now compiled as soon as they are read, |
| 278 to provide error messages earlier (`issue 349`_). |
| 279 |
| 280 .. _issue 69: https://bitbucket.org/ned/coveragepy/issue/69/coverage-html-overwr
ite-files-that-doesnt |
| 281 .. _issue 235: https://bitbucket.org/ned/coveragepy/issue/235/package-name-is-mi
ssing-in-xml-report |
| 282 .. _issue 290: https://bitbucket.org/ned/coveragepy/issue/290/running-programmat
ically-with-pyw-files |
| 283 .. _issue 345: https://bitbucket.org/ned/coveragepy/issue/345/xml-reports-line-r
ate-0-for-empty-files |
| 284 .. _issue 349: https://bitbucket.org/ned/coveragepy/issue/349/bad-regex-in-confi
g-should-get-an-earlier |
| 285 |
| 286 |
| 287 Version 4.0a2 --- 14 January 2015 |
| 288 --------------------------------- |
| 289 |
| 290 - Officially support PyPy 2.4, and PyPy3 2.4. Drop support for |
| 291 CPython 3.2 and older versions of PyPy. The code won't work on CPython 3.2. |
| 292 It will probably still work on older versions of PyPy, but I'm not testing |
| 293 against them. |
| 294 |
| 295 - Plugins! |
| 296 |
| 297 - The original command line switches (`-x` to run a program, etc) are no |
| 298 longer supported. |
| 299 |
| 300 - A new option: `coverage report --skip-covered` will reduce the number of |
| 301 files reported by skipping files with 100% coverage. Thanks, Krystian |
| 302 Kichewko. This means that empty `__init__.py` files will be skipped, since |
| 303 they are 100% covered, closing `issue 315`_. |
| 304 |
| 305 - You can now specify the ``--fail-under`` option in the ``.coveragerc`` file |
| 306 as the ``[report] fail_under`` option. This closes `issue 314`_. |
| 307 |
| 308 - The ``COVERAGE_OPTIONS`` environment variable is no longer supported. It was |
| 309 a hack for ``--timid`` before configuration files were available. |
| 310 |
| 311 - The HTML report now has filtering. Type text into the Filter box on the |
| 312 index page, and only modules with that text in the name will be shown. |
| 313 Thanks, Danny Allen. |
| 314 |
| 315 - The textual report and the HTML report used to report partial branches |
| 316 differently for no good reason. Now the text report's "missing branches" |
| 317 column is a "partial branches" column so that both reports show the same |
| 318 numbers. This closes `issue 342`_. |
| 319 |
| 320 - If you specify a ``--rcfile`` that cannot be read, you will get an error |
| 321 message. Fixes `issue 343`_. |
| 322 |
| 323 - The ``--debug`` switch can now be used on any command. |
| 324 |
| 325 - You can now programmatically adjust the configuration of coverage.py by |
| 326 setting items on `Coverage.config` after construction. |
| 327 |
| 328 - A module run with ``-m`` can be used as the argument to ``--source``, fixing |
| 329 `issue 328`_. Thanks, Buck Evan. |
| 330 |
| 331 - The regex for matching exclusion pragmas has been fixed to allow more kinds |
| 332 of whitespace, fixing `issue 334`_. |
| 333 |
| 334 - Made some PyPy-specific tweaks to improve speed under PyPy. Thanks, Alex |
| 335 Gaynor. |
| 336 |
| 337 - In some cases, with a source file missing a final newline, coverage.py would |
| 338 count statements incorrectly. This is now fixed, closing `issue 293`_. |
| 339 |
| 340 - The status.dat file that HTML reports use to avoid re-creating files that |
| 341 haven't changed is now a JSON file instead of a pickle file. This obviates |
| 342 `issue 287`_ and `issue 237`_. |
| 343 |
| 344 .. _issue 237: https://bitbucket.org/ned/coveragepy/issue/237/htmlcov-with-corru
pt-statusdat |
| 345 .. _issue 287: https://bitbucket.org/ned/coveragepy/issue/287/htmlpy-doesnt-spec
ify-pickle-protocol |
| 346 .. _issue 293: https://bitbucket.org/ned/coveragepy/issue/293/number-of-statemen
t-detection-wrong-if-no |
| 347 .. _issue 314: https://bitbucket.org/ned/coveragepy/issue/314/fail_under-param-n
ot-working-in-coveragerc |
| 348 .. _issue 315: https://bitbucket.org/ned/coveragepy/issue/315/option-to-omit-emp
ty-files-eg-__init__py |
| 349 .. _issue 328: https://bitbucket.org/ned/coveragepy/issue/328/misbehavior-in-run
-source |
| 350 .. _issue 334: https://bitbucket.org/ned/coveragepy/issue/334/pragma-not-recogni
zed-if-tab-character |
| 351 .. _issue 342: https://bitbucket.org/ned/coveragepy/issue/342/console-and-html-c
overage-reports-differ |
| 352 .. _issue 343: https://bitbucket.org/ned/coveragepy/issue/343/an-explicitly-name
d-non-existent-config |
| 353 |
| 354 |
| 355 Version 4.0a1 --- 27 September 2014 |
| 356 ----------------------------------- |
| 357 |
| 358 - Python versions supported are now CPython 2.6, 2.7, 3.2, 3.3, and 3.4, and |
| 359 PyPy 2.2. |
| 360 |
| 361 - Gevent, eventlet, and greenlet are now supported, closing `issue 149`_. |
| 362 The ``concurrency`` setting specifies the concurrency library in use. Huge |
| 363 thanks to Peter Portante for initial implementation, and to Joe Jevnik for |
| 364 the final insight that completed the work. |
| 365 |
| 366 - Options are now also read from a setup.cfg file, if any. Sections are |
| 367 prefixed with "coverage:", so the ``[run]`` options will be read from the |
| 368 ``[coverage:run]`` section of setup.cfg. Finishes `issue 304`_. |
| 369 |
| 370 - The ``report -m`` command can now show missing branches when reporting on |
| 371 branch coverage. Thanks, Steve Leonard. Closes `issue 230`_. |
| 372 |
| 373 - The XML report now contains a <source> element, fixing `issue 94`_. Thanks |
| 374 Stan Hu. |
| 375 |
| 376 - The class defined in the coverage module is now called ``Coverage`` instead |
| 377 of ``coverage``, though the old name still works, for backward compatibility. |
| 378 |
| 379 - The ``fail-under`` value is now rounded the same as reported results, |
| 380 preventing paradoxical results, fixing `issue 284`_. |
| 381 |
| 382 - The XML report will now create the output directory if need be, fixing |
| 383 `issue 285`_. Thanks, Chris Rose. |
| 384 |
| 385 - HTML reports no longer raise UnicodeDecodeError if a Python file has |
| 386 undecodable characters, fixing `issue 303`_ and `issue 331`_. |
| 387 |
| 388 - The annotate command will now annotate all files, not just ones relative to |
| 389 the current directory, fixing `issue 57`_. |
| 390 |
| 391 - The coverage module no longer causes deprecation warnings on Python 3.4 by |
| 392 importing the imp module, fixing `issue 305`_. |
| 393 |
| 394 - Encoding declarations in source files are only considered if they are truly |
| 395 comments. Thanks, Anthony Sottile. |
| 396 |
| 397 .. _issue 57: https://bitbucket.org/ned/coveragepy/issue/57/annotate-command-fai
ls-to-annotate-many |
| 398 .. _issue 94: https://bitbucket.org/ned/coveragepy/issue/94/coverage-xml-doesnt-
produce-sources |
| 399 .. _issue 149: https://bitbucket.org/ned/coveragepy/issue/149/coverage-gevent-lo
oks-broken |
| 400 .. _issue 230: https://bitbucket.org/ned/coveragepy/issue/230/show-line-no-for-m
issing-branches-in |
| 401 .. _issue 284: https://bitbucket.org/ned/coveragepy/issue/284/fail-under-should-
show-more-precision |
| 402 .. _issue 285: https://bitbucket.org/ned/coveragepy/issue/285/xml-report-fails-i
f-output-file-directory |
| 403 .. _issue 303: https://bitbucket.org/ned/coveragepy/issue/303/unicodedecodeerror |
| 404 .. _issue 304: https://bitbucket.org/ned/coveragepy/issue/304/attempt-to-get-con
figuration-from-setupcfg |
| 405 .. _issue 305: https://bitbucket.org/ned/coveragepy/issue/305/pendingdeprecation
warning-the-imp-module |
| 406 .. _issue 331: https://bitbucket.org/ned/coveragepy/issue/331/failure-of-encodin
g-detection-on-python2 |
| 407 |
| 408 |
| 409 Version 3.7.1 --- 13 December 2013 |
| 410 ---------------------------------- |
7 | 411 |
8 - Improved the speed of HTML report generation by about 20%. | 412 - Improved the speed of HTML report generation by about 20%. |
9 | 413 |
10 - Fixed the mechanism for finding OS-installed static files for the HTML report | 414 - Fixed the mechanism for finding OS-installed static files for the HTML report |
11 so that it will actually find OS-installed static files. | 415 so that it will actually find OS-installed static files. |
12 | 416 |
13 | 417 |
14 3.7 --- 6 October 2013 | 418 Version 3.7 --- 6 October 2013 |
15 ---------------------- | 419 ------------------------------ |
16 | 420 |
17 - Added the ``--debug`` switch to ``coverage run``. It accepts a list of | 421 - Added the ``--debug`` switch to ``coverage run``. It accepts a list of |
18 options indicating the type of internal activity to log to stderr. | 422 options indicating the type of internal activity to log to stderr. |
19 | 423 |
20 - Improved the branch coverage facility, fixing `issue 92`_ and `issue 175`_. | 424 - Improved the branch coverage facility, fixing `issue 92`_ and `issue 175`_. |
21 | 425 |
22 - Running code with ``coverage run -m`` now behaves more like Python does, | 426 - Running code with ``coverage run -m`` now behaves more like Python does, |
23 setting sys.path properly, which fixes `issue 207`_ and `issue 242`_. | 427 setting sys.path properly, which fixes `issue 207`_ and `issue 242`_. |
24 | 428 |
25 - Coverage can now run .pyc files directly, closing `issue 264`_. | 429 - Coverage.py can now run .pyc files directly, closing `issue 264`_. |
26 | 430 |
27 - Coverage properly supports .pyw files, fixing `issue 261`_. | 431 - Coverage.py properly supports .pyw files, fixing `issue 261`_. |
28 | 432 |
29 - Omitting files within a tree specified with the ``source`` option would | 433 - Omitting files within a tree specified with the ``source`` option would |
30 cause them to be incorrectly marked as unexecuted, as described in | 434 cause them to be incorrectly marked as unexecuted, as described in |
31 `issue 218`_. This is now fixed. | 435 `issue 218`_. This is now fixed. |
32 | 436 |
33 - When specifying paths to alias together during data combining, you can now | 437 - When specifying paths to alias together during data combining, you can now |
34 specify relative paths, fixing `issue 267`_. | 438 specify relative paths, fixing `issue 267`_. |
35 | 439 |
36 - Most file paths can now be specified with username expansion (``~/src``, or | 440 - Most file paths can now be specified with username expansion (``~/src``, or |
37 ``~build/src``, for example), and with environment variable expansion | 441 ``~build/src``, for example), and with environment variable expansion |
38 (``build/$BUILDNUM/src``). | 442 (``build/$BUILDNUM/src``). |
39 | 443 |
40 - Trying to create an XML report with no files to report on, would cause a | 444 - Trying to create an XML report with no files to report on, would cause a |
41 ZeroDivideError, but no longer does, fixing `issue 250`_. | 445 ZeroDivideError, but no longer does, fixing `issue 250`_. |
42 | 446 |
43 - When running a threaded program under the Python tracer, coverage no longer | 447 - When running a threaded program under the Python tracer, coverage.py no |
44 issues a spurious warning about the trace function changing: "Trace function | 448 longer issues a spurious warning about the trace function changing: "Trace |
45 changed, measurement is likely wrong: None." This fixes `issue 164`_. | 449 function changed, measurement is likely wrong: None." This fixes `issue |
| 450 164`_. |
46 | 451 |
47 - Static files necessary for HTML reports are found in system-installed places, | 452 - Static files necessary for HTML reports are found in system-installed places, |
48 to ease OS-level packaging of coverage.py. Closes `issue 259`_. | 453 to ease OS-level packaging of coverage.py. Closes `issue 259`_. |
49 | 454 |
50 - Source files with encoding declarations, but a blank first line, were not | 455 - Source files with encoding declarations, but a blank first line, were not |
51 decoded properly. Now they are. Thanks, Roger Hu. | 456 decoded properly. Now they are. Thanks, Roger Hu. |
52 | 457 |
53 - The source kit now includes the ``__main__.py`` file in the root coverage | 458 - The source kit now includes the ``__main__.py`` file in the root coverage |
54 directory, fixing `issue 255`_. | 459 directory, fixing `issue 255`_. |
55 | 460 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 | 497 |
93 - The C extension is optionally compiled using a different more widely-used | 498 - The C extension is optionally compiled using a different more widely-used |
94 technique, taking another stab at fixing `issue 80`_ once and for all. | 499 technique, taking another stab at fixing `issue 80`_ once and for all. |
95 | 500 |
96 - Combining data files would create entries for phantom files if used with | 501 - Combining data files would create entries for phantom files if used with |
97 ``source`` and path aliases. It no longer does. | 502 ``source`` and path aliases. It no longer does. |
98 | 503 |
99 - ``debug sys`` now shows the configuration file path that was read. | 504 - ``debug sys`` now shows the configuration file path that was read. |
100 | 505 |
101 - If an oddly-behaved package claims that code came from an empty-string | 506 - If an oddly-behaved package claims that code came from an empty-string |
102 filename, coverage.py no longer associates it with the directory name, | 507 file name, coverage.py no longer associates it with the directory name, |
103 fixing `issue 221`_. | 508 fixing `issue 221`_. |
104 | 509 |
105 .. _issue 80: https://bitbucket.org/ned/coveragepy/issue/80/is-there-a-duck-typi
ng-way-to-know-we-cant | 510 .. _issue 80: https://bitbucket.org/ned/coveragepy/issue/80/is-there-a-duck-typi
ng-way-to-know-we-cant |
106 .. _issue 221: https://bitbucket.org/ned/coveragepy/issue/221/coveragepy-incompa
tible-with-pyratemp | 511 .. _issue 221: https://bitbucket.org/ned/coveragepy/issue/221/coveragepy-incompa
tible-with-pyratemp |
107 | 512 |
108 | 513 |
109 Version 3.6b1 --- 28 November 2012 | 514 Version 3.6b1 --- 28 November 2012 |
110 ---------------------------------- | 515 ---------------------------------- |
111 | 516 |
112 - Wildcards in ``include=`` and ``omit=`` arguments were not handled properly | 517 - Wildcards in ``include=`` and ``omit=`` arguments were not handled properly |
(...skipping 11 matching lines...) Expand all Loading... |
124 - The reporting functions coverage.report(), coverage.html_report(), and | 529 - The reporting functions coverage.report(), coverage.html_report(), and |
125 coverage.xml_report() now all return a float, the total percentage covered | 530 coverage.xml_report() now all return a float, the total percentage covered |
126 measurement. | 531 measurement. |
127 | 532 |
128 - The HTML report's title can now be set in the configuration file, with the | 533 - The HTML report's title can now be set in the configuration file, with the |
129 ``--title`` switch on the command line, or via the API. | 534 ``--title`` switch on the command line, or via the API. |
130 | 535 |
131 - Configuration files now support substitution of environment variables, using | 536 - Configuration files now support substitution of environment variables, using |
132 syntax like ``${WORD}``. Closes `issue 97`_. | 537 syntax like ``${WORD}``. Closes `issue 97`_. |
133 | 538 |
134 - Embarrassingly, the `[xml] output=` setting in the .coveragerc file simply | 539 - Embarrassingly, the ``[xml] output=`` setting in the .coveragerc file simply |
135 didn't work. Now it does. | 540 didn't work. Now it does. |
136 | 541 |
137 - The XML report now consistently uses filenames for the filename attribute, | 542 - The XML report now consistently uses file names for the file name attribute, |
138 rather than sometimes using module names. Fixes `issue 67`_. | 543 rather than sometimes using module names. Fixes `issue 67`_. |
139 Thanks, Marcus Cobden. | 544 Thanks, Marcus Cobden. |
140 | 545 |
141 - Coverage percentage metrics are now computed slightly differently under | 546 - Coverage percentage metrics are now computed slightly differently under |
142 branch coverage. This means that completely unexecuted files will now | 547 branch coverage. This means that completely unexecuted files will now |
143 correctly have 0% coverage, fixing `issue 156`_. This also means that your | 548 correctly have 0% coverage, fixing `issue 156`_. This also means that your |
144 total coverage numbers will generally now be lower if you are measuring | 549 total coverage numbers will generally now be lower if you are measuring |
145 branch coverage. | 550 branch coverage. |
146 | 551 |
147 - When installing, now in addition to creating a "coverage" command, two new | 552 - When installing, now in addition to creating a "coverage" command, two new |
(...skipping 20 matching lines...) Expand all Loading... |
168 is now fixed. | 573 is now fixed. |
169 | 574 |
170 - Fixed yet another error trying to parse non-Python files as Python, this | 575 - Fixed yet another error trying to parse non-Python files as Python, this |
171 time an IndentationError, closing `issue 82`_ for the fourth time... | 576 time an IndentationError, closing `issue 82`_ for the fourth time... |
172 | 577 |
173 - If `coverage xml` fails because there is no data to report, it used to | 578 - If `coverage xml` fails because there is no data to report, it used to |
174 create a zero-length XML file. Now it doesn't, fixing `issue 210`_. | 579 create a zero-length XML file. Now it doesn't, fixing `issue 210`_. |
175 | 580 |
176 - Jython files now work with the ``--source`` option, fixing `issue 100`_. | 581 - Jython files now work with the ``--source`` option, fixing `issue 100`_. |
177 | 582 |
178 - Running coverage under a debugger is unlikely to work, but it shouldn't fail | 583 - Running coverage.py under a debugger is unlikely to work, but it shouldn't |
179 with "TypeError: 'NoneType' object is not iterable". Fixes `issue 201`_. | 584 fail with "TypeError: 'NoneType' object is not iterable". Fixes `issue |
| 585 201`_. |
180 | 586 |
181 - On some Linux distributions, when installed with the OS package manager, | 587 - On some Linux distributions, when installed with the OS package manager, |
182 coverage.py would report its own code as part of the results. Now it won't, | 588 coverage.py would report its own code as part of the results. Now it won't, |
183 fixing `issue 214`_, though this will take some time to be repackaged by the | 589 fixing `issue 214`_, though this will take some time to be repackaged by the |
184 operating systems. | 590 operating systems. |
185 | 591 |
186 - Docstrings for the legacy singleton methods are more helpful. Thanks Marius | 592 - Docstrings for the legacy singleton methods are more helpful. Thanks Marius |
187 Gedminas. Closes `issue 205`_. | 593 Gedminas. Closes `issue 205`_. |
188 | 594 |
189 - The pydoc tool can now show docmentation for the class `coverage.coverage`. | 595 - The pydoc tool can now show documentation for the class `coverage.coverage`. |
190 Closes `issue 206`_. | 596 Closes `issue 206`_. |
191 | 597 |
192 - Added a page to the docs about contributing to coverage.py, closing | 598 - Added a page to the docs about contributing to coverage.py, closing |
193 `issue 171`_. | 599 `issue 171`_. |
194 | 600 |
195 - When coverage.py ended unsuccessfully, it may have reported odd errors like | 601 - When coverage.py ended unsuccessfully, it may have reported odd errors like |
196 ``'NoneType' object has no attribute 'isabs'``. It no longer does, | 602 ``'NoneType' object has no attribute 'isabs'``. It no longer does, |
197 so kiss `issue 153`_ goodbye. | 603 so kiss `issue 153`_ goodbye. |
198 | 604 |
199 .. _issue 60: https://bitbucket.org/ned/coveragepy/issue/60/incorrect-path-to-or
phaned-pyc-files | 605 .. _issue 60: https://bitbucket.org/ned/coveragepy/issue/60/incorrect-path-to-or
phaned-pyc-files |
200 .. _issue 67: https://bitbucket.org/ned/coveragepy/issue/67/xml-report-filenames
-may-be-generated | 606 .. _issue 67: https://bitbucket.org/ned/coveragepy/issue/67/xml-report-filenames
-may-be-generated |
201 .. _issue 82: https://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-gene
rating-html-report | |
202 .. _issue 89: https://bitbucket.org/ned/coveragepy/issue/89/on-windows-all-packa
ges-are-reported-in | 607 .. _issue 89: https://bitbucket.org/ned/coveragepy/issue/89/on-windows-all-packa
ges-are-reported-in |
203 .. _issue 97: https://bitbucket.org/ned/coveragepy/issue/97/allow-environment-va
riables-to-be | 608 .. _issue 97: https://bitbucket.org/ned/coveragepy/issue/97/allow-environment-va
riables-to-be |
204 .. _issue 100: https://bitbucket.org/ned/coveragepy/issue/100/source-directive-d
oesnt-work-for-packages | 609 .. _issue 100: https://bitbucket.org/ned/coveragepy/issue/100/source-directive-d
oesnt-work-for-packages |
205 .. _issue 111: https://bitbucket.org/ned/coveragepy/issue/111/when-installing-co
verage-with-pip-not | 610 .. _issue 111: https://bitbucket.org/ned/coveragepy/issue/111/when-installing-co
verage-with-pip-not |
206 .. _issue 137: https://bitbucket.org/ned/coveragepy/issue/137/provide-docs-with-
source-distribution | 611 .. _issue 137: https://bitbucket.org/ned/coveragepy/issue/137/provide-docs-with-
source-distribution |
207 .. _issue 139: https://bitbucket.org/ned/coveragepy/issue/139/easy-check-for-a-c
ertain-coverage-in-tests | 612 .. _issue 139: https://bitbucket.org/ned/coveragepy/issue/139/easy-check-for-a-c
ertain-coverage-in-tests |
208 .. _issue 143: https://bitbucket.org/ned/coveragepy/issue/143/omit-doesnt-seem-t
o-work-in-coverage | 613 .. _issue 143: https://bitbucket.org/ned/coveragepy/issue/143/omit-doesnt-seem-t
o-work-in-coverage |
209 .. _issue 153: https://bitbucket.org/ned/coveragepy/issue/153/non-existent-filen
ame-triggers | 614 .. _issue 153: https://bitbucket.org/ned/coveragepy/issue/153/non-existent-filen
ame-triggers |
210 .. _issue 156: https://bitbucket.org/ned/coveragepy/issue/156/a-completely-unexe
cuted-file-shows-14 | 615 .. _issue 156: https://bitbucket.org/ned/coveragepy/issue/156/a-completely-unexe
cuted-file-shows-14 |
211 .. _issue 163: https://bitbucket.org/ned/coveragepy/issue/163/problem-with-inclu
de-and-omit-filename | 616 .. _issue 163: https://bitbucket.org/ned/coveragepy/issue/163/problem-with-inclu
de-and-omit-filename |
212 .. _issue 171: https://bitbucket.org/ned/coveragepy/issue/171/how-to-contribute-
and-run-tests | 617 .. _issue 171: https://bitbucket.org/ned/coveragepy/issue/171/how-to-contribute-
and-run-tests |
213 .. _issue 193: https://bitbucket.org/ned/coveragepy/issue/193/unicodedecodeerror
-on-htmlpy | 618 .. _issue 193: https://bitbucket.org/ned/coveragepy/issue/193/unicodedecodeerror
-on-htmlpy |
214 .. _issue 201: https://bitbucket.org/ned/coveragepy/issue/201/coverage-using-dja
ngo-14-with-pydb-on | 619 .. _issue 201: https://bitbucket.org/ned/coveragepy/issue/201/coverage-using-dja
ngo-14-with-pydb-on |
215 .. _issue 202: https://bitbucket.org/ned/coveragepy/issue/202/get-rid-of-ez_setu
ppy-and | 620 .. _issue 202: https://bitbucket.org/ned/coveragepy/issue/202/get-rid-of-ez_setu
ppy-and |
216 .. _issue 203: https://bitbucket.org/ned/coveragepy/issue/203/duplicate-filename
s-reported-when-filename | 621 .. _issue 203: https://bitbucket.org/ned/coveragepy/issue/203/duplicate-filename
s-reported-when-filename |
217 .. _issue 205: https://bitbucket.org/ned/coveragepy/issue/205/make-pydoc-coverag
e-more-friendly | 622 .. _issue 205: https://bitbucket.org/ned/coveragepy/issue/205/make-pydoc-coverag
e-more-friendly |
218 .. _issue 206: https://bitbucket.org/ned/coveragepy/issue/206/pydoc-coveragecove
rage-fails-with-an-error | 623 .. _issue 206: https://bitbucket.org/ned/coveragepy/issue/206/pydoc-coveragecove
rage-fails-with-an-error |
219 .. _issue 210: https://bitbucket.org/ned/coveragepy/issue/210/if-theres-no-cover
age-data-coverage-xml | 624 .. _issue 210: https://bitbucket.org/ned/coveragepy/issue/210/if-theres-no-cover
age-data-coverage-xml |
220 .. _issue 214: https://bitbucket.org/ned/coveragepy/issue/214/coveragepy-measure
s-itself-on-precise | 625 .. _issue 214: https://bitbucket.org/ned/coveragepy/issue/214/coveragepy-measure
s-itself-on-precise |
221 | 626 |
222 | 627 |
223 Version 3.5.3 --- 29 September 2012 | 628 Version 3.5.3 --- 29 September 2012 |
224 ----------------------------------- | 629 ----------------------------------- |
225 | 630 |
226 - Line numbers in the HTML report line up better with the source lines, fixing | 631 - Line numbers in the HTML report line up better with the source lines, fixing |
227 `issue 197`_, thanks Marius Gedminas. | 632 `issue 197`_, thanks Marius Gedminas. |
228 | 633 |
229 - When specifying a directory as the source= option, the directory itself no | 634 - When specifying a directory as the source= option, the directory itself no |
230 longer needs to have a ``__init__.py`` file, though its subdirectories do, to | 635 longer needs to have a ``__init__.py`` file, though its sub-directories do, |
231 be considered as source files. | 636 to be considered as source files. |
232 | 637 |
233 - Files encoded as UTF-8 with a BOM are now properly handled, fixing | 638 - Files encoded as UTF-8 with a BOM are now properly handled, fixing |
234 `issue 179`_. Thanks, Pablo Carballo. | 639 `issue 179`_. Thanks, Pablo Carballo. |
235 | 640 |
236 - Fixed more cases of non-Python files being reported as Python source, and | 641 - Fixed more cases of non-Python files being reported as Python source, and |
237 then not being able to parse them as Python. Closes `issue 82`_ (again). | 642 then not being able to parse them as Python. Closes `issue 82`_ (again). |
238 Thanks, Julian Berman. | 643 Thanks, Julian Berman. |
239 | 644 |
240 - Fixed memory leaks under Python 3, thanks, Brett Cannon. Closes `issue 147`_. | 645 - Fixed memory leaks under Python 3, thanks, Brett Cannon. Closes `issue 147`_. |
241 | 646 |
242 - Optimized .pyo files may not have been handled correctly, `issue 195`_. | 647 - Optimized .pyo files may not have been handled correctly, `issue 195`_. |
243 Thanks, Marius Gedminas. | 648 Thanks, Marius Gedminas. |
244 | 649 |
245 - Certain unusually named file paths could have been mangled during reporting, | 650 - Certain unusually named file paths could have been mangled during reporting, |
246 `issue 194`_. Thanks, Marius Gedminas. | 651 `issue 194`_. Thanks, Marius Gedminas. |
247 | 652 |
248 - Try to do a better job of the impossible task of detecting when we can't | 653 - Try to do a better job of the impossible task of detecting when we can't |
249 build the C extension, fixing `issue 183`_. | 654 build the C extension, fixing `issue 183`_. |
250 | 655 |
251 - Testing is now done with `tox`_, thanks, Marc Abramowitz. | 656 - Testing is now done with `tox`_, thanks, Marc Abramowitz. |
252 | 657 |
253 .. _issue 82: https://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-gene
rating-html-report | |
254 .. _issue 147: https://bitbucket.org/ned/coveragepy/issue/147/massive-memory-usa
ge-by-ctracer | 658 .. _issue 147: https://bitbucket.org/ned/coveragepy/issue/147/massive-memory-usa
ge-by-ctracer |
255 .. _issue 179: https://bitbucket.org/ned/coveragepy/issue/179/htmlreporter-fails
-when-source-file-is | 659 .. _issue 179: https://bitbucket.org/ned/coveragepy/issue/179/htmlreporter-fails
-when-source-file-is |
256 .. _issue 183: https://bitbucket.org/ned/coveragepy/issue/183/install-fails-for-
python-23 | 660 .. _issue 183: https://bitbucket.org/ned/coveragepy/issue/183/install-fails-for-
python-23 |
257 .. _issue 194: https://bitbucket.org/ned/coveragepy/issue/194/filelocatorrelativ
e_filename-could-mangle | 661 .. _issue 194: https://bitbucket.org/ned/coveragepy/issue/194/filelocatorrelativ
e_filename-could-mangle |
258 .. _issue 195: https://bitbucket.org/ned/coveragepy/issue/195/pyo-file-handling-
in-codeunit | 662 .. _issue 195: https://bitbucket.org/ned/coveragepy/issue/195/pyo-file-handling-
in-codeunit |
259 .. _issue 197: https://bitbucket.org/ned/coveragepy/issue/197/line-numbers-in-ht
ml-report-do-not-align | 663 .. _issue 197: https://bitbucket.org/ned/coveragepy/issue/197/line-numbers-in-ht
ml-report-do-not-align |
260 .. _tox: http://tox.readthedocs.org/ | 664 .. _tox: http://tox.readthedocs.org/ |
261 | 665 |
262 | 666 |
263 | |
264 Version 3.5.2 --- 4 May 2012 | 667 Version 3.5.2 --- 4 May 2012 |
265 ---------------------------- | 668 ---------------------------- |
266 | 669 |
267 No changes since 3.5.2.b1 | 670 No changes since 3.5.2.b1 |
268 | 671 |
269 | 672 |
270 Version 3.5.2b1 --- 29 April 2012 | 673 Version 3.5.2b1 --- 29 April 2012 |
271 --------------------------------- | 674 --------------------------------- |
272 | 675 |
273 - The HTML report has slightly tweaked controls: the buttons at the top of | 676 - The HTML report has slightly tweaked controls: the buttons at the top of |
274 the page are color-coded to the source lines they affect. | 677 the page are color-coded to the source lines they affect. |
275 | 678 |
276 - Custom CSS can be applied to the HTML report by specifying a CSS file as | 679 - Custom CSS can be applied to the HTML report by specifying a CSS file as |
277 the extra_css configuration value in the [html] section. | 680 the ``extra_css`` configuration value in the ``[html]`` section. |
278 | 681 |
279 - Source files with custom encodings declared in a comment at the top are now | 682 - Source files with custom encodings declared in a comment at the top are now |
280 properly handled during reporting on Python 2. Python 3 always handled them | 683 properly handled during reporting on Python 2. Python 3 always handled them |
281 properly. This fixes `issue 157`_. | 684 properly. This fixes `issue 157`_. |
282 | 685 |
283 - Backup files left behind by editors are no longer collected by the source= | 686 - Backup files left behind by editors are no longer collected by the source= |
284 option, fixing `issue 168`_. | 687 option, fixing `issue 168`_. |
285 | 688 |
286 - If a file doesn't parse properly as Python, we don't report it as an error | 689 - If a file doesn't parse properly as Python, we don't report it as an error |
287 if the filename seems like maybe it wasn't meant to be Python. This is a | 690 if the file name seems like maybe it wasn't meant to be Python. This is a |
288 pragmatic fix for `issue 82`_. | 691 pragmatic fix for `issue 82`_. |
289 | 692 |
290 - The ``-m`` switch on ``coverage report``, which includes missing line numbers | 693 - The ``-m`` switch on ``coverage report``, which includes missing line numbers |
291 in the summary report, can now be specifed as ``show_missing`` in the | 694 in the summary report, can now be specified as ``show_missing`` in the |
292 config file. Closes `issue 173`_. | 695 config file. Closes `issue 173`_. |
293 | 696 |
294 - When running a module with ``coverage run -m <modulename>``, certain details | 697 - When running a module with ``coverage run -m <modulename>``, certain details |
295 of the execution environment weren't the same as for | 698 of the execution environment weren't the same as for |
296 ``python -m <modulename>``. This had the unfortunate side-effect of making | 699 ``python -m <modulename>``. This had the unfortunate side-effect of making |
297 ``coverage run -m unittest discover`` not work if you had tests in a | 700 ``coverage run -m unittest discover`` not work if you had tests in a |
298 directory named "test". This fixes `issue 155`_ and `issue 142`_. | 701 directory named "test". This fixes `issue 155`_ and `issue 142`_. |
299 | 702 |
300 - Now the exit status of your product code is properly used as the process | 703 - Now the exit status of your product code is properly used as the process |
301 status when running ``python -m coverage run ...``. Thanks, JT Olds. | 704 status when running ``python -m coverage run ...``. Thanks, JT Olds. |
302 | 705 |
303 - When installing into pypy, we no longer attempt (and fail) to compile | 706 - When installing into pypy, we no longer attempt (and fail) to compile |
304 the C tracer function, closing `issue 166`_. | 707 the C tracer function, closing `issue 166`_. |
305 | 708 |
306 .. _issue 82: https://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-gene
rating-html-report | |
307 .. _issue 142: https://bitbucket.org/ned/coveragepy/issue/142/executing-python-f
ile-syspath-is-replaced | 709 .. _issue 142: https://bitbucket.org/ned/coveragepy/issue/142/executing-python-f
ile-syspath-is-replaced |
308 .. _issue 155: https://bitbucket.org/ned/coveragepy/issue/155/cant-use-coverage-
run-m-unittest-discover | 710 .. _issue 155: https://bitbucket.org/ned/coveragepy/issue/155/cant-use-coverage-
run-m-unittest-discover |
309 .. _issue 157: https://bitbucket.org/ned/coveragepy/issue/157/chokes-on-source-f
iles-with-non-utf-8 | 711 .. _issue 157: https://bitbucket.org/ned/coveragepy/issue/157/chokes-on-source-f
iles-with-non-utf-8 |
310 .. _issue 166: https://bitbucket.org/ned/coveragepy/issue/166/dont-try-to-compil
e-c-extension-on-pypy | 712 .. _issue 166: https://bitbucket.org/ned/coveragepy/issue/166/dont-try-to-compil
e-c-extension-on-pypy |
311 .. _issue 168: https://bitbucket.org/ned/coveragepy/issue/168/dont-be-alarmed-by
-emacs-droppings | 713 .. _issue 168: https://bitbucket.org/ned/coveragepy/issue/168/dont-be-alarmed-by
-emacs-droppings |
312 .. _issue 173: https://bitbucket.org/ned/coveragepy/issue/173/theres-no-way-to-s
pecify-show-missing-in | 714 .. _issue 173: https://bitbucket.org/ned/coveragepy/issue/173/theres-no-way-to-s
pecify-show-missing-in |
313 | 715 |
314 | 716 |
315 Version 3.5.1 --- 23 September 2011 | 717 Version 3.5.1 --- 23 September 2011 |
316 ----------------------------------- | 718 ----------------------------------- |
317 | 719 |
318 - The ``[paths]`` feature unfortunately didn't work in real world situations | 720 - The ``[paths]`` feature unfortunately didn't work in real world situations |
319 where you wanted to, you know, report on the combined data. Now all paths | 721 where you wanted to, you know, report on the combined data. Now all paths |
320 stored in the combined file are canonicalized properly. | 722 stored in the combined file are canonicalized properly. |
321 | 723 |
322 | 724 |
323 Version 3.5.1b1 --- 28 August 2011 | 725 Version 3.5.1b1 --- 28 August 2011 |
324 ---------------------------------- | 726 ---------------------------------- |
325 | 727 |
326 - When combining data files from parallel runs, you can now instruct coverage | 728 - When combining data files from parallel runs, you can now instruct |
327 about which directories are equivalent on different machines. A ``[paths]`` | 729 coverage.py about which directories are equivalent on different machines. A |
328 section in the configuration file lists paths that are to be considered | 730 ``[paths]`` section in the configuration file lists paths that are to be |
329 equivalent. Finishes `issue 17`_. | 731 considered equivalent. Finishes `issue 17`_. |
330 | 732 |
331 - for-else constructs are understood better, and don't cause erroneous partial | 733 - for-else constructs are understood better, and don't cause erroneous partial |
332 branch warnings. Fixes `issue 122`_. | 734 branch warnings. Fixes `issue 122`_. |
333 | 735 |
334 - Branch coverage for ``with`` statements is improved, fixing `issue 128`_. | 736 - Branch coverage for ``with`` statements is improved, fixing `issue 128`_. |
335 | 737 |
336 - The number of partial branches reported on the HTML summary page was | 738 - The number of partial branches reported on the HTML summary page was |
337 different than the number reported on the individual file pages. This is | 739 different than the number reported on the individual file pages. This is |
338 now fixed. | 740 now fixed. |
339 | 741 |
340 - An explicit include directive to measure files in the Python installation | 742 - An explicit include directive to measure files in the Python installation |
341 wouldn't work because of the standard library exclusion. Now the include | 743 wouldn't work because of the standard library exclusion. Now the include |
342 directive takes precendence, and the files will be measured. Fixes | 744 directive takes precedence, and the files will be measured. Fixes |
343 `issue 138`_. | 745 `issue 138`_. |
344 | 746 |
345 - The HTML report now handles Unicode characters in Python source files | 747 - The HTML report now handles Unicode characters in Python source files |
346 properly. This fixes `issue 124`_ and `issue 144`_. Thanks, Devin | 748 properly. This fixes `issue 124`_ and `issue 144`_. Thanks, Devin |
347 Jeanpierre. | 749 Jeanpierre. |
348 | 750 |
349 - In order to help the core developers measure the test coverage of the | 751 - In order to help the core developers measure the test coverage of the |
350 standard library, Brandon Rhodes devised an aggressive hack to trick Python | 752 standard library, Brandon Rhodes devised an aggressive hack to trick Python |
351 into running some coverage code before anything else in the process. | 753 into running some coverage.py code before anything else in the process. |
352 See the coverage/fullcoverage directory if you are interested. | 754 See the coverage/fullcoverage directory if you are interested. |
353 | 755 |
354 .. _issue 17: http://bitbucket.org/ned/coveragepy/issue/17/support-combining-cov
erage-data-from | 756 .. _issue 17: http://bitbucket.org/ned/coveragepy/issue/17/support-combining-cov
erage-data-from |
355 .. _issue 122: http://bitbucket.org/ned/coveragepy/issue/122/for-else-always-rep
orts-missing-branch | 757 .. _issue 122: http://bitbucket.org/ned/coveragepy/issue/122/for-else-always-rep
orts-missing-branch |
356 .. _issue 124: http://bitbucket.org/ned/coveragepy/issue/124/no-arbitrary-unicod
e-in-html-reports-in | 758 .. _issue 124: http://bitbucket.org/ned/coveragepy/issue/124/no-arbitrary-unicod
e-in-html-reports-in |
357 .. _issue 128: http://bitbucket.org/ned/coveragepy/issue/128/branch-coverage-of-
with-statement-in-27 | 759 .. _issue 128: http://bitbucket.org/ned/coveragepy/issue/128/branch-coverage-of-
with-statement-in-27 |
358 .. _issue 138: http://bitbucket.org/ned/coveragepy/issue/138/include-should-take
-precedence-over-is | 760 .. _issue 138: http://bitbucket.org/ned/coveragepy/issue/138/include-should-take
-precedence-over-is |
359 .. _issue 144: http://bitbucket.org/ned/coveragepy/issue/144/failure-generating-
html-output-for | 761 .. _issue 144: http://bitbucket.org/ned/coveragepy/issue/144/failure-generating-
html-output-for |
360 | 762 |
361 | 763 |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 .. _issue 85: http://bitbucket.org/ned/coveragepy/issue/85/threadrun-isnt-measur
ed | 890 .. _issue 85: http://bitbucket.org/ned/coveragepy/issue/85/threadrun-isnt-measur
ed |
489 | 891 |
490 | 892 |
491 Version 3.4b1 --- 21 August 2010 | 893 Version 3.4b1 --- 21 August 2010 |
492 -------------------------------- | 894 -------------------------------- |
493 | 895 |
494 - BACKWARD INCOMPATIBILITY: the ``--omit`` and ``--include`` switches now take | 896 - BACKWARD INCOMPATIBILITY: the ``--omit`` and ``--include`` switches now take |
495 file patterns rather than file prefixes, closing `issue 34`_ and `issue 36`_. | 897 file patterns rather than file prefixes, closing `issue 34`_ and `issue 36`_. |
496 | 898 |
497 - BACKWARD INCOMPATIBILITY: the `omit_prefixes` argument is gone throughout | 899 - BACKWARD INCOMPATIBILITY: the `omit_prefixes` argument is gone throughout |
498 coverage.py, replaced with `omit`, a list of filename patterns suitable for | 900 coverage.py, replaced with `omit`, a list of file name patterns suitable for |
499 `fnmatch`. A parallel argument `include` controls what files are included. | 901 `fnmatch`. A parallel argument `include` controls what files are included. |
500 | 902 |
501 - The run command now has a ``--source`` switch, a list of directories or | 903 - The run command now has a ``--source`` switch, a list of directories or |
502 module names. If provided, coverage.py will only measure execution in those | 904 module names. If provided, coverage.py will only measure execution in those |
503 source files. | 905 source files. |
504 | 906 |
505 - Various warnings are printed to stderr for problems encountered during data | 907 - Various warnings are printed to stderr for problems encountered during data |
506 measurement: if a ``--source`` module has no Python source to measure, or is | 908 measurement: if a ``--source`` module has no Python source to measure, or is |
507 never encountered at all, or if no data is collected. | 909 never encountered at all, or if no data is collected. |
508 | 910 |
(...skipping 20 matching lines...) Expand all Loading... |
529 suggested, this seemed blindingly obvious. | 931 suggested, this seemed blindingly obvious. |
530 | 932 |
531 - Line numbers in HTML source pages are clickable, linking directly to that | 933 - Line numbers in HTML source pages are clickable, linking directly to that |
532 line, which is highlighted on arrival. Added a link back to the index page | 934 line, which is highlighted on arrival. Added a link back to the index page |
533 at the bottom of each HTML page. | 935 at the bottom of each HTML page. |
534 | 936 |
535 - Programs that call ``os.fork`` will properly collect data from both the child | 937 - Programs that call ``os.fork`` will properly collect data from both the child |
536 and parent processes. Use ``coverage run -p`` to get two data files that can | 938 and parent processes. Use ``coverage run -p`` to get two data files that can |
537 be combined with ``coverage combine``. Fixes `issue 56`_. | 939 be combined with ``coverage combine``. Fixes `issue 56`_. |
538 | 940 |
539 - Coverage is now runnable as a module: ``python -m coverage``. Thanks, | 941 - Coverage.py is now runnable as a module: ``python -m coverage``. Thanks, |
540 Brett Cannon. | 942 Brett Cannon. |
541 | 943 |
542 - When measuring code running in a virtualenv, most of the system library was | 944 - When measuring code running in a virtualenv, most of the system library was |
543 being measured when it shouldn't have been. This is now fixed. | 945 being measured when it shouldn't have been. This is now fixed. |
544 | 946 |
545 - Doctest text files are no longer recorded in the coverage data, since they | 947 - Doctest text files are no longer recorded in the coverage data, since they |
546 can't be reported anyway. Fixes `issue 52`_ and `issue 61`_. | 948 can't be reported anyway. Fixes `issue 52`_ and `issue 61`_. |
547 | 949 |
548 - Jinja HTML templates compile into Python code using the HTML filename, | 950 - Jinja HTML templates compile into Python code using the HTML file name, |
549 which confused coverage.py. Now these files are no longer traced, fixing | 951 which confused coverage.py. Now these files are no longer traced, fixing |
550 `issue 82`_. | 952 `issue 82`_. |
551 | 953 |
552 - Source files can have more than one dot in them (foo.test.py), and will be | 954 - Source files can have more than one dot in them (foo.test.py), and will be |
553 treated properly while reporting. Fixes `issue 46`_. | 955 treated properly while reporting. Fixes `issue 46`_. |
554 | 956 |
555 - Source files with DOS line endings are now properly tokenized for syntax | 957 - Source files with DOS line endings are now properly tokenized for syntax |
556 coloring on non-DOS machines. Fixes `issue 53`_. | 958 coloring on non-DOS machines. Fixes `issue 53`_. |
557 | 959 |
558 - Unusual code structure that confused exits from methods with exits from | 960 - Unusual code structure that confused exits from methods with exits from |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
750 - Removed the recursion limit in the tracer function. Previously, code that | 1152 - Removed the recursion limit in the tracer function. Previously, code that |
751 ran more than 500 frames deep would crash. Fixed `issue 9`_. | 1153 ran more than 500 frames deep would crash. Fixed `issue 9`_. |
752 | 1154 |
753 - Fixed a bizarre problem involving pyexpat, whereby lines following XML parser | 1155 - Fixed a bizarre problem involving pyexpat, whereby lines following XML parser |
754 invocations could be overlooked. Fixed `issue 10`_. | 1156 invocations could be overlooked. Fixed `issue 10`_. |
755 | 1157 |
756 - On Python 2.3, coverage.py could mis-measure code with exceptions being | 1158 - On Python 2.3, coverage.py could mis-measure code with exceptions being |
757 raised. This is now fixed. | 1159 raised. This is now fixed. |
758 | 1160 |
759 - The coverage.py code itself will now not be measured by coverage.py, and no | 1161 - The coverage.py code itself will now not be measured by coverage.py, and no |
760 coverage modules will be mentioned in the nose --with-cover plug-in. Fixed | 1162 coverage.py modules will be mentioned in the nose --with-cover plug-in. |
761 `issue 8`_. | 1163 Fixed `issue 8`_. |
762 | 1164 |
763 - When running source files, coverage.py now opens them in universal newline | 1165 - When running source files, coverage.py now opens them in universal newline |
764 mode just like Python does. This lets it run Windows files on Mac, for | 1166 mode just like Python does. This lets it run Windows files on Mac, for |
765 example. | 1167 example. |
766 | 1168 |
767 .. _issue 9: http://bitbucket.org/ned/coveragepy/issue/9 | 1169 .. _issue 9: http://bitbucket.org/ned/coveragepy/issue/9 |
768 .. _issue 10: http://bitbucket.org/ned/coveragepy/issue/10 | 1170 .. _issue 10: http://bitbucket.org/ned/coveragepy/issue/10 |
769 .. _issue 8: http://bitbucket.org/ned/coveragepy/issue/8 | 1171 .. _issue 8: http://bitbucket.org/ned/coveragepy/issue/8 |
770 | 1172 |
771 | 1173 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
830 extensibility. | 1232 extensibility. |
831 | 1233 |
832 - Removed the undocumented cache_file argument to coverage.usecache(). | 1234 - Removed the undocumented cache_file argument to coverage.usecache(). |
833 | 1235 |
834 | 1236 |
835 Version 3.0b1 --- 7 March 2009 | 1237 Version 3.0b1 --- 7 March 2009 |
836 ------------------------------ | 1238 ------------------------------ |
837 | 1239 |
838 Major overhaul. | 1240 Major overhaul. |
839 | 1241 |
840 - Coverage is now a package rather than a module. Functionality has been split | 1242 - Coverage.py is now a package rather than a module. Functionality has been |
841 into classes. | 1243 split into classes. |
842 | 1244 |
843 - The trace function is implemented in C for speed. Coverage runs are now | 1245 - The trace function is implemented in C for speed. Coverage.py runs are now |
844 much faster. Thanks to David Christian for productive micro-sprints and | 1246 much faster. Thanks to David Christian for productive micro-sprints and |
845 other encouragement. | 1247 other encouragement. |
846 | 1248 |
847 - Executable lines are identified by reading the line number tables in the | 1249 - Executable lines are identified by reading the line number tables in the |
848 compiled code, removing a great deal of complicated analysis code. | 1250 compiled code, removing a great deal of complicated analysis code. |
849 | 1251 |
850 - Precisely which lines are considered executable has changed in some cases. | 1252 - Precisely which lines are considered executable has changed in some cases. |
851 Therefore, your coverage stats may also change slightly. | 1253 Therefore, your coverage stats may also change slightly. |
852 | 1254 |
853 - The singleton coverage object is only created if the module-level functions | 1255 - The singleton coverage object is only created if the module-level functions |
854 are used. This maintains the old interface while allowing better | 1256 are used. This maintains the old interface while allowing better |
855 programmatic use of Coverage. | 1257 programmatic use of Coverage.py. |
856 | 1258 |
857 - The minimum supported Python version is 2.3. | 1259 - The minimum supported Python version is 2.3. |
858 | 1260 |
859 | 1261 |
860 Version 2.85 --- 14 September 2008 | 1262 Version 2.85 --- 14 September 2008 |
861 ---------------------------------- | 1263 ---------------------------------- |
862 | 1264 |
863 - Add support for finding source files in eggs. Don't check for | 1265 - Add support for finding source files in eggs. Don't check for |
864 morf's being instances of ModuleType, instead use duck typing so that | 1266 morf's being instances of ModuleType, instead use duck typing so that |
865 pseudo-modules can participate. Thanks, Imri Goldberg. | 1267 pseudo-modules can participate. Thanks, Imri Goldberg. |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
943 | 1345 |
944 Version 2.5 --- 4 December 2005 | 1346 Version 2.5 --- 4 December 2005 |
945 ------------------------------- | 1347 ------------------------------- |
946 | 1348 |
947 - Call threading.settrace so that all threads are measured. Thanks Martin | 1349 - Call threading.settrace so that all threads are measured. Thanks Martin |
948 Fuzzey. | 1350 Fuzzey. |
949 | 1351 |
950 - Add a file argument to report so that reports can be captured to a different | 1352 - Add a file argument to report so that reports can be captured to a different |
951 destination. | 1353 destination. |
952 | 1354 |
953 - coverage.py can now measure itself. | 1355 - Coverage.py can now measure itself. |
954 | 1356 |
955 - Adapted Greg Rogers' patch for using relative file names, and sorting and | 1357 - Adapted Greg Rogers' patch for using relative file names, and sorting and |
956 omitting files to report on. | 1358 omitting files to report on. |
957 | 1359 |
958 | 1360 |
959 Version 2.2 --- 31 December 2004 | 1361 Version 2.2 --- 31 December 2004 |
960 -------------------------------- | 1362 -------------------------------- |
961 | 1363 |
962 - Allow for keyword arguments in the module global functions. Thanks, Allen. | 1364 - Allow for keyword arguments in the module global functions. Thanks, Allen. |
963 | 1365 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1000 2001-12-12 GDR Added command-line help. Cache analysis so that it only needs to | 1402 2001-12-12 GDR Added command-line help. Cache analysis so that it only needs to |
1001 be done once when you specify -a and -r. | 1403 be done once when you specify -a and -r. |
1002 | 1404 |
1003 2001-12-13 GDR Improved speed while recording. Portable between Python 1.5.2 | 1405 2001-12-13 GDR Improved speed while recording. Portable between Python 1.5.2 |
1004 and 2.1.1. | 1406 and 2.1.1. |
1005 | 1407 |
1006 2002-01-03 GDR Module-level functions work correctly. | 1408 2002-01-03 GDR Module-level functions work correctly. |
1007 | 1409 |
1008 2002-01-07 GDR Update sys.path when running a file with the -x option, so that | 1410 2002-01-07 GDR Update sys.path when running a file with the -x option, so that |
1009 it matches the value the program would get if it were run on its own. | 1411 it matches the value the program would get if it were run on its own. |
OLD | NEW |