HACKER Q&A
📣 scrubs

Bulk updating of GO module dependencies?


Consider: A CD/CI system knows the URLs of N GO repos, because programmers have enrolled them.

One of the repos, n, just got a PR submitted. So now it's time for the CD/CI to build and run tests etc.. If all that is successful, we'd like to effect the following:

For every library or program which depends on repo `n` either directly or indirectly run "go mod update" until done.

The hard part is doing so until "done" because updating mod files will often lead to a cascade of such updates which are order dependent. Ex: we know repo n changed by assumption: a PR was approved. Now further suppose we have this dependency chain:

* Repo o depends on n

* Repo p depends on o

* Repo q depends on n

Clearly we want to update o, p, q. However, for the case of p we want to update it only after we update o.

Now don't get me wrong ... one can do `go mod graph` and go for it ... my question: is this a solved problem with a best practice?


  👤 verdverm Accepted Answer ✓
For Go modules, does this order matter?

Or another way, for MVS, does the order matter?

What happens when p comes before o? What are the differences between major and minor version updates?