Releases: nedbat/coveragepy
4.0a6
Version 4.0a6 — 2015-06-21
- 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 time stamp 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.
➡️ PyPI page: coverage 4.0a6.
➡️ To install: python3 -m pip install coverage==4.0a6
4.0a5
Version 4.0a5 — 2015-02-16
- 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.
➡️ PyPI page: coverage 4.0a5.
➡️ To install: python3 -m pip install coverage==4.0a5
4.0a4
Version 4.0a4 — 2015-01-25
- Plugins can now provide sys_info for debugging output.
- Started plugins documentation.
- Prepared to move the docs to readthedocs.org.
➡️ PyPI page: coverage 4.0a4.
➡️ To install: python3 -m pip install coverage==4.0a4
4.0a3
Version 4.0a3 — 2015-01-20
- 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).
➡️ PyPI page: coverage 4.0a3.
➡️ To install: python3 -m pip install coverage==4.0a3
4.0a2
Version 4.0a2 — 2015-01-14
- 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 white space, 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.
➡️ PyPI page: coverage 4.0a2.
➡️ To install: python3 -m pip install coverage==4.0a2
4.0a1
Version 4.0a1 — 2014-09-27
- 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 ofcoverage
, 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 un-decodable 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.
➡️ PyPI page: coverage 4.0a1.
➡️ To install: python3 -m pip install coverage==4.0a1
3.7.1
Version 3.7.1 — 2013-12-13
- 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.
➡️ PyPI page: coverage 3.7.1.
➡️ To install: python3 -m pip install coverage==3.7.1
3.7
Version 3.7 — 2013-10-06
- Added the
--debug
switch tocoverage 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 un-executed, 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 ZeroDivisionError, 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.
➡️ PyPI page: coverage 3.7.
➡️ To install: python3 -m pip install coverage==3.7
3.6
Version 3.6 — 2013-01-05
- Added a page to the docs about troublesome situations, closing issue 226, and added some info to the TODO file, closing issue 227.
➡️ PyPI page: coverage 3.6.
➡️ To install: python3 -m pip install coverage==3.6
3.6b3
Version 3.6b3 — 2012-12-29
- Beta 2 broke the nose plugin. It’s fixed again, closing issue 224.
➡️ PyPI page: coverage 3.6b3.
➡️ To install: python3 -m pip install coverage==3.6b3