Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update coverage to 4.5.1 #187

Closed
wants to merge 2 commits into from
Closed

Conversation

pyup-bot
Copy link
Collaborator

There's a new version of coverage available.
You are currently using 4.2. I have updated it to 4.5.1

These links might come in handy: PyPI | Changelog | Repo

Changelog

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 coverage.py with an IndexError (issue 640_). This is
    now fixed.
  • Configurer plugins are now reported in the output of --debug=sys.

.. _issue 638: https://bitbucket.org/ned/coveragepy/issues/638/run-omit-is-ignored-since-45
.. _issue 640: https://bitbucket.org/ned/coveragepy/issues/640/indexerror-reporting-on-an-empty-decorated

.. _changes_45:

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.

.. _issue 563: https://bitbucket.org/ned/coveragepy/issues/563/platform-specific-configuration
.. _issue 618: https://bitbucket.org/ned/coveragepy/issues/618/problem-when-combining-windows-generated
.. _issue 621: https://bitbucket.org/ned/coveragepy/issues/621/include-ignored-warning-when-using
.. _issue 622: https://bitbucket.org/ned/coveragepy/issues/622/report-omit-overwrites-run-omit
.. _issue 627: https://bitbucket.org/ned/coveragepy/issues/627/failure-generating-html-reports-when-the
.. _issue 629: https://bitbucket.org/ned/coveragepy/issues/629/multiple-use-of-combine-leads-to-empty
.. _issue 631: https://bitbucket.org/ned/coveragepy/issues/631/precise-coverage-percentage-value

.. _changes_442:

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
    results.
  • 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. Thanks, Peter Baughman
    for the debugging, and Olivier Grisel for the fix with tests.
  • 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_. Thanks, Ben Finney.

.. _issue 101: https://bitbucket.org/ned/coveragepy/issues/101/settings-under-report-affect-running
.. _issue 581: https://bitbucket.org/ned/coveragepy/issues/581/race-condition-when-saving-data-under
.. _issue 588: https://bitbucket.org/ned/coveragepy/issues/588/using-rcfile-path-to-toxini-uses-run
.. _issue 589: https://bitbucket.org/ned/coveragepy/issues/589/allow-expansion-in-coveragerc
.. _issue 600: https://bitbucket.org/ned/coveragepy/issues/600/get-program-name-from-command-line-when

.. _changes_441:

4.4.1


  • No code changes: just corrected packaging for Python 2.7 Linux wheels.

.. _changes_44:

4.4


  • Reports could produce the wrong file names for packages, reporting pkg.py
    instead of the correct pkg/__init__.py. This is now fixed. Thanks, Dirk
    Thomas.
  • 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
    stdout.
  • Running coverage xml in a directory named with non-ASCII characters would
    fail under Python 2. This is now fixed. (issue 573_)

.. _issue 526: https://bitbucket.org/ned/coveragepy/issues/526/generated-xml-invalid-paths-for-cobertura
.. _issue 572: https://bitbucket.org/ned/coveragepy/issues/572/no-python-source-warning-for-namespace
.. _issue 573: https://bitbucket.org/ned/coveragepy/issues/573/cant-generate-xml-report-if-some-source
.. _issue 575: https://bitbucket.org/ned/coveragepy/issues/575/running-doctest-prevents-complete-coverage

4.4b1


  • Some warnings can now be individually disabled. Warnings that can be
    disabled have a short name appended. The [run] disable_warnings setting
    takes a list of these warning names to disable. Closes both issue 96_ and
    issue 355_.
  • The XML report now includes attributes from version 4 of the Cobertura XML
    format, fixing issue 570_.
  • In previous versions, calling a method that used collected data would prevent
    further collection. For example, save(), report(), html_report(), and
    others would all stop collection. An explicit start() was needed to get it
    going again. This is no longer true. Now you can use the collected data and
    also continue measurement. Both issue 79_ and issue 448_ described this
    problem, and have been fixed.
  • Plugins can now find unexecuted files if they choose, by implementing the
    find_executable_files method. Thanks, Emil Madsen.
  • Minimal IronPython support. You should be able to run IronPython programs
    under coverage run, though you will still have to do the reporting phase
    with CPython.
  • Coverage.py has long had a special hack to support CPython's need to measure
    the coverage of the standard library tests. This code was not installed by
    kitted versions of coverage.py. Now it is.

.. _issue 79: https://bitbucket.org/ned/coveragepy/issues/79/save-prevents-harvesting-on-stop
.. _issue 96: https://bitbucket.org/ned/coveragepy/issues/96/unhelpful-warnings-produced-when-using
.. _issue 355: https://bitbucket.org/ned/coveragepy/issues/355/warnings-should-be-suppressable
.. _issue 448: https://bitbucket.org/ned/coveragepy/issues/448/save-and-html_report-prevent-further
.. _issue 570: https://bitbucket.org/ned/coveragepy/issues/570/cobertura-coverage-04dtd-support

.. _changes_434:

4.3.4


  • Fixing 2.6 in version 4.3.3 broke other things, because the too-tricky
    exception wasn't properly derived from Exception, described in issue 556_.
    A newb mistake; it hasn't been a good few days.

.. _issue 556: https://bitbucket.org/ned/coveragepy/issues/556/43-fails-if-there-are-html-files-in-the

.. _changes_433:

4.3.3


  • Python 2.6 support was broken due to a testing exception imported for the
    benefit of the coverage.py test suite. Properly conditionalizing it fixed
    issue 554_ so that Python 2.6 works again.

.. _issue 554: https://bitbucket.org/ned/coveragepy/issues/554/traceback-on-python-26-starting-with-432

.. _changes_432:

4.3.2


  • Using the --skip-covered option on an HTML report with 100% coverage
    would cause a "No data to report" error, as reported in issue 549_. This is
    now fixed; thanks, Loïc Dachary.
  • If-statements can be optimized away during compilation, for example, if 0:
    or if __debug__:. Coverage.py had problems properly understanding these
    statements which existed in the source, but not in the compiled bytecode.
    This problem, reported in issue 522_, is now fixed.
  • If you specified --source as a directory, then coverage.py would look for
    importable Python files in that directory, and could identify ones that had
    never been executed at all. But if you specified it as a package name, that
    detection wasn't performed. Now it is, closing issue 426_. Thanks to Loïc
    Dachary for the fix.
  • If you started and stopped coverage measurement thousands of times in your
    process, you could crash Python with a "Fatal Python error: deallocating
    None" error. This is now fixed. Thanks to Alex Groce for the bug report.
  • On PyPy, measuring coverage in subprocesses could produce a warning: "Trace
    function changed, measurement is likely wrong: None". This was spurious, and
    has been suppressed.
  • Previously, coverage.py couldn't start on Jython, due to that implementation
    missing the multiprocessing module (issue 551). This problem has now been
    fixed. Also, issue 322
    about not being able to invoke coverage
    conveniently, seems much better: jython -m coverage run myprog.py works
    properly.
  • Let's say you ran the HTML report over and over again in the same output
    directory, with --skip-covered. And imagine due to your heroic
    test-writing efforts, a file just achieved the goal of 100% coverage. With
    coverage.py 4.3, the old HTML file with the less-than-100% coverage would be
    left behind. This file is now properly deleted.

.. _issue 322: https://bitbucket.org/ned/coveragepy/issues/322/cannot-use-coverage-with-jython
.. issue 426: https://bitbucket.org/ned/coveragepy/issues/426/difference-between-coverage-results-with
.. issue 522: https://bitbucket.org/ned/coveragepy/issues/522/incorrect-branch-reporting-with-__debug

.. _issue 549: https://bitbucket.org/ned/coveragepy/issues/549/skip-covered-with-100-coverage-throws-a-no
.. _issue 551: https://bitbucket.org/ned/coveragepy/issues/551/coveragepy-cannot-be-imported-in-jython27

.. _changes_431:

4.3.1


  • Some environments couldn't install 4.3, as described in issue 540_. This is
    now fixed.
  • The check for conflicting --source and --include was too simple in a
    few different ways, breaking a few perfectly reasonable use cases, described
    in issue 541. The check has been reverted while we re-think the fix for
    issue 265
    .

.. _issue 540: https://bitbucket.org/ned/coveragepy/issues/540/cant-install-coverage-v43-into-under
.. _issue 541: https://bitbucket.org/ned/coveragepy/issues/541/coverage-43-breaks-nosetest-with-coverage

.. _changes_43:

4.3


Special thanks to Loïc Dachary, who took an extraordinary interest in
coverage.py and contributed a number of improvements in this release.

  • Subprocesses that are measured with automatic subprocess measurement_ used
    to read in any pre-existing data file. This meant data would be incorrectly
    carried forward from run to run. Now those files are not read, so each
    subprocess only writes its own data. Fixes issue 510_.
  • The coverage combine command will now fail if there are no data files to
    combine. The combine changes in 4.2 meant that multiple combines could lose
    data, leaving you with an empty .coverage data file. Fixes
    issue 525, issue 412, issue 516, and probably issue 511.
  • Coverage.py wouldn't execute sys.excepthook_ when an exception happened in
    your program. Now it does, thanks to Andrew Hoos. Closes issue 535_.
  • Branch coverage fixes:
  • Branch coverage could misunderstand a finally clause on a try block that
    never continued on to the following statement, as described in issue 493_. This is now fixed. Thanks to Joe Doherty for the report and Loïc
    Dachary for the fix.
  • A while loop with a constant condition (while True) and a continue
    statement would be mis-analyzed, as described in issue 496_. This is now
    fixed, thanks to a bug report by Eli Skeggs and a fix by Loïc Dachary.
  • While loops with constant conditions that were never executed could result
    in a non-zero coverage report. Artem Dayneko reported this in issue 502_, and Loïc Dachary provided the fix.
  • The HTML report now supports a --skip-covered option like the other
    reporting commands. Thanks, Loïc Dachary for the implementation, closing
    issue 433_.
  • Options can now be read from a tox.ini file, if any. Like setup.cfg, sections
    are prefixed with "coverage:", so [run] options will be read from the
    [coverage:run] section of tox.ini. Implements part of issue 519_.
    Thanks, Stephen Finucane.
  • Specifying both --source and --include no longer silently ignores the
    include setting, instead it fails with a message. Thanks, Nathan Land and
    Loïc Dachary. Closes issue 265_.
  • The Coverage.combine method has a new parameter, strict=False, to
    support failing if there are no data files to combine.
  • When forking subprocesses, the coverage data files would have the same random
    number appended to the file name. This didn't cause problems, because the
    file names had the process id also, making collisions (nearly) impossible.
    But it was disconcerting. This is now fixed.
  • The text report now properly sizes headers when skipping some files, fixing
    issue 524_. Thanks, Anthony Sottile and Loïc Dachary.
  • Coverage.py can now search .pex files for source, just as it can .zip and
    .egg. Thanks, Peter Ebden.
  • Data files are now about 15% smaller.
  • Improvements in the [run] debug setting:
  • The "dataio" debug setting now also logs when data files are deleted during
    combining or erasing.
  • A new debug option, "multiproc", for logging the behavior of
    concurrency=multiprocessing.
  • If you used the debug options "config" and "callers" together, you'd get a
    call stack printed for every line in the multi-line config output. This is
    now fixed.
  • Fixed an unusual bug involving multiple coding declarations affecting code
    containing code in multi-line strings: issue 529_.
  • Coverage.py will no longer be misled into thinking that a plain file is a
    package when interpreting --source options. Thanks, Cosimo Lupo.
  • If you try to run a non-Python file with coverage.py, you will now get a more
    useful error message. Issue 514_.
  • The default pragma regex changed slightly, but this will only matter to you
    if you are deranged and use mixed-case pragmas.
  • Deal properly with non-ASCII file names in an ASCII-only world, issue 533_.
  • Programs that set Unicode configuration values could cause UnicodeErrors when
    generating HTML reports. Pytest-cov is one example. This is now fixed.
  • Prevented deprecation warnings from configparser that happened in some
    circumstances, closing issue 530_.
  • Corrected the name of the jquery.ba-throttle-debounce.js library. Thanks,
    Ben Finney. Closes issue 505_.
  • Testing against PyPy 5.6 and PyPy3 5.5.
  • Switched to pytest from nose for running the coverage.py tests.
  • Renamed AUTHORS.txt to CONTRIBUTORS.txt, since there are other ways to
    contribute than by writing code. Also put the count of contributors into the
    author string in setup.py, though this might be too cute.

.. _sys.excepthook: https://docs.python.org/3/library/sys.htmlsys.excepthook
.. _issue 265: https://bitbucket.org/ned/coveragepy/issues/265/when-using-source-include-is-silently
.. _issue 412: https://bitbucket.org/ned/coveragepy/issues/412/coverage-combine-should-error-if-no
.. _issue 433: https://bitbucket.org/ned/coveragepy/issues/433/coverage-html-does-not-suport-skip-covered
.. _issue 493: https://bitbucket.org/ned/coveragepy/issues/493/confusing-branching-failure
.. _issue 496: https://bitbucket.org/ned/coveragepy/issues/496/incorrect-coverage-with-branching-and
.. _issue 502: https://bitbucket.org/ned/coveragepy/issues/502/incorrect-coverage-report-with-cover
.. _issue 505: https://bitbucket.org/ned/coveragepy/issues/505/use-canonical-filename-for-debounce
.. _issue 514: https://bitbucket.org/ned/coveragepy/issues/514/path-to-problem-file-not-reported-when
.. _issue 510: https://bitbucket.org/ned/coveragepy/issues/510/erase-still-needed-in-42
.. _issue 511: https://bitbucket.org/ned/coveragepy/issues/511/version-42-coverage-combine-empties
.. _issue 516: https://bitbucket.org/ned/coveragepy/issues/516/running-coverage-combine-twice-deletes-all
.. _issue 519: https://bitbucket.org/ned/coveragepy/issues/519/coverage-run-sections-in-toxini-or-as
.. _issue 524: https://bitbucket.org/ned/coveragepy/issues/524/coverage-report-with-skip-covered-column
.. _issue 525: https://bitbucket.org/ned/coveragepy/issues/525/coverage-combine-when-not-in-parallel-mode
.. _issue 529: https://bitbucket.org/ned/coveragepy/issues/529/encoding-marker-may-only-appear-on-the
.. _issue 530: https://bitbucket.org/ned/coveragepy/issues/530/deprecationwarning-you-passed-a-bytestring
.. _issue 533: https://bitbucket.org/ned/coveragepy/issues/533/exception-on-unencodable-file-name
.. _issue 535: https://bitbucket.org/ned/coveragepy/issues/535/sysexcepthook-is-not-called

.. _changes_42:

Got merge conflicts? Close this PR and delete the branch. I'll create a new PR for you.

Happy merging! 🤖

@pyup-bot pyup-bot mentioned this pull request Feb 11, 2018
@pyup-bot
Copy link
Collaborator Author

Closing this in favor of #283

@pyup-bot pyup-bot closed this Nov 13, 2018
@luzfcb luzfcb deleted the pyup-update-coverage-4.2-to-4.5.1 branch November 13, 2018 03:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant