Original comment byMarius Gedminas (Bitbucket: mgedmin, GitHub: mgedmin)
mgedmin/irclog2html@da8d6ec is a commit where make coverage reports 100% with coverage 4.4, but 98% (due to extra files with <100% coverage not being omitted) with coverage 4.5.
(The "Also for some reason buildout-installed tools ignore my .coveragerc" part of the commit message was a misunderstanding on my part: buildout installed coverage 4.5 and was affected by this bug, but my globally pip-installed coverage was still at 4.4.)
Thanks. Looking at the .coverage files produced by 4.4.2 and 4.5, they are identical. So the [run]omit was never stopping the collecting of data for some reason. In 4.4.2, that setting was preventing the reporting, but it isn't in 4.5. I'll have to dig into it some more.
The problem was that during measurement, omitting patterns weren't used inside source packages, only source directories. In the ambiguous case (such as you have) we interpret the source setting as a package. So the omit was being ignored (and has been for a while). It used to be that run-omit was also used for report-omit, so the data would be collected, but then omitted during reporting. Now that report-omit doesn't default to report-omit, the incorrectly collected data was being reported.
In change 3ee6ac71eb08 (bb) I fixed the handling of omits inside source packages, so this is now fixed.