Skip to content

Releases: nedbat/coveragepy

coverage-4.0a6

18 May 13:15
Compare
Choose a tag to compare
coverage-4.0a6 Pre-release
Pre-release
  • Python 3.5b2 and PyPy 2.6.0 are supported.
  • The original module-level function interface to coverage.py 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 Mărieș.
  • Plugin support had some bugs fixed, closing issue 374 and issue 375. Thanks, Stefan Behnel.

coverage-4.0a5

18 May 13:15
Compare
Choose a tag to compare
coverage-4.0a5 Pre-release
Pre-release
  • Plugin support is now implemented in the C tracer instead of the Python tracer. This greatly improves the speed of tracing projects using plugins.
  • Coverage.py 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 coverage.py 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.

coverage-4.0a4

18 May 13:15
Compare
Choose a tag to compare
coverage-4.0a4 Pre-release
Pre-release
  • Plugins can now provide sys_info for debugging output.
  • Started plugins documentation.
  • Prepared to move the docs to readthedocs.org.

coverage-4.0a3

18 May 13:15
Compare
Choose a tag to compare
coverage-4.0a3 Pre-release
Pre-release
  • Reports now use file names with extensions. Previously, a report would describe a/b/c.py as “a/b/c”. Now it is shown as “a/b/c.py”. This allows for better support of non-Python files, 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 fixed.
  • 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).

coverage-4.0a2

18 May 13:15
Compare
Choose a tag to compare
coverage-4.0a2 Pre-release
Pre-release
  • 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 __init__.py 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 coverage.py 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 Gaynor.
  • In some cases, with a source file missing a final newline, coverage.py 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.

coverage-4.0a1

18 May 13:15
Compare
Choose a tag to compare
coverage-4.0a1 Pre-release
Pre-release
  • 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.

coverage-3.7.1

18 May 13:15
Compare
Choose a tag to compare
  • 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.

coverage-3.7

18 May 13:15
Compare
Choose a tag to compare
  • 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.py can now run .pyc files directly, closing issue 264.
  • Coverage.py properly supports .pyw files, fixing issue 261.
  • Omitting files within a tree specified with the source option would cause them to be incorrectly marked as unexecuted, as described in 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 (build/$BUILDNUM/src).
  • 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.py no longer issues a spurious warning about the trace function changing: “Trace function changed, measurement is likely wrong: None.” This fixes issue 164.
  • Static files necessary for HTML reports are found in system-installed places, to ease OS-level packaging of coverage.py. Closes issue 259.
  • 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 __main__.py file in the root coverage directory, fixing issue 255.

coverage-3.6

18 May 13:15
Compare
Choose a tag to compare
  • Added a page to the docs about troublesome situations, closing issue 226, and added some info to the TODO file, closing issue 227.

coverage-3.6b3

18 May 13:15
Compare
Choose a tag to compare
coverage-3.6b3 Pre-release
Pre-release
  • Beta 2 broke the nose plugin. It’s fixed again, closing issue 224.