Index: tools/telemetry/third_party/coverage/doc/changes.rst |
diff --git a/third_party/pycoverage/CHANGES.txt b/tools/telemetry/third_party/coverage/doc/changes.rst |
similarity index 60% |
copy from third_party/pycoverage/CHANGES.txt |
copy to tools/telemetry/third_party/coverage/doc/changes.rst |
index 1e4b888b52c5964a2609a60758bce029278783eb..20b2bd734a0840a70df0270943792c8538696db7 100644 |
--- a/third_party/pycoverage/CHANGES.txt |
+++ b/tools/telemetry/third_party/coverage/doc/changes.rst |
@@ -1,9 +1,255 @@ |
------------------------------- |
-Change history for Coverage.py |
------------------------------- |
+.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 |
+.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt |
+ |
+.. _changes: |
+ |
+==================================== |
+Major change history for coverage.py |
+==================================== |
+ |
+.. :history: 20090524T134300, brand new docs. |
+.. :history: 20090613T164000, final touches for 3.0 |
+.. :history: 20090706T205000, changes for 3.0.1 |
+.. :history: 20091004T170700, changes for 3.1 |
+.. :history: 20091128T072200, changes for 3.2 |
+.. :history: 20091205T161525, 3.2 final |
+.. :history: 20100221T151900, changes for 3.3 |
+.. :history: 20100306T181400, changes for 3.3.1 |
+.. :history: 20100725T211700, updated for 3.4. |
+.. :history: 20100820T151500, updated for 3.4b1 |
+.. :history: 20100906T133800, updated for 3.4b2 |
+.. :history: 20100919T163400, updated for 3.4 release. |
+.. :history: 20110604T214100, updated for 3.5b1 |
+.. :history: 20110629T082200, updated for 3.5 |
+.. :history: 20110923T081600, updated for 3.5.1 |
+.. :history: 20120429T162100, updated for 3.5.2b1 |
+.. :history: 20120503T233700, updated for 3.5.2 |
+.. :history: 20120929T093100, updated for 3.5.3 |
+.. :history: 20121129T060100, updated for 3.6b1. |
+.. :history: 20121223T180600, updated for 3.6b2. |
+.. :history: 20130105T173500, updated for 3.6 |
+.. :history: 20131005T205700, updated for 3.7 |
+.. :history: 20131212T213100, updated for 3.7.1 |
+.. :history: 20150124T134800, updated for 4.0a4 |
+.. :history: 20150802T174700, updated for 4.0b1 |
+.. :history: 20150822T092800, updated for 4.0b2 |
+.. :history: 20150919T072700, updated for 4.0 |
+ |
+ |
+These are the major changes for coverage.py. For a more complete change |
+history, see the `CHANGES.txt`_ file in the source tree. |
+ |
+.. _CHANGES.txt: http://bitbucket.org/ned/coveragepy/src/tip/CHANGES.txt |
+ |
+.. module:: coverage |
+ |
+.. _changes_40: |
+ |
+Version 4.0 --- 20 September 2015 |
+--------------------------------- |
+ |
+ |
+Backward incompatibilities: |
+ |
+- Python versions supported are now: |
+ |
+ - CPython 2.6, 2.7, 3.3, 3.4 and 3.5 |
+ - PyPy2 2.4, 2.6 |
+ - PyPy3 2.4 |
+ |
+- The original command line switches (``-x`` to run a program, etc) are no |
+ longer supported. |
+ |
+- The ``COVERAGE_OPTIONS`` environment variable is no longer supported. It was |
+ a hack for ``--timid`` before configuration files were available. |
+ |
+- The original module-level function interface to coverage.py is no longer |
+ supported. You must now create a :class:`coverage.Coverage` object, and use |
+ methods on it. |
+ |
+- The ``Coverage.use_cache`` method is no longer supported. |
+ |
+- The private method ``Coverage._harvest_data`` is now called |
+ :meth:`Coverage.get_data`, and returns the :class:`CoverageData` containing |
+ the collected data. |
+ |
+- Coverage.py is now licensed under the Apache 2.0 license. See `NOTICE.txt`_ |
+ for details. |
+ |
+- Coverage.py kits no longer include tests and docs. If you were using them, |
+ get in touch and let me know how. |
+ |
+.. _NOTICE.txt: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt |
+ |
+ |
+Major new features: |
+ |
+- Plugins: third parties can write plugins to add file support for non-Python |
+ files, such as web application templating engines, or languages that compile |
+ down to Python. See :ref:`plugins` for how to use plugins, and |
+ :ref:`api_plugin` for details of how to write them. A plugin for measuring |
+ Django template coverage is available: `django_coverage_plugin`_ |
+ |
+- Gevent, eventlet, and greenlet are now supported. The ``[run] concurrency`` |
+ setting, or the ``--concurrency`` command line switch, specifies the |
+ concurrency library in use. Huge thanks to Peter Portante for initial |
+ implementation, and to Joe Jevnik for the final insight that completed the |
+ work. |
+ |
+- The data storage has been re-written, using JSON instead of pickle. The |
+ :class:`.CoverageData` class is a new supported API to the contents of the |
+ data file. Data files from older versions of coverage.py can be converted to |
+ the new format with ``python -m coverage.pickle2json``. |
+ |
+- Wildly experimental: support for measuring processes started by the |
+ multiprocessing module. To use, set ``--concurrency=multiprocessing``, |
+ either on the command line or in the .coveragerc file. Thanks, Eduardo |
+ Schettino. Currently, this does not work on Windows. |
+ |
+ |
+New features: |
+ |
+- Options are now also read from a setup.cfg file, if any. Sections are |
+ prefixed with "coverage:", so the ``[run]`` options will be read from the |
+ ``[coverage:run]`` section of setup.cfg. |
+ |
+- The HTML report now has filtering. Type text into the Filter box on the |
+ index page, and only modules with that text in the name will be shown. |
+ Thanks, Danny Allen. |
+ |
+- A new option: ``coverage report --skip-covered`` (or ``[report] skip_covered``) |
+ will reduce the number of files reported by skipping files with 100% |
+ coverage. Thanks, Krystian Kichewko. This means that empty ``__init__.py`` |
+ files will be skipped, since they are 100% covered. |
+ |
+- You can now specify the ``--fail-under`` option in the ``.coveragerc`` file |
+ as the ``[report] fail_under`` option. |
+ |
+- The ``report -m`` command now shows missing branches when reporting on branch |
+ coverage. Thanks, Steve Leonard. |
+ |
+- The ``coverage combine`` command now accepts any number of directories or |
+ files as arguments, and will combine all the data from them. This means you |
+ don't have to copy the files to one directory before combining. Thanks, |
+ Christine Lytwynec. |
+ |
+- A new configuration option for the XML report: ``[xml] package_depth`` |
+ controls which directories are identified as packages in the report. |
+ Directories deeper than this depth are not reported as packages. |
+ The default is that all directories are reported as packages. |
+ Thanks, Lex Berezhny. |
+ |
+- A new configuration option, ``[run] note``, lets you set a note that will be |
+ stored in the ``runs`` section of the data file. You can use this to |
+ annotate the data file with any information you like. |
+ |
+- The COVERAGE_DEBUG environment variable can be used to set the ``[run] debug`` |
+ configuration option to control what internal operations are logged. |
+ |
+- A new version identifier is available, `coverage.version_info`, a plain tuple |
+ of values similar to `sys.version_info`_. |
+ |
+ |
+Improvements: |
+ |
+- Coverage.py now always adds the current directory to sys.path, so that |
+ plugins can import files in the current directory. |
+ |
+- Coverage.py now accepts a directory name for ``coverage run`` and will run a |
+ ``__main__.py`` found there, just like Python will. Thanks, Dmitry Trofimov. |
+ |
+- The ``--debug`` switch can now be used on any command. |
+ |
+- Reports now use file names with extensions. Previously, a report would |
+ describe a/b/c.py as "a/b/c". Now it is shown as "a/b/c.py". This allows |
+ for better support of non-Python files. |
+ |
+- Missing branches in the HTML report now have a bit more information in the |
+ right-hand annotations. Hopefully this will make their meaning clearer. |
+ |
+- The XML report now contains a <source> element. Thanks Stan Hu. |
+ |
+- The XML report now includes a ``missing-branches`` attribute. Thanks, Steve |
+ Peak. This is not a part of the Cobertura DTD, so the XML report no longer |
+ references the DTD. |
+ |
+- The XML report now reports each directory as a package again. This was a bad |
+ regression, I apologize. |
+ |
+- In parallel mode, ``coverage erase`` will now delete all of the data files. |
+ |
+- A new warning is possible, if a desired file isn't measured because it was |
+ imported before coverage.py was started. |
+ |
+- The :func:`coverage.process_startup` function now will start coverage |
+ measurement only once, no matter how many times it is called. This fixes |
+ problems due to unusual virtualenv configurations. |
+ |
+- Unrecognized configuration options will now print an error message and stop |
+ coverage.py. This should help prevent configuration mistakes from passing |
+ silently. |
+ |
+ |
+API changes: |
+ |
+- The class defined in the coverage module is now called ``Coverage`` instead |
+ of ``coverage``, though the old name still works, for backward compatibility. |
+ |
+- You can now programmatically adjust the configuration of coverage.py by |
+ calling :meth:`Coverage.set_option` after construction. |
+ :meth:`Coverage.get_option` reads the configuration values. |
+ |
+- If the `config_file` argument to the Coverage constructor is specified as |
+ ".coveragerc", it is treated as if it were True. This means setup.cfg is |
+ also examined, and a missing file is not considered an error. |
+ |
+ |
+Bug fixes: |
+ |
+- The textual report and the HTML report used to report partial branches |
+ differently for no good reason. Now the text report's "missing branches" |
+ column is a "partial branches" column so that both reports show the same |
+ numbers. This closes `issue 342`_. |
+ |
+- The ``fail-under`` value is now rounded the same as reported results, |
+ preventing paradoxical results, fixing `issue 284`_. |
-3.7.1 -- 13 December 2013 |
-------------------------- |
+- Branch coverage couldn't properly handle certain extremely long files. This |
+ is now fixed, closing `issue 359`_. |
+ |
+- Branch coverage didn't understand yield statements properly. Mickie Betz |
+ persisted in pursuing this despite Ned's pessimism. Fixes `issue 308`_ and |
+ `issue 324`_. |
+ |
+- Files with incorrect encoding declaration comments are no longer ignored by |
+ the reporting commands. |
+ |
+- Empty files are now reported as 100% covered in the XML report, not 0% |
+ covered. |
+ |
+- The XML report will now create the output directory if need be. Thanks, Chris |
+ Rose. |
+ |
+- HTML reports no longer raise UnicodeDecodeError if a Python file has |
+ undecodable characters. |
+ |
+- The annotate command will now annotate all files, not just ones relative to |
+ the current directory. |
+ |
+ |
+.. _django_coverage_plugin: https://pypi.python.org/pypi/django_coverage_plugin |
+.. _issue 284: https://bitbucket.org/ned/coveragepy/issue/284/fail-under-should-show-more-precision |
+.. _issue 308: https://bitbucket.org/ned/coveragepy/issue/308/yield-lambda-branch-coverage |
+.. _issue 324: https://bitbucket.org/ned/coveragepy/issue/324/yield-in-loop-confuses-branch-coverage |
+.. _issue 342: https://bitbucket.org/ned/coveragepy/issue/342/console-and-html-coverage-reports-differ |
+.. _issue 359: https://bitbucket.org/ned/coveragepy/issue/359/xml-report-chunk-error |
+.. _sys.version_info: https://docs.python.org/3/library/sys.html#sys.version_info |
+ |
+ |
+.. _changes_371: |
+ |
+Version 3.7.1 --- 13 December 2013 |
+---------------------------------- |
- Improved the speed of HTML report generation by about 20%. |
@@ -11,20 +257,23 @@ Change history for Coverage.py |
so that it will actually find OS-installed static files. |
-3.7 --- 6 October 2013 |
----------------------- |
+.. _changes_37: |
+ |
+Version 3.7 --- 6 October 2013 |
+------------------------------ |
- Added the ``--debug`` switch to ``coverage run``. It accepts a list of |
- options indicating the type of internal activity to log to stderr. |
+ options indicating the type of internal activity to log to stderr. For |
+ details, see :ref:`the run --debug options <cmd_run_debug>`. |
- Improved the branch coverage facility, fixing `issue 92`_ and `issue 175`_. |
- Running code with ``coverage run -m`` now behaves more like Python does, |
setting sys.path properly, which fixes `issue 207`_ and `issue 242`_. |
-- Coverage can now run .pyc files directly, closing `issue 264`_. |
+- Coverage.py can now run .pyc files directly, closing `issue 264`_. |
-- Coverage properly supports .pyw files, fixing `issue 261`_. |
+- Coverage.py properly supports .pyw files, fixing `issue 261`_. |
- Omitting files within a tree specified with the ``source`` option would |
cause them to be incorrectly marked as unexecuted, as described in |
@@ -40,9 +289,10 @@ Change history for Coverage.py |
- Trying to create an XML report with no files to report on, would cause a |
ZeroDivideError, but no longer does, fixing `issue 250`_. |
-- When running a threaded program under the Python tracer, coverage no longer |
- issues a spurious warning about the trace function changing: "Trace function |
- changed, measurement is likely wrong: None." This fixes `issue 164`_. |
+- When running a threaded program under the Python tracer, coverage.py no |
+ longer issues a spurious warning about the trace function changing: "Trace |
+ function changed, measurement is likely wrong: None." This fixes |
+ `issue 164`_. |
- Static files necessary for HTML reports are found in system-installed places, |
to ease OS-level packaging of coverage.py. Closes `issue 259`_. |
@@ -70,44 +320,56 @@ Change history for Coverage.py |
Version 3.6 --- 5 January 2013 |
------------------------------ |
-- Added a page to the docs about troublesome situations, closing `issue 226`_, |
- and added some info to the TODO file, closing `issue 227`_. |
+Features: |
-.. _issue 226: https://bitbucket.org/ned/coveragepy/issue/226/make-readme-section-to-describe-when |
-.. _issue 227: https://bitbucket.org/ned/coveragepy/issue/227/update-todo |
+- The **report**, **html**, and **xml** commands now accept a ``--fail-under`` |
+ switch that indicates in the exit status whether the coverage percentage was |
+ less than a particular value. Closes `issue 139`_. |
+- The reporting functions coverage.report(), coverage.html_report(), and |
+ coverage.xml_report() now all return a float, the total percentage covered |
+ measurement. |
-Version 3.6b3 --- 29 December 2012 |
----------------------------------- |
+- The HTML report's title can now be set in the configuration file, with the |
+ ``--title`` switch on the command line, or via the API. |
-- Beta 2 broke the nose plugin. It's fixed again, closing `issue 224`_. |
+- Configuration files now support substitution of environment variables, using |
+ syntax like ``${WORD}``. Closes `issue 97`_. |
-.. _issue 224: https://bitbucket.org/ned/coveragepy/issue/224/36b2-breaks-nosexcover |
+Packaging: |
+- The C extension is optionally compiled using a different more widely-used |
+ technique, taking another stab at fixing `issue 80`_ once and for all. |
-Version 3.6b2 --- 23 December 2012 |
----------------------------------- |
+- When installing, now in addition to creating a "coverage" command, two new |
+ aliases are also installed. A "coverage2" or "coverage3" command will be |
+ created, depending on whether you are installing in Python 2.x or 3.x. |
+ A "coverage-X.Y" command will also be created corresponding to your specific |
+ version of Python. Closes `issue 111`_. |
-- Coverage.py runs on Python 2.3 and 2.4 again. It was broken in 3.6b1. |
+- The coverage.py installer no longer tries to bootstrap setuptools or |
+ Distribute. You must have one of them installed first, as `issue 202`_ |
+ recommended. |
-- The C extension is optionally compiled using a different more widely-used |
- technique, taking another stab at fixing `issue 80`_ once and for all. |
+- The coverage.py kit now includes docs (closing `issue 137`_) and tests. |
-- Combining data files would create entries for phantom files if used with |
- ``source`` and path aliases. It no longer does. |
+Docs: |
-- ``debug sys`` now shows the configuration file path that was read. |
+- Added a page to the docs about :doc:`contributing <contributing>` to |
+ coverage.py, closing `issue 171`_. |
-- If an oddly-behaved package claims that code came from an empty-string |
- filename, coverage.py no longer associates it with the directory name, |
- fixing `issue 221`_. |
+- Added a page to the docs about :doc:`troublesome situations <trouble>`, |
+ closing `issue 226`_. |
-.. _issue 80: https://bitbucket.org/ned/coveragepy/issue/80/is-there-a-duck-typing-way-to-know-we-cant |
-.. _issue 221: https://bitbucket.org/ned/coveragepy/issue/221/coveragepy-incompatible-with-pyratemp |
+- Docstrings for the legacy singleton methods are more helpful. Thanks Marius |
+ Gedminas. Closes `issue 205`_. |
+- The pydoc tool can now show documentation for the class `coverage.coverage`. |
+ Closes `issue 206`_. |
-Version 3.6b1 --- 28 November 2012 |
----------------------------------- |
+- Added some info to the TODO file, closing `issue 227`_. |
+ |
+Fixes: |
- Wildcards in ``include=`` and ``omit=`` arguments were not handled properly |
in reporting functions, though they were when running. Now they are handled |
@@ -117,24 +379,19 @@ Version 3.6b1 --- 28 November 2012 |
in a configuration file, please check carefully that you were not relying on |
the old broken behavior. |
-- The **report**, **html**, and **xml** commands now accept a ``--fail-under`` |
- switch that indicates in the exit status whether the coverage percentage was |
- less than a particular value. Closes `issue 139`_. |
- |
-- The reporting functions coverage.report(), coverage.html_report(), and |
- coverage.xml_report() now all return a float, the total percentage covered |
- measurement. |
+- Embarrassingly, the `[xml] output=` setting in the .coveragerc file simply |
+ didn't work. Now it does. |
-- The HTML report's title can now be set in the configuration file, with the |
- ``--title`` switch on the command line, or via the API. |
+- Combining data files would create entries for phantom files if used with |
+ ``source`` and path aliases. It no longer does. |
-- Configuration files now support substitution of environment variables, using |
- syntax like ``${WORD}``. Closes `issue 97`_. |
+- ``debug sys`` now shows the configuration file path that was read. |
-- Embarrassingly, the `[xml] output=` setting in the .coveragerc file simply |
- didn't work. Now it does. |
+- If an oddly-behaved package claims that code came from an empty-string |
+ file name, coverage.py no longer associates it with the directory name, |
+ fixing `issue 221`_. |
-- The XML report now consistently uses filenames for the filename attribute, |
+- The XML report now consistently uses file names for the filename attribute, |
rather than sometimes using module names. Fixes `issue 67`_. |
Thanks, Marcus Cobden. |
@@ -144,18 +401,6 @@ Version 3.6b1 --- 28 November 2012 |
total coverage numbers will generally now be lower if you are measuring |
branch coverage. |
-- When installing, now in addition to creating a "coverage" command, two new |
- aliases are also installed. A "coverage2" or "coverage3" command will be |
- created, depending on whether you are installing in Python 2.x or 3.x. |
- A "coverage-X.Y" command will also be created corresponding to your specific |
- version of Python. Closes `issue 111`_. |
- |
-- The coverage.py installer no longer tries to bootstrap setuptools or |
- Distribute. You must have one of them installed first, as `issue 202`_ |
- recommended. |
- |
-- The coverage.py kit now includes docs (closing `issue 137`_) and tests. |
- |
- On Windows, files are now reported in their correct case, fixing `issue 89`_ |
and `issue 203`_. |
@@ -175,30 +420,23 @@ Version 3.6b1 --- 28 November 2012 |
- Jython files now work with the ``--source`` option, fixing `issue 100`_. |
-- Running coverage under a debugger is unlikely to work, but it shouldn't fail |
- with "TypeError: 'NoneType' object is not iterable". Fixes `issue 201`_. |
+- Running coverage.py under a debugger is unlikely to work, but it shouldn't |
+ fail with "TypeError: 'NoneType' object is not iterable". Fixes |
+ `issue 201`_. |
- On some Linux distributions, when installed with the OS package manager, |
coverage.py would report its own code as part of the results. Now it won't, |
fixing `issue 214`_, though this will take some time to be repackaged by the |
operating systems. |
-- Docstrings for the legacy singleton methods are more helpful. Thanks Marius |
- Gedminas. Closes `issue 205`_. |
- |
-- The pydoc tool can now show docmentation for the class `coverage.coverage`. |
- Closes `issue 206`_. |
- |
-- Added a page to the docs about contributing to coverage.py, closing |
- `issue 171`_. |
- |
- When coverage.py ended unsuccessfully, it may have reported odd errors like |
``'NoneType' object has no attribute 'isabs'``. It no longer does, |
so kiss `issue 153`_ goodbye. |
+ |
.. _issue 60: https://bitbucket.org/ned/coveragepy/issue/60/incorrect-path-to-orphaned-pyc-files |
.. _issue 67: https://bitbucket.org/ned/coveragepy/issue/67/xml-report-filenames-may-be-generated |
-.. _issue 82: https://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-generating-html-report |
+.. _issue 80: https://bitbucket.org/ned/coveragepy/issue/80/is-there-a-duck-typing-way-to-know-we-cant |
.. _issue 89: https://bitbucket.org/ned/coveragepy/issue/89/on-windows-all-packages-are-reported-in |
.. _issue 97: https://bitbucket.org/ned/coveragepy/issue/97/allow-environment-variables-to-be |
.. _issue 100: https://bitbucket.org/ned/coveragepy/issue/100/source-directive-doesnt-work-for-packages |
@@ -218,6 +456,9 @@ Version 3.6b1 --- 28 November 2012 |
.. _issue 206: https://bitbucket.org/ned/coveragepy/issue/206/pydoc-coveragecoverage-fails-with-an-error |
.. _issue 210: https://bitbucket.org/ned/coveragepy/issue/210/if-theres-no-coverage-data-coverage-xml |
.. _issue 214: https://bitbucket.org/ned/coveragepy/issue/214/coveragepy-measures-itself-on-precise |
+.. _issue 221: https://bitbucket.org/ned/coveragepy/issue/221/coveragepy-incompatible-with-pyratemp |
+.. _issue 226: https://bitbucket.org/ned/coveragepy/issue/226/make-readme-section-to-describe-when |
+.. _issue 227: https://bitbucket.org/ned/coveragepy/issue/227/update-todo |
Version 3.5.3 --- 29 September 2012 |
@@ -227,8 +468,8 @@ Version 3.5.3 --- 29 September 2012 |
`issue 197`_, thanks Marius Gedminas. |
- When specifying a directory as the source= option, the directory itself no |
- longer needs to have a ``__init__.py`` file, though its subdirectories do, to |
- be considered as source files. |
+ longer needs to have a ``__init__.py`` file, though its sub-directories do, |
+ to be considered as source files. |
- Files encoded as UTF-8 with a BOM are now properly handled, fixing |
`issue 179`_. Thanks, Pablo Carballo. |
@@ -248,28 +489,17 @@ Version 3.5.3 --- 29 September 2012 |
- Try to do a better job of the impossible task of detecting when we can't |
build the C extension, fixing `issue 183`_. |
-- Testing is now done with `tox`_, thanks, Marc Abramowitz. |
- |
-.. _issue 82: https://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-generating-html-report |
.. _issue 147: https://bitbucket.org/ned/coveragepy/issue/147/massive-memory-usage-by-ctracer |
.. _issue 179: https://bitbucket.org/ned/coveragepy/issue/179/htmlreporter-fails-when-source-file-is |
.. _issue 183: https://bitbucket.org/ned/coveragepy/issue/183/install-fails-for-python-23 |
.. _issue 194: https://bitbucket.org/ned/coveragepy/issue/194/filelocatorrelative_filename-could-mangle |
.. _issue 195: https://bitbucket.org/ned/coveragepy/issue/195/pyo-file-handling-in-codeunit |
.. _issue 197: https://bitbucket.org/ned/coveragepy/issue/197/line-numbers-in-html-report-do-not-align |
-.. _tox: http://tox.readthedocs.org/ |
- |
Version 3.5.2 --- 4 May 2012 |
---------------------------- |
-No changes since 3.5.2.b1 |
- |
- |
-Version 3.5.2b1 --- 29 April 2012 |
---------------------------------- |
- |
- The HTML report has slightly tweaked controls: the buttons at the top of |
the page are color-coded to the source lines they affect. |
@@ -284,18 +514,18 @@ Version 3.5.2b1 --- 29 April 2012 |
option, fixing `issue 168`_. |
- If a file doesn't parse properly as Python, we don't report it as an error |
- if the filename seems like maybe it wasn't meant to be Python. This is a |
+ if the file name seems like maybe it wasn't meant to be Python. This is a |
pragmatic fix for `issue 82`_. |
- The ``-m`` switch on ``coverage report``, which includes missing line numbers |
- in the summary report, can now be specifed as ``show_missing`` in the |
+ in the summary report, can now be specified as ``show_missing`` in the |
config file. Closes `issue 173`_. |
- When running a module with ``coverage run -m <modulename>``, certain details |
of the execution environment weren't the same as for |
``python -m <modulename>``. This had the unfortunate side-effect of making |
``coverage run -m unittest discover`` not work if you had tests in a |
- directory named "test". This fixes `issue 155`_ and `issue 142`_. |
+ directory named "test". This fixes `issue 155`_. |
- Now the exit status of your product code is properly used as the process |
status when running ``python -m coverage run ...``. Thanks, JT Olds. |
@@ -304,7 +534,6 @@ Version 3.5.2b1 --- 29 April 2012 |
the C tracer function, closing `issue 166`_. |
.. _issue 82: https://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-generating-html-report |
-.. _issue 142: https://bitbucket.org/ned/coveragepy/issue/142/executing-python-file-syspath-is-replaced |
.. _issue 155: https://bitbucket.org/ned/coveragepy/issue/155/cant-use-coverage-run-m-unittest-discover |
.. _issue 157: https://bitbucket.org/ned/coveragepy/issue/157/chokes-on-source-files-with-non-utf-8 |
.. _issue 166: https://bitbucket.org/ned/coveragepy/issue/166/dont-try-to-compile-c-extension-on-pypy |
@@ -315,18 +544,10 @@ Version 3.5.2b1 --- 29 April 2012 |
Version 3.5.1 --- 23 September 2011 |
----------------------------------- |
-- The ``[paths]`` feature unfortunately didn't work in real world situations |
- where you wanted to, you know, report on the combined data. Now all paths |
- stored in the combined file are canonicalized properly. |
- |
- |
-Version 3.5.1b1 --- 28 August 2011 |
----------------------------------- |
- |
-- When combining data files from parallel runs, you can now instruct coverage |
- about which directories are equivalent on different machines. A ``[paths]`` |
- section in the configuration file lists paths that are to be considered |
- equivalent. Finishes `issue 17`_. |
+- When combining data files from parallel runs, you can now instruct |
+ coverage.py about which directories are equivalent on different machines. A |
+ ``[paths]`` section in the configuration file lists paths that are to be |
+ considered equivalent. Finishes `issue 17`_. |
- for-else constructs are understood better, and don't cause erroneous partial |
branch warnings. Fixes `issue 122`_. |
@@ -339,7 +560,7 @@ Version 3.5.1b1 --- 28 August 2011 |
- An explicit include directive to measure files in the Python installation |
wouldn't work because of the standard library exclusion. Now the include |
- directive takes precendence, and the files will be measured. Fixes |
+ directive takes precedence, and the files will be measured. Fixes |
`issue 138`_. |
- The HTML report now handles Unicode characters in Python source files |
@@ -348,7 +569,7 @@ Version 3.5.1b1 --- 28 August 2011 |
- In order to help the core developers measure the test coverage of the |
standard library, Brandon Rhodes devised an aggressive hack to trick Python |
- into running some coverage code before anything else in the process. |
+ into running some coverage.py code before anything else in the process. |
See the coverage/fullcoverage directory if you are interested. |
.. _issue 17: http://bitbucket.org/ned/coveragepy/issue/17/support-combining-coverage-data-from |
@@ -362,14 +583,7 @@ Version 3.5.1b1 --- 28 August 2011 |
Version 3.5 --- 29 June 2011 |
---------------------------- |
-- The HTML report hotkeys now behave slightly differently when the current |
- chunk isn't visible at all: a chunk on the screen will be selected, |
- instead of the old behavior of jumping to the literal next chunk. |
- The hotkeys now work in Google Chrome. Thanks, Guido van Rossum. |
- |
- |
-Version 3.5b1 --- 5 June 2011 |
------------------------------ |
+HTML reporting: |
- The HTML report now has hotkeys. Try ``n``, ``s``, ``m``, ``x``, ``b``, |
``p``, and ``c`` on the overview page to change the column sorting. |
@@ -379,32 +593,20 @@ Version 3.5b1 --- 5 June 2011 |
The ``1`` (one) key jumps to the first highlighted section in the file, |
and ``0`` (zero) scrolls to the top of the file. |
-- The ``--omit`` and ``--include`` switches now interpret their values more |
- usefully. If the value starts with a wildcard character, it is used as-is. |
- If it does not, it is interpreted relative to the current directory. |
- Closes `issue 121`_. |
+- HTML reporting is now incremental: a record is kept of the data that |
+ produced the HTML reports, and only files whose data has changed will |
+ be generated. This should make most HTML reporting faster. |
-- Partial branch warnings can now be pragma'd away. The configuration option |
- ``partial_branches`` is a list of regular expressions. Lines matching any of |
- those expressions will never be marked as a partial branch. In addition, |
- there's a built-in list of regular expressions marking statements which should |
- never be marked as partial. This list includes ``while True:``, ``while 1:``, |
- ``if 1:``, and ``if 0:``. |
-- The ``coverage()`` constructor accepts single strings for the ``omit=`` and |
- ``include=`` arguments, adapting to a common error in programmatic use. |
+Running Python files |
- Modules can now be run directly using ``coverage run -m modulename``, to |
mirror Python's ``-m`` flag. Closes `issue 95`_, thanks, Brandon Rhodes. |
-- ``coverage run`` didn't emulate Python accurately in one small detail: the |
+- ``coverage run`` didn't emulate Python accurately in one detail: the |
current directory inserted into ``sys.path`` was relative rather than |
absolute. This is now fixed. |
-- HTML reporting is now incremental: a record is kept of the data that |
- produced the HTML reports, and only files whose data has changed will |
- be generated. This should make most HTML reporting faster. |
- |
- Pathological code execution could disable the trace function behind our |
backs, leading to incorrect code measurement. Now if this happens, |
coverage.py will issue a warning, at least alerting you to the problem. |
@@ -414,33 +616,33 @@ Version 3.5b1 --- 5 June 2011 |
with ``sys.gettrace()`` and ``sys.settrace()``. This fixes `issue 125`_ |
and `issue 123`_. Thanks, Devin Jeanpierre. |
-- Source files are now opened with Python 3.2's ``tokenize.open()`` where |
- possible, to get the best handling of Python source files with encodings. |
- Closes `issue 107`_, thanks, Brett Cannon. |
- |
-- Syntax errors in supposed Python files can now be ignored during reporting |
- with the ``-i`` switch just like other source errors. Closes `issue 115`_. |
- |
-- Installation from source now succeeds on machines without a C compiler, |
- closing `issue 80`_. |
- |
- Coverage.py can now be run directly from a working tree by specifying |
the directory name to python: ``python coverage_py_working_dir run ...``. |
Thanks, Brett Cannon. |
- A little bit of Jython support: `coverage run` can now measure Jython |
execution by adapting when $py.class files are traced. Thanks, Adi Roiban. |
- Jython still doesn't provide the Python libraries needed to make |
- coverage reporting work, unfortunately. |
-- Internally, files are now closed explicitly, fixing `issue 104`_. Thanks, |
- Brett Cannon. |
-.. _issue 80: https://bitbucket.org/ned/coveragepy/issue/80/is-there-a-duck-typing-way-to-know-we-cant |
+Reporting |
+ |
+- Partial branch warnings can now be pragma'd away. The configuration option |
+ ``partial_branches`` is a list of regular expressions. Lines matching any of |
+ those expressions will never be marked as a partial branch. In addition, |
+ there's a built-in list of regular expressions marking statements which should |
+ never be marked as partial. This list includes ``while True:``, ``while 1:``, |
+ ``if 1:``, and ``if 0:``. |
+ |
+- The ``--omit`` and ``--include`` switches now interpret their values more |
+ usefully. If the value starts with a wildcard character, it is used as-is. |
+ If it does not, it is interpreted relative to the current directory. |
+ Closes `issue 121`_. |
+ |
+- Syntax errors in supposed Python files can now be ignored during reporting |
+ with the ``-i`` switch just like other source errors. Closes `issue 115`_. |
+ |
.. _issue 93: http://bitbucket.org/ned/coveragepy/issue/93/copying-a-mock-object-breaks-coverage |
.. _issue 95: https://bitbucket.org/ned/coveragepy/issue/95/run-subcommand-should-take-a-module-name |
-.. _issue 104: https://bitbucket.org/ned/coveragepy/issue/104/explicitly-close-files |
-.. _issue 107: https://bitbucket.org/ned/coveragepy/issue/107/codeparser-not-opening-source-files-with |
.. _issue 115: https://bitbucket.org/ned/coveragepy/issue/115/fail-gracefully-when-reporting-on-file |
.. _issue 121: https://bitbucket.org/ned/coveragepy/issue/121/filename-patterns-are-applied-stupidly |
.. _issue 123: https://bitbucket.org/ned/coveragepy/issue/123/pyeval_settrace-used-in-way-that-breaks |
@@ -450,75 +652,30 @@ Version 3.5b1 --- 5 June 2011 |
Version 3.4 --- 19 September 2010 |
--------------------------------- |
-- The XML report is now sorted by package name, fixing `issue 88`_. |
- |
-- Programs that exited with ``sys.exit()`` with no argument weren't handled |
- properly, producing a coverage.py stack trace. That is now fixed. |
- |
-.. _issue 88: http://bitbucket.org/ned/coveragepy/issue/88/xml-report-lists-packages-in-random-order |
- |
- |
-Version 3.4b2 --- 6 September 2010 |
----------------------------------- |
- |
-- Completely unexecuted files can now be included in coverage results, reported |
- as 0% covered. This only happens if the --source option is specified, since |
- coverage.py needs guidance about where to look for source files. |
- |
-- The XML report output now properly includes a percentage for branch coverage, |
- fixing `issue 65`_ and `issue 81`_. |
- |
-- Coverage percentages are now displayed uniformly across reporting methods. |
- Previously, different reports could round percentages differently. Also, |
- percentages are only reported as 0% or 100% if they are truly 0 or 100, and |
- are rounded otherwise. Fixes `issue 41`_ and `issue 70`_. |
- |
-- The precision of reported coverage percentages can be set with the |
- ``[report] precision`` config file setting. Completes `issue 16`_. |
- |
-- Threads derived from ``threading.Thread`` with an overridden `run` method |
- would report no coverage for the `run` method. This is now fixed, closing |
- `issue 85`_. |
- |
-.. _issue 16: http://bitbucket.org/ned/coveragepy/issue/16/allow-configuration-of-accuracy-of-percentage-totals |
-.. _issue 41: http://bitbucket.org/ned/coveragepy/issue/41/report-says-100-when-it-isnt-quite-there |
-.. _issue 65: http://bitbucket.org/ned/coveragepy/issue/65/branch-option-not-reported-in-cobertura |
-.. _issue 70: http://bitbucket.org/ned/coveragepy/issue/70/text-report-and-html-report-disagree-on-coverage |
-.. _issue 81: http://bitbucket.org/ned/coveragepy/issue/81/xml-report-does-not-have-condition-coverage-attribute-for-lines-with-a |
-.. _issue 85: http://bitbucket.org/ned/coveragepy/issue/85/threadrun-isnt-measured |
- |
- |
-Version 3.4b1 --- 21 August 2010 |
--------------------------------- |
+Controlling source: |
- BACKWARD INCOMPATIBILITY: the ``--omit`` and ``--include`` switches now take |
file patterns rather than file prefixes, closing `issue 34`_ and `issue 36`_. |
- BACKWARD INCOMPATIBILITY: the `omit_prefixes` argument is gone throughout |
- coverage.py, replaced with `omit`, a list of filename patterns suitable for |
+ coverage.py, replaced with `omit`, a list of file name patterns suitable for |
`fnmatch`. A parallel argument `include` controls what files are included. |
- The run command now has a ``--source`` switch, a list of directories or |
module names. If provided, coverage.py will only measure execution in those |
- source files. |
- |
-- Various warnings are printed to stderr for problems encountered during data |
- measurement: if a ``--source`` module has no Python source to measure, or is |
- never encountered at all, or if no data is collected. |
+ source files. The run command also now supports ``--include`` and ``--omit`` |
+ to control what modules it measures. This can speed execution and reduce the |
+ amount of data during reporting. Thanks Zooko. |
- The reporting commands (report, annotate, html, and xml) now have an |
``--include`` switch to restrict reporting to modules matching those file |
patterns, similar to the existing ``--omit`` switch. Thanks, Zooko. |
-- The run command now supports ``--include`` and ``--omit`` to control what |
- modules it measures. This can speed execution and reduce the amount of data |
- during reporting. Thanks Zooko. |
+Reporting: |
-- Since coverage.py 3.1, using the Python trace function has been slower than |
- it needs to be. A cache of tracing decisions was broken, but has now been |
- fixed. |
- |
-- Python 2.7 and 3.2 have introduced new opcodes that are now supported. |
+- Completely unexecuted files can now be included in coverage results, reported |
+ as 0% covered. This only happens if the --source option is specified, since |
+ coverage.py needs guidance about where to look for source files. |
- Python files with no statements, for example, empty ``__init__.py`` files, |
are now reported as having zero statements instead of one. Fixes `issue 1`_. |
@@ -528,59 +685,72 @@ Version 3.4b1 --- 21 August 2010 |
rather than increasing the executed lines to varying targets. Once |
suggested, this seemed blindingly obvious. |
+- Coverage percentages are now displayed uniformly across reporting methods. |
+ Previously, different reports could round percentages differently. Also, |
+ percentages are only reported as 0% or 100% if they are truly 0 or 100, and |
+ are rounded otherwise. Fixes `issue 41`_ and `issue 70`_. |
+ |
+- The XML report output now properly includes a percentage for branch coverage, |
+ fixing `issue 65`_ and `issue 81`_, and the report is sorted by package |
+ name, fixing `issue 88`_. |
+ |
+- The XML report is now sorted by package name, fixing `issue 88`_. |
+ |
+- The precision of reported coverage percentages can be set with the |
+ ``[report] precision`` config file setting. Completes `issue 16`_. |
+ |
- Line numbers in HTML source pages are clickable, linking directly to that |
line, which is highlighted on arrival. Added a link back to the index page |
at the bottom of each HTML page. |
-- Programs that call ``os.fork`` will properly collect data from both the child |
- and parent processes. Use ``coverage run -p`` to get two data files that can |
- be combined with ``coverage combine``. Fixes `issue 56`_. |
- |
-- Coverage is now runnable as a module: ``python -m coverage``. Thanks, |
- Brett Cannon. |
+Execution and measurement: |
-- When measuring code running in a virtualenv, most of the system library was |
- being measured when it shouldn't have been. This is now fixed. |
+- Various warnings are printed to stderr for problems encountered during data |
+ measurement: if a ``--source`` module has no Python source to measure, or is |
+ never encountered at all, or if no data is collected. |
- Doctest text files are no longer recorded in the coverage data, since they |
can't be reported anyway. Fixes `issue 52`_ and `issue 61`_. |
-- Jinja HTML templates compile into Python code using the HTML filename, |
- which confused coverage.py. Now these files are no longer traced, fixing |
- `issue 82`_. |
+- Threads derived from ``threading.Thread`` with an overridden `run` method |
+ would report no coverage for the `run` method. This is now fixed, closing |
+ `issue 85`_. |
-- Source files can have more than one dot in them (foo.test.py), and will be |
- treated properly while reporting. Fixes `issue 46`_. |
+- Programs that exited with ``sys.exit()`` with no argument weren't handled |
+ properly, producing a coverage.py stack trace. This is now fixed. |
-- Source files with DOS line endings are now properly tokenized for syntax |
- coloring on non-DOS machines. Fixes `issue 53`_. |
+- Programs that call ``os.fork`` will properly collect data from both the child |
+ and parent processes. Use ``coverage run -p`` to get two data files that can |
+ be combined with ``coverage combine``. Fixes `issue 56`_. |
-- Unusual code structure that confused exits from methods with exits from |
- classes is now properly analyzed. See `issue 62`_. |
+- When measuring code running in a virtualenv, most of the system library was |
+ being measured when it shouldn't have been. This is now fixed. |
-- Asking for an HTML report with no files now shows a nice error message rather |
- than a cryptic failure ('int' object is unsubscriptable). Fixes `issue 59`_. |
+- Coverage.py can now be run as a module: ``python -m coverage``. Thanks, |
+ Brett Cannon. |
.. _issue 1: http://bitbucket.org/ned/coveragepy/issue/1/empty-__init__py-files-are-reported-as-1-executable |
+.. _issue 16: http://bitbucket.org/ned/coveragepy/issue/16/allow-configuration-of-accuracy-of-percentage-totals |
.. _issue 34: http://bitbucket.org/ned/coveragepy/issue/34/enhanced-omit-globbing-handling |
.. _issue 36: http://bitbucket.org/ned/coveragepy/issue/36/provide-regex-style-omit |
-.. _issue 46: http://bitbucket.org/ned/coveragepy/issue/46 |
-.. _issue 53: http://bitbucket.org/ned/coveragepy/issue/53 |
+.. _issue 41: http://bitbucket.org/ned/coveragepy/issue/41/report-says-100-when-it-isnt-quite-there |
.. _issue 52: http://bitbucket.org/ned/coveragepy/issue/52/doctesttestfile-confuses-source-detection |
-.. _issue 56: http://bitbucket.org/ned/coveragepy/issue/56 |
+.. _issue 56: http://bitbucket.org/ned/coveragepy/issue/56/coveragepy-cant-trace-child-processes-of-a |
.. _issue 61: http://bitbucket.org/ned/coveragepy/issue/61/annotate-i-doesnt-work |
-.. _issue 62: http://bitbucket.org/ned/coveragepy/issue/62 |
-.. _issue 59: http://bitbucket.org/ned/coveragepy/issue/59/html-report-fails-with-int-object-is |
-.. _issue 82: http://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-generating-html-report |
+.. _issue 65: http://bitbucket.org/ned/coveragepy/issue/65/branch-option-not-reported-in-cobertura |
+.. _issue 70: http://bitbucket.org/ned/coveragepy/issue/70/text-report-and-html-report-disagree-on-coverage |
+.. _issue 81: http://bitbucket.org/ned/coveragepy/issue/81/xml-report-does-not-have-condition-coverage-attribute-for-lines-with-a |
+.. _issue 85: http://bitbucket.org/ned/coveragepy/issue/85/threadrun-isnt-measured |
+.. _issue 88: http://bitbucket.org/ned/coveragepy/issue/88/xml-report-lists-packages-in-random-order |
Version 3.3.1 --- 6 March 2010 |
------------------------------ |
-- Using `parallel=True` in .coveragerc file prevented reporting, but now does |
- not, fixing `issue 49`_. |
+- Using ``parallel=True`` in a .coveragerc file prevented reporting, but now |
+ does not, fixing `issue 49`_. |
-- When running your code with "coverage run", if you call `sys.exit()`, |
+- When running your code with ``coverage run``, if you call ``sys.exit()``, |
coverage.py will exit with that status code, fixing `issue 50`_. |
.. _issue 49: http://bitbucket.org/ned/coveragepy/issue/49 |
@@ -591,35 +761,24 @@ Version 3.3 --- 24 February 2010 |
-------------------------------- |
- Settings are now read from a .coveragerc file. A specific file can be |
- specified on the command line with --rcfile=FILE. The name of the file can |
- be programmatically set with the `config_file` argument to the coverage() |
- constructor, or reading a config file can be disabled with |
- `config_file=False`. |
- |
-- Fixed a problem with nested loops having their branch possibilities |
- mischaracterized: `issue 39`_. |
+ specified on the command line with ``--rcfile=FILE``. The name of the file |
+ can be programmatically set with the ``config_file`` argument to the |
+ coverage() constructor, or reading a config file can be disabled with |
+ ``config_file=False``. |
- Added coverage.process_start to enable coverage measurement when Python |
starts. |
- Parallel data file names now have a random number appended to them in |
- addition to the machine name and process id. |
- |
-- Parallel data files combined with "coverage combine" are deleted after |
- they're combined, to clean up unneeded files. Fixes `issue 40`_. |
+ addition to the machine name and process id. Also, parallel data files |
+ combined with ``coverage combine`` are deleted after they're combined, to |
+ clean up unneeded files. Fixes `issue 40`_. |
-- Exceptions thrown from product code run with "coverage run" are now displayed |
- without internal coverage.py frames, so the output is the same as when the |
- code is run without coverage.py. |
+- Exceptions thrown from product code run with ``coverage run`` are now |
+ displayed without internal coverage.py frames, so the output is the same as |
+ when the code is run without coverage.py. |
-- The `data_suffix` argument to the coverage constructor is now appended with |
- an added dot rather than simply appended, so that .coveragerc files will not |
- be confused for data files. |
- |
-- Python source files that don't end with a newline can now be executed, fixing |
- `issue 47`_. |
- |
-- Added an AUTHORS.txt file. |
+- Fixed `issue 39`_ and `issue 47`_. |
.. _issue 39: http://bitbucket.org/ned/coveragepy/issue/39 |
.. _issue 40: http://bitbucket.org/ned/coveragepy/issue/40 |
@@ -629,381 +788,125 @@ Version 3.3 --- 24 February 2010 |
Version 3.2 --- 5 December 2009 |
------------------------------- |
-- Added a ``--version`` option on the command line. |
- |
- |
-Version 3.2b4 --- 1 December 2009 |
---------------------------------- |
- |
-- Branch coverage improvements: |
- |
- - The XML report now includes branch information. |
- |
-- Click-to-sort HTML report columns are now persisted in a cookie. Viewing |
- a report will sort it first the way you last had a coverage report sorted. |
- Thanks, `Chris Adams`_. |
- |
-- On Python 3.x, setuptools has been replaced by `Distribute`_. |
- |
-.. _Distribute: http://packages.python.org/distribute/ |
- |
- |
-Version 3.2b3 --- 23 November 2009 |
----------------------------------- |
- |
-- Fixed a memory leak in the C tracer that was introduced in 3.2b1. |
- |
-- Branch coverage improvements: |
- |
- - Branches to excluded code are ignored. |
+- Branch coverage: coverage.py can tell you which branches didn't have both (or |
+ all) choices executed, even where the choice doesn't affect which lines were |
+ executed. See :ref:`branch` for more details. |
- The table of contents in the HTML report is now sortable: click the headers |
- on any column. Thanks, `Chris Adams`_. |
+ on any column. The sorting is persisted so that subsequent reports are |
+ sorted as you wish. Thanks, `Chris Adams`_. |
-.. _Chris Adams: http://improbable.org/chris/ |
+- XML reporting has file paths that let Cobertura find the source code, fixing |
+ `issue 21`_. |
+- The ``--omit`` option now works much better than before, fixing `issue 14`_ |
+ and `issue 33`_. Thanks, Danek Duvall. |
-Version 3.2b2 --- 19 November 2009 |
----------------------------------- |
- |
-- Branch coverage improvements: |
+- Added a ``--version`` option on the command line. |
- - Classes are no longer incorrectly marked as branches: `issue 32`_. |
+- Program execution under coverage.py is a few percent faster. |
- - "except" clauses with types are no longer incorrectly marked as branches: |
- `issue 35`_. |
+- Some exceptions reported by the command line interface have been cleaned up |
+ so that tracebacks inside coverage.py aren't shown. Fixes `issue 23`_. |
- Fixed some problems syntax coloring sources with line continuations and |
source with tabs: `issue 30`_ and `issue 31`_. |
-- The --omit option now works much better than before, fixing `issue 14`_ and |
- `issue 33`_. Thanks, Danek Duvall. |
- |
+.. _Chris Adams: http://improbable.org/chris/ |
+.. _issue 21: http://bitbucket.org/ned/coveragepy/issue/21 |
+.. _issue 23: http://bitbucket.org/ned/coveragepy/issue/23 |
.. _issue 14: http://bitbucket.org/ned/coveragepy/issue/14 |
.. _issue 30: http://bitbucket.org/ned/coveragepy/issue/30 |
.. _issue 31: http://bitbucket.org/ned/coveragepy/issue/31 |
-.. _issue 32: http://bitbucket.org/ned/coveragepy/issue/32 |
.. _issue 33: http://bitbucket.org/ned/coveragepy/issue/33 |
-.. _issue 35: http://bitbucket.org/ned/coveragepy/issue/35 |
- |
- |
-Version 3.2b1 --- 10 November 2009 |
----------------------------------- |
- |
-- Branch coverage! |
- |
-- XML reporting has file paths that let Cobertura find the source code. |
- |
-- The tracer code has changed, it's a few percent faster. |
- |
-- Some exceptions reported by the command line interface have been cleaned up |
- so that tracebacks inside coverage.py aren't shown. Fixes `issue 23`_. |
- |
-.. _issue 23: http://bitbucket.org/ned/coveragepy/issue/23 |
Version 3.1 --- 4 October 2009 |
------------------------------ |
-- Source code can now be read from eggs. Thanks, Ross Lawley. Fixes |
- `issue 25`_. |
- |
-.. _issue 25: http://bitbucket.org/ned/coveragepy/issue/25 |
- |
- |
-Version 3.1b1 --- 27 September 2009 |
------------------------------------ |
- |
- Python 3.1 is now supported. |
- Coverage.py has a new command line syntax with sub-commands. This expands |
the possibilities for adding features and options in the future. The old |
- syntax is still supported. Try "coverage help" to see the new commands. |
+ syntax is still supported. Try ``coverage help`` to see the new commands. |
Thanks to Ben Finney for early help. |
-- Added an experimental "coverage xml" command for producing coverage reports |
+- Added an experimental ``coverage xml`` command for producing coverage reports |
in a Cobertura-compatible XML format. Thanks, Bill Hart. |
-- Added the --timid option to enable a simpler slower trace function that works |
- for DecoratorTools projects, including TurboGears. Fixed `issue 12`_ and |
- `issue 13`_. |
- |
-- HTML reports show modules from other directories. Fixed `issue 11`_. |
+- Added the ``--timid`` option to enable a simpler slower trace function that |
+ works for DecoratorTools projects, including TurboGears. Fixed `issue 12`_ |
+ and `issue 13`_. |
- HTML reports now display syntax-colored Python source. |
-- Programs that change directory will still write .coverage files in the |
- directory where execution started. Fixed `issue 24`_. |
+- Added a ``coverage debug`` command for getting diagnostic information about |
+ the coverage.py installation. |
-- Added a "coverage debug" command for getting diagnostic information about the |
- coverage.py installation. |
+- Source code can now be read from eggs. Thanks, `Ross Lawley`_. Fixes |
+ `issue 25`_. |
-.. _issue 11: http://bitbucket.org/ned/coveragepy/issue/11 |
+.. _Ross Lawley: http://agileweb.org/ |
+.. _issue 25: http://bitbucket.org/ned/coveragepy/issue/25 |
.. _issue 12: http://bitbucket.org/ned/coveragepy/issue/12 |
.. _issue 13: http://bitbucket.org/ned/coveragepy/issue/13 |
-.. _issue 24: http://bitbucket.org/ned/coveragepy/issue/24 |
Version 3.0.1 --- 7 July 2009 |
----------------------------- |
- Removed the recursion limit in the tracer function. Previously, code that |
- ran more than 500 frames deep would crash. Fixed `issue 9`_. |
+ ran more than 500 frames deep would crash. |
- Fixed a bizarre problem involving pyexpat, whereby lines following XML parser |
- invocations could be overlooked. Fixed `issue 10`_. |
+ invocations could be overlooked. |
- On Python 2.3, coverage.py could mis-measure code with exceptions being |
raised. This is now fixed. |
- The coverage.py code itself will now not be measured by coverage.py, and no |
- coverage modules will be mentioned in the nose --with-cover plug-in. Fixed |
- `issue 8`_. |
+ coverage.py modules will be mentioned in the nose ``--with-cover`` plugin. |
- When running source files, coverage.py now opens them in universal newline |
mode just like Python does. This lets it run Windows files on Mac, for |
example. |
-.. _issue 9: http://bitbucket.org/ned/coveragepy/issue/9 |
-.. _issue 10: http://bitbucket.org/ned/coveragepy/issue/10 |
-.. _issue 8: http://bitbucket.org/ned/coveragepy/issue/8 |
- |
Version 3.0 --- 13 June 2009 |
---------------------------- |
-- Fixed the way the Python library was ignored. Too much code was being |
- excluded the old way. |
- |
-- Tabs are now properly converted in HTML reports. Previously indentation was |
- lost. Fixed `issue 6`_. |
- |
-- Nested modules now get a proper flat_rootname. Thanks, Christian Heimes. |
- |
-.. _issue 6: http://bitbucket.org/ned/coveragepy/issue/6 |
- |
- |
-Version 3.0b3 --- 16 May 2009 |
------------------------------ |
- |
-- Added parameters to coverage.__init__ for options that had been set on the |
- coverage object itself. |
- |
-- Added clear_exclude() and get_exclude_list() methods for programmatic |
- manipulation of the exclude regexes. |
- |
-- Added coverage.load() to read previously-saved data from the data file. |
- |
-- Improved the finding of code files. For example, .pyc files that have been |
- installed after compiling are now located correctly. Thanks, Detlev |
- Offenbach. |
- |
-- When using the object API (that is, constructing a coverage() object), data |
- is no longer saved automatically on process exit. You can re-enable it with |
- the auto_data=True parameter on the coverage() constructor. The module-level |
- interface still uses automatic saving. |
- |
- |
-Version 3.0b --- 30 April 2009 |
------------------------------- |
- |
-HTML reporting, and continued refactoring. |
- |
-- HTML reports and annotation of source files: use the new -b (browser) switch. |
- Thanks to George Song for code, inspiration and guidance. |
- |
-- Code in the Python standard library is not measured by default. If you need |
- to measure standard library code, use the -L command-line switch during |
- execution, or the cover_pylib=True argument to the coverage() constructor. |
- |
-- Source annotation into a directory (-a -d) behaves differently. The |
- annotated files are named with their hierarchy flattened so that same-named |
- files from different directories no longer collide. Also, only files in the |
- current tree are included. |
+- Coverage.py is now a package rather than a module. Functionality has been |
+ split into classes. |
-- coverage.annotate_file is no longer available. |
+- HTML reports and annotation of source files: use the new ``-b`` (browser) |
+ switch. Thanks to George Song for code, inspiration and guidance. |
-- Programs executed with -x now behave more as they should, for example, |
- __file__ has the correct value. |
- |
-- .coverage data files have a new pickle-based format designed for better |
- extensibility. |
- |
-- Removed the undocumented cache_file argument to coverage.usecache(). |
- |
- |
-Version 3.0b1 --- 7 March 2009 |
------------------------------- |
- |
-Major overhaul. |
- |
-- Coverage is now a package rather than a module. Functionality has been split |
- into classes. |
- |
-- The trace function is implemented in C for speed. Coverage runs are now |
+- The trace function is implemented in C for speed. Coverage.py runs are now |
much faster. Thanks to David Christian for productive micro-sprints and |
other encouragement. |
-- Executable lines are identified by reading the line number tables in the |
- compiled code, removing a great deal of complicated analysis code. |
- |
-- Precisely which lines are considered executable has changed in some cases. |
- Therefore, your coverage stats may also change slightly. |
- |
-- The singleton coverage object is only created if the module-level functions |
- are used. This maintains the old interface while allowing better |
- programmatic use of Coverage. |
- |
- The minimum supported Python version is 2.3. |
+- When using the object API (that is, constructing a coverage() object), data |
+ is no longer saved automatically on process exit. You can re-enable it with |
+ the ``auto_data=True`` parameter on the coverage() constructor. |
+ The module-level interface still uses automatic saving. |
-Version 2.85 --- 14 September 2008 |
----------------------------------- |
- |
-- Add support for finding source files in eggs. Don't check for |
- morf's being instances of ModuleType, instead use duck typing so that |
- pseudo-modules can participate. Thanks, Imri Goldberg. |
- |
-- Use os.realpath as part of the fixing of file names so that symlinks won't |
- confuse things. Thanks, Patrick Mezard. |
- |
- |
-Version 2.80 --- 25 May 2008 |
----------------------------- |
- |
-- Open files in rU mode to avoid line ending craziness. Thanks, Edward Loper. |
- |
- |
-Version 2.78 --- 30 September 2007 |
----------------------------------- |
- |
-- Don't try to predict whether a file is Python source based on the extension. |
- Extension-less files are often Pythons scripts. Instead, simply parse the file |
- and catch the syntax errors. Hat tip to Ben Finney. |
- |
- |
-Version 2.77 --- 29 July 2007 |
------------------------------ |
- |
-- Better packaging. |
- |
- |
-Version 2.76 --- 23 July 2007 |
------------------------------ |
- |
-- Now Python 2.5 is *really* fully supported: the body of the new with |
- statement is counted as executable. |
- |
- |
-Version 2.75 --- 22 July 2007 |
------------------------------ |
- |
-- Python 2.5 now fully supported. The method of dealing with multi-line |
- statements is now less sensitive to the exact line that Python reports during |
- execution. Pass statements are handled specially so that their disappearance |
- during execution won't throw off the measurement. |
- |
- |
-Version 2.7 --- 21 July 2007 |
----------------------------- |
- |
-- "#pragma: nocover" is excluded by default. |
- |
-- Properly ignore docstrings and other constant expressions that appear in the |
- middle of a function, a problem reported by Tim Leslie. |
- |
-- coverage.erase() shouldn't clobber the exclude regex. Change how parallel |
- mode is invoked, and fix erase() so that it erases the cache when called |
- programmatically. |
- |
-- In reports, ignore code executed from strings, since we can't do anything |
- useful with it anyway. |
- |
-- Better file handling on Linux, thanks Guillaume Chazarain. |
- |
-- Better shell support on Windows, thanks Noel O'Boyle. |
- |
-- Python 2.2 support maintained, thanks Catherine Proulx. |
- |
-- Minor changes to avoid lint warnings. |
- |
- |
-Version 2.6 --- 23 August 2006 |
------------------------------- |
- |
-- Applied Joseph Tate's patch for function decorators. |
- |
-- Applied Sigve Tjora and Mark van der Wal's fixes for argument handling. |
- |
-- Applied Geoff Bache's parallel mode patch. |
- |
-- Refactorings to improve testability. Fixes to command-line logic for parallel |
- mode and collect. |
- |
- |
-Version 2.5 --- 4 December 2005 |
-------------------------------- |
- |
-- Call threading.settrace so that all threads are measured. Thanks Martin |
- Fuzzey. |
- |
-- Add a file argument to report so that reports can be captured to a different |
- destination. |
- |
-- coverage.py can now measure itself. |
- |
-- Adapted Greg Rogers' patch for using relative file names, and sorting and |
- omitting files to report on. |
- |
- |
-Version 2.2 --- 31 December 2004 |
--------------------------------- |
- |
-- Allow for keyword arguments in the module global functions. Thanks, Allen. |
- |
- |
-Version 2.1 --- 14 December 2004 |
--------------------------------- |
- |
-- Return 'analysis' to its original behavior and add 'analysis2'. Add a global |
- for 'annotate', and factor it, adding 'annotate_file'. |
- |
- |
-Version 2.0 --- 12 December 2004 |
--------------------------------- |
- |
-Significant code changes. |
- |
-- Finding executable statements has been rewritten so that docstrings and |
- other quirks of Python execution aren't mistakenly identified as missing |
- lines. |
- |
-- Lines can be excluded from consideration, even entire suites of lines. |
- |
-- The file system cache of covered lines can be disabled programmatically. |
- |
-- Modernized the code. |
- |
- |
-Earlier History |
---------------- |
- |
-2001-12-04 GDR Created. |
- |
-2001-12-06 GDR Added command-line interface and source code annotation. |
+- Code in the Python standard library is not measured by default. If you need |
+ to measure standard library code, use the ``-L`` command-line switch during |
+ execution, or the ``cover_pylib=True`` argument to the coverage() |
+ constructor. |
-2001-12-09 GDR Moved design and interface to separate documents. |
+- API changes: |
-2001-12-10 GDR Open cache file as binary on Windows. Allow simultaneous -e and |
--x, or -a and -r. |
+ - Added parameters to coverage.__init__ for options that had been set on |
+ the coverage object itself. |
-2001-12-12 GDR Added command-line help. Cache analysis so that it only needs to |
-be done once when you specify -a and -r. |
+ - Added clear_exclude() and get_exclude_list() methods for programmatic |
+ manipulation of the exclude regexes. |
-2001-12-13 GDR Improved speed while recording. Portable between Python 1.5.2 |
-and 2.1.1. |
+ - Added coverage.load() to read previously-saved data from the data file. |
-2002-01-03 GDR Module-level functions work correctly. |
+ - coverage.annotate_file is no longer available. |
-2002-01-07 GDR Update sys.path when running a file with the -x option, so that |
-it matches the value the program would get if it were run on its own. |
+ - Removed the undocumented cache_file argument to coverage.usecache(). |