-
Notifications
You must be signed in to change notification settings - Fork 17.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
cmd/go: error out of 'go mod tidy' if the go version is newer than su…
…pported Fixes #46142 Change-Id: Ib7a0a159e53cbe476be6aa9a050add10cc750dec Reviewed-on: https://go-review.googlesource.com/c/go/+/319669 Trust: Bryan C. Mills <bcmills@google.com> Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
- Loading branch information
Bryan C. Mills
committed
May 15, 2021
1 parent
02699f8
commit ce92a20
Showing
2 changed files
with
64 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# https://golang.org/issue/46142: 'go mod tidy' should error out if the version | ||
# in the go.mod file is newer than the most recent supported version. | ||
|
||
cp go.mod go.mod.orig | ||
|
||
|
||
# If the go.mod file specifies an unsupported Go version, 'go mod tidy' should | ||
# refuse to edit it: we don't know what a tidy go.mod file for that version | ||
# would look like. | ||
|
||
! go mod tidy | ||
stderr 'go mod tidy: go.mod file indicates go 2000.0, but maximum supported version is '$goversion'$' | ||
cmp go.mod go.mod.orig | ||
|
||
|
||
# The -e flag should push past the error and edit the file anyway, | ||
# but preserve the too-high version. | ||
|
||
cp go.mod.orig go.mod | ||
go mod tidy -e | ||
stderr 'go mod tidy: go.mod file indicates go 2000.0, but maximum supported version is '$goversion'$' | ||
cmp go.mod go.mod.tidy | ||
|
||
|
||
# Explicitly switching to a supported version should suppress the error completely. | ||
|
||
cp go.mod.orig go.mod | ||
go mod tidy -go=1.17 | ||
! stderr 'maximum supported version' | ||
go mod edit -go=1.17 go.mod.tidy | ||
cmp go.mod go.mod.tidy | ||
|
||
|
||
-- go.mod -- | ||
module example.net/from/the/future | ||
|
||
go 2000.0 | ||
|
||
replace example.net/m v0.0.0 => ./m | ||
-- go.mod.tidy -- | ||
module example.net/from/the/future | ||
|
||
go 2000.0 | ||
|
||
replace example.net/m v0.0.0 => ./m | ||
|
||
require example.net/m v0.0.0 | ||
-- x.go -- | ||
package x | ||
|
||
import "example.net/m" | ||
-- m/go.mod -- | ||
module example.net/m | ||
|
||
go 1.17 | ||
-- m/m.go -- | ||
package m |