codecov / codecov-action

GitHub Action that uploads coverage to Codecov :open_umbrella:
https://www.codecov.io
MIT License
1.43k stars 198 forks source link

[v4] exclude_lines from pyproject.toml not respected #1326

Open jakkdl opened 4 months ago

jakkdl commented 4 months ago

In https://github.com/python-trio/trio/pull/2951 we're trying to update to codecov-action@v4, and among other things we noticed a drop in coverage that seems to be due to our exclude_lines setting in pyproject.toml not being respected.

https://github.com/CoolCat467/trio/blob/c806b2056d6c39ee3399eadccb757874ca593f9f/pyproject.toml#L261-L282 ignores, among other things, if TYPE_CHECKING.*: and raise NotImplementedError, but looking at a file such as https://app.codecov.io/gh/python-trio/trio/pull/2951/blob/src/trio/_socket.py we can see lines matching those are marked as misses.

rohan-at-sentry commented 2 months ago

@jakkdl thanks for writing in. Was this a problem before updating to v4? IOW, was the exclude_lines in pyproject.toml being honored on v3 (and still being honored)?

jakkdl commented 2 months ago

Yeah it's working perfectly fine on v3, hence the drop in coverage when upgrading to v4 (because those lines are no longer excluded and are now seen as "missed").

thomasrockhu-codecov commented 2 months ago

hi @jakkdl, just need some more details here to get my head clear. Do you have

  1. a CI link running codecov@v3 where a line is ignored
  2. a CI link running codecov@v4 where the line is NOT ignored
  3. a link to where in pyproject.toml this line is being marked as excluded
  4. the path and line number in question?

That would make tracking this done a bit easier.

jakkdl commented 2 months ago
  1. https://app.codecov.io/gh/python-trio/trio/blob/master/src%2Ftrio%2F_socket.py#L28
  2. https://app.codecov.io/gh/python-trio/trio/blob/codecov_v4_repro_cov_fail/src%2Ftrio%2F_socket.py#L28
  3. https://github.com/python-trio/trio/blob/c806b2056d6c39ee3399eadccb757874ca593f9f/pyproject.toml#L261
  4. 1 and 2 point directly to the path/lines in question

The original PR I linked in the OP has had changes since, such that it doesn't display the problem (but I think that's because something else broke, rather than us finding a workaround).