-
Notifications
You must be signed in to change notification settings - Fork 619
ci: Update Renovate configuration to best practices #3231
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
ci: Update Renovate configuration to best practices #3231
Conversation
pichlermarc
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This repo is very delicate with its dependencies.
Essentially I agree most of what this PR is doing except for the catch-all :pinDevDependencies - we have a lockfile so that the few devDependencies that are unpinned don't cause havoc.
|
Would it work if we add an explicit don't pin dev otel package rule? |
Could work. But also I think we're kind of okay with the settings we have now. Though, we may want to have our actions pinned, and potentially images pinned too as we did in the core repo. Other than that I don't think we necessarily need this change and I suspect blindly applying best practice settings right now will make us spend a lot of time sorting though issues that don't really move the needle for anyone. I'd leave it to folks that regularly update dependencies in this repo and have a feeling about what usually goes wrong with these sorts of things. |
|
So what prompted me to look at this was the fact that markdownlint was not reporting violations. What I saw was markdownlint was out of date and was pinned on the old one. I know from other projects pinning dev dependencies resulted in them being updated. I can make the exclusions to include anything that is currently not pinned that way we have a central list. |
The problem here is not pinning. We have dependency Dependency Dashboard approvals on for most packages. We don't update all packages at once since we have a massive amount of them here in this repo. We found that:
Both approaches burnt people out as they had to deal with dependency updates all day. Some worked immediately, some did not. But all of them took visibility away from actual PRs people opened. So I pulled the plug on it and made Dashboard Approvals required. That means that if somebody has a few minutes to spare and they have Triage permissions on the repo, they can trigger and update and work through any problems without it always being shoved in their faces that they have to do it. The downside is that some packages get less love than others, but IMO that's fine as long as it is not security-critical to update the package. Since |
This upgrades the renovate preset to follow the best practices rather than just the recommended as outlined in https://docs.renovatebot.com/upgrade-best-practices/
The difference is the addition of the following profiles/rule-sets:
In effect this gives us insight packages which have been abandoned, allows for automatic migration of legacy config options and also rules for dev dependencies.
This also aligns the settings with what the spec repo uses https://github.com/open-telemetry/opentelemetry-specification/blob/main/.github/renovate.json.