Conversation
There was a problem hiding this comment.
any concerns with casing?
There was a problem hiding this comment.
I think it's ok at this point as we are using Dependabot::Dependency objects and the name should be normalised, plus this is currently replicating existing behaviour that hasn't been DRY'd out yet.
Case checking is something we have a few inconsistencies on though, so it's a good spot.
9fe4475 to
19e6eb5
Compare
| # Return dependencies in a random order, with top-level dependencies | ||
| # considered first so that dependency runs which time out don't always hit | ||
| # the same dependencies | ||
| allowed_deps = allowed_deps.shuffle unless ENV["UPDATER_DETERMINISTIC"] |
There was a problem hiding this comment.
I think we should probably remove shuffling within groups and instead shuffle the groups when we have more than one, but for now I think shuffling has the benefit that it might flush out issues compiling changes together if we run them in a random order - if we made this deterministic now it could result in false confidence.
19e6eb5 to
a60a3cb
Compare
This branch supersedes our original spike in #6663
Having established and shipped the "operation" pattern as a way to separate out the code paths for specific types of
Dependabot::Jobobjects to avoid a lot of low-level branching, we can now package our experimental spike into a code structure we can safely ship without risking an impact on production jobs.This PR introduces the
Dependabot:: Updater::Operations::GroupUpdateAllVersionsclass which applies to all fresh, Version Updates which have aDependabot::Experimentflag enabled.This code is currently very lightly tested to confirm that it behaves identically to the existing adapter for a simple unit test case. I plan to add some smoke tests to demonstrate the correct grouping behaviour as a guard against regressions on this basic walking skeleton, but there is a job to be done in fleshing out the tests properly as a follow up.