x/mod: allow for aggressively conslidating requires

This change adds a new function `SetRequireSimplify` that will
aggressively consolidate all go.mod requirements into at most two blocks
(one direct, one indirect).

For golang/go#56471.

Change-Id: If71e124725cbd9b1d9e6fc5ad0a4cf33f34cb3ae
Reviewed-on: https://go-review.googlesource.com/c/mod/+/739221
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
2 files changed
tree: 58400170c74061ec4cea5f5198324421f3c28737
  1. gosumcheck/
  2. internal/
  3. modfile/
  4. module/
  5. semver/
  6. sumdb/
  7. zip/
  8. codereview.cfg
  9. go.mod
  10. go.sum
  11. LICENSE
  12. PATENTS
  13. README.md
README.md

mod

PkgGoDev

This repository holds packages for writing tools that work directly with Go module mechanics. That is, it is for direct manipulation of Go modules themselves.

It is NOT about supporting general development tools that need to do things like load packages in module mode. That use case, where modules are incidental rather than the focus, should remain in x/tools, specifically x/tools/go/packages.

The specific case of loading packages should still be done by invoking the go command, which remains the single point of truth for package loading algorithms.