minimumReleaseAge is not working with lockFileMaintenance and transitive Dependencies #38115
Replies: 6 comments 8 replies
|
It would be handy to support this in other languages too, |
Do you have a link to which environment variables would need to be set by Renovate when calling |
|
We may also be able to use |
|
I also agreed that the indirect dependencies, especially lockFileMaintenance, should also be regulated by the minimumReleaseAge. For example, in Python, most packages do not set an upper bound for their dependencies. Therefore, during the lockFileMaintenance of the pip-compile manager, all indirect dependencies will be refreshed to the latest released version if the direct dependencies support them or do not explicitly define an upper bound. This defeats the purpose of having the minimumReleaseAge. Just giving an idea of how I enforce that with pip-compile manager.
However, the drawback of this solution is the manual effort required to maintain the constraints.txt file. I hope Renovate can develop a built-in solution that applies the minimumReleaseAge not only to direct dependencies but also to indirect ones. |
|
The epic tracking this is #41652 - when we have clear indications of package managers that can be passed these constraints via CLI/environment variables, we'll share this information to enforce it |
|
We hit a related issue: when Root cause: For lockFileMaintenance PRs, Renovate creates virtual "upgrade" entries (one per package.json file) with Workaround: Set "lockFileMaintenance": {
"minimumReleaseAgeBehaviour": "timestamp-optional"
}Suggestion: Should
The current default seems like it will always break for anyone using both features, until #41652 is implemented. |
Uh oh!
There was an error while loading. Please reload this page.
Tell us more.
Hello,
I realized that
minimumReleaseAgewill only work for direct dependencies and for actions performed by Renovate. Not for any action handled by package Managerscase 1: lockFileMaintenance
LockFileMaintenance will delete the lockFile and ask the package manager to generate a new one.
Unless the package manager also has a
minimumReleaseAgeit will choose the latest version. Potentially younger thanminimumReleaseAge.case 2: transitive dependencies introduced by updates
Let's say I have a package at version 1.0.0. Renovate creates a Pull Request to update to version 1.0.1 (properly respecting
minimumReleaseAge)This new dependency introduces a new transitive dependency with a range of version: the latest version of that dependency was released hours ago and has a vulnerability
Unless the package manager also has a
minimumReleaseAgeit will choose the latest version (that is vulnerable).Mitigations
pnpm 10.16 and yarn 4.10.0 both introduced options similar to
minimumReleaseAgebut they aren't set by default.It would be useful that Renovate sets environment variables to set the package manager's configuration to align it with
minimumReleaseAgeif set.All reactions