Packages

renovate

44.198.3AGPL-3.0-only382.7k / weekRepositoryHomepagenpmAtom feed

Your version

39.0.0

major4 Nov 2024Where it was published

39.264.1 is the newest release of 39.x.

In short

5 breaking10 new3 internal

  • breaking

    branchNameStrict: Branch names with multiple forward slashes will change if branchNameStrict=true

  • breaking

    deps: Renovate sidecard images will default to use Ubuntu 24.04 instead of 20.04, and use User ID 12021 instead of 1001

  • breaking

    deps: The Renovate full image now uses Ubuntu 24.04, Python 3.13 and Node v22

  • breaking

    Dockerfile: Renovate -full images will now use binarySource=global. Set RENOVATE_BINARY_SOURCE=install to revert to dynamic tool installation.

  • breaking

    Renovate Docker images will now be based on Node.js v22 instead of v20

Security

Release note

Breaking changes for 39

New tools for all Docker images

All our Docker images now use:

  • Node.js v22 as base, was Node.js v20

  • Ubuntu 24.04 as base, was 20.04

New Docker user ID for all Docker images

All our Docker images now set the Docker user ID to 12021, the old ID was 1001.

After updating your Renovate Docker image to the new v39 release, you must:

  • Delete your old Docker cache, or

  • Ensure the new user ID has write permissions to any existing cache

Updated version of Python, and new default behavior for the -full Docker image

On top of the changes listed above, the -full image now:

  • Uses Python 3.13

  • Defaults to binarySource=global (note: this was previously the case in v36 onwards but regressed sometime in v38)

If you want to keep the old behavior, where Renovate dynamically installs the needed tools: set the environment variable RENOVATE_BINARY_SOURCE to "install".

Renovate tries squash merges first when automerging on GitHub

Due to technical reasons, GitHub will only sign commits coming from a squash merge.
To help those who want Renovate to sign its commits, Renovate now tries the squash merge first.

Of course, Renovate only uses the merge method(s) that you allow in your GitHub repository config.

How you can allow squash merges on your GitHub repository

If you want to allow squash merges on your GitHub repository, follow the steps in the GitHub Docs, configuring commit squashing for pull requests.

Branch names with multiple slashes

If you set branchNameStrict=true, then branch names with multiple forward slashes (/) will change.

The problem was that even if you set branchNameStrict=true, in some cases special characters could still end up in Renovate's branch names.
We fixed this problem, by letting Renovate convert multiple forward slashes (/) to hyphens (-) in its branch names, if branchNameStrict=true.

Commentary for 39

Technical reasons for trying the squash merge first on GitHub

Renovate has changed its GitHub merge preference to "squash" because this way results in signed commits, while "rebase" merges do not.

Read the GitHub Docs, Signature verification for rebase and merge to learn more about commit signing.

Why we change branch names with multiple slashes

Branches with multiple slashes (/) are not wanted, this was a bug.
We are changing it in a major release out of politeness to all our users.
If you enabled branchNameStrict, you can expect some branch names to change.

Breaking changes

  • breaking

    branchNameStrict: Branch names with multiple forward slashes will change if branchNameStrict=true

  • breaking

    deps: Renovate sidecard images will default to use Ubuntu 24.04 instead of 20.04, and use User ID 12021 instead of 1001

  • breaking

    deps: The Renovate full image now uses Ubuntu 24.04, Python 3.13 and Node v22

  • breaking

    Dockerfile: Renovate -full images will now use binarySource=global. Set RENOVATE_BINARY_SOURCE=install to revert to dynamic tool installation.

  • breaking

    Renovate Docker images will now be based on Node.js v22 instead of v20

Features

  • branchNameStrict: remove forward slashes from non-prefix part of branchName

  • deps: update ghcr.io/containerbase/sidecar docker tag to v13

  • deps: update ghcr.io/renovatebot/base-image docker tag to v9

  • Dockerfile: set binarySource=global for full image (#32272) (4f62bff), closes #32136