Release notes for Codecov v4.6.6

New Features

This release brings two new features: an updated PR comment users can opt-in to seeing, and -- for self-hosted -- a mechanism to control timeouts of the Notify task in the event that PR comments and statuses are not being properly and reliably posted to PRs.

New PR Comment

As part of out ongoing efforts to improve user experience in the Pull Request, Codecov has updated the PR comment. Currently this is opt-in and the new comment can be viewed by updating either an install yaml (for self-hosted), team yaml, or repo yaml with the following:

comment:
   layout: "newheader, {any other valid layout options}, newfooter"
   hide_comment_details: true

The above configuration will result in the following PR layout:

1004

The updated PR comment with additional details hidden in a rollup, hide_comment_details: false in the yaml will expand those details by default.

If it is preferred to retain the old layout, the following settings can be supplied:

comment:
   layout: "header, {any other valid layout options}, footer"
   hide_comment_details: true

Over time, the new layout will become the default PR Comment experience for Codecov. However, in v4.6.6, the old PR comment will be delivered by default unless the yaml is updated.

(Self-Hosted) Notification Task Timeout Configuration

For some self-hosted users, the asynchronous worker task that pushes notifications to the upstream repo provider can timeout. This can prevent Codecov pull request comments and/or statuses from being written to pull requests. If you are experiencing this scenario and your logs contain output like the following:

"Soft time limit (45s) exceeded for app.tasks.notify.Notify"

You may be experiencing this problem and increasing the timeout of the Notify task can help. Both the soft and hard time limits for the notify task can be set as follows

SETUP__TASKS__NOTIFY__SOFT_TIMELIMIT=45 #default is 45s
SETUP__TASKS__NOTIFY__HARD_TIMELIMIT=60 #default is 60s

๐Ÿšง

The settings above are only modifiable via environment variable for the web container and will not be respected if used in the codecov.yml or environment for other deployments (api,worker).

(Self-Hosted) Worker max memory configuration

The maximum memory limit for a celery worker task can now be configured via environment variable or codecov.yml.

SETUP__TASKS__CELERY__WORKER_MAX_MEMORY_PER_CHILD=1500000 #default is 1500000 (1.5GB)
setup:
  tasks:  
    celery:  
      worker_max_memory_per_child: 1500000
      

Infrastructure

The worker deployment args need to be adjusted to be compatible with some internal validation changes. Below are examples of the worker args BEFORE and AFTER.

args:
  - --queue celery,uploads
  - --concurrency 1
args:
  - --queue
  - celery,uploads
  - --concurrency
  - "1"

Example of this change from the Codecov helm chart:

V4.6.6 Full Changelog

New

  • (Self-Hosted) The notification task timeout can now be configured via an environment variable.
  • Updated the PR Comment's design and functionality.

Fixes

  • GitLab integration now properly handles expiry and refreshing of oauth tokens based on Gitlab's new oauth token expiration scheme.
  • GitLab integration no longer uses public bots to post commit statuses on public repos, as this behavior is now invalid in the GitLab API.
  • Gitlab integration will not properly support API calls that contain files, folders, and branches with spaces in the file name.
  • Fixed an issue that can cause simplecov report processing to fail in some scenarios.
  • Fixed an issue causing the ! operator in the branches section of the codecov.yml to be ignored.
  • (Self-Hosted only) Fixed an issue where it was possible to exceed the seat count, thus unintentionally limiting functionality.

Minor

  • Errors with the Team Bot and Repo YAML are now persisted to the database. These errors will be surfaced in the UI in a future update.

Docker Image Information

The following Docker digests comprise this release:

  • codecov/enterprise-web:v4.6.6 - sha256: 885aea45cb1eda237c8521b9515e3a51794fde8ff1e6baa919fd763be4115411
  • codecov/enterprise-worker:v4.6.6 - sha256: 8ce1d0ea71cf8724f2fe616b2e3db7fcd419b59e3cda54b7fdc4b7df816331a8
  • codecov/enterprise-api:v4.6.6 - sha256: b77a37fca567a5d60ab22b2b9fd3fc5f45caf88485b72f948d73fe05647d72f1

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

Note: due to a user impacting bug in enterprise-api and enterprise-web a point release was issued pushed over the existing v4.6.6 tag. The new digest is indicated above, the previous digests are as follows:

  • codecov/enterprise-api:v4.6.6 - sha256:cab535810aac25fbde4b251317ec63fa1ed9bbe94051a7ed4ce7a6641ee89eaa
  • codecov/enterprise-web:v4.6.6 - sha256:ff74f412cddcc64063dd503064a2ccb1d841a55180e863c2e8b3a2b8dcc9f42a
  • codecov/enterprise-worker:v4.6.6 - sha256:6eaed78c94f2b7274559d44327a45d7f3817b4eb65caf0e6b1ab9c31b82a7691
    sha256:a0f07545be4e48cc91a6540efae663f421f9c3a9107a21b682bd0db3dd1d6405