Skip to content

cmd/go: go get -v is too verbose for repos with meta tags #23662

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
anacrolix opened this issue Feb 2, 2018 · 14 comments
Open

cmd/go: go get -v is too verbose for repos with meta tags #23662

anacrolix opened this issue Feb 2, 2018 · 14 comments
Labels
GoCommand cmd/go NeedsFix The path to resolution is known, but the work has not been done.
Milestone

Comments

@anacrolix
Copy link
Contributor

Fetching https://golang.org/x/tools/cmd/godoc?go-get=1
Parsing meta tags from https://golang.org/x/tools/cmd/godoc?go-get=1 (status code 200)
get "golang.org/x/tools/cmd/godoc": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/cmd/godoc?go-get=1
get "golang.org/x/tools/cmd/godoc": verifying non-authoritative meta tag

This is interjected for every repo that uses meta tags. It would be useful if there were a failure only. Instead it disrupts the usual pattern of listing packages that have been consulted to fulfil the command. There are other ways to get this information a user can use if they were curious, or needed to debug the situation.

Here's a full sample of the noise in a typical circumstance:

go get -u -v \
		golang.org/x/tools/cmd/godoc \
		golang.org/x/tools/cmd/guru \
		golang.org/x/tools/cmd/gorename \
		honnef.co/go/tools/cmd/unused \
		github.com/rogpeppe/sortimports
Fetching https://golang.org/x/tools/cmd/godoc?go-get=1
Parsing meta tags from https://golang.org/x/tools/cmd/godoc?go-get=1 (status code 200)
get "golang.org/x/tools/cmd/godoc": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/cmd/godoc?go-get=1
get "golang.org/x/tools/cmd/godoc": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools?go-get=1
Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
golang.org/x/tools (download)
Fetching https://golang.org/x/tools/blog?go-get=1
Parsing meta tags from https://golang.org/x/tools/blog?go-get=1 (status code 200)
get "golang.org/x/tools/blog": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/blog?go-get=1
get "golang.org/x/tools/blog": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/blog/atom?go-get=1
Parsing meta tags from https://golang.org/x/tools/blog/atom?go-get=1 (status code 200)
get "golang.org/x/tools/blog/atom": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/blog/atom?go-get=1
get "golang.org/x/tools/blog/atom": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/present?go-get=1
Parsing meta tags from https://golang.org/x/tools/present?go-get=1 (status code 200)
get "golang.org/x/tools/present": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/present?go-get=1
get "golang.org/x/tools/present": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/godoc?go-get=1
Parsing meta tags from https://golang.org/x/tools/godoc?go-get=1 (status code 200)
get "golang.org/x/tools/godoc": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/godoc?go-get=1
get "golang.org/x/tools/godoc": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/godoc/analysis?go-get=1
Parsing meta tags from https://golang.org/x/tools/godoc/analysis?go-get=1 (status code 200)
get "golang.org/x/tools/godoc/analysis": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/godoc/analysis?go-get=1
get "golang.org/x/tools/godoc/analysis": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/go/callgraph?go-get=1
Parsing meta tags from https://golang.org/x/tools/go/callgraph?go-get=1 (status code 200)
get "golang.org/x/tools/go/callgraph": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/callgraph?go-get=1
get "golang.org/x/tools/go/callgraph": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/go/ssa?go-get=1
Parsing meta tags from https://golang.org/x/tools/go/ssa?go-get=1 (status code 200)
get "golang.org/x/tools/go/ssa": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/ssa?go-get=1
get "golang.org/x/tools/go/ssa": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/go/ast/astutil?go-get=1
Parsing meta tags from https://golang.org/x/tools/go/ast/astutil?go-get=1 (status code 200)
get "golang.org/x/tools/go/ast/astutil": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/ast/astutil?go-get=1
get "golang.org/x/tools/go/ast/astutil": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/go/types/typeutil?go-get=1
Parsing meta tags from https://golang.org/x/tools/go/types/typeutil?go-get=1 (status code 200)
get "golang.org/x/tools/go/types/typeutil": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/types/typeutil?go-get=1
get "golang.org/x/tools/go/types/typeutil": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/go/loader?go-get=1
Parsing meta tags from https://golang.org/x/tools/go/loader?go-get=1 (status code 200)
get "golang.org/x/tools/go/loader": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/loader?go-get=1
get "golang.org/x/tools/go/loader": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/go/buildutil?go-get=1
Parsing meta tags from https://golang.org/x/tools/go/buildutil?go-get=1 (status code 200)
get "golang.org/x/tools/go/buildutil": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/buildutil?go-get=1
get "golang.org/x/tools/go/buildutil": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/go/pointer?go-get=1
Parsing meta tags from https://golang.org/x/tools/go/pointer?go-get=1 (status code 200)
get "golang.org/x/tools/go/pointer": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/pointer?go-get=1
get "golang.org/x/tools/go/pointer": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/container/intsets?go-get=1
Parsing meta tags from https://golang.org/x/tools/container/intsets?go-get=1 (status code 200)
get "golang.org/x/tools/container/intsets": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/container/intsets?go-get=1
get "golang.org/x/tools/container/intsets": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/go/ssa/ssautil?go-get=1
Parsing meta tags from https://golang.org/x/tools/go/ssa/ssautil?go-get=1 (status code 200)
get "golang.org/x/tools/go/ssa/ssautil": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/ssa/ssautil?go-get=1
get "golang.org/x/tools/go/ssa/ssautil": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/godoc/util?go-get=1
Parsing meta tags from https://golang.org/x/tools/godoc/util?go-get=1 (status code 200)
get "golang.org/x/tools/godoc/util": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/godoc/util?go-get=1
get "golang.org/x/tools/godoc/util": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/godoc/vfs?go-get=1
Parsing meta tags from https://golang.org/x/tools/godoc/vfs?go-get=1 (status code 200)
get "golang.org/x/tools/godoc/vfs": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/godoc/vfs?go-get=1
get "golang.org/x/tools/godoc/vfs": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/godoc/vfs/httpfs?go-get=1
Parsing meta tags from https://golang.org/x/tools/godoc/vfs/httpfs?go-get=1 (status code 200)
get "golang.org/x/tools/godoc/vfs/httpfs": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/godoc/vfs/httpfs?go-get=1
get "golang.org/x/tools/godoc/vfs/httpfs": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/godoc/redirect?go-get=1
Parsing meta tags from https://golang.org/x/tools/godoc/redirect?go-get=1 (status code 200)
get "golang.org/x/tools/godoc/redirect": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/godoc/redirect?go-get=1
get "golang.org/x/tools/godoc/redirect": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/godoc/static?go-get=1
Parsing meta tags from https://golang.org/x/tools/godoc/static?go-get=1 (status code 200)
get "golang.org/x/tools/godoc/static": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/godoc/static?go-get=1
get "golang.org/x/tools/godoc/static": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/godoc/vfs/gatefs?go-get=1
Parsing meta tags from https://golang.org/x/tools/godoc/vfs/gatefs?go-get=1 (status code 200)
get "golang.org/x/tools/godoc/vfs/gatefs": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/godoc/vfs/gatefs?go-get=1
get "golang.org/x/tools/godoc/vfs/gatefs": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/godoc/vfs/mapfs?go-get=1
Parsing meta tags from https://golang.org/x/tools/godoc/vfs/mapfs?go-get=1 (status code 200)
get "golang.org/x/tools/godoc/vfs/mapfs": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/godoc/vfs/mapfs?go-get=1
get "golang.org/x/tools/godoc/vfs/mapfs": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/godoc/vfs/zipfs?go-get=1
Parsing meta tags from https://golang.org/x/tools/godoc/vfs/zipfs?go-get=1 (status code 200)
get "golang.org/x/tools/godoc/vfs/zipfs": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/godoc/vfs/zipfs?go-get=1
get "golang.org/x/tools/godoc/vfs/zipfs": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/playground?go-get=1
Parsing meta tags from https://golang.org/x/tools/playground?go-get=1 (status code 200)
get "golang.org/x/tools/playground": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/playground?go-get=1
get "golang.org/x/tools/playground": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/cmd/guru?go-get=1
Parsing meta tags from https://golang.org/x/tools/cmd/guru?go-get=1 (status code 200)
get "golang.org/x/tools/cmd/guru": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/cmd/guru?go-get=1
get "golang.org/x/tools/cmd/guru": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/cmd/guru/serial?go-get=1
Parsing meta tags from https://golang.org/x/tools/cmd/guru/serial?go-get=1 (status code 200)
get "golang.org/x/tools/cmd/guru/serial": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/cmd/guru/serial?go-get=1
get "golang.org/x/tools/cmd/guru/serial": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/go/callgraph/static?go-get=1
Parsing meta tags from https://golang.org/x/tools/go/callgraph/static?go-get=1 (status code 200)
get "golang.org/x/tools/go/callgraph/static": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/callgraph/static?go-get=1
get "golang.org/x/tools/go/callgraph/static": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/refactor/importgraph?go-get=1
Parsing meta tags from https://golang.org/x/tools/refactor/importgraph?go-get=1 (status code 200)
get "golang.org/x/tools/refactor/importgraph": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/refactor/importgraph?go-get=1
get "golang.org/x/tools/refactor/importgraph": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/cmd/gorename?go-get=1
Parsing meta tags from https://golang.org/x/tools/cmd/gorename?go-get=1 (status code 200)
get "golang.org/x/tools/cmd/gorename": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/cmd/gorename?go-get=1
get "golang.org/x/tools/cmd/gorename": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/refactor/rename?go-get=1
Parsing meta tags from https://golang.org/x/tools/refactor/rename?go-get=1 (status code 200)
get "golang.org/x/tools/refactor/rename": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/refactor/rename?go-get=1
get "golang.org/x/tools/refactor/rename": verifying non-authoritative meta tag
Fetching https://golang.org/x/tools/refactor/satisfy?go-get=1
Parsing meta tags from https://golang.org/x/tools/refactor/satisfy?go-get=1 (status code 200)
get "golang.org/x/tools/refactor/satisfy": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/refactor/satisfy?go-get=1
get "golang.org/x/tools/refactor/satisfy": verifying non-authoritative meta tag
Fetching https://honnef.co/go/tools/cmd/unused?go-get=1
Parsing meta tags from https://honnef.co/go/tools/cmd/unused?go-get=1 (status code 200)
get "honnef.co/go/tools/cmd/unused": found meta tag get.metaImport{Prefix:"honnef.co/go/tools", VCS:"git", RepoRoot:"https://github.com/dominikh/go-tools"} at https://honnef.co/go/tools/cmd/unused?go-get=1
get "honnef.co/go/tools/cmd/unused": verifying non-authoritative meta tag
Fetching https://honnef.co/go/tools?go-get=1
Parsing meta tags from https://honnef.co/go/tools?go-get=1 (status code 200)
honnef.co/go/tools (download)
Fetching https://honnef.co/go/tools/lint/lintutil?go-get=1
Parsing meta tags from https://honnef.co/go/tools/lint/lintutil?go-get=1 (status code 200)
get "honnef.co/go/tools/lint/lintutil": found meta tag get.metaImport{Prefix:"honnef.co/go/tools", VCS:"git", RepoRoot:"https://github.com/dominikh/go-tools"} at https://honnef.co/go/tools/lint/lintutil?go-get=1
get "honnef.co/go/tools/lint/lintutil": verifying non-authoritative meta tag
github.com/kisielk/gotool (download)
Fetching https://honnef.co/go/tools/lint?go-get=1
Parsing meta tags from https://honnef.co/go/tools/lint?go-get=1 (status code 200)
get "honnef.co/go/tools/lint": found meta tag get.metaImport{Prefix:"honnef.co/go/tools", VCS:"git", RepoRoot:"https://github.com/dominikh/go-tools"} at https://honnef.co/go/tools/lint?go-get=1
get "honnef.co/go/tools/lint": verifying non-authoritative meta tag
Fetching https://honnef.co/go/tools/ssa?go-get=1
Parsing meta tags from https://honnef.co/go/tools/ssa?go-get=1 (status code 200)
get "honnef.co/go/tools/ssa": found meta tag get.metaImport{Prefix:"honnef.co/go/tools", VCS:"git", RepoRoot:"https://github.com/dominikh/go-tools"} at https://honnef.co/go/tools/ssa?go-get=1
get "honnef.co/go/tools/ssa": verifying non-authoritative meta tag
Fetching https://honnef.co/go/tools/ssa/ssautil?go-get=1
Parsing meta tags from https://honnef.co/go/tools/ssa/ssautil?go-get=1 (status code 200)
get "honnef.co/go/tools/ssa/ssautil": found meta tag get.metaImport{Prefix:"honnef.co/go/tools", VCS:"git", RepoRoot:"https://github.com/dominikh/go-tools"} at https://honnef.co/go/tools/ssa/ssautil?go-get=1
get "honnef.co/go/tools/ssa/ssautil": verifying non-authoritative meta tag
Fetching https://honnef.co/go/tools/version?go-get=1
Parsing meta tags from https://honnef.co/go/tools/version?go-get=1 (status code 200)
get "honnef.co/go/tools/version": found meta tag get.metaImport{Prefix:"honnef.co/go/tools", VCS:"git", RepoRoot:"https://github.com/dominikh/go-tools"} at https://honnef.co/go/tools/version?go-get=1
get "honnef.co/go/tools/version": verifying non-authoritative meta tag
Fetching https://honnef.co/go/tools/unused?go-get=1
Parsing meta tags from https://honnef.co/go/tools/unused?go-get=1 (status code 200)
get "honnef.co/go/tools/unused": found meta tag get.metaImport{Prefix:"honnef.co/go/tools", VCS:"git", RepoRoot:"https://github.com/dominikh/go-tools"} at https://honnef.co/go/tools/unused?go-get=1
get "honnef.co/go/tools/unused": verifying non-authoritative meta tag
github.com/rogpeppe/sortimports (download)
golang.org/x/tools/godoc/static
golang.org/x/tools/cmd/guru/serial
golang.org/x/tools/go/callgraph/static
golang.org/x/tools/refactor/importgraph
golang.org/x/tools/cmd/godoc
golang.org/x/tools/refactor/satisfy
github.com/kisielk/gotool/internal/load
golang.org/x/tools/cmd/guru
github.com/kisielk/gotool
honnef.co/go/tools/ssa
golang.org/x/tools/refactor/rename
golang.org/x/tools/cmd/gorename
honnef.co/go/tools/version
github.com/rogpeppe/sortimports
honnef.co/go/tools/ssa/ssautil
honnef.co/go/tools/lint
honnef.co/go/tools/lint/lintutil
honnef.co/go/tools/unused
honnef.co/go/tools/cmd/unused
@cznic
Copy link
Contributor

cznic commented Feb 2, 2018

-v means for me that I want/need the noise, most/all of it because I want to investigate/understand things/failures etc.

@anacrolix
Copy link
Contributor Author

How many times have you found it useful for meta tags?

@ianlancetaylor ianlancetaylor changed the title go get -v is too verbose for repos with meta tags cmd/go: go get -v is too verbose for repos with meta tags Feb 2, 2018
@ianlancetaylor ianlancetaylor added this to the Go1.11 milestone Feb 2, 2018
@ianlancetaylor ianlancetaylor added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Feb 2, 2018
@ericlagergren
Copy link
Contributor

Drive-by suggestion: have multiple levels of -v. -v for "some noise" up to -vvv for "tons of chatter."

@ferventgeek
Copy link

Not to start a flame war, but, after switching the majority of my development to Go, the only thing I miss about NPM is being able to know what get is actually doing. I don't know if it's a limitation of the network library, or a religious decision to keep things quiet unless there is an error- no news is good news. But for new Go users especially, it can appear there is something wrong when there are no blinkinlights during large package adds.

I work from many offices, on planes and in coffee shops and knowing quickly if there's a problem adding packages is important for productivity. If the first download is going to be slow then the rest are too, and I need to get up and go find a better connection or I'll waste time. go get needs a typical, clear interactive mode that informs terminal users about what it's doing: package(s) it's fetching, rate (estimated completion if calculable), compiling, etc.

There have been many thread comments on this, and I'm not complaining, or piling-on. I'm really happy with Go- it's amazing. And that's why it deserves a first class package-add experience too.

OK, my piece said, back to code..

@rsc rsc modified the milestones: Go1.11, Go1.12 Aug 10, 2018
@rsc
Copy link
Contributor

rsc commented Aug 10, 2018

This is absolutely still a problem but we didn't get to it for Go 1.11.
-v is a build flag that means "print the names of the packages being compiled".
The fact that it got co-opted into "print a ridiculous amount of output about go get" needs to be undone.

@anacrolix
Copy link
Contributor Author

Thank you for the confirmation. I expect with go mod this is a non-issue, I've not noticed any excessive logging since beginning to switch over.

@bcmills bcmills added the NeedsFix The path to resolution is known, but the work has not been done. label Nov 14, 2018
@gopherbot gopherbot removed the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Nov 14, 2018
@bcmills bcmills added the GoCommand cmd/go label Nov 14, 2018
@rsc rsc modified the milestones: Go1.12, Go1.4-bootstrap, Go1.13 Nov 20, 2018
@bcmills
Copy link
Contributor

bcmills commented Jan 18, 2019

See also #26152.

@anacrolix
Copy link
Contributor Author

It's worth pointing out that niggling over the definition of -v doesn't help. What one person may think is verbose, others may not. It's not specified that -v should provide debug info regarding meta tags, so just make another flag for that.

@bcmills
Copy link
Contributor

bcmills commented Jan 22, 2019

being able to know what get is actually doing

I believe that is #15959.

@gopherbot

This comment was marked as off-topic.

@iwdgo
Copy link
Contributor

iwdgo commented Apr 5, 2025

The deprecation of go get for installation outside module has incidentally removed the issue as the error message replaces the verbose log.

gotip get -u -v \
    golang.org/x/tools/cmd/godoc \
    golang.org/x/tools/cmd/guru \
    golang.org/x/tools/cmd/gorename \
    honnef.co/go/tools/cmd/unused \
    github.com/rogpeppe/sortimports
go: go.mod file not found in current directory or any parent directory.
	'go get' is no longer supported outside a module.
	To build and install a command, use 'go install' with a version,
	like 'go install example.com/cmd@latest'
	For more information, see https://golang.org/doc/go-get-install-deprecation
	or run 'go help get' or 'go help install'.

@iwdgo
Copy link
Contributor

iwdgo commented Apr 5, 2025

Using go install for the same purpose requires to add a version tag. Here latest is inferred.
The log using go1.24.1 is then restricted to installed modules which seems to solve the issue.

go install -v \
                golang.org/x/tools/cmd/godoc@latest \
                golang.org/x/tools/cmd/guru@latest \
                golang.org/x/tools/cmd/gorename@latest \
                honnef.co/go/tools/cmd/unused@latest \
                github.com/rogpeppe/sortimports@latest
go: downloading golang.org/x/tools v0.31.0
go: finding module for package github.com/rogpeppe/sortimports
go: finding module for package golang.org/x/tools/cmd/gorename
go: finding module for package honnef.co/go/tools/cmd/unused
go: finding module for package golang.org/x/tools/cmd/guru
go: downloading honnef.co/go/tools v0.6.1
go: finding module for package honnef.co/go/tools/cmd/unused
go: downloading golang.org/x/sync v0.12.0
go: downloading golang.org/x/mod v0.24.0
go: finding module for package honnef.co/go/tools/cmd/unused
package golang.org/x/tools/cmd/guru provided by module golang.org/x/tools/cmd/[email protected]
	All packages must be provided by the same module (golang.org/x/[email protected]).
package golang.org/x/tools/cmd/gorename provided by module golang.org/x/tools/cmd/[email protected]
	All packages must be provided by the same module (golang.org/x/[email protected]).
module honnef.co/go/tools@latest found (v0.6.1), but does not contain package honnef.co/go/tools/cmd/unused
package github.com/rogpeppe/sortimports provided by module github.com/rogpeppe/[email protected]
	All packages must be provided by the same module (golang.org/x/[email protected]).

@iwdgo
Copy link
Contributor

iwdgo commented Apr 5, 2025

Inside a module, the example fails on one missing package. Removing the missing package adds the requested modules to go.mod with a short log.

$ gotip get -v \
                golang.org/x/tools/cmd/godoc@latest \
                golang.org/x/tools/cmd/guru@latest \
                golang.org/x/tools/cmd/gorename@latest \
                honnef.co/go/tools/cmd/unused@latest \
                github.com/rogpeppe/sortimports@latest
go: module honnef.co/go/tools@latest found (v0.6.1), but does not contain package honnef.co/go/tools/cmd/unused
$ gotip get -v \                   
                golang.org/x/tools/cmd/godoc@latest \
                golang.org/x/tools/cmd/guru@latest \
                golang.org/x/tools/cmd/gorename@latest \
                github.com/rogpeppe/sortimports@latest
go: added github.com/rogpeppe/sortimports v0.0.0-20220308075549-a2f1690e4a1b
go: added github.com/yuin/goldmark v1.4.13
go: added golang.org/x/mod v0.24.0
go: added golang.org/x/sync v0.12.0
go: added golang.org/x/tools v0.31.0
go: added golang.org/x/tools/cmd/gorename v0.1.0-deprecated
go: added golang.org/x/tools/cmd/guru v0.1.1-deprecated

@iwdgo
Copy link
Contributor

iwdgo commented Apr 5, 2025

Using go install inside a module gives the same result as go get.
Issue seems incidentally solved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GoCommand cmd/go NeedsFix The path to resolution is known, but the work has not been done.
Projects
None yet
Development

No branches or pull requests

10 participants