From 8a83ef8479c410ad2002a6e642f295ab8a62de2c Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Thu, 27 Jul 2023 15:56:37 -0400 Subject: [PATCH] cmd/go: make go list -m -u all not complain about missing checksums This is a band-aid of a fix for Go 1.21, to create space to work on a real fix for Go 1.22, if in fact the real fix is different. It simply disables the go.sum update check during go list -m -u. I don't have a self-contained test for the breakage. See #61605. All existing tests continue to pass. For #61605. After merging into the Go 1.21 branch we can move #61605 to the Go 1.22 milestone. Change-Id: Ib155710092003f08d2a6ce0aefa8e0270cad5a5c Reviewed-on: https://go-review.googlesource.com/c/go/+/513778 Run-TryBot: Dmitri Shuralyov Reviewed-by: Dmitri Shuralyov Reviewed-by: Michael Matloob Reviewed-by: Dmitri Shuralyov TryBot-Result: Gopher Robot --- src/cmd/go/internal/modload/list.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/cmd/go/internal/modload/list.go b/src/cmd/go/internal/modload/list.go index 1f210b831e..e8872ba4b8 100644 --- a/src/cmd/go/internal/modload/list.go +++ b/src/cmd/go/internal/modload/list.go @@ -110,7 +110,13 @@ func ListModules(ctx context.Context, args []string, mode ListMode, reuseFile st if err == nil { requirements = rs - if !ExplicitWriteGoMod { + // TODO(#61605): The extra ListU clause fixes a problem with Go 1.21rc3 + // where "go mod tidy" and "go list -m -u all" fight over whether the go.sum + // should be considered up-to-date. The fix for now is to always treat the + // go.sum as up-to-date during list -m -u. Probably the right fix is more targeted, + // but in general list -u is looking up other checksums in the checksum database + // that won't be necessary later, so it makes sense not to write the go.sum back out. + if !ExplicitWriteGoMod && mode&ListU == 0 { err = commitRequirements(ctx, WriteOpts{}) } } -- 2.48.1