The NetBSD Project

CVS log for pkgsrc/devel/py-coverage/Makefile

[BACK] Up to [] / pkgsrc / devel / py-coverage

Request diff between arbitrary revisions

Default branch: MAIN

Revision 1.44 / (download) - annotate - [select for diffs], Sun Nov 26 10:21:37 2023 UTC (2 days, 23 hours ago) by adam
Branch: MAIN
Changes since 1.43: +2 -5 lines
Diff to previous 1.43 (colored)

py-coverage: fix PLIST

Revision 1.43 / (download) - annotate - [select for diffs], Sat Oct 28 19:56:58 2023 UTC (4 weeks, 3 days ago) by wiz
Branch: MAIN
Changes since 1.42: +3 -2 lines
Diff to previous 1.42 (colored)

python/ simplify a lot, and switch to 'installer' for installation

This follows the recommended bootstrap method (flit_core, build, installer).

However, installer installs different files than pip, so update PLISTs
for all packages using and bump their PKGREVISIONs.

Revision 1.42 / (download) - annotate - [select for diffs], Mon Oct 23 06:37:39 2023 UTC (5 weeks, 2 days ago) by wiz
Branch: MAIN
Changes since 1.41: +3 -2 lines
Diff to previous 1.41 (colored)

*: update for Python base package change

Instead of depending on one of the removed packages (that are now included
in the base Python packages), include to require
a Python version that supplies them.

Remove now included packages.


Revision 1.41 / (download) - annotate - [select for diffs], Mon Oct 2 19:03:13 2023 UTC (8 weeks, 1 day ago) by adam
Branch: MAIN
Changes since 1.40: +2 -2 lines
Diff to previous 1.40 (colored)

py-coverage: updated to 7.3.2

Version 7.3.2 2023-10-02

- The ``coverage lcov`` command ignored the ``[report] exclude_lines`` and
  ``[report] exclude_also`` settings (`issue 1684`_).  This is now fixed,
  thanks `Jacqueline Lee <pull 1685_>`_.

- Sometimes SQLite will create journal files alongside the database
  files.  These are ephemeral, but could be mistakenly included when combining
  data files.  Now they are always ignored, fixing `issue 1605`_. Thanks to
  Brad Smith for suggesting fixes and providing detailed debugging.

- On Python 3.12+, we now disable SQLite writing journal files, which should be
  a little faster.

- The new 3.12 soft keyword ``type`` is properly bolded in HTML reports.

- Removed the "fullcoverage" feature used by CPython to measure the coverage of
  early-imported standard library modules.  CPython `stopped using it
  <88054_>`_ in 2021, and it stopped working completely in Python 3.13.

Revision 1.40 / (download) - annotate - [select for diffs], Thu Sep 28 16:05:52 2023 UTC (2 months ago) by adam
Branch: MAIN
Changes since 1.39: +2 -2 lines
Diff to previous 1.39 (colored)

py-coverage: updated to 7.3.1

Version 7.3.1 2023-09-06
- The semantics of stars in file patterns has been clarified in the docs.  A
  leading or trailing star matches any number of path components, like a double
  star would.  This is different than the behavior of a star in the middle of a
  pattern.  This discrepancy was `identified by Sviatoslav Sydorenko
  <starbad_>`_, who `provided patient detailed diagnosis <pull 1650_>`_ and
  graciously agreed to a pragmatic resolution.

- The API docs were missing from the last version. They are now `restored

Revision 1.39 / (download) - annotate - [select for diffs], Fri Aug 25 11:07:20 2023 UTC (3 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2023Q3-base, pkgsrc-2023Q3
Changes since 1.38: +5 -10 lines
Diff to previous 1.38 (colored)

py-coverage: updated to 7.3.0

Version 7.3.0 2023-08-12
Added a Coverage.collect() context manager to start and stop coverage data collection.
Dropped support for Python 3.7.
Fix: in unusual circumstances, SQLite cannot be set to asynchronous mode. would fail with the error Safety level may not be changed inside a transaction. This is now avoided, closing issue 1646. Thanks to Michael Bell for the detailed bug report.
Docs: examples of configuration files now include separate examples for the different syntaxes: .coveragerc, pyproject.toml, setup.cfg, and tox.ini.
Fix: added nosemgrep comments to our JavaScript code so that semgrep-based SAST security checks won raise false alarms about security problems that aren problems.
Added a CITATION.cff file, thanks to Ken Schackart.

Revision 1.38 / (download) - annotate - [select for diffs], Tue May 30 04:13:53 2023 UTC (6 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2023Q2-base, pkgsrc-2023Q2
Changes since 1.37: +2 -2 lines
Diff to previous 1.37 (colored)

py-coverage: updated to 7.2.7

Version 7.2.7 2023-05-29

- Fix: reverted a `change from 6.4.3 <pull 1347_>`_ that helped Cython, but
  also increased the size of data files when using dynamic contexts, as
  described in the now-fixed `issue 1586`_. The problem is now avoided due to a
  recent change (`issue 1538`_).  Thanks to `Anders Kaseorg <pull 1629_>`_
  and David Szotten for persisting with problem reports and detailed diagnoses.

- Wheels are now provided for CPython 3.12.

Revision 1.37 / (download) - annotate - [select for diffs], Wed May 24 06:43:40 2023 UTC (6 months ago) by adam
Branch: MAIN
Changes since 1.36: +3 -7 lines
Diff to previous 1.36 (colored)

py-coverage: updated to 7.2.6

Version 7.2.6 2023-05-23

- Fix: the ``lcov`` command could raise an IndexError exception if a file is
  translated to Python but then executed under its own name.  Jinja2 does this
  when rendering templates.  Fixes `issue 1553`_.

- Python 3.12 beta 1 now inlines comprehensions.  Previously they were compiled
  as invisible functions and would warn you if they weren't
  completely executed.  This no longer happens under Python 3.12.

- Fix: the ``coverage debug sys`` command includes some environment variables
  in its output.  This could have included sensitive data.  Those values are
  now hidden with asterisks, closing `issue 1628`_.

Revision 1.36 / (download) - annotate - [select for diffs], Fri May 5 10:34:25 2023 UTC (6 months, 3 weeks ago) by wiz
Branch: MAIN
Changes since 1.35: +4 -3 lines
Diff to previous 1.35 (colored)

py-coverage: update to 7.2.5.

Version 7.2.5 2023-04-30

- Fix: ``html_report()`` could fail with an AttributeError on ``isatty`` if run
  in an unusual environment where sys.stdout had been replaced.  This is now

Version 7.2.4 2023-04-28

PyCon 2023 sprint fixes!

- Fix: with ``relative_files = true``, specifying a specific file to include or
  omit wouldn't work correctly (`issue 1604`_).  This is now fixed, with
  testing help by `Marc Gibbons <pull 1608_>`_.

- Fix: the XML report would have an incorrect ``<source>`` element when using
  relative files and the source option ended with a slash (`issue 1541`_).
  This is now fixed, thanks to `Kevin Brown-Silva <pull 1608_>`_.

- When the HTML report location is printed to the terminal, it's now a
  terminal-compatible URL, so that you can click the location to open the HTML
  file in your browser.  Finishes `issue 1523`_ thanks to `Ricardo Newbery
  <pull 1613_>`_.

- Docs: a new :ref:`Migrating page <migrating>` with details about how to
  migrate between major versions of  It currently covers the
  wildcard changes in 7.x.  Thanks, `Brian Grohe <pull 1610_>`_.

.. _issue 1523:
.. _issue 1541:
.. _issue 1604:
.. _pull 1608:
.. _pull 1609:
.. _pull 1610:
.. _pull 1613:

Version 7.2.3 2023-04-06

- Fix: the :ref:`config_run_sigterm` setting was meant to capture data if a
  process was terminated with a SIGTERM signal, but it didn't always.  This was
  fixed thanks to `Lewis Gaul <pull 1600_>`_, closing `issue 1599`_.

- Performance: HTML reports with context information are now much more compact.
  File sizes are typically as small as one-third the previous size, but can be
  dramatically smaller. This closes `issue 1584`_ thanks to `Oleh Krehel
  <pull 1587_>`_.

- Development dependencies no longer use hashed pins, closing `issue 1592`_.

.. _issue 1584:
.. _pull 1587:
.. _issue 1592:
.. _issue 1599:
.. _pull 1600:

Version 7.2.2 2023-03-16

- Fix: if a virtualenv was created inside a source directory, and a sourced
  package was installed inside the virtualenv, then all of the third-party
  packages inside the virtualenv would be measured.  This was incorrect, but
  has now been fixed: only the specified packages will be measured, thanks to
  `Manuel Jacob <pull 1560_>`_.

- Fix: the ``coverage lcov`` command could create a .lcov file with incorrect
  LF (lines found) and LH (lines hit) totals.  This is now fixed, thanks to
  `Ian Moore <pull 1583_>`_.

- Fix: the ``coverage xml`` command on Windows could create a .xml file with
  duplicate ``<package>`` elements. This is now fixed, thanks to `Benjamin
  Parzella <pull 1574_>`_, closing `issue 1573`_.

.. _pull 1560:
.. _issue 1573:
.. _pull 1574:
.. _pull 1583:

Version 7.2.1 2023-02-26

- Fix: the PyPI page had broken links to documentation pages, but no longer
  does, closing `issue 1566`_.

- Fix: public members of the coverage module are now properly indicated so that
  mypy will find them, fixing `issue 1564`_.

.. _issue 1564:
.. _issue 1566:

Version 7.2.0 2023-02-22

- Added a new setting ``[report] exclude_also`` to let you add more exclusions
  without overwriting the defaults.  Thanks, `Alpha Chen <pull 1557_>`_,
  closing `issue 1391`_.

- Added a :meth:`.CoverageData.purge_files` method to remove recorded data for
  a particular file.  Contributed by `Stephan Deibel <pull 1547_>`_.

- Fix: when reporting commands fail, they will no longer congratulate
  themselves with messages like "Wrote XML report to file.xml" before spewing a
  traceback about their failure.

- Fix: arguments in the public API that name file paths now accept pathlib.Path
  objects.  This includes the ``data_file`` and ``config_file`` arguments to
  the Coverage constructor and the ``basename`` argument to CoverageData.
  Closes `issue 1552`_.

- Fix: In some embedded environments, an IndexError could occur on stop() when
  the originating thread exits before completion.  This is now fixed, thanks to
  `Russell Keith-Magee <pull 1543_>`_, closing `issue 1542`_.

- Added a ``py.typed`` file to announce our type-hintedness.  Thanks,
  `KotlinIsland <pull 1550_>`_.

.. _issue 1391:
.. _issue 1542:
.. _pull 1543:
.. _pull 1547:
.. _pull 1550:
.. _issue 1552:
.. _pull 1557:

Version 7.1.0 2023-01-24

- Added: the debug output file can now be specified with ``[run] debug_file``
  in the configuration file.  Closes `issue 1319`_.

- Performance: fixed a slowdown with dynamic contexts that's been around since
  6.4.3.  The fix closes `issue 1538`_.  Thankfully this doesn't break the
  `Cython change`_ that fixed `issue 972`_.  Thanks to Mathieu Kniewallner for
  the deep investigative work and comprehensive issue report.

- Typing: all product and test code has type annotations.

.. _Cython change:
.. _issue 972:
.. _issue 1319:
.. _issue 1538:

Version 7.0.5 2023-01-10

- Fix: On Python 3.7, a file with type annotations but no ``from __future__
  import annotations`` would be missing statements in the coverage report. This
  is now fixed, closing `issue 1524`_.

.. _issue 1524:

Version 7.0.4 2023-01-07

- Performance: an internal cache of file names was accidentally disabled,
  resulting in sometimes drastic reductions in performance.  This is now fixed,
  closing `issue 1527`_.   Thanks to Ivan Ciuvalschii for the reproducible test

.. _issue 1527:

Version 7.0.3 2023-01-03

- Fix: when using pytest-cov or pytest-xdist, or perhaps both, the combining
  step could fail with ``assert row is not None`` using 7.0.2.  This was due to
  a race condition that has always been possible and is still possible. In
  7.0.1 and before, the error was silently swallowed by the combining code.
  Now it will produce a message "Couldn't combine data file" and ignore the
  data file as it used to do before 7.0.2.  Closes `issue 1522`_.

.. _issue 1522:

Version 7.0.2 2023-01-02

- Fix: when using the ``[run] relative_files = True`` setting, a relative
  ``[paths]`` pattern was still being made absolute.  This is now fixed,
  closing `issue 1519`_.

- Fix: if Python doesn't provide tomllib, then TOML configuration files can
  only be read if is installed with the ``[toml]`` extra. will raise an error if TOML support is not installed when it sees
  your settings are in a .toml file. But it didn't understand that
  ``[tools.coverage]`` was a valid section header, so the error wasn't reported
  if you used that header, and settings were silently ignored.  This is now
  fixed, closing `issue 1516`_.

- Fix: adjusted how decorators are traced on PyPy 7.3.10, fixing `issue 1515`_.

- Fix: the ``coverage lcov`` report did not properly implement the
  ``--fail-under=MIN`` option.  This has been fixed.

- Refactor: added many type annotations, including a number of refactorings.
  This should not affect outward behavior, but they were a bit invasive in some
  places, so keep your eyes peeled for oddities.

- Refactor: removed the vestigial and long untested support for Jython and

.. _issue 1515:
.. _issue 1516:
.. _issue 1519:

Version 7.0.1 2022-12-23

- When checking if a file mapping resolved to a file that exists, we weren't
  considering files in .whl files.  This is now fixed, closing `issue 1511`_.

- File pattern rules were too strict, forbidding plus signs and curly braces in
  directory and file names.  This is now fixed, closing `issue 1513`_.

- Unusual Unicode or control characters in source files could prevent
  reporting.  This is now fixed, closing `issue 1512`_.

- The PyPy wheel now installs on PyPy 3.7, 3.8, and 3.9, closing `issue 1510`_.

.. _issue 1510:
.. _issue 1511:
.. _issue 1512:
.. _issue 1513:

Version 7.0.0 2022-12-18

Nothing new beyond 7.0.0b1.

Version 7.0.0b1 2022-12-03

Revision 1.35 / (download) - annotate - [select for diffs], Wed Mar 29 09:34:06 2023 UTC (8 months ago) by wiz
Branch: MAIN
Changes since 1.34: +3 -2 lines
Diff to previous 1.34 (colored)


Revision 1.34 / (download) - annotate - [select for diffs], Tue Nov 8 13:39:17 2022 UTC (12 months, 2 weeks ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2023Q1-base, pkgsrc-2023Q1, pkgsrc-2022Q4-base, pkgsrc-2022Q4
Changes since 1.33: +8 -4 lines
Diff to previous 1.33 (colored)

py-coverage: updated to 6.5.0

Version 6.5.0 2022-09-29

- The JSON report now includes details of which branches were taken, and which
  are missing for each file. Thanks, Christoph Blessing (`pull 1438`_). Closes
  `issue 1425`_.

- Starting with 6.2, ``class`` statements were marked as a branch.
  This wasn't right, and has been reverted, fixing `issue 1449`_. Note this
  will very slightly reduce your coverage total if you are measuring branch

- Packaging is now compliant with `PEP 517`_, closing `issue 1395`_.

- A new debug option ``--debug=pathmap`` shows details of the remapping of
  paths that happens during combine due to the ``[paths]`` setting.

- Fix an internal problem with caching of invalid Python parsing. Found by
  OSS-Fuzz, fixing their `bug 50381`_.

.. _bug 50381:
.. _PEP 517:
.. _issue 1395:
.. _issue 1425:
.. _pull 1438:
.. _issue 1449:

Revision 1.33 / (download) - annotate - [select for diffs], Wed Aug 24 09:36:50 2022 UTC (15 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2022Q3-base, pkgsrc-2022Q3
Changes since 1.32: +11 -9 lines
Diff to previous 1.32 (colored)

py-coverage: update to 6.4.4.

Version 6.4.4 2022-08-16

- Wheels are now provided for Python 3.11.

.. _changes_6-4-3:

Version 6.4.3 2022-08-06

- Fix a failure when combining data files if the file names contained
  glob-like patterns (`pull 1405`_).  Thanks, Michael Krebs and Benjamin

- Fix a messaging failure when combining Windows data files on a different
  drive than the current directory. (`pull 1430`_, fixing `issue 1428`_).
  Thanks, Lorenzo Micò.

- Fix path calculations when running in the root directory, as you might do in
  a Docker container: `pull 1403`_, thanks Arthur Rio.

- Filtering in the HTML report wouldn't work when reloading the index page.
  This is now fixed (`pull 1413`_).  Thanks, Marc Legendre.

- Fix a problem with Cython code measurement (`pull 1347`_, fixing `issue
  972`_).  Thanks, Matus Valo.

.. _issue 972:
.. _pull 1347:
.. _pull 1403:
.. _pull 1405:
.. _pull 1413:
.. _issue 1428:
.. _pull 1430:

.. _changes_6-4-2:

Version 6.4.2 2022-07-12

- Updated for a small change in Python 3.11.0 beta 4: modules now start with a
  line with line number 0, which is ignored.  This line cannnot be executed, so
  coverage totals were thrown off.  This line is now ignored by,
  but this also means that truly empty modules (like ````) have no
  lines in them, rather than one phantom line.  Fixes `issue 1419`_.

- Internal debugging data added to sys.modules is now an actual module, to
  avoid confusing code that examines everything in sys.modules.  Thanks,
  Yilei Yang (`pull 1399`_).

.. _pull 1399:
.. _issue 1419:

.. _changes_6-4-1:

Version 6.4.1 2022-06-02

- Greatly improved performance on PyPy, and other environments that need the
  pure Python trace function.  Thanks, Carl Friedrich Bolz-Tereick (`pull
  1381`_ and `pull 1388`_).  Slightly improved performance when using the C
  trace function, as most environments do.  Closes `issue 1339`_.

- The conditions for using tomllib from the standard library have been made
  more precise, so that 3.11 alphas will continue to work. Closes `issue

.. _issue 1339:
.. _pull 1381:
.. _pull 1388:
.. _issue 1390:

.. _changes_64:

Version 6.4 2022-05-22

- A new setting, :ref:`config_run_sigterm`, controls whether a SIGTERM signal
  handler is used.  In 6.3, the signal handler was always installed, to capture
  data at unusual process ends.  Unfortunately, this introduced other problems
  (see `issue 1310`_).  Now the signal handler is only used if you opt-in by
  setting ``[run] sigterm = true``.

- Small changes to the HTML report:

  - Added links to next and previous file, and more keyboard shortcuts: ``[``
    and ``]`` for next file and previous file; ``u`` for up to the index; and
    ``?`` to open/close the help panel.  Thanks, `J. M. F. Tsang
    <pull 1364_>`_.

  - The timestamp and version are displayed at the top of the report.  Thanks,
    `Ammar Askar <pull 1354_>`_. Closes `issue 1351`_.

- A new debug option ``debug=sqldata`` adds more detail to ``debug=sql``,
  logging all the data being written to the database.

- Previously, running ``coverage report`` (or any of the reporting commands) in
  an empty directory would create a .coverage data file.  Now they do not,
  fixing `issue 1328`_.

- On Python 3.11, the ``[toml]`` extra no longer installs tomli, instead using
  tomllib from the standard library.  Thanks `Shantanu <pull 1359_>`_.

- In-memory CoverageData objects now properly update(), closing `issue 1323`_.

.. _issue 1310:
.. _issue 1323:
.. _issue 1328:
.. _issue 1351:
.. _pull 1354:
.. _pull 1359:
.. _pull 1364:

.. _changes_633:

Version 6.3.3 2022-05-12

- Fix: now builds successfully on CPython 3.11 (3.11.0b1) again.
  Closes `issue 1367`_.  Some results for generators may have changed.

.. _issue 1367:

.. _changes_632:

Version 6.3.2 2022-02-20

- Fix: adapt to pypy3.9's decorator tracing behavior.  It now traces function
  decorators like CPython 3.8: both the @-line and the def-line are traced.
  Fixes `issue 1326`_.

- Debug: added ``pybehave`` to the list of :ref:`coverage debug <cmd_debug>`
  and :ref:`cmd_run_debug` options.

- Fix: show an intelligible error message if ``--concurrency=multiprocessing``
  is used without a configuration file.  Closes `issue 1320`_.

.. _issue 1320:
.. _issue 1326:

.. _changes_631:

Version 6.3.1 2022-02-01

- Fix: deadlocks could occur when terminating processes.  Some of these
  deadlocks (described in `issue 1310`_) are now fixed.

- Fix: a signal handler was being set from multiple threads, causing an error:
  "ValueError: signal only works in main thread".  This is now fixed, closing
  `issue 1312`_.

- Fix: ``--precision`` on the command-line was being ignored while considering
  ``--fail-under``.  This is now fixed, thanks to
  `Marcelo Trylesinski <pull 1317_>`_.

- Fix: releases no longer provide 3.11.0-alpha wheels. uses CPython
  internal fields which are moving during the alpha phase. Fixes `issue 1316`_.

.. _issue 1310:
.. _issue 1312:
.. _issue 1316:
.. _pull 1317:

.. _changes_63:

Version 6.3 2022-01-25

- Feature: Added the ``lcov`` command to generate reports in LCOV format.
  Thanks, `Bradley Burns <pull 1289_>`_. Closes issues `587 <issue 587_>`_
  and `626 <issue 626_>`_.

- Feature: the coverage data file can now be specified on the command line with
  the ``--data-file`` option in any command that reads or writes data.  This is
  in addition to the existing ``COVERAGE_FILE`` environment variable.  Closes
  `issue 624`_. Thanks, `Nikita Bloshchanevich <pull 1304_>`_.

- Feature: coverage measurement data will now be written when a SIGTERM signal
  is received by the process.  This includes
  :meth:`Process.terminate <python:multiprocessing.Process.terminate>`,
  and other ways to terminate a process.  Currently this is only on Linux and
  Mac; Windows is not supported.  Fixes `issue 1307`_.

- Dropped support for Python 3.6, which reached end-of-life on 2021-12-23.

- Updated Python 3.11 support to 3.11.0a4, fixing `issue 1294`_.

- Fix: the coverage data file is now created in a more robust way, to avoid
  problems when multiple processes are trying to write data at once. Fixes
  issues `1303 <issue 1303_>`_ and `883 <issue 883_>`_.

- Fix: a .gitignore file will only be written into the HTML report output
  directory if the directory is empty.  This should prevent certain unfortunate
  accidents of writing the file where it is not wanted.

- Releases now have MacOS arm64 wheels for Apple Silicon, fixing `issue 1288`_.

.. _issue 587:
.. _issue 624:
.. _issue 626:
.. _issue 883:
.. _issue 1288:
.. _issue 1294:
.. _issue 1303:
.. _issue 1307:
.. _pull 1289:
.. _pull 1304:

.. _changes_62:

Version 6.2 2021-11-26

- Feature: Now the ``--concurrency`` setting can now have a list of values, so
  that threads and another lightweight threading package can be measured
  together, such as ``--concurrency=gevent,thread``.  Closes `issue 1012`_ and
  `issue 1082`_.

- Fix: A module specified as the ``source`` setting is imported during startup,
  before the user program imports it.  This could cause problems if the rest of
  the program isn't ready yet.  For example, `issue 1203`_ describes a Django
  setting that is accessed before settings have been configured.  Now the early
  import is wrapped in a try/except so errors then don't stop execution.

- Fix: A colon in a decorator expression would cause an exclusion to end too
  early, preventing the exclusion of the decorated function. This is now fixed.

- Fix: The HTML report now will not overwrite a .gitignore file that already
  exists in the HTML output directory (follow-on for `issue 1244`_).

- API: The exceptions raised by have been specialized, to provide
  finer-grained catching of exceptions by third-party code.

- API: Using ``suffix=False`` when constructing a Coverage object with
  multiprocessing wouldn't suppress the data file suffix (`issue 989`_).  This
  is now fixed.

- Debug: The ``coverage debug data`` command will now sniff out combinable data
  files, and report on all of them.

- Debug: The ``coverage debug`` command used to accept a number of topics at a
  time, and show all of them, though this was never documented.  This no longer
  works, to allow for command-line options in the future.

.. _issue 989:
.. _issue 1012:
.. _issue 1082:
.. _issue 1203:

.. _changes_612:

Version 6.1.2 2021-11-10

- Python 3.11 is supported (tested with 3.11.0a2).  One still-open issue has to
  do with `exits through with-statements <issue 1270_>`_.

- Fix: When remapping file paths through the ``[paths]`` setting while
  combining, the ``[run] relative_files`` setting was ignored, resulting in
  absolute paths for remapped file names (`issue 1147`_).  This is now fixed.

- Fix: Complex conditionals over excluded lines could have incorrectly reported
  a missing branch (`issue 1271`_). This is now fixed.

- Fix: More exceptions are now handled when trying to parse source files for
  reporting.  Problems that used to terminate can now be handled
  with ``[report] ignore_errors``.  This helps with plugins failing to read
  files (`django_coverage_plugin issue 78`_).

- Fix: Removed another vestige of jQuery from the source tarball
  (`issue 840`_).

- Fix: Added a default value for a new-to-6.x argument of an internal class.
  This unsupported class is being used by coveralls (`issue 1273`_). Although
  I'd rather not "fix" unsupported interfaces, it's actually nicer with a
  default value.

.. _django_coverage_plugin issue 78:
.. _issue 1147:
.. _issue 1270:
.. _issue 1271:
.. _issue 1273:

.. _changes_611:

Version 6.1.1 2021-10-31

- Fix: The sticky header on the HTML report didn't work unless you had branch
  coverage enabled. This is now fixed: the sticky header works for everyone.
  (Do people still use coverage without branch measurement!? j/k)

- Fix: When using explicitly declared namespace packages, the "already imported
  a file that will be measured" warning would be issued (`issue 888`_).  This
  is now fixed.

.. _issue 888:

.. _changes_61:

Version 6.1 2021-10-30

- Deprecated: The ``annotate`` command and the ``Coverage.annotate`` function
  will be removed in a future version, unless people let me know that they are
  using it.  Instead, the ``html`` command gives better-looking (and more
  accurate) output, and the ``report -m`` command will tell you line numbers of
  missing lines.  Please get in touch if you have a reason to use ``annotate``
  over those better options:

- Feature: Coverage now sets an environment variable, ``COVERAGE_RUN`` when
  running your code with the ``coverage run`` command.  The value is not
  important, and may change in the future.  Closes `issue 553`_.

- Feature: The HTML report pages for Python source files now have a sticky
  header so the file name and controls are always visible.

- Feature: The ``xml`` and ``json`` commands now describe what they wrote

- Feature: The ``html``, ``combine``, ``xml``, and ``json`` commands all accept
  a ``-q/--quiet`` option to suppress the messages they write to stdout about
  what they are doing (`issue 1254`_).

- Feature: The ``html`` command writes a ``.gitignore`` file into the HTML
  output directory, to prevent the report from being committed to git.  If you
  want to commit it, you will need to delete that file.  Closes `issue 1244`_.

- Feature: Added support for PyPy 3.8.

- Fix: More generated code is now excluded from measurement.  Code such as
  `attrs`_ boilerplate, or doctest code, was being measured though the
  synthetic line numbers meant they were never reported.  Once Cython was
  involved though, the generated .so files were parsed as Python, raising
  syntax errors, as reported in `issue 1160`_.  This is now fixed.

- Fix: When sorting human-readable names, numeric components are sorted
  correctly: will appear after  This applies to file names,
  module names, environment variables, and test contexts.

- Performance: Branch coverage measurement is faster, though you might only
  notice on code that is executed many times, such as long-running loops.

- Build: jQuery is no longer used or vendored (`issue 840`_ and `issue 1118`_).
  Huge thanks to Nils Kattenbeck (septatrix) for the conversion to vanilla
  JavaScript in `pull request 1248`_.

.. _issue 553:
.. _issue 840:
.. _issue 1118:
.. _issue 1160:
.. _issue 1244:
.. _pull request 1248:
.. _issue 1254:
.. _attrs:

.. _changes_602:

Version 6.0.2 2021-10-11

- Namespace packages being measured weren't properly handled by the new code
  that ignores third-party packages. If the namespace package was installed, it
  was ignored as a third-party package.  That problem (`issue 1231`_) is now

- Packages named as "source packages" (with ``source``, or ``source_pkgs``, or
  pytest-cov's ``--cov``) might have been only partially measured.  Their
  top-level statements could be marked as unexecuted, because they were
  imported by before measurement began (`issue 1232`_).  This is
  now fixed, but the package will be imported twice, once by, then
  again by your test suite.  This could cause problems if importing the package
  has side effects.

- The :meth:`.CoverageData.contexts_by_lineno` method was documented to return
  a dict, but was returning a defaultdict.  Now it returns a plain dict.  It
  also no longer returns negative numbered keys.

.. _issue 1231:
.. _issue 1232:

.. _changes_601:

Version 6.0.1 2021-10-06

- In 6.0, the exceptions moved from coverage.misc to
  coverage.exceptions. These exceptions are not part of the public supported
  API, CoverageException is. But a number of other third-party packages were
  importing the exceptions from coverage.misc, so they are now available from
  there again (`issue 1226`_).

- Changed an internal detail of how tomli is imported, so that tomli can use for their own test suite (`issue 1228`_).

- Defend against an obscure possibility under code obfuscation, where a
  function can have an argument called "self", but no local named "self"
  (`pull request 1210`_).  Thanks, Ben Carlsson.

.. _pull request 1210:
.. _issue 1226:
.. _issue 1228:

.. _changes_60:

Version 6.0 2021-10-03

- The ``coverage html`` command now prints a message indicating where the HTML
  report was written.  Fixes `issue 1195`_.

- The ``coverage combine`` command now prints messages indicating each data
  file being combined.  Fixes `issue 1105`_.

- The HTML report now includes a sentence about skipped files due to
  ``skip_covered`` or ``skip_empty`` settings.  Fixes `issue 1163`_.

- Unrecognized options in the configuration file are no longer errors. They are
  now warnings, to ease the use of coverage across versions.  Fixes `issue

- Fix handling of exceptions through context managers in Python 3.10. A missing
  exception is no longer considered a missing branch from the with statement.
  Fixes `issue 1205`_.

- Fix another rarer instance of "Error binding parameter 0 - probably
  unsupported type." (`issue 1010`_).

- Creating a directory for the coverage data file now is safer against
  conflicts when two coverage runs happen simultaneously (`pull 1220`_).
  Thanks, Clément Pit-Claudel.

.. _issue 1035:
.. _issue 1105:
.. _issue 1163:
.. _issue 1195:
.. _issue 1205:
.. _pull 1220:

.. _changes_60b1:

Version 6.0b1 2021-07-18

- Dropped support for Python 2.7, PyPy 2, and Python 3.5.

- Added support for the Python 3.10 ``match/case`` syntax.

- Data collection is now thread-safe.  There may have been rare instances of
  exceptions raised in multi-threaded programs.

- Plugins (like the `Django coverage plugin`_) were generating "Already
  imported a file that will be measured" warnings about Django itself.  These
  have been fixed, closing `issue 1150`_.

- Warnings generated by are now real Python warnings.

- Using ``--fail-under=100`` with coverage near 100% could result in the
  self-contradictory message :code:`total of 100 is less than fail-under=100`.
  This bug (`issue 1168`_) is now fixed.

- The ``COVERAGE_DEBUG_FILE`` environment variable now accepts ``stdout`` and
  ``stderr`` to write to those destinations.

- TOML parsing now uses the `tomli`_ library.

- Some minor changes to usually invisible details of the HTML report:

  - Use a modern hash algorithm when fingerprinting, for high-security
    environments (`issue 1189`_).  When generating the HTML report, we save the
    hash of the data, to avoid regenerating an unchanged HTML page. We used to
    use MD5 to generate the hash, and now use SHA-3-256.  This was never a
    security concern, but security scanners would notice the MD5 algorithm and
    raise a false alarm.

  - Change how report file names are generated, to avoid leading underscores
    (`issue 1167`_), to avoid rare file name collisions (`issue 584`_), and to
    avoid file names becoming too long (`issue 580`_).

.. _Django coverage plugin:
.. _issue 580:
.. _issue 584:
.. _issue 1150:
.. _issue 1167:
.. _issue 1168:
.. _issue 1189:
.. _tomli:

.. _changes_56b1:

Version 5.6b1 2021-04-13

Note: 5.6 final was never released. These changes are part of 6.0.

- Third-party packages are now ignored in coverage reporting.  This solves a
  few problems:

  - Coverage will no longer report about other people's code (`issue 876`_).
    This is true even when using ``--source=.`` with a venv in the current

  - Coverage will no longer generate "Already imported a file that will be
    measured" warnings about coverage itself (`issue 905`_).

- The HTML report uses j/k to move up and down among the highlighted chunks of
  code.  They used to highlight the current chunk, but 5.0 broke that behavior.
  Now the highlighting is working again.

- The JSON report now includes ``percent_covered_display``, a string with the
  total percentage, rounded to the same number of decimal places as the other
  reports' totals.

.. _issue 876:
.. _issue 905:

Revision 1.32 / (download) - annotate - [select for diffs], Wed Jan 5 15:41:02 2022 UTC (22 months, 3 weeks ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2022Q2-base, pkgsrc-2022Q2, pkgsrc-2022Q1-base, pkgsrc-2022Q1
Changes since 1.31: +4 -2 lines
Diff to previous 1.31 (colored)

python: add USE_PKG_RESOURCES flag

This flag should be set for packages that import pkg_resources
and thus need setuptools after the build step.

Set this flag for packages that need it and bump PKGREVISION.

Revision 1.31 / (download) - annotate - [select for diffs], Tue Jan 4 20:52:58 2022 UTC (22 months, 3 weeks ago) by wiz
Branch: MAIN
Changes since 1.30: +2 -1 lines
Diff to previous 1.30 (colored)

*: bump PKGREVISION for users

They now have a tool dependency on py-setuptools instead of a DEPENDS

Revision 1.30 / (download) - annotate - [select for diffs], Tue May 18 15:26:46 2021 UTC (2 years, 6 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2021Q4-base, pkgsrc-2021Q4, pkgsrc-2021Q3-base, pkgsrc-2021Q3, pkgsrc-2021Q2-base, pkgsrc-2021Q2
Changes since 1.29: +7 -8 lines
Diff to previous 1.29 (colored)

py-coverage: updated to 5.5

Version 5.5 2021-02-28

coverage combine has a new option, --keep to keep the original data files after combining them. The default is still to delete the files after they have been combined. This was requested in issue 1108 and implemented in pull request 1110. Thanks, ric Larivière.
When reporting missing branches in coverage report, branches aren reported that jump to missing lines. This adds to the long-standing behavior of not reporting branches from missing lines. Now branches are only reported if both the source and destination lines are executed. Closes both issue 1065 and issue 955.
Minor improvements to the HTML report:
The state of the line visibility selector buttons is saved in local storage so you don have to fiddle with them so often, fixing issue 1123.
It has a little more room for line numbers so that 4-digit numbers work well, fixing issue 1124.
Improved the error message when combining line and branch data, so that users will be more likely to understand what happening, closing issue 803.

Version 5.4 2021-01-24

The text report produced by coverage report now always outputs a TOTAL line, even if only one Python file is reported. This makes regex parsing of the output easier. Thanks, Judson Neer. This had been requested a number of times (issue 1086, issue 922, issue 732).
The skip_covered and skip_empty settings in the configuration file can now be specified in the [html] section, so that text reports and HTML reports can use separate settings. The HTML report will still use the [report] settings if there isn a value in the [html] section. Closes issue 1090.
Combining files on Windows across drives now works properly, fixing issue 577. Thanks, Valentin Lab.
Fix an obscure warning from deep in the _decimal module, as reported in issue 1084.
Update to support Python 3.10 alphas in progress, including PEP 626: Precise line numbers for debugging and other tools.

Revision 1.29 / (download) - annotate - [select for diffs], Mon Dec 21 09:33:05 2020 UTC (2 years, 11 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2021Q1-base, pkgsrc-2021Q1, pkgsrc-2020Q4-base, pkgsrc-2020Q4
Changes since 1.28: +2 -2 lines
Diff to previous 1.28 (colored)

py-coverage: updated to 5.3.1

Version 5.3.1 --- 2020-12-19

Revision 1.28 / (download) - annotate - [select for diffs], Thu Oct 22 09:41:18 2020 UTC (3 years, 1 month ago) by adam
Branch: MAIN
Changes since 1.27: +2 -2 lines
Diff to previous 1.27 (colored)

py-coverage: updated to 5.3

Version 5.3:

The source setting has always been interpreted as either a file path or a module, depending on which existed. If both interpretations were valid, it was assumed to be a file path. The new source_pkgs setting can be used to name a package to disambiguate this case. Thanks, Thomas Grainger. Fixes issue 268.
If a plugin was disabled due to an exception, we used to still try to record its information, causing an exception, as reported in issue 1011. This is now fixed.

Revision 1.27 / (download) - annotate - [select for diffs], Mon Jul 27 08:15:15 2020 UTC (3 years, 4 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2020Q3-base, pkgsrc-2020Q3
Changes since 1.26: +2 -2 lines
Diff to previous 1.26 (colored)

py-coverage: updated to 5.2.1

Version 5.2.1
- The dark mode HTML report still used light colors for the context listing,
  making them unreadable.  This is now fixed.
- The time stamp on the HTML report now includes the time zone.

Revision 1.26 / (download) - annotate - [select for diffs], Mon Jul 6 15:42:00 2020 UTC (3 years, 4 months ago) by adam
Branch: MAIN
Changes since 1.25: +2 -2 lines
Diff to previous 1.25 (colored)

py-coverage: updated to 5.2

Version 5.2

- The HTML report has been redesigned by Victor Salvino.  There is now a dark
  mode, the code text is larger, and system sans serif fonts are used, in
  addition to other small changes (`issue 858`_ and `pull request 931`_).

- The ``coverage report`` and ``coverage html`` commands now accept a
  ``--precision`` option to control the number of decimal points displayed.

- The ``coverage report`` and ``coverage html`` commands now accept a
  ``--no-skip-covered`` option to negate ``--skip-covered``.

- The ``--skip-empty`` option is now available for the XML report, closing
  `issue 976`_.

- The ``coverage report`` command now accepts a ``--sort`` option to specify
  how to sort the results.

- If coverage fails due to the coverage total not reaching the ``--fail-under``
  value, it will now print a message making the condition clear.

- TOML configuration files with non-ASCII characters would cause errors on
  Windows (`issue 990`_).  This is now fixed.

- The output of ``--debug=trace`` now includes information about how the
  ``--source`` option is being interpreted, and the module names being

Revision 1.25 / (download) - annotate - [select for diffs], Sat May 16 09:09:04 2020 UTC (3 years, 6 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2020Q2-base, pkgsrc-2020Q2
Changes since 1.24: +4 -2 lines
Diff to previous 1.24 (colored)

pytest from versioned depends

Revision 1.24 / (download) - annotate - [select for diffs], Mon May 4 04:39:15 2020 UTC (3 years, 6 months ago) by rillig
Branch: MAIN
Changes since 1.23: +4 -1 lines
Diff to previous 1.23 (colored)

devel/py-coverage: skip shell portability check for unneeded file

Revision 1.23 / (download) - annotate - [select for diffs], Wed Apr 29 10:45:09 2020 UTC (3 years, 7 months ago) by adam
Branch: MAIN
Changes since 1.22: +2 -2 lines
Diff to previous 1.22 (colored)

py-coverage: updated to 5.1

Version 5.1:
The JSON report now includes counts of covered and missing branches.
On Python 3.8, try-finally-return reported wrong branch coverage with decorated async functions (issue 964). This is now fixed.
The :meth:`~coverage.Coverage.get_option` and :meth:`~coverage.Coverage.set_option` methods can now manipulate the [paths] configuration setting.

Revision 1.22 / (download) - annotate - [select for diffs], Tue Mar 17 11:04:13 2020 UTC (3 years, 8 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2020Q1-base, pkgsrc-2020Q1
Changes since 1.21: +2 -2 lines
Diff to previous 1.21 (colored)

py-coverage: updated to 5.0.4

Version 5.0.4:
- If using the ``[run] relative_files`` setting, the XML report will use
  relative files in the ``<source>`` elements indicating the location of source
- The textual summary report could report missing lines with negative line
  numbers on PyPy3 7.1. This is now fixed.
- Windows wheels for Python 3.8 were incorrectly built, but are now fixed.
- Updated Python 3.9 support to 3.9a4.
- HTML reports couldn't be sorted if localStorage wasn't available. This is now
  fixed: sorting works even though the sorting setting isn't retained.

Revision 1.21 / (download) - annotate - [select for diffs], Sun Jan 26 09:22:31 2020 UTC (3 years, 10 months ago) by adam
Branch: MAIN
Changes since 1.20: +3 -2 lines
Diff to previous 1.20 (colored)

py-coverage: updated to 5.0.3

Version 5.0.3:

- A performance improvement in 5.0.2 didn't work for test suites that changed
  directory before combining data, causing "Couldn't use data file: no such
  table: meta" errors.  This is now fixed.

- Coverage could fail to run your program with some form of "ModuleNotFound" or
  "ImportError" trying to import from the current directory. This would happen
  if coverage had been packaged into a zip file (for example, on Windows), or
  was found indirectly (for example, by pyenv-virtualenv).  A number of
  different scenarios were described in `issue 862`_ which is now fixed.  Huge
  thanks to Agbonze O. Jeremiah for reporting it, and Alexander Waters and
  George-Cristian Bîrzan for protracted debugging sessions.

- Added the "premain" debug option.

- Added SQLite compile-time options to the "debug sys" output.

Version 5.0.2:

- Programs that used multiprocessing and changed directories would fail under
  coverage.  This is now fixed.  A side effect is that debug
  information about the config files read now shows absolute paths to the

- When running programs as modules (``coverage run -m``) with ``--source``,
  some measured modules were imported before coverage starts.  This resulted in
  unwanted warnings ("Already imported a file that will be measured") and a
  reduction in coverage totals.  This is now fixed.

- If no data was collected, an exception about "No data to report" could happen
  instead of a 0% report being created.  This is now fixed.

- The handling of source files with non-encodable file names has changed.
  Previously, if a file name could not be encoded as UTF-8, an error occurred,
  as described in `issue 891`_.  Now, those files will not be measured, since
  their data would not be recordable.

- A new warning ("dynamic-conflict") is issued if two mechanisms are trying to
  change the dynamic context.

- ``coverage run --debug=sys`` would fail with an AttributeError. This is now

Revision 1.20 / (download) - annotate - [select for diffs], Fri Jan 3 13:17:52 2020 UTC (3 years, 10 months ago) by adam
Branch: MAIN
Changes since 1.19: +2 -2 lines
Diff to previous 1.19 (colored)

py-coverage: updated to 5.0.1

Version 5.0.1:

- If a 4.x data file is the cause of a "file is not a database" error, then use
  a more specific error message, "Looks like a coverage 4.x data file, are you
  mixing versions of coverage?"  Helps diagnose the problems described in
  `issue 886`_.

- Measurement contexts and relative file names didn't work together, as
  reported in `issue 899`_ and `issue 900`_.  This is now fixed, thanks to
  David Szotten.

- When using ``coverage run --concurrency=multiprocessing``, all data files
  should be named with parallel-ready suffixes.  5.0 mistakenly named the main
  process' file with no suffix when using ``--append``.  This is now fixed,
  closing `issue 880`_.

- Fixed a problem on Windows when the current directory is changed to a
  different drive (`issue 895`_).  Thanks, Olivier Grisel.

- Updated Python 3.9 support to 3.9a2.

Revision 1.19 / (download) - annotate - [select for diffs], Sun Dec 15 11:48:31 2019 UTC (3 years, 11 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2019Q4-base, pkgsrc-2019Q4
Changes since 1.18: +2 -2 lines
Diff to previous 1.18 (colored)

py-coverage: updated to 5.0

Major changes in 5.0

This is an overview of the changes in 5.0 since the last version of 4.5.x. This is not a complete list of all changes. See the complete change history for all the details.

Open Questions

How to support SQL access to data? The database schema has to be convenient and efficient for execution, which would naturally make it an internal implementation detail. But the coverage data is now more complex, and SQL access could be a powerful way to access it, pointing toward a public guaranteed schema. What the right balance?

Backward Incompatibilities

Python 2.6, 3.3 and 3.4 are no longer supported.
The CoverageData interface is still public, but has changed.
The data file is now created earlier than it used to be. In some circumstances, you may need to use parallel=true to avoid multiple processes overwriting each othersdata.
When constructing a coverage.Coverage object, data_file can be specified as None to prevent writing any data file at all. In previous versions, an explicit data_file=None argument would use the default of coverage Fixes issue 871.
The [run] note setting has been deprecated. Using it will result in a warning, and the note will not be written to the data file. The corresponding CoverageData methods have been removed.
The deprecated Reporter.file_reporters property has been removed.
The reporting methods used to permanently apply their arguments to the configuration of the Coverage object. Now they no longer do. The arguments affect the operation of the method, but do not persist.

New Features can now record the context in which each line was executed. The contexts are stored in the data file and can be used to drill down into why a particular line was run. Static contexts let you specify a label for an entire coverage run, for example to separate coverage for different operating systems or versions of Python. Dynamic contexts can change during a single measurement run. This can be used to record the names of the tests that executed each line. See Measurement contexts for full information.
Coverage data storage has changed. In version 4.x, .coverage files were basically JSON. Now, they are SQLite databases. The database schema is documented ( database schema), but might still be in flux.
Data can now be eportedin JSON format, for programmatic use, as requested in issue 720. The new coverage json command writes raw and summarized data to a JSON file. Thanks, Matt Bachmann.
Configuration can now be read from TOML files. This requires installing with the [toml] extra. The standard yproject.tomlfile will be read automatically if no other configuration file is found, with settings in the [tool.coverage.] namespace. Thanks to Frazer McLean for implementation and persistence. Finishes issue 664.
The HTML and textual reports now have a --skip-empty option that skips files with no statements, notably files. Thanks, Reya B.
You can specify the command line to run your program with the [run] command_line configuration setting, as requested in issue 695.
An experimental [run] relative_files setting tells coverage to store relative file names in the data file. This makes it easier to run tests in one (or many) environments, and then report in another. It has not had much real-world testing, so it may change in incompatible ways in the future.
Environment variable substitution in configuration files now supports two syntaxes for controlling the behavior of undefined variables: if VARNAME is not defined, ${VARNAME?} will raise an error, and ${VARNAME-default value} will use efault value
The location of the configuration file can now be specified with a COVERAGE_RCFILE environment variable, as requested in issue 650.
A new warning (already-imported) is issued if measurable files have already been imported before started measurement. See Warnings for more information.
Error handling during reporting has changed slightly. All reporting methods now behave the same. The --ignore-errors option keeps errors from stopping the reporting, but files that couldn parse as Python will always be reported as warnings. As with other warnings, you can suppress them with the [run] disable_warnings configuration setting.
Added the classmethod Coverage.current() to get the latest started Coverage instance.

Bugs Fixed

The coverage run command has always adjusted the first entry in sys.path, to properly emulate how Python runs your program. Now this adjustment is skipped if sys.path[0] is already different than Python default. This fixes issue 715.
Python files run with -m now have __spec__ defined properly. This fixes issue 745 (about not being able to run unittest tests that spawn subprocesses), and issue 838, which described the problem directly.
Coverage will create directories as needed for the data file if they don exist, closing issue 721.
fail_under values more than 100 are reported as errors. Thanks to Mike Fiedler for closing issue 746.
The issingvalues in the text output are now sorted by line number, so that missing branches are reported near the other lines they affect. The values used to show all missing lines, and then all missing branches. no longer fails if the user program deletes its current directory.

Revision 1.18 / (download) - annotate - [select for diffs], Mon Aug 5 19:31:44 2019 UTC (4 years, 3 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2019Q3-base, pkgsrc-2019Q3
Changes since 1.17: +3 -2 lines
Diff to previous 1.17 (colored)

py-coverage: updated to 4.5.4

Version 4.5.4:
- Multiprocessing support in Python 3.8 was broken, but is now fixed.

Revision 1.17 / (download) - annotate - [select for diffs], Mon Mar 11 13:55:28 2019 UTC (4 years, 8 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2019Q2-base, pkgsrc-2019Q2, pkgsrc-2019Q1-base, pkgsrc-2019Q1
Changes since 1.16: +7 -10 lines
Diff to previous 1.16 (colored)

py-coverage: updated to 4.5.3

Version 4.5.3:
- Only packaging metadata changes.

Revision 1.16 / (download) - annotate - [select for diffs], Tue Nov 27 16:31:09 2018 UTC (5 years ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2018Q4-base, pkgsrc-2018Q4
Changes since 1.15: +3 -3 lines
Diff to previous 1.15 (colored)

py-coverage: updated to 4.5.2

Version 4.5.2:
- Namespace packages are supported on Python 3.7, where they used to cause
  TypeErrors about path being None.
- Python 3.8 (as of today!) passes all tests.
- Development moved from Bitbucket to GitHub.

Revision 1.15 / (download) - annotate - [select for diffs], Mon Feb 12 08:06:56 2018 UTC (5 years, 9 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2018Q3-base, pkgsrc-2018Q3, pkgsrc-2018Q2-base, pkgsrc-2018Q2, pkgsrc-2018Q1-base, pkgsrc-2018Q1
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored)

py-coverage: updated to 4.5.1

Version 4.5.1:

- Now that 4.5 properly separated the [run] omit and [report] omit
  settings, an old bug has become apparent.  If you specified a package name
  for [run] source, then omit patterns weren't matched inside that package.
  This bug (issue 638_) is now fixed.

- On Python 3.7, reporting about a decorated function with no body other than a
  docstring would crash with an IndexError (issue 640_).  This is
  now fixed.

- Configurer plugins are now reported in the output of --debug=sys.

Revision 1.14 / (download) - annotate - [select for diffs], Mon Feb 5 16:13:19 2018 UTC (5 years, 9 months ago) by adam
Branch: MAIN
Changes since 1.13: +5 -5 lines
Diff to previous 1.13 (colored)

py-coverage: updated to 4.5

Version 4.5:

- A new kind of plugin is supported: configurators are invoked at start-up to
  allow more complex configuration than the .coveragerc file can easily do.
  See :ref:api_plugin for details.  This solves the complex configuration
  problem described in issue 563_.

- The fail_under option can now be a float.  Note that you must specify the
  [report] precision configuration option for the fractional part to be
  used.  Thanks to Lars Hupfeldt Nielsen for help with the implementation.
  Fixes issue 631_.

- The include and omit options can be specified for both the [run]
  and [report] phases of execution.  4.4.2 introduced some incorrect
  interactions between those phases, where the options for one were confused
  for the other.  This is now corrected, fixing issue 621_ and issue 622_.
  Thanks to Daniel Hahler for seeing more clearly than I could.

- The coverage combine command used to always overwrite the data file, even
  when no data had been read from apparently combinable files.  Now, an error
  is raised if we thought there were files to combine, but in fact none of them
  could be used.  Fixes issue 629_.

- The coverage combine command could get confused about path separators
  when combining data collected on Windows with data collected on Linux, as
  described in issue 618_.  This is now fixed: the result path always uses
  the path separator specified in the [paths] result.

- On Windows, the HTML report could fail when source trees are deeply nested,
  due to attempting to create HTML filenames longer than the 250-character
  maximum.  Now filenames will never get much larger than 200 characters,
  fixing issue 627_.  Thanks to Alex Sandro for helping with the fix.

Revision 1.13 / (download) - annotate - [select for diffs], Wed Dec 13 08:16:08 2017 UTC (5 years, 11 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2017Q4-base, pkgsrc-2017Q4
Changes since 1.12: +3 -2 lines
Diff to previous 1.12 (colored)

py-coverage: use ALTERNATIVES; PLIST changed to avoid conflicts between Python versions; bumped revision

Revision 1.12 / (download) - annotate - [select for diffs], Mon Nov 6 10:37:32 2017 UTC (6 years ago) by adam
Branch: MAIN
Changes since 1.11: +2 -2 lines
Diff to previous 1.11 (colored)

py-coverage: updated to 4.4.2

Version 4.4.2:

- Support for Python 3.7.  In some cases, class and module docstrings are no
  longer counted in statement totals, which could slightly change your total

- Specifying both ``--source`` and ``--include`` no longer silently ignores the
  include setting, instead it displays a warning. Thanks, Loïc Dachary.  Closes
  `issue 265`_ and `issue 101`_.

- Fixed a race condition when saving data and multiple threads are tracing
  (`issue 581`_). It could produce a "dictionary changed size during iteration"
  RuntimeError.  I believe this mostly but not entirely fixes the race
  condition.  A true fix would likely be too expensive.

- Configuration values which are file paths will now apply tilde-expansion,
  closing `issue 589`_.

- Now secondary config files like tox.ini and setup.cfg can be specified
  explicitly, and prefixed sections like `[coverage:run]` will be read. Fixes
  `issue 588`_.

- Be more flexible about the command name displayed by help, fixing
  `issue 600`_.

Revision 1.11 / (download) - annotate - [select for diffs], Wed May 17 11:39:58 2017 UTC (6 years, 6 months ago) by adam
Branch: MAIN
CVS Tags: pkgsrc-2017Q3-base, pkgsrc-2017Q3, pkgsrc-2017Q2-base, pkgsrc-2017Q2
Changes since 1.10: +2 -5 lines
Diff to previous 1.10 (colored)

Version 4.4.1
- No code changes: just corrected packaging for Python 2.7 Linux wheels.

Version 4.4
- Reports could produce the wrong file names for packages, reporting ````
  instead of the correct ``pkg/``.  This is now fixed.  Thanks, Dirk

- XML reports could produce ``<source>`` and ``<class>`` lines that together
  didn't specify a valid source file path.  This is now fixed. (`issue 526`_)

- Namespace packages are no longer warned as having no code. (`issue 572`_)

- Code that uses ``sys.settrace(sys.gettrace())`` in a file that wasn't being
  coverage-measured would prevent correct coverage measurement in following
  code. An example of this was running doctests programmatically. This is now
  fixed. (`issue 575`_)

- Errors printed by the ``coverage`` command now go to stderr instead of

- Running ``coverage xml`` in a directory named with non-ASCII characters would
  fail under Python 2. This is now fixed. (`issue 573`_)

Revision 1.10 / (download) - annotate - [select for diffs], Sun Aug 28 15:48:29 2016 UTC (7 years, 3 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2017Q1-base, pkgsrc-2017Q1, pkgsrc-2016Q4-base, pkgsrc-2016Q4, pkgsrc-2016Q3-base, pkgsrc-2016Q3
Changes since 1.9: +1 -2 lines
Diff to previous 1.9 (colored)

Remove unnecessary PLIST_SUBST and FILES_SUBST that are now provided
by the infrastructure.

Mark a couple more packages as not ready for python-3.x.

Revision 1.9 / (download) - annotate - [select for diffs], Wed Jun 8 17:43:24 2016 UTC (7 years, 5 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2016Q2-base, pkgsrc-2016Q2
Changes since 1.8: +2 -2 lines
Diff to previous 1.8 (colored)


Revision 1.8 / (download) - annotate - [select for diffs], Sat Nov 7 21:43:21 2015 UTC (8 years ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2016Q1-base, pkgsrc-2016Q1, pkgsrc-2015Q4-base, pkgsrc-2015Q4
Changes since 1.7: +6 -1 lines
Diff to previous 1.7 (colored)

Add some more test dependencies, and run the correct tool for testing.

Still more changes needed to get this anywhere approximatelysuccessful.

Revision 1.7 / (download) - annotate - [select for diffs], Sat Nov 7 19:12:09 2015 UTC (8 years ago) by wiz
Branch: MAIN
Changes since 1.6: +4 -2 lines
Diff to previous 1.6 (colored)

Update py-coverage to 4.0.2:

Version 4.0.2 --- 4 November 2015

- More work on supporting unusually encoded source. Fixed `issue 431`_.

- Files or directories with non-ASCII characters are now handled properly,
  fixing `issue 432`_.

- Setting a trace function with sys.settrace was broken by a change in 4.0.1,
  as reported in `issue 436`_.  This is now fixed.

- Officially support PyPy 4.0, which required no changes, just updates to the

.. _issue 431:
.. _issue 432:
.. _issue 436:

Version 4.0.1 --- 13 October 2015

- When combining data files, unreadable files will now generate a warning
  instead of failing the command.  This is more in line with the older v3.7.1 behavior, which silently ignored unreadable files.
  Prompted by `issue 418`_.

- The --skip-covered option would skip reporting on 100% covered files, but
  also skipped them when calculating total coverage.  This was wrong, it should
  only remove lines from the report, not change the final answer.  This is now
  fixed, closing `issue 423`_.

- In 4.0, the data file recorded a summary of the system on which it was run.
  Combined data files would keep all of those summaries.  This could lead to
  enormous data files consisting of mostly repetitive useless information. That
  summary is now gone, fixing `issue 415`_.  If you want summary information,
  get in touch, and we'll figure out a better way to do it.

- Test suites that mocked os.path.exists would experience strange failures, due
  to using their mock inadvertently.  This is now fixed, closing
  `issue 416`_.

- Importing a ``__init__`` module explicitly would lead to an error:
  ``AttributeError: 'module' object has no attribute '__path__'``, as reported
  in `issue 410`_.  This is now fixed.

- Code that uses ``sys.settrace(sys.gettrace())`` used to incur a more than 2x
  speed penalty.  Now there's no penalty at all. Fixes `issue 397`_.

- Pyexpat C code will no longer be recorded as a source file, fixing
  `issue 419`_.

- The source kit now contains all of the files needed to have a complete source
  tree, re-fixing `issue 137`_ and closing `issue 281`_.

.. _issue 281:
.. _issue 397:
.. _issue 410:
.. _issue 415:
.. _issue 416:
.. _issue 418:
.. _issue 419:
.. _issue 423:

Version 4.0 --- 20 September 2015

No changes from 4.0b3

Version 4.0b3 --- 7 September 2015

- Reporting on an unmeasured file would fail with a traceback.  This is now
  fixed, closing `issue 403`_.

- The Jenkins ShiningPanda plugin looks for an obsolete file name to find the
  HTML reports to publish, so it was failing under 4.0.  Now we
  create that file if we are running under Jenkins, to keep things working
  smoothly. `issue 404`_.

- Kits used to include tests and docs, but didn't install them anywhere, or
  provide all of the supporting tools to make them useful.  Kits no longer
  include tests and docs.  If you were using them from the older packages, get
  in touch and help me understand how.

.. _issue 403:
.. _issue 404:

Version 4.0b2 --- 22 August 2015

- 4.0b1 broke --append creating new data files.  This is now fixed, closing
  `issue 392`_.

- ``py.test --cov`` can write empty data, then touch files due to ``--source``,
  which made mistakenly force the data file to record lines instead
  of arcs.  This would lead to a "Can't combine line data with arc data" error
  message.  This is now fixed, and changed some method names in the
  CoverageData interface.  Fixes `issue 399`_.

- `CoverageData.read_fileobj` and `CoverageData.write_fileobj` replace the
  `.read` and `.write` methods, and are now properly inverses of each other.

- When using ``report --skip-covered``, a message will now be included in the
  report output indicating how many files were skipped, and if all files are
  skipped, won't accidentally scold you for having no data to
  report.  Thanks, Krystian Kichewko.

- A new conversion utility has been added:  ``python -m coverage.pickle2json``
  will convert v3.x pickle data files to v4.x JSON data files.  Thanks,
  Alexander Todorov.  Closes `issue 395`_.

- A new version identifier is available, `coverage.version_info`, a plain tuple
  of values similar to `sys.version_info`_.

.. _issue 392:
.. _issue 395:
.. _issue 399:
.. _sys.version_info:

Version 4.0b1 --- 2 August 2015

- is now licensed under the Apache 2.0 license.  See NOTICE.txt for
  details.  Closes `issue 313`_.

- The data storage has been completely revamped.  The data file is now
  JSON-based instead of a pickle, closing `issue 236`_.  The `CoverageData`
  class is now a public supported documented API to the data file.

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

- Unrecognized configuration options will now print an error message and stop  This should help prevent configuration mistakes from passing
  silently.  Finishes `issue 386`_.

- In parallel mode, ``coverage erase`` will now delete all of the data files,
  fixing `issue 262`_.

- now accepts a directory name for ``coverage run`` and will run a
  ```` found there, just like Python will.  Fixes `issue 252`_.
  Thanks, Dmitry Trofimov.

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

- Missing branches in the HTML report now have a bit more information in the
  right-hand annotations.  Hopefully this will make their meaning clearer.

- All the reporting functions now behave the same if no data had been
  collected, exiting with a status code of 1.  Fixed ``fail_under`` to be
  applied even when the report is empty.  Thanks, Ionel Cristian Mrie.

- Plugins are now initialized differently.  Instead of looking for a class
  called ``Plugin``, looks for a function called ``coverage_init``.

- A file-tracing plugin can now ask to have built-in Python reporting by
  returning `"python"` from its `file_reporter()` method.

- Code that was executed with `exec` would be mis-attributed to the file that
  called it.  This is now fixed, closing `issue 380`_.

- The ability to use item access on `Coverage.config` (introduced in 4.0a2) has
  been changed to a more explicit `Coverage.get_option` and
  `Coverage.set_option` API.

- The ``Coverage.use_cache`` method is no longer supported.

- The private method ``Coverage._harvest_data`` is now called
  ``Coverage.get_data``, and returns the ``CoverageData`` containing the
  collected data.

- The project is consistently referred to as "" throughout the code
  and the documentation, closing `issue 275`_.

- Combining data files with an explicit configuration file was broken in 4.0a6,
  but now works again, closing `issue 385`_.

- ``coverage combine`` now accepts files as well as directories.

- The speed is back to 3.7.1 levels, after having slowed down due to plugin
  support, finishing up `issue 387`_.

.. _issue 236:
.. _issue 252:
.. _issue 262:
.. _issue 275:
.. _issue 313:
.. _issue 380:
.. _issue 385:
.. _issue 386:
.. _issue 387:

.. 40 issues closed in 4.0 below here

Version 4.0a6 --- 21 June 2015

- Python 3.5b2 and PyPy 2.6.0 are supported.

- The original module-level function interface to is no longer
  supported.  You must now create a ``coverage.Coverage`` object, and use
  methods on it.

- The ``coverage combine`` command now accepts any number of directories as
  arguments, and will combine all the data files from those directories.  This
  means you don't have to copy the files to one directory before combining.
  Thanks, Christine Lytwynec.  Finishes `issue 354`_.

- Branch coverage couldn't properly handle certain extremely long files. This
  is now fixed (`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`_.

- The COVERAGE_DEBUG environment variable can be used to set the ``[run] debug``
  configuration option to control what internal operations are logged.

- HTML reports were truncated at formfeed characters.  This is now fixed
  (`issue 360`_).  It's always fun when the problem is due to a `bug in the
  Python standard library <>`_.

- Files with incorrect encoding declaration comments are no longer ignored by
  the reporting commands, fixing `issue 351`_.

- HTML reports now include a timestamp in the footer, closing `issue 299`_.
  Thanks, Conrad Ho.

- HTML reports now begrudgingly use double-quotes rather than single quotes,
  because there are "software engineers" out there writing tools that read HTML
  and somehow have no idea that single quotes exist.  Capitulates to the absurd
  `issue 361`_.  Thanks, Jon Chappell.

- The ``coverage annotate`` command now handles non-ASCII characters properly,
  closing `issue 363`_.  Thanks, Leonardo Pistone.

- Drive letters on Windows were not normalized correctly, now they are. Thanks,
  Ionel Cristian Mrie.

- Plugin support had some bugs fixed, closing `issue 374`_ and `issue 375`_.
  Thanks, Stefan Behnel.

.. _issue 299:
.. _issue 308:
.. _issue 324:
.. _issue 351:
.. _issue 354:
.. _issue 359:
.. _issue 360:
.. _issue 361:
.. _issue 363:
.. _issue 374:
.. _issue 375:

Version 4.0a5 --- 16 February 2015

- Plugin support is now implemented in the C tracer instead of the Python
  tracer. This greatly improves the speed of tracing projects using plugins.

- now always adds the current directory to sys.path, so that
  plugins can import files in the current directory (`issue 358`_).

- 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 (`issue 357`_).

- 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 (`issue 117`_). Thanks,
  Eduardo Schettino.  Currently, this does not work on Windows.

- A new warning is possible, if a desired file isn't measured because it was
  imported before was started (`issue 353`_).

- The `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 (`issue 340`_).

- Added 3.5.0a1 to the list of supported CPython versions.

.. _issue 117:
.. _issue 340:
.. _issue 353:
.. _issue 357:
.. _issue 358:

Version 4.0a4 --- 25 January 2015

- Plugins can now provide sys_info for debugging output.

- Started plugins documentation.

- Prepared to move the docs to

Version 4.0a3 --- 20 January 2015

- Reports now use file names with extensions.  Previously, a report would
  describe a/b/ as "a/b/c".  Now it is shown as "a/b/".  This allows
  for better support of non-Python files, and also fixed `issue 69`_.

- The XML report now reports each directory as a package again.  This was a bad
  regression, I apologize.  This was reported in `issue 235`_, which is now

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

- When looking for the source for a frame, check if the file exists. On
  Windows, .pyw files are no longer recorded as .py files. Along the way, this
  fixed `issue 290`_.

- Empty files are now reported as 100% covered in the XML report, not 0%
  covered (`issue 345`_).

- Regexes in the configuration file are now compiled as soon as they are read,
  to provide error messages earlier (`issue 349`_).

.. _issue 69:
.. _issue 235:
.. _issue 290:
.. _issue 345:
.. _issue 349:

Version 4.0a2 --- 14 January 2015

- Officially support PyPy 2.4, and PyPy3 2.4.  Drop support for
  CPython 3.2 and older versions of PyPy.  The code won't work on CPython 3.2.
  It will probably still work on older versions of PyPy, but I'm not testing
  against them.

- Plugins!

- The original command line switches (`-x` to run a program, etc) are no
  longer supported.

- A new option: `coverage report --skip-covered` will reduce the number of
  files reported by skipping files with 100% coverage.  Thanks, Krystian
  Kichewko.  This means that empty `` files will be skipped, since
  they are 100% covered, closing `issue 315`_.

- You can now specify the ``--fail-under`` option in the ``.coveragerc`` file
  as the ``[report] fail_under`` option.  This closes `issue 314`_.

- The ``COVERAGE_OPTIONS`` environment variable is no longer supported.  It was
  a hack for ``--timid`` before configuration files were available.

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

- 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`_.

- If you specify a ``--rcfile`` that cannot be read, you will get an error
  message.  Fixes `issue 343`_.

- The ``--debug`` switch can now be used on any command.

- You can now programmatically adjust the configuration of by
  setting items on `Coverage.config` after construction.

- A module run with ``-m`` can be used as the argument to ``--source``, fixing
  `issue 328`_.  Thanks, Buck Evan.

- The regex for matching exclusion pragmas has been fixed to allow more kinds
  of whitespace, fixing `issue 334`_.

- Made some PyPy-specific tweaks to improve speed under PyPy.  Thanks, Alex

- In some cases, with a source file missing a final newline, would
  count statements incorrectly.  This is now fixed, closing `issue 293`_.

- The status.dat file that HTML reports use to avoid re-creating files that
  haven't changed is now a JSON file instead of a pickle file.  This obviates
  `issue 287`_ and `issue 237`_.

.. _issue 237:
.. _issue 287:
.. _issue 293:
.. _issue 314:
.. _issue 315:
.. _issue 328:
.. _issue 334:
.. _issue 342:
.. _issue 343:

Version 4.0a1 --- 27 September 2014

- Python versions supported are now CPython 2.6, 2.7, 3.2, 3.3, and 3.4, and
  PyPy 2.2.

- Gevent, eventlet, and greenlet are now supported, closing `issue 149`_.
  The ``concurrency`` setting 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.

- 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.  Finishes `issue 304`_.

- The ``report -m`` command can now show missing branches when reporting on
  branch coverage.  Thanks, Steve Leonard. Closes `issue 230`_.

- The XML report now contains a <source> element, fixing `issue 94`_.  Thanks
  Stan Hu.

- The class defined in the coverage module is now called ``Coverage`` instead
  of ``coverage``, though the old name still works, for backward compatibility.

- The ``fail-under`` value is now rounded the same as reported results,
  preventing paradoxical results, fixing `issue 284`_.

- The XML report will now create the output directory if need be, fixing
  `issue 285`_.  Thanks, Chris Rose.

- HTML reports no longer raise UnicodeDecodeError if a Python file has
  undecodable characters, fixing `issue 303`_ and `issue 331`_.

- The annotate command will now annotate all files, not just ones relative to
  the current directory, fixing `issue 57`_.

- The coverage module no longer causes deprecation warnings on Python 3.4 by
  importing the imp module, fixing `issue 305`_.

- Encoding declarations in source files are only considered if they are truly
  comments.  Thanks, Anthony Sottile.

.. _issue 57:
.. _issue 94:
.. _issue 149:
.. _issue 230:
.. _issue 284:
.. _issue 285:
.. _issue 303:
.. _issue 304:
.. _issue 305:
.. _issue 331:

Revision 1.6 / (download) - annotate - [select for diffs], Sun Jan 26 00:52:04 2014 UTC (9 years, 10 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2015Q3-base, pkgsrc-2015Q3, pkgsrc-2015Q2-base, pkgsrc-2015Q2, pkgsrc-2015Q1-base, pkgsrc-2015Q1, pkgsrc-2014Q4-base, pkgsrc-2014Q4, pkgsrc-2014Q3-base, pkgsrc-2014Q3, pkgsrc-2014Q2-base, pkgsrc-2014Q2, pkgsrc-2014Q1-base, pkgsrc-2014Q1
Changes since 1.5: +6 -3 lines
Diff to previous 1.5 (colored)

Update to 3.7.1:

3.7.1 -- 13 December 2013

- Improved the speed of HTML report generation by about 20%.

- Fixed the mechanism for finding OS-installed static files for the HTML report
  so that it will actually find OS-installed static files.

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.

- 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 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
  `issue 218`_.  This is now fixed.

- When specifying paths to alias together during data combining, you can now
  specify relative paths, fixing `issue 267`_.

- Most file paths can now be specified with username expansion (``~/src``, or
  ``~build/src``, for example), and with environment variable expansion

- 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`_.

- Static files necessary for HTML reports are found in system-installed places,
  to ease OS-level packaging of  Closes `issue 259`_.

- Source files with encoding declarations, but a blank first line, were not
  decoded properly.  Now they are.  Thanks, Roger Hu.

- The source kit now includes the ```` file in the root coverage
  directory, fixing `issue 255`_.

.. _issue 92:
.. _issue 164:
.. _issue 175:
.. _issue 207:
.. _issue 242:
.. _issue 218:
.. _issue 250:
.. _issue 255:
.. _issue 259:
.. _issue 261:
.. _issue 264:
.. _issue 267:

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`_.

.. _issue 226:
.. _issue 227:

Version 3.6b3 --- 29 December 2012

- Beta 2 broke the nose plugin. It's fixed again, closing `issue 224`_.

.. _issue 224:

Version 3.6b2 --- 23 December 2012

- runs on Python 2.3 and 2.4 again. It was broken in 3.6b1.

- The C extension is optionally compiled using a different more widely-used
  technique, taking another stab at fixing `issue 80`_ once and for all.

- Combining data files would create entries for phantom files if used with
  ``source`` and path aliases.  It no longer does.

- ``debug sys`` now shows the configuration file path that was read.

- If an oddly-behaved package claims that code came from an empty-string
  filename, no longer associates it with the directory name,
  fixing `issue 221`_.

.. _issue 80:
.. _issue 221:

Version 3.6b1 --- 28 November 2012

- Wildcards in ``include=`` and ``omit=`` arguments were not handled properly
  in reporting functions, though they were when running.  Now they are handled
  uniformly, closing `issue 143`_ and `issue 163`_.  **NOTE**: it is possible
  that your configurations may now be incorrect.  If you use ``include`` or
  ``omit`` during reporting, whether on the command line, through the API, or
  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.html_report(), and
  coverage.xml_report() now all return a float, the total percentage covered

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

- Configuration files now support substitution of environment variables, using
  syntax like ``${WORD}``.  Closes `issue 97`_.

- Embarrassingly, the `[xml] output=` setting in the .coveragerc file simply
  didn't work.  Now it does.

- The XML report now consistently uses filenames for the filename attribute,
  rather than sometimes using module names.  Fixes `issue 67`_.
  Thanks, Marcus Cobden.

- Coverage percentage metrics are now computed slightly differently under
  branch coverage.  This means that completely unexecuted files will now
  correctly have 0% coverage, fixing `issue 156`_.  This also means that your
  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 installer no longer tries to bootstrap setuptools or
  Distribute.  You must have one of them installed first, as `issue 202`_

- The 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`_.

- If a file is missing during reporting, the path shown in the error message
  is now correct, rather than an incorrect path in the current directory.
  Fixes `issue 60`_.

- Running an HTML report in Python 3 in the same directory as an old Python 2
  HTML report would fail with a UnicodeDecodeError. This issue (`issue 193`_)
  is now fixed.

- Fixed yet another error trying to parse non-Python files as Python, this
  time an IndentationError, closing `issue 82`_ for the fourth time...

- If `coverage xml` fails because there is no data to report, it used to
  create a zero-length XML file.  Now it doesn't, fixing `issue 210`_.

- 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`_.

- On some Linux distributions, when installed with the OS package manager, 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, closing
  `issue 171`_.

- When 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:
.. _issue 67:
.. _issue 82:
.. _issue 89:
.. _issue 97:
.. _issue 100:
.. _issue 111:
.. _issue 137:
.. _issue 139:
.. _issue 143:
.. _issue 153:
.. _issue 156:
.. _issue 163:
.. _issue 171:
.. _issue 193:
.. _issue 201:
.. _issue 202:
.. _issue 203:
.. _issue 205:
.. _issue 206:
.. _issue 210:
.. _issue 214:

Version 3.5.3 --- 29 September 2012

- Line numbers in the HTML report line up better with the source lines, fixing
  `issue 197`_, thanks Marius Gedminas.

- When specifying a directory as the source= option, the directory itself no
  longer needs to have a ```` file, though its subdirectories 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.

- Fixed more cases of non-Python files being reported as Python source, and
  then not being able to parse them as Python.  Closes `issue 82`_ (again).
  Thanks, Julian Berman.

- Fixed memory leaks under Python 3, thanks, Brett Cannon. Closes `issue 147`_.

- Optimized .pyo files may not have been handled correctly, `issue 195`_.
  Thanks, Marius Gedminas.

- Certain unusually named file paths could have been mangled during reporting,
  `issue 194`_.  Thanks, Marius Gedminas.

- 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:
.. _issue 147:
.. _issue 179:
.. _issue 183:
.. _issue 194:
.. _issue 195:
.. _issue 197:
.. _tox:

Version 3.5.2 --- 4 May 2012

Revision 1.5 / (download) - annotate - [select for diffs], Sun Jan 26 00:39:40 2014 UTC (9 years, 10 months ago) by wiz
Branch: MAIN
Changes since 1.4: +1 -2 lines
Diff to previous 1.4 (colored)

Do not insist on py-distribute on python-3.x.
Times have changed, and py-setuptools is now the cool kid again.

Revision 1.4 / (download) - annotate - [select for diffs], Wed Oct 31 11:19:29 2012 UTC (11 years, 1 month ago) by asau
Branch: MAIN
CVS Tags: pkgsrc-2013Q4-base, pkgsrc-2013Q4, pkgsrc-2013Q3-base, pkgsrc-2013Q3, pkgsrc-2013Q2-base, pkgsrc-2013Q2, pkgsrc-2013Q1-base, pkgsrc-2013Q1, pkgsrc-2012Q4-base, pkgsrc-2012Q4
Changes since 1.3: +1 -3 lines
Diff to previous 1.3 (colored)

Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days.

Revision 1.3 / (download) - annotate - [select for diffs], Fri Feb 17 18:19:30 2012 UTC (11 years, 9 months ago) by drochner
Branch: MAIN
CVS Tags: pkgsrc-2012Q3-base, pkgsrc-2012Q3, pkgsrc-2012Q2-base, pkgsrc-2012Q2, pkgsrc-2012Q1-base, pkgsrc-2012Q1
Changes since 1.2: +3 -3 lines
Diff to previous 1.2 (colored)

update to 3.5.1
this is a major update, too much to list here, see the CHANGES file

Revision 1.2 / (download) - annotate - [select for diffs], Thu Feb 9 12:42:37 2012 UTC (11 years, 9 months ago) by obache
Branch: MAIN
Changes since 1.1: +3 -4 lines
Diff to previous 1.1 (colored)

Move chmod for egg-info files from post-install to post-extract.

Revision / (download) - annotate - [select for diffs] (vendor branch), Tue Aug 10 17:03:39 2010 UTC (13 years, 3 months ago) by drochner
Branch: TNF
CVS Tags: pkgsrc-base, pkgsrc-2011Q4-base, pkgsrc-2011Q4, pkgsrc-2011Q3-base, pkgsrc-2011Q3, pkgsrc-2011Q2-base, pkgsrc-2011Q2, pkgsrc-2011Q1-base, pkgsrc-2011Q1, pkgsrc-2010Q4-base, pkgsrc-2010Q4, pkgsrc-2010Q3-base, pkgsrc-2010Q3
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 (colored)

add py-coverage-3.3.1, a module that measures code coverage, from
Kamel Derouiche per pkgsrc-wip

Revision 1.1 / (download) - annotate - [select for diffs], Tue Aug 10 17:03:39 2010 UTC (13 years, 3 months ago) by drochner
Branch: MAIN

Initial revision

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

CVSweb <>