mirror of
https://github.com/golang/go
synced 2024-11-23 08:50:03 -07:00
cmd/go: don't print deprecation notice for 'go get exe'
It's difficult for module authors to provide installation instructions that work in both Go 1.15 and 1.16. We'll wait until 1.17 to print a deprecation warning for installing executables with 'go get'. Fixes #42885 Change-Id: I835b447e83e760f48fd664e8a117749e0cb59f83 Reviewed-on: https://go-review.googlesource.com/c/go/+/274552 Trust: Jay Conrod <jayconrod@google.com> Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Bryan C. Mills <bcmills@google.com> TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
50b16f9de5
commit
933ce97bba
@ -436,32 +436,9 @@ func runGet(ctx context.Context, cmd *base.Command, args []string) {
|
|||||||
work.BuildInit()
|
work.BuildInit()
|
||||||
pkgs := load.PackagesForBuild(ctx, pkgPatterns)
|
pkgs := load.PackagesForBuild(ctx, pkgPatterns)
|
||||||
work.InstallPackages(ctx, pkgPatterns, pkgs)
|
work.InstallPackages(ctx, pkgPatterns, pkgs)
|
||||||
|
// TODO(#40276): After Go 1.16, print a deprecation notice when building
|
||||||
haveExe := false
|
// and installing main packages. 'go install pkg' or
|
||||||
for _, pkg := range pkgs {
|
// 'go install pkg@version' should be used instead.
|
||||||
if pkg.Name == "main" {
|
|
||||||
haveExe = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if haveExe {
|
|
||||||
fmt.Fprint(os.Stderr, "go get: installing executables with 'go get' in module mode is deprecated.")
|
|
||||||
var altMsg string
|
|
||||||
if modload.HasModRoot() {
|
|
||||||
altMsg = `
|
|
||||||
To adjust dependencies of the current module, use 'go get -d'.
|
|
||||||
To install using requirements of the current module, use 'go install'.
|
|
||||||
To install ignoring the current module, use 'go install' with a version,
|
|
||||||
like 'go install example.com/cmd@latest'.
|
|
||||||
`
|
|
||||||
} else {
|
|
||||||
altMsg = "\n\tUse 'go install pkg@version' instead.\n"
|
|
||||||
}
|
|
||||||
fmt.Fprint(os.Stderr, altMsg)
|
|
||||||
fmt.Fprint(os.Stderr, "\tSee 'go help get' and 'go help install' for more information.\n")
|
|
||||||
}
|
|
||||||
// TODO(golang.org/issue/40276): link to HTML documentation explaining
|
|
||||||
// what's changing and gives more examples.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if !modload.HasModRoot() {
|
if !modload.HasModRoot() {
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
[short] skip
|
|
||||||
|
|
||||||
env GO111MODULE=on
|
|
||||||
|
|
||||||
# 'go get' outside a module with an executable prints a deprecation message.
|
|
||||||
go get example.com/cmd/a
|
|
||||||
stderr '^go get: installing executables with ''go get'' in module mode is deprecated.$'
|
|
||||||
stderr 'Use ''go install pkg@version'' instead.'
|
|
||||||
|
|
||||||
|
|
||||||
go mod init m
|
|
||||||
|
|
||||||
# 'go get' inside a module with a non-main package does not print a message.
|
|
||||||
# This will stop building in the future, but it's the command we want to use.
|
|
||||||
go get rsc.io/quote
|
|
||||||
! stderr deprecated
|
|
||||||
|
|
||||||
# 'go get' inside a module with an executable prints a different
|
|
||||||
# deprecation message.
|
|
||||||
go get example.com/cmd/a
|
|
||||||
stderr '^go get: installing executables with ''go get'' in module mode is deprecated.$'
|
|
||||||
stderr 'To adjust dependencies of the current module, use ''go get -d'''
|
|
Loading…
Reference in New Issue
Block a user