38.0.0
38.0.0 (2024-07-25)
Breaking changes for 38
General:
- Require Node.js 20 (#30291)
- The Renovate Docker images no longer have
-slim
tags. You must stop using the-slim
prefix. Renovate now defaults to the-slim
tag type behavior.
Specific:
- bitbucket-server: autodetect
gitAuthor
, if possible (#29525) - config: change from
boolean
toenum
foronboardingNoDeps
. Renovate now onboards repositories with no dependencies, with one exception: if you run Renovate inautodiscover
mode then you must manually onboard Renovate for repos with no dependencies - config: sanitize special characters from branch names for vulnerability type PRs. This may cause Renovate to autoclose/replace existing PRs
- config: change the order of
globalExtends
resolution, it is applied first and remaining global config takes precedence - datasource/docker: Docker Hub lookups prefers
hub.docker.com
overindex.docker.io
. To revert to the old behavior: setRENOVATE_X_DOCKER_HUB_TAGS_DISABLE=true
in your env - git: check all commits on the branch to decide if the branch was modified (#28225)
- gitea: use "bearer auth" instead of "token auth" to authenticate to the Gitea platform
- github: if you run Renovate as a GitHub app then
platformCommit
is automatically enabled - gomod: the value of
GOSUMDB
was previously set tooff
, meaning the Go toolchain would not validate signatures for modules. This has now been corrected, which may result in errors updating Go modules. In particular, if you are using Renovate with private Go modules, you will need to setGOPRIVATE
. For more details, see Go's official documentation for working with private Go modules. - http: remove
dnsCache
- logging: you must set file logging via env, not in
config.js
- manager/pep621: change
depName
forpep621
dependencies. This causes the branch name forpep621
updates to change, which in turn means Renovate may autoclose and re-open somepep621
PRs. Also, Renovate may start grouping dependencies into a single PR. - npm: for npm versions lower than 7, drop support for remediating vulnerabilities in transitive dependencies
- npm: remove
RENOVATE_CACHE_NPM_MINUTES
(#28715) - packageRules:
matchPackageNames
(and related functions) no longer fall back to checkingdepName
- packageRules:
matchPackageNames
exact matches are now case-insensitive
Commentary for 38
Our Docker images are slim by default
If you self-host using Renovate's Docker -slim
images: drop the -slim
suffix, and switch to the default tags.
Renovate's default tags like 38.0.0
are "slim" by default.
There's no change if you're using the -full
images.
Renovate needs Node.js 20
Renovate now needs Node.js ^20.15.1
to run.
Our Docker images already use the correct version of Node.js.
But if you self-host without using our Docker image, then you must update the version of Node.js.
You must update manually, if for example: you build your own image, or run the renovate
npm package.
Why we picked Node 20
We dropped Node.js 18, and do not yet support Node.js 22 as it's non-LTS and not recommended for production.
Why we picked a non-vulnerable version of Node
We decided to require the current non-vulnerable version of Node.js (20.15.1
or newer).
If we ever need to bump the minimum version of Node.js v20, we will release a new major version of Renovate.
If you self-host: we recommend you always run a secure version of Node.js v20.
This is because security vulnerabilities in Node.js can affect Renovate too.
If you use Mend's Renovate GitHub app
We recommend that all users running Renovate as a GitHub App use platformCommit
.
Renovate now defaults to platformCommit
is enabled, when Renovate detects a GitHub App token.
For PATs, we still recommend regular commits.
Log file configuration requires env settings
File-based logging must be configured using environment variables (e.g. LOG_FILE
).
Do not set logging in files or CLI (such as logFile
).
This ensures that logging begins right when Renovate starts a run.
It also means Renovates logs how it parses the config.
Changes to package matching
Finally, we merged the matchPackage*
and excludePackage*
options into matchPackageNames
.
We also enabled patterns for the matchPackageNames
config option.
This means you can now use regex or glob patterns:
"matchPackageNames": "/^com.renovatebot/"
(regex)"matchPackageNames": "@renovate/*"
(glob)
And of course, you can still use exact name matching.
⚠ BREAKING CHANGES
- bitbucket-server: autodetect gitAuthor if possible (#29525)
- require node v20 (#30291)
- http: dnsCache is now removed
- github: platformCommit will be automatically enabled if running as a GitHub app
- npm: remove RENOVATE_CACHE_NPM_MINUTES (#28715)
- git: determine branch modification based on all branch commits (#28225)
- packageRules: matchPackageNames exact matches are now case-insensitive
- datasource/docker: Docker Hub lookups prefer hub.docker.com over index.docker.io. Set RENOVATE_X_DOCKER_HUB_TAGS_DISABLE=true in env to revert behavior.
- package-rules: matchPackageNames and related functions no longer fall back to checking depName.
- logging: File logging must now be set via env and not in config.js
- config: onboardingNoDeps changes from boolean to enum. Repositories with no dependencies will be onboarded unless in autodiscover mode.
- npm: Transitive remediation for npm <7 is no longer supported.
- config: Branch names for remediation will be sanitized to exclude special characters, potentially resulting in some autoclosing/replacing of existing PRs.
- Renovate docker images no longer have -slim tags. Drop the -slim prefix as this is now the default behavior.
- gitea: Gitea platfor authentication will now be done using Bearer auth instead of token auth.
- manager/pep621: depName for pep621 dependencies changes, which will lead to branch name changes, which will lead to some autoclosing and reopening of PRs.
- config: order of globalExtends resolution is changed so that it is applied first and remaining global config takes precedence.
Features
- bitbucket-server: autodetect gitAuthor if possible (#29525) (716c8cf)
- config: * pattern matches everything (#28556) (219108d)
- config: change onboardingNoDeps from
boolean
toenum
(#28133) (0c500f5), closes #28101 - datasource/docker: prefer hub.docker.com over index.docker.io for tag lookups (#28400) (adcffd2), closes #24666
- deps: update ghcr.io/renovatebot/base-image docker tag to v7 (#30373) (77c0266)
- git: determine branch modification based on all branch commits (#28225) (03919bb)
- gitea: use
Bearer
instead oftoken
for auth (#28308) (a3e29a0) - github: convert
platformCommit
to enum (#29156) (bb6c27f) - http: remove
dnsCache
option (#29449) (2eb7c76) - logging: drop
logFile
andlogFileLevel
(#29104) (cf29c33) - logging: initialize file logging via env (#28104) (c6c4572), closes #14705
- manager/pep621: remove group name from depName (#28193) (2ad12cc), closes #28131
- npm: drop transitiveRemediation option (#27985) (b05f389)
- npm: remove RENOVATE_CACHE_NPM_MINUTES (#28715) (23eb2de)
- package-rules: remove depName fallback (#28548) (3d78ae7)
- packageRules: migrate matchers and excludes (#28602) (879f7cc)
- packageRules: support glob/regex patterns for matchPackageNames (#28551) (1e5cf6d)
- packageRules: support regex or glob matching for all (#28591) (69dab29)
- prepare for containerbase changes (#29989) (80b0252)
- stop publishing slim docker tags (#27993) (9b4fb81)
Bug Fixes
- config: globalExtends merge order (#28145) (e3175a3), closes #28131
- config: Use
depNameSanitized
in branch name for vulnerability alerts (#25166) (33b1cdb) - deps: update ghcr.io/containerbase/sidecar docker tag to v11 (#30357) (46f0357)
- normalize Python depName in every manager (#27733) (2e78a71)
- presets: replace
matchPackagePrefix/Patterns
withmatchPackageNames
(#29159) (2c13498)
Miscellaneous Chores
- deps: update dependency @swc/core to v1.7.0 (#30367) (e93b071)
- deps: update dependency @swc/core to v1.7.1 (#30371) (6bad833)
- deps: update dependency @types/node to v20 (e629b2b)
- deps: update ghcr.io/containerbase/devcontainer docker tag to v11 (#30368) (3bee6bf)
- deps: update github/codeql-action action to v3.25.14 (#30372) (0b9d899)