Skip to content
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

cmd/go: warn if 'go install' is called on a non-main package pattern in module mode #46912

Open
bcmills opened this issue Jun 24, 2021 · 0 comments
Open
Assignees
Milestone

Comments

@bcmills
Copy link
Member

@bcmills bcmills commented Jun 24, 2021

This issue is a companion to proposal #41696, brought to my attention via https://stackoverflow.com/q/64462190.

In module mode, non-main packages lack an install target, and go install for such packages is equivalent to go build (compare #46911).

As such, a call to go install with a pattern containing only non-main packages is at best confusing: at best, the user has conflated go install with go build, and at worst, they are trying to install a binary but have named a corresponding library instead.

The latter case crops up surprisingly frequently. For example, the library golang.org/x/tools/imports is easily confused with the executable golang.org/x/tools/cmd/goimports, and the library github.com/gobuffalo/buffalo is easily confused with the executable github.com/gobuffalo/buffalo/buffalo.

I don't think we need to actually remove the ability to call go install on a non-main package, but we should at least log something to clear up the user's likely confusion.

CC @jayconrod @matloob

@bcmills bcmills added this to the Backlog milestone Jun 24, 2021
@bcmills bcmills self-assigned this Jun 24, 2021
@bcmills bcmills removed this from the Backlog milestone Jun 24, 2021
@bcmills bcmills added this to the Go1.18 milestone Jun 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant