diff options
| author | Jay Conrod <jayconrod@google.com> | 2020-12-01 13:51:17 -0500 |
|---|---|---|
| committer | Jay Conrod <jayconrod@google.com> | 2020-12-01 20:11:50 +0000 |
| commit | 933ce97bbae311b299d342c38df81165334cea37 (patch) | |
| tree | bdeaaf4f64c8453628a3264d950b09eb73e3a7f3 /src | |
| parent | 50b16f9de590822a04ec8d6cbac476366c1bde32 (diff) | |
| download | go-933ce97bbae311b299d342c38df81165334cea37.tar.xz | |
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>
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd/go/internal/modget/get.go | 29 | ||||
| -rw-r--r-- | src/cmd/go/testdata/script/mod_get_deprecate_install.txt | 22 |
2 files changed, 3 insertions, 48 deletions
diff --git a/src/cmd/go/internal/modget/get.go b/src/cmd/go/internal/modget/get.go index ecb0142524..e5f55879ee 100644 --- a/src/cmd/go/internal/modget/get.go +++ b/src/cmd/go/internal/modget/get.go @@ -436,32 +436,9 @@ func runGet(ctx context.Context, cmd *base.Command, args []string) { work.BuildInit() pkgs := load.PackagesForBuild(ctx, pkgPatterns) work.InstallPackages(ctx, pkgPatterns, pkgs) - - haveExe := false - for _, pkg := range pkgs { - 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. + // TODO(#40276): After Go 1.16, print a deprecation notice when building + // and installing main packages. 'go install pkg' or + // 'go install pkg@version' should be used instead. } if !modload.HasModRoot() { diff --git a/src/cmd/go/testdata/script/mod_get_deprecate_install.txt b/src/cmd/go/testdata/script/mod_get_deprecate_install.txt deleted file mode 100644 index 7f5bcad410..0000000000 --- a/src/cmd/go/testdata/script/mod_get_deprecate_install.txt +++ /dev/null @@ -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''' |
