Skip to content

{Codecov upload issue debugging} - Ensure Codecov consistently waits for ALL reports to successfully process before reporting on coverage on UI and PR comment #2702

Description

@rohan-at-sentry

CONTEXT In issue #2400, we confirmed inconsistencies in the reporting experience across the app and PR comments. Specifically:

  • The app’s commit page displays a fully processed report.
  • The pulls page and PR comments only show partial data.

This investigation was conducted by @nora-codecov and @RulaKhaled

User Experience Impact

Users frequently see partial data reports, leading to the perception of incorrect or incomplete information, which undermines trust in our reporting accuracy. Improving user trust and data clarity is a key focus area.

One solution under consideration involves providing feedback as processing occurs (see #2522). However, implementing this depends on resolving blockers related to #2400, particularly around the feasibility of showing full reports and identifying intermediary processing states.

Aside, but related, @spalmurray-codecov has explored a potential solution, which may address some of these blockers (see findings here).

Next Steps

  1. Determine Reporting Capabilities

  2. Evaluate Findings

    • Based on investigation results, the Eng/Design/PM team will assess next steps, such as showing an intermediary state, adjusting configuration defaults, or other potential improvements.
    • Consider a more standardized approach to report processing, potentially deprecating after_n_builds or setting default behavior without configuration. This will depend heavily on investigation outcomes.
  3. Parallel Investigations

kickoff details / rough notes / other

Today we have 2 ways to let customers instruct customers on when to kick off the notification process..

  1. After_n_builds - https://docs.codecov.com/docs/pull-request-comments#after_n_builds
  2. manual_trigger and send-notifications - https://github.com/codecov/codecov-cli#send-notifications

Problem 1 - Not every customer knows to turn this feature on. Turning this feature on allows Codecov to "know" what is the max # of reports to expect per commit, which allows us to better surface that information to users in-case of dropped / missing uploads.

Problem 2 - This applies a "delay" to notifications sent to the PR comment. The problem is that the UI is effectively decoupled from this leading to inconsistencies in how coverage is reported for uploads that fail on the UI and PR Comment.

Path Forward

Solve problems 1 & 2

  • For customers that do not have this turned on, Codecov effectively cannot know if all reports have been processed. This means that project coverage reporting is inherently inaccurate. We should surface messaging on PR comment and UI (on commits tab and PR tab) inviting users to turn this on

    • Copy "Codecov isn't confident that it has received all coverage reports for this commit. See how to fix this (link to docs) "
  • Ensure manual_trigger and after_n_builds impacts both PR comment and Codecov UI

For Q4 - the goal would be to wrap up discovery on this topic


Related problem to solve

Previously in #2400 we found that:

  • in app the commits page awaits full data reporting
  • in app pulls data is (xx)
  • pr comment:
    • pr comment does not notify user that there are failed uploads
    • pr comment displays patch and project coverage
    • there is no indication anywhere on the pr that there was an issue with uploads
    • similarly, in codecov.io there's very little indication of upload failure
    • it's unclear that 1 failed upload invalidates all past and any future uploads on the commit

The issue is particularly with the PR comment experience is the data is showing partially as uploads come in and therefore can sometimes give the user a false understanding.

Solution exploration

We'd like to explore 1) how we can make the reporting experience consistent in awaiting to see the full report and 2) have an intermediary state to clarify to the user processing is occurring.

related ongoing iteration to show processing: #2522

Metadata

Metadata

Labels

Area: Report ProcessingIssues with report processingArea: Report UploadIssues with pre-ingest report uploadingP0: must dopriority 10[Epic]this label is used to mark issues as epicsin discoveryThe design, product, and specifications require refinement

Type

Projects

Status
Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions