Skip to content

39.0.0

Choose a tag to compare

@renovate-release renovate-release released this 04 Nov 14:01
· 6537 commits to main since this release

39.0.0 (2024-11-04)

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

  • branchNameStrict: Branch names with multiple forward slashes will change if branchNameStrict=true
  • deps: Renovate sidecard images will default to use Ubuntu 24.04 instead of 20.04, and use User ID 12021 instead of 1001
  • deps: The Renovate full image now uses Ubuntu 24.04, Python 3.13 and Node v22
  • github: Renovate will now prefer squash merges over others in GitHub, if they are allowed.
  • Dockerfile: Renovate -full images will now use binarySource=global. Set RENOVATE_BINARY_SOURCE=install to revert to dynamic tool installation.
  • 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 (#32278) (a6d93dc)
  • deps: update ghcr.io/containerbase/sidecar docker tag to v13 (#32095) (0f2783c)
  • deps: update ghcr.io/renovatebot/base-image docker tag to v9 (#32240) (2d9cd61)
  • Dockerfile: set binarySource=global for full image (#32272) (4f62bff), closes #32136

Bug Fixes

  • github: change automerge priority order to prefer squash (#32016) (b0bc3e8)

Build System