Release notes for Codecov v4.6.0

🚧

Upgrading from an Earlier Version of Codecov?

Upgrading to 4.6.x requires adding a new container into your Codecov Self-Hosted infrastructure. See the Infrastructure section below for more information.

Codecov v4.6.0 brings a new API to self-hosted, multi-repo organziation reporting and analytics, and improved self-hosted YAML validation

Overview

Codecov Self-hosted v4.6.0 marks the release of Codecov’s new internal REST API to our self-hosted clients. We created this new API to provide a more modern foundation for our future development efforts, improve performance, and increase the velocity that we can ship updates to our users..

Codecov Self-hosted v4.6.0 marks the release of our new Organization Analytics feature (see Organization Analytics below). Additionally v4.6.0 provides a much improved codecov.yml validation endpoint that makes it easier to find issues in an invalid codecov.yml.

Over the next several releases of Codecov Self-hosted we will also be bringing the following to our customers via the new API:

  • More performant webhook handling capabilities
  • A completely redesigned public REST API that allows for the building of more robust integrations
  • An improved report uploading experience.
  • StatsD compatible metric reporting at the HTTP layer of Codecov
  • Improved error reporting in the UI to better understand when things go wrong.

This new API will eventually assume all of the functionality of the current Codecov Self-hosted offering at the HTTP layer, paving the way for even more advanced features moving forward.

Finally, if you’re upgrading to v4.6.0 from 4.5.x or prior, there are a few infrastructure changes to note. Those have been captured in the Infrastructure section below.

v4.6.0 Changelog

New

  • (Self-hosted only) Codecov Organization Analytics. Codecov v4.6.0 brings with it the ability to aggregate coverage information across multiple repositories in an organization. For more information, see Codecov Analytics below.
  • (Self-hosted only) Improved YAML validation. Invalid repository codecov.yml files that are validated using the /validate endpoint will now contain much clearer explanations of why they are invalid.

Fixes

  • Fixed a rare race condition that could lead to an impacted commit becoming corrupted in the database. This race condition could also cause descendent commits to not carryforward properly.
  • (Self-hosted only) Fixed an issue where similarly named carryforward flags (e.g., billing and billinguser) would have their coverage merged. However, if this behavior is desired, it can be enabled installation-wide by setting:
compatibility:
   flag_pattern_matching: true

in the on-premises installation's codecov.yml .

Minor

*None

Codecov Analytics

Codecov Self-Hosted v4.6 marks the release of Codecov’s Analytics feature. This feature is accessible from the organization overview page (see below), and allows users to aggregate coverage information across repositories within a single organization, team, or subgroup.

23222322

Analytics Navigation in the top nav of Codecov’s organization view (e.g., https://codecov.io//)

Repository Coverage can be grouped by date range, and all or a subset of repositories in the group can be selected.

21522152

The Codecov Analytics Page showing the aggregated coverage of two repositories

Codecov Analytics provides an excellent lens for engineers and managers to understand the holistic coverage of all or parts of their engineering organization. With Codecov Analytics it is now possible to monitor organizational coverage targets over time and as a part of broader code quality initiatives.

Infrastructure

📘

Upgrading from 4.4.x or Earlier?

The following changes are meant for Codecov Enterprise v4.5.X users. If you are on an earlier version of Codecov (i.e., 4.3.9/10 or 4.4.X), please reach out to us directly for assistance with upgrading.

The primary infrastructure change required is to add configuration for the API container. To ease initial implementation, traffic is proxied to the API container via the web container by default. This is done with internal networking. To enable proper operation, it is necessary to run an API container everywhere that you run web containers.

  • If using K8S, a new k8s deployment and service are needed. Use the following helm templates as a guide:

https://github.com/codecov/enterprise-resources/blob/v4.6/helm/codecov-enterprise/templates/api-deployment.yaml
https://github.com/codecov/enterprise-resources/blob/v4.6/helm/codecov-enterprise/templates/api-service.yaml

Docker Image Information

The following Docker digests comprise the v4.6.0 release:
*codecov/enterprise-web:v4.6.0 - sha256:f79cd839eab6bf244bf667a9ed8368f369c03efcf3e39774333751d3351a2c5 (see Note below)

  • codecov/enterprise-worker:v4.6.0 - sha256:8a6df253a1cfa6a6774ea70e3aa53874f4a6b9428c23993d57ea5b98efb02a73
  • codecov/enterprise-api:v4.6.0 - sha256:748d3c84e7d0115154b10dcccb645ad784a21348340145a64395cfef3d3e426b

These are also the digests referenced by the latest-stable tag.

Note: due to a user impacting bug in codecov/enterprise-web:v4.6.0, a point release was issued pushed over the existing v4.6.0 tags. The new digest is indicated above, the previous digest as as follows:

  • codecov/enterprise-web:v4.6.0 - sha256:18485ae4a4628b27816f06339d4e82a6551a439c1ece261ce50540db825069e5
    *codecov/enterprise-web:v4.6.0 - sha256:c7e181ce70db4e9b45e59f44af591446af50d9359a56d2cb295a5c7d8da51afe (see Note below)