Coverage.py 4.2 is done.
As I mentioned in the beta 1 announcement, this contains work from the sprint at PyCon 2016 in Portland.
The biggest change since 4.1 is the only incompatible change. The “coverage combine” command now will ignore an existing .coverage data file, rather than appending to it as it used to do. This new behavior makes more sense to people, and matches how “coverage run” works. If you’ve ever seen (or written!) a tox.ini file with an explicit coverage-clean step, you won’t have to any more. There’s also a new “--append” option on “coverage combine”, so you can get the old behavior if you want it.
The multiprocessing support continues to get the polish it deserves:
- Now the concurrency option can be multi-valued, so you can measure programs that use multiprocessing and another library like gevent.
- Options on the command line weren’t being passed to multiprocessing subprocesses. Now they still aren’t, but instead of failing silently, you’ll get an error explaining the situation.
- If you’re using a custom-named configuration file, multiprocessing processes now will use that same file, so that all the processes will be measured the same.
- Enabling multiprocessing support now also enables parallel measurement, since there will be subprocesses. This reduces the possibility for error when configuring coverage.py.
Finally, the text report can be sorted by columns as you wish, making it more convenient.
The complete change history is in the source.