1
0
mirror of https://github.com/golang/go synced 2024-11-26 04:37:59 -07:00

cmd/go/internal/modload: ignore selected version in checkRetractions

Fixes #42601

Change-Id: I58d817ed34ccbd39591326c4bc23569f94028412
Reviewed-on: https://go-review.googlesource.com/c/go/+/272006
Run-TryBot: Jay Conrod <jayconrod@google.com>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Jay Conrod <jayconrod@google.com>
This commit is contained in:
Jay Conrod 2020-11-13 17:14:46 -05:00
parent 9264067a41
commit 012efc67f2
4 changed files with 46 additions and 3 deletions

View File

@ -114,9 +114,9 @@ func CheckRetractions(ctx context.Context, m module.Version) error {
// Find the latest version of the module. // Find the latest version of the module.
// Ignore exclusions from the main module's go.mod. // Ignore exclusions from the main module's go.mod.
// We may need to account for the current version: for example, const ignoreSelected = ""
// v2.0.0+incompatible is not "latest" if v1.0.0 is current. var allowAll AllowedFunc
rev, err := Query(ctx, path, "latest", Selected(path), nil) rev, err := Query(ctx, path, "latest", ignoreSelected, allowAll)
if err != nil { if err != nil {
return &entry{nil, err} return &entry{nil, err}
} }

View File

@ -0,0 +1,19 @@
The v1.0.0 release of example.com/retract/incompatible retracts
v2.0.0+incompatible.
-- .mod --
module example.com/retract/incompatible
go 1.16
retract v2.0.0+incompatible
-- .info --
{"Version":"v1.0.0"}
-- go.mod --
module example.com/retract/incompatible
go 1.16
retract v2.0.0+incompatible
-- incompatible.go --
package incompatible

View File

@ -0,0 +1,9 @@
The v1.0.0 release of example.com/retract/incompatible retracts
v2.0.0+incompatible.
-- .mod --
module example.com/retract/incompatible
-- .info --
{"Version":"v2.0.0+incompatible"}
-- incompatible.go --
package incompatible

View File

@ -0,0 +1,15 @@
# The current version of a module should not be considered when loading
# retractions. If the current version is +incompatible, we should not prefer
# +incompatible versions when looking for retractions.
# Verifies #42601.
go mod init m
# Request a +incompatible version retracted in v1.0.0.
go get -d example.com/retract/incompatible@v2.0.0+incompatible
stderr '^go: warning: example.com/retract/incompatible@v2.0.0\+incompatible: retracted by module author$'
# We should still see a warning if the +incompatible was previously in the
# build list.
go get -d example.com/retract/incompatible@v2.0.0+incompatible
stderr '^go: warning: example.com/retract/incompatible@v2.0.0\+incompatible: retracted by module author$'