Release Notes for Codecov v4.4.10

This version is comprised of two releases. The v4.4.10 standard release and an incremental sub-release, v4.4.10-012d422. This sub-release contains all of the changes of v4.4.10 plus some minor improvements and experimental features.

It is generally recommended to use v4.4.10 unless a feature or fix provided in v4.4.10-012d422 is known to address an issue you are experiencing. It is expected that all v4.4.10-012d422 changes will be present and stable in an upcoming v4.4.11 release.

v4.4.10-012d422 Changelog

Note this is an incremental sub-release of 4.4.10. It contains all of the changes of 4.4.10 outlined in the v4.4.10 Changelog section below.

Should I use this version or just v4.4.10?

SHA level patch releases of Codecov Enterprise, such as this one, are generally only used for very minor changes or experimental features. In this case, the primary motivation was the release of the experimental base commit picking feature for those enterprise users who desired to test that functionality.

New

  • (Experimental -- GitHub Only) Adds experimental features for improved base commit picking when comparing commits. These features are enabled by default but can be disabled with the use of an environment variable (available upon request).
  • (Production Only) Sets billing address collection to required when paying through codecov.io's Stripe integration
  • (Enterprise only) Fixes a bug that can occur when migrating from much earlier versions of Codecov Enterprise to the most recent version.

Fixes

  • Codecov bash uploader now fetches the full SHA for Bitbucket if only a short is provided (contributed by Slamdunk

Minor

  • Adds Codefresh path fixing to the list of default of path fixes.
  • Makes improvements to the owner deletion task.

v4.4.10 Changelog

New

  • Added support for parent picking such that the base commit a commit is compared to can be supplied during report upload. See "Notes on Parent Picking" below.
  • Improved internal parent picking logic. See "Notes on Parent Picking" below
  • (Production Only) Full Support for GitHub Student Pack. Students on GitHub now no longer count toward seat counts on codecov.io.
  • Added new services to the Codecov bash uploader: CirrusCI, AWS Codebuild, and GitHub Actions.
  • Improved null setting behavior for Team Bot. Previously it was difficult to disable a Team Bot once it has been set. This change allows the Team Bot to be properly set to null to disable it.

Fixes

  • Added improvements for gitlab admin handling. API call now uses GitLab's members/all endpoint to properly check on ancestor group memberships. There is still more work to do to improve GitLab's admin checking, but this work handles a use case where admin checks were previously failing.
  • Fixed an issue on the Compare page where Files and Folders were being incorrectly marked as New.
  • (Production only) Fixed a bug where billing/user activations were not properly updating when the organization had no current activated users.
  • Fixed a bug where the commits line chart would fail to render when grouping data by month.
  • Fixed a bug where GitHub Actions did not link back to the proper build on GitHub from Codecov's Commit Build tab.
  • (Production only) Fixed an issue where some billing plans caused the Invoices to not be accessible from the UI.
  • Fixed issues with repo discovery and syncing when using BitBucket

Minor

  • Typographical and copy fixes throughout the UI.
  • Dramatically reduced the size of the /ping endpoint response by modifying the CSP specifically for that endpoint.

Notes on Parent Picking

Default Parent Picking Behavior Changes

Previously, Codecov's default parent picking behavior was to consult its own internal database, and attempt to gracefully select the most relevant ancestor commit that properly passed CI and uploaded coverage. This approach, when successful, resulted in Codecov behavior that ''just works''. However, when Codecov chose the wrong commit, or a commit that users were not expecting, it was often difficult and frustrating to understand changes in coverage.

Starting with v4.4.10, Codecov's parent picking behavior will now consult the repository provider via an API call to determine the appropriate parent. Generally, Codecov will treat the repo provider as a universal source of truth, and assume the parent commit returned via API is the correct parent. Once selected, Codecov will query its internal systems to retrieve relevant coverage information for that commit

We have been quietly testing this new logic both on codecov.io and in Codecov Enterprise since v4.4.8, and feel it is now ready for release. Our testing has shown that in nearly all cases, this approach results in more predictable, and better, parent picking by default.

Manual Parent Commit Picking Override

NOTE: This only applies to picking the Parent of a Commit in your Git tree, not picking the base of the PR to compare to.

Despite improvements to our parent picking logic, we understand that special use cases exist where a user may want to specify a different parent commit than the one Codecov selects automatically via its new parent picking behavior. For these use cases, we are releasing a method to manually override Codecov's default parent. This works by specifying the intended parent for the commit at upload time using the bash uploader.

For example, given three commits in sequence: A, B, and C; the default behavior would be to compare C to B. However, you can now force C to compare to A by doing the following during report upload:

bash <(curl https://codecov.io/bash) -t <your-upload-token> -N <commit A's full SHA>

Note that the full SHA must be supplied using the -N flag at upload.

This -N flag is useful for those users who wish to manually override the commit Codecov selects for comparison. There are many reasons one may choose to do this: fork based workflows can result in Codecov choosing the wrong parent, high commit velocity repos can get into a state where the default parent hasn't uploaded coverage but the current commit is expecting it to exist, and other reasons.

Generally, it is advised to pursue using this manual parent picking override / -N flag after it has been determined that Codecov's default parent picking fails in a given scenario.