39.0.0
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