]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.13] Revert "cmd/go: add a Latest field to the output of 'go mod...
authorBryan C. Mills <bcmills@google.com>
Thu, 3 Oct 2019 18:55:59 +0000 (18:55 +0000)
committerBryan C. Mills <bcmills@google.com>
Fri, 4 Oct 2019 20:31:54 +0000 (20:31 +0000)
This reverts CL 183841.

Updates #34533
Fixes #34679

Reason for revert: Introduced a significant performance regression for repos with many incompatible-version tags.

Change-Id: I75d7fd76e6e1a0902b114b00167b38439e0f8221
Reviewed-on: https://go-review.googlesource.com/c/go/+/198699
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Katie Hockman <katie@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
(cherry picked from commit 961837dec23f900bbf8b04230c72397a0aab4be6)
Reviewed-on: https://go-review.googlesource.com/c/go/+/199079

src/cmd/go/alldocs.go
src/cmd/go/internal/modcmd/download.go
src/cmd/go/testdata/script/mod_download.txt
src/cmd/go/testdata/script/mod_download_latest.txt [deleted file]
src/cmd/go/testdata/script/mod_list_upgrade.txt

index ebbead5d3169a53fe97df56cfaa096c0a7d31abd..0a8935b6bcb10412327d28b9d04f9c7f8de2d59e 100644 (file)
 //         Dir      string // absolute path to cached source root directory
 //         Sum      string // checksum for path, version (as in go.sum)
 //         GoModSum string // checksum for go.mod (as in go.sum)
-//         Latest   bool   // would @latest resolve to this version?
 //     }
 //
 // See 'go help modules' for more about module queries.
index 60d0d5b6e2b4fb362d2b62b829ba9a18353bfed8..0d432e95490e1dc0bddc30155525a2f3a083c786 100644 (file)
@@ -43,7 +43,6 @@ corresponding to this Go struct:
         Dir      string // absolute path to cached source root directory
         Sum      string // checksum for path, version (as in go.sum)
         GoModSum string // checksum for go.mod (as in go.sum)
-        Latest   bool   // would @latest resolve to this version?
     }
 
 See 'go help modules' for more about module queries.
@@ -66,7 +65,6 @@ type moduleJSON struct {
        Dir      string `json:",omitempty"`
        Sum      string `json:",omitempty"`
        GoModSum string `json:",omitempty"`
-       Latest   bool   `json:",omitempty"`
 }
 
 func runDownload(cmd *base.Command, args []string) {
@@ -105,31 +103,6 @@ func runDownload(cmd *base.Command, args []string) {
                work.Add(m)
        }
 
-       latest := map[string]string{} // path → version
-       if *downloadJSON {
-               // We need to populate the Latest field, but if the main module depends on a
-               // version newer than latest — or if the version requested on the command
-               // line is itself newer than latest — that's not trivial to determine from
-               // the info returned by ListModules. Instead, we issue a separate
-               // ListModules request for "latest", which should be inexpensive relative to
-               // downloading the modules.
-               var latestArgs []string
-               for _, m := range mods {
-                       if m.Error != "" {
-                               continue
-                       }
-                       latestArgs = append(latestArgs, m.Path+"@latest")
-               }
-
-               if len(latestArgs) > 0 {
-                       for _, info := range modload.ListModules(latestArgs, listU, listVersions) {
-                               if info.Version != "" {
-                                       latest[info.Path] = info.Version
-                               }
-                       }
-               }
-       }
-
        work.Do(10, func(item interface{}) {
                m := item.(*moduleJSON)
                var err error
@@ -160,9 +133,6 @@ func runDownload(cmd *base.Command, args []string) {
                        m.Error = err.Error()
                        return
                }
-               if latest[m.Path] == m.Version {
-                       m.Latest = true
-               }
        })
 
        if *downloadJSON {
index 9eb3140c3328a00b0ac87732ad264059044fd6c3..07779137869f350063c69208e83bd83a7e13def4 100644 (file)
@@ -17,7 +17,6 @@ stderr 'this.domain.is.invalid'
 stdout '"Error": ".*this.domain.is.invalid.*"'
 
 # download -json with version should print JSON
-# and download the .info file for the 'latest' version.
 go mod download -json 'rsc.io/quote@<=v1.5.0'
 stdout '^\t"Path": "rsc.io/quote"'
 stdout '^\t"Version": "v1.5.0"'
@@ -28,14 +27,13 @@ stdout '^\t"Sum": "h1:6fJa6E\+wGadANKkUMlZ0DhXFpoKlslOQDCo259XtdIE="'  # hash of
 stdout '^\t"GoModSum": "h1:LzX7hefJvL54yjefDEDHNONDjII0t9xZLPXsUe\+TKr0="'
 ! stdout '"Error"'
 
-exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.info
-
 # download queries above should not have added to go.mod.
 go list -m all
 ! stdout rsc.io
 
 # add to go.mod so we can test non-query downloads
 go mod edit -require rsc.io/quote@v1.5.2
+! exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.info
 ! exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.mod
 ! exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.zip
 
diff --git a/src/cmd/go/testdata/script/mod_download_latest.txt b/src/cmd/go/testdata/script/mod_download_latest.txt
deleted file mode 100644 (file)
index 60d860e..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-env GO111MODULE=on
-
-# If the module is the latest version of itself,
-# the Latest field should be set.
-go mod download -json rsc.io/quote@v1.5.2
-stdout '"Latest":\s*true'
-
-# If the module is older than latest, the field should be unset.
-go mod download -json rsc.io/quote@v1.5.1
-! stdout '"Latest":'
-
-# If the module is newer than "latest", the field should be unset...
-go mod download -json rsc.io/quote@v1.5.3-pre1
-! stdout '"Latest":'
-
-# ...even if that version is also what is required by the main module.
-go mod init example.com
-go mod edit -require rsc.io/quote@v1.5.3-pre1
-go mod download -json rsc.io/quote@v1.5.3-pre1
-! stdout '"Latest":'
index f2d06490920151e090821eae5ca8e267ba834ccb..474df0dc269e4401bc99875f019fa01c0c080985 100644 (file)
@@ -1,28 +1,8 @@
 env GO111MODULE=on
 
-# If the current version is not latest, 'go list -u' should include its upgrade.
 go list -m -u all
 stdout 'rsc.io/quote v1.2.0 \[v1\.5\.2\]'
 
-# If the current version is latest, 'go list -u' should omit the upgrade.
-go get -d rsc.io/quote@v1.5.2
-go list -m -u all
-stdout 'rsc.io/quote v1.5.2$'
-
-# If the current version is newer than latest, 'go list -u' should
-# omit the upgrade.
-go get -d rsc.io/quote@v1.5.3-pre1
-go list -m -u all
-stdout 'rsc.io/quote v1.5.3-pre1$'
-
-# If the current build list has a higher version and the user asks about
-# a lower one, -u should report the upgrade for the lower one
-# but leave the build list unchanged.
-go list -m -u rsc.io/quote@v1.5.1
-stdout 'rsc.io/quote v1.5.1 \[v1.5.2\]$'
-go list -m -u rsc.io/quote
-stdout 'rsc.io/quote v1.5.3-pre1$'
-
 -- go.mod --
 module x
 require rsc.io/quote v1.2.0