From: Jay Conrod Date: Mon, 13 May 2019 19:11:31 +0000 (-0400) Subject: cmd/go: clarify documentation for 'go get -u' X-Git-Tag: go1.13beta1~174 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a53b46557267492c8f5e6e285c8d4c415183cacf;p=gostls13.git cmd/go: clarify documentation for 'go get -u' Also: add a comment in internal/get.newUpgrader as a follow-up to CL 177677. Updates #26902 Change-Id: Ibce2807ecb44fa21697ca04a51c44ddca0f661d8 Reviewed-on: https://go-review.googlesource.com/c/go/+/176902 Reviewed-by: Bryan C. Mills Run-TryBot: Bryan C. Mills TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/go/alldocs.go b/src/cmd/go/alldocs.go index a78766e228..2df97a429c 100644 --- a/src/cmd/go/alldocs.go +++ b/src/cmd/go/alldocs.go @@ -603,9 +603,12 @@ // The -t flag instructs get to consider modules needed to build tests of // packages specified on the command line. // -// The -u flag instructs get to update dependencies to use newer minor or -// patch releases when available. Continuing the previous example, -// 'go get -u A' will use the latest A with B v1.3.1 (not B v1.2.3). +// The -u flag instructs get to update modules providing dependencies +// of packages named on the command line to use newer minor or patch +// releases when available. Continuing the previous example, 'go get -u A' +// will use the latest A with B v1.3.1 (not B v1.2.3). If B requires module C, +// but C does not provide any packages needed to build packages in A +// (not including tests), then C will not be updated. // // The -u=patch flag (not -u patch) also instructs get to update dependencies, // but changes the default to select patch releases. diff --git a/src/cmd/go/internal/modget/get.go b/src/cmd/go/internal/modget/get.go index 0babfba390..e2c4c105dd 100644 --- a/src/cmd/go/internal/modget/get.go +++ b/src/cmd/go/internal/modget/get.go @@ -77,9 +77,12 @@ those requirements by taking the maximum requested version.) The -t flag instructs get to consider modules needed to build tests of packages specified on the command line. -The -u flag instructs get to update dependencies to use newer minor or -patch releases when available. Continuing the previous example, -'go get -u A' will use the latest A with B v1.3.1 (not B v1.2.3). +The -u flag instructs get to update modules providing dependencies +of packages named on the command line to use newer minor or patch +releases when available. Continuing the previous example, 'go get -u A' +will use the latest A with B v1.3.1 (not B v1.2.3). If B requires module C, +but C does not provide any packages needed to build packages in A +(not including tests), then C will not be updated. The -u=patch flag (not -u patch) also instructs get to update dependencies, but changes the default to select patch releases. @@ -757,6 +760,9 @@ func newUpgrader(cmdline map[string]*query, pkgs map[string]bool) *upgrader { work = work[1:] m := modload.PackageModule(pkg) u.upgrade[m.Path] = true + + // testImports is empty unless test imports were actually loaded, + // i.e., -t was set or "all" was one of the arguments. imports, testImports := modload.PackageImports(pkg) for _, imp := range imports { add(imp)