| 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().
|
|
|