grass icon indicating copy to clipboard operation
grass copied to clipboard

[Feat] CI: limit noise by Renovate updates

Open nilason opened this issue 1 year ago • 7 comments

Currently, Renovate generates almost daily updates on some CI action. One such update triggers a PR, which someone must approve, and subsequently merge. This means at least three emails for someone that signed up to watch the progress of this project!

The number of commits to main that only updates the actions in the last three months amounts to 94, that is around a quarter of the total number of commits [^1]. This causes unnecessary noise and maintenance work, which only distracts from really important events for the project (and frankly, not a small amount of irritation on my side).

I suggest to put the Renovate on a schedule, with updates perhaps monthly or, better, every quarter of a year. If some action is broken in between, we will probably notice and it can be updated manually.

[^1]: Calculated with git log --oneline --since=2024-07-08 --grep="CI(deps): Update*" main | wc -l vs. git log --oneline --since=2024-07-08 main | wc -l

nilason avatar Oct 09 '24 08:10 nilason

I should add that the unnecessary noise also regards to the commit history.

nilason avatar Oct 09 '24 08:10 nilason

Would you want to try weekly before that? Or twice a month? We should at least keep the lock files weekly preset, that keeps the nix cache updated weekly, and tests that build weekly.

echoix avatar Oct 09 '24 11:10 echoix

I'd say default to quarterly, and exempt whatever needed for nix to weekly.

nilason avatar Oct 09 '24 11:10 nilason

There's also the 4 docker image pins (instead of moving tags) that could just be free whenever to be able to use the respins when they are re-published (the packages are updated, and is most useful for security patches). These are done about once a month each, so being quarterly would mean security patches up to 3+1 months after the docker image respin, that doesn't happen immediately too.

echoix avatar Oct 09 '24 11:10 echoix

Given this another thought. What about default to quarterly, with nix and docker monthly? Let's get this ticket moving, please.

nilason avatar Oct 16 '24 13:10 nilason

Quarterly and monthly sounds good. Is there a setting to get, e.g., high-severity security updates right away?

The renovate bot is also our largest contributor in the last 2 years in terms of commits. That's probably okay, but I find it funny.

wenzeslaus avatar Oct 16 '24 14:10 wenzeslaus

I would need to read if there's something to do to get security updates right away or it just does that by default. Otherwise, all PRs can be created with the Dependency Dashboard PR, they will be in a section "awaiting schedule". So we can create them on a case-by-case basis if needed.

GDAL chose monthly dependabot updates.

echoix avatar Oct 16 '24 16:10 echoix

@echoix In the light of upcoming summit, do you want to reduce the frequency of some of the updates?

wenzeslaus avatar May 07 '25 14:05 wenzeslaus

@echoix In the light of upcoming summit, do you want to reduce the frequency of some of the updates?

I was also thinking this may become a very irritating issue. Last time I checked it didn't seem to be so easy though. If that is the case, we can consider switching it off temporarily.

nilason avatar May 07 '25 14:05 nilason

For now, it is only on weekends. So, starts before the summit, and we can turn off for the last Saturday if needed.

echoix avatar May 07 '25 14:05 echoix

I have some ideas for adjustments to the required checks that we can use for the duration of the developper summit. I can't do the changes by myself, so we can do it first thing when the summit starts.

Essentially, removing the requirement of the "Success" jobs, but hardcode the individual jobs that they guard against. That will prevent having the required checks ready for version changes (that changes the name of the check).

We can also disable one of the 3 pytest checks, like for Python 3.12.

We could change the docs builds to use CMake for saving a 2min45 build time (on a 12m job), if it works the same for the docs and addons rebuilt for docs support it too.

We could also see if gcc17 standard checks could use CMake. These are single job, and are quite long (maybe for nothing).

Same thing for Python code quality checks, since the actual build is not really useful, only the gui+libs are really useful for running Pylint.

For the duration of the summit, maybe the Ubuntu minimal config matrix jobs could be disabled too.

Builds for pylint, docs, and pytest could also make use of ccache as it is not that important if there's a weird issue resulting from a build using ccache (not rebuilt from scratch).

Additionally, I could micromanage and cancel some of less needed jobs queued on main, if we have a lot of activity and a following commit would check it anyways. If there's a failure and we need to find which commit started failing, we could restart the individual jobs.

echoix avatar May 07 '25 21:05 echoix

I'll make the weekly updates later tonight/this evening, a little early than usual. There's ruff (usually releases on Thursdays) and super-linter (released earlier this week, releases once a month) for now planned.

echoix avatar May 16 '25 11:05 echoix

Updates are made weekly, only during weekends, or manually triggered. They are not bothering or consuming CI time during the week. They are (usually) handled by me in the weekends when I'm available to take care of them. It seems a good compromise, and haven't had more feedback on this since. I'm considering this addressed.

echoix avatar Aug 31 '25 17:08 echoix