-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Frequency settings are ignored for groups #51
Comments
I disagree with that - I feel that what consistent behaviour would be is fairly clear (see scala-steward-org/scala-steward#3096 (comment) - it should just respect the specified dependency frequency) - so I'd be happy to fix that in Scala Steward! How many Scala Steward PRs are open?This is splitting hairs a bit, because scala-steward-org/scala-steward#3096 is a bug in Scala Steward that needs to get fixed, but I do think the numbers listed here are a bit misleading:
If we look at Scala Steward PRs on public repos, Scala Steward currently runs on 39 of our public repos. Additionally, given the grouping behaviour of Scala Steward adopted in #40, Scala Steward will only ever have 2 PRs open on any given repo (it doesn't, eg, have multiple open 'AWS dependency updates' PRs open at the same time for any given repo), so at most Scala Steward will only have 78 PRs (2*39) open at any given point in time. Of the ~500 open Scala Steward PRs on public repos, over 85% of those are legacy (ungrouped) PRs that just need to be closed. The PR count doesn't go up by 2 * n * 7 per week, tho' potentially at least n*5 would get created per week if you chose to merge every AWS PR created by Scala Steward every workday. What to do?Of the solutions suggested above, Option 1 (changing from 2 groups to 1) potentially cuts the number of PRs by 50% - but given the nature of the bug underlying scala-steward-org/scala-steward#3096, I'm not certain that My preference is to get scala-steward-org/scala-steward#3096 fixed, can I take a crack at that before either Option 1 or 2 are applied to the global config? |
@rtyley thanks! Two thoughts: Option 1 should work from my reading of the Scala Steward code, though I need to check (see guardian/amigo#1205). As far as I can tell the bug only applies to frequencies set in Re |
Summarising our IRL discussion on this: Happy to try either option as they're both improvements on the current status quo. We use a few tools to update dependencies; namely Scala Steward, and Dependabot. Each of them provide a vastly different DX. Scala Steward raises PRs bumping groups of dependencies, whereas Dependabot raises a PR per dependency. As Scala Steward bumps in groups, it'll bump all dependencies, whereas we sometimes configure Dependabot to raise a maximum number of PRs at a time. Scala Steward (should) raise a PR once a week, whereas Dependabot is often configured to run once a month. I wonder if a unified dependency updating story (and more automation) would increase the chance of PRs being reviewed and merged (we have a large number of open PRs)? For example, maybe https://github.com/marketplace/actions/combine-prs could be used for the batching functionality, and https://mergify.com/ for auto-merging? |
As a trial, I've added this to guardian/master-to-main (see guardian/master-to-main#258 and guardian/master-to-main#262), with an output of guardian/master-to-main#261. It seems fairly straight forward, and worth rolling out. |
I think this specific issue (Frequency settings are ignored for groups) can now be closed, as happily Scala Steward v0.25.0 has been released, with the fix in PR scala-steward-org/scala-steward#3102 included - I've verified that this means This means that these artifact groups will have reduced update frequency:
...and other artifacts can still trigger 'asap' updates (hopefully more consequential ones!) |
cc @rtyley @akash1810
Issue raised on Scala Steward repo to get their thoughts too: scala-steward-org/scala-steward#3096.
The problem
We believe that our pullRequest.frequency settings are being ignored for grouped PRs, meaning AWS and non-AWS updates are occurring daily rather than weekly or monthly.
An attempted fix for this can be found here:scala-steward-org/scala-steward#3087It's unclear what the 'right' behaviour for Scala Steward is here and how grouping configuration should work together with dependency group overrides.
Groupings:
Dependency Maven 'groupId' frequency overrides:
Relating dependency overrides with groupings is unclear because groupings support sophisticated filters, such as wildcards, whereas dependency overrides simply specific a groupId.
Really, it would be better if groups could contain their own frequency. E.g.
Solutions
At the moment, we see lots of PRs raised by Scala Steward:
Most of the PRs languish for a while before being closed or merged. At the time of writing we have:
(and 3368 open Dependabot ones, but that is another story)
Note: this data is out of date unfortunately as our Github Cloudquery job is failing, so let's fix that and update!
Let's be more realistic here and reduce the frequency of PRs to something more manageable. A suggested configuration is:
Option 1:
I.e. just raise a single PR/week for each Scala repo. An order of magnitude reduction.
Option 2:
and settings patch to automerge somehow. Unfortunately semver isn't really a thing in Scala/Java land, hence we split by patch and other rather than major and other.
Suggestion is that we get some updated numbers on PRs raised, test out option 1 or 2 above, and then if happy roll out to our central config.
The text was updated successfully, but these errors were encountered: