-
Notifications
You must be signed in to change notification settings - Fork 17.8k
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: 'go list' in module mode reports GOPATH Root and Target fields when the main module is in GOPATH/src #37015
Comments
Hmm, interesting. In a module root outside of
And However, in a module contained within
So it appears that we are still computing (and using) the |
Change https://go.dev/cl/410822 mentions this issue: |
I think we should follow the |
This change replicates the behavior filed in issue #37015 for packages imported from the module index. That behavior is that packages that happen to exist in a GOPATH src directory have p.Root and p.Target set even when the packages are loaded from modules. This is likely unintentional behavior because in module mode, packages shouldn't behave differently depending on whether their directories exist in GOPATH. But for uniformity, (and because two of our tests depend on this behavior), this CL will implement this behavior. We can remove it from the module index when we remove it from the go/build logic. Change-Id: I3f501c92fbb76eaf86b6b9275539f2129b67f884 Reviewed-on: https://go-review.googlesource.com/c/go/+/410822 Reviewed-by: Michael Matloob <[email protected]> Run-TryBot: Michael Matloob <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Russ Cox <[email protected]>
Change https://go.dev/cl/414055 mentions this issue: |
Non-main packages in module mode should not be installed to GOPATH/pkg, but due to #37015 they were installed there anyway. This change switches the 'go install' command to instead use 'go build -buildmode=archive' with an explicit archive path. For #37015. Change-Id: Ib0c8f213100b6473a7657af96f31395703e28493 Reviewed-on: https://go-review.googlesource.com/c/go/+/414055 Auto-Submit: Bryan Mills <[email protected]> Reviewed-by: Cherry Mui <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Michael Matloob <[email protected]> Run-TryBot: Bryan Mills <[email protected]>
Change https://go.dev/cl/416954 mentions this issue: |
Change https://go.dev/cl/416955 mentions this issue: |
…ests Non-main packages in module mode should not be installed to GOPATH/pkg, but due to #37015 they were installed there anyway. This change switches the 'go install' command in TestPIE to instead use 'go build', and switches TestInstall and TestCachedInstall (which appear to be explicitly testing 'go install') to explicitly request GOPATH mode (which does have a well-defined install target). For #37015. Change-Id: Ifb24657d2781d1e35cf40078e8e3ebf56aab9cc8 Reviewed-on: https://go-review.googlesource.com/c/go/+/416954 TryBot-Result: Gopher Robot <[email protected]> Run-TryBot: Bryan Mills <[email protected]> Auto-Submit: Bryan Mills <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]>
Non-main packages in module mode should not be installed to GOPATH/pkg, but due to #37015 they were installed there anyway. This change switches the 'go install' command in testGoLib to instead use 'go build -buildmode=archive' with an explicit output file. For #37015. Change-Id: I15781aa33d1b2adc6a4437a58622276f4e20b889 Reviewed-on: https://go-review.googlesource.com/c/go/+/416955 Reviewed-by: Ian Lance Taylor <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Run-TryBot: Bryan Mills <[email protected]> Auto-Submit: Bryan Mills <[email protected]>
Change https://go.dev/cl/417095 mentions this issue: |
Change https://go.dev/cl/417096 mentions this issue: |
Change https://go.dev/cl/417194 mentions this issue: |
Non-main packages in module mode should not be installed to GOPATH/pkg, but due to #37015 they were installed there anyway. Lacking a proper install location, 'go install' becomes a no-op for non-main packages in module mode. This change switches the 'go install' commands in the test_fuzz_cache and build_overlay tests to instead use 'go build', using the '-x' flag to check for compile commands instead of querying 'go list' about staleness. For #37015. Change-Id: I56d80cf2a43efb6163c62082c86cd3e4f0ff73c1 Reviewed-on: https://go-review.googlesource.com/c/go/+/417095 Run-TryBot: Bryan Mills <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Auto-Submit: Bryan Mills <[email protected]> Reviewed-by: Russ Cox <[email protected]>
Non-main packages in module mode should not be installed to GOPATH/pkg, but due to #37015 they were installed there anyway. This change switches the 'go install' command in createHeaders to instead use 'go build' (with an extension determined by the install target for 'runtime/cgo', which is well-defined at least for the moment), and switches TestCachedInstall (which appears to be explicitly testing 'go install') to explicitly request GOPATH mode (which provides a well-defined install target for the library). This change follows a similar structure to CL 416954. For #37015. Change-Id: I22ae4af0f0d4c50adc9e0f0dc279859d1f258cc8 Reviewed-on: https://go-review.googlesource.com/c/go/+/417096 Run-TryBot: Bryan Mills <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Auto-Submit: Bryan Mills <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]>
-buildmode=shared installs shared libraries into GOROOT and expects to reuse them across builds. Builds in module mode, however, each have their own set of dependencies (determined by the module's requirements), so in general cannot share dependencies with a single GOROOT. Ideally in the long term we would like to eliminate -buildmode=shared entirely (see #47788), but first we need a replacement for the subset of use-cases where it still works today. In the meantime, we should run these tests only in GOPATH mode. Non-main packages in module mode should not be installed to GOPATH/pkg, but due to #37015 they were installed there anyway, and this test heavily relies on installing non-main packages. For #37015. Change-Id: I7c5d90b4075d6f33e3505d6a8f12752309ae5c03 Reviewed-on: https://go-review.googlesource.com/c/go/+/417194 Run-TryBot: Bryan Mills <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Auto-Submit: Bryan Mills <[email protected]>
Non-main packages in module mode should not be installed to GOPATH/pkg, but due to golang#37015 they were installed there anyway. This change switches the 'go install' command to instead use 'go build -buildmode=archive' with an explicit archive path. For golang#37015. Change-Id: Ib0c8f213100b6473a7657af96f31395703e28493 Reviewed-on: https://go-review.googlesource.com/c/go/+/414055 Auto-Submit: Bryan Mills <[email protected]> Reviewed-by: Cherry Mui <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Michael Matloob <[email protected]> Run-TryBot: Bryan Mills <[email protected]>
…ests Non-main packages in module mode should not be installed to GOPATH/pkg, but due to golang#37015 they were installed there anyway. This change switches the 'go install' command in TestPIE to instead use 'go build', and switches TestInstall and TestCachedInstall (which appear to be explicitly testing 'go install') to explicitly request GOPATH mode (which does have a well-defined install target). For golang#37015. Change-Id: Ifb24657d2781d1e35cf40078e8e3ebf56aab9cc8 Reviewed-on: https://go-review.googlesource.com/c/go/+/416954 TryBot-Result: Gopher Robot <[email protected]> Run-TryBot: Bryan Mills <[email protected]> Auto-Submit: Bryan Mills <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]>
Non-main packages in module mode should not be installed to GOPATH/pkg, but due to golang#37015 they were installed there anyway. This change switches the 'go install' command in testGoLib to instead use 'go build -buildmode=archive' with an explicit output file. For golang#37015. Change-Id: I15781aa33d1b2adc6a4437a58622276f4e20b889 Reviewed-on: https://go-review.googlesource.com/c/go/+/416955 Reviewed-by: Ian Lance Taylor <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Run-TryBot: Bryan Mills <[email protected]> Auto-Submit: Bryan Mills <[email protected]>
Non-main packages in module mode should not be installed to GOPATH/pkg, but due to golang#37015 they were installed there anyway. Lacking a proper install location, 'go install' becomes a no-op for non-main packages in module mode. This change switches the 'go install' commands in the test_fuzz_cache and build_overlay tests to instead use 'go build', using the '-x' flag to check for compile commands instead of querying 'go list' about staleness. For golang#37015. Change-Id: I56d80cf2a43efb6163c62082c86cd3e4f0ff73c1 Reviewed-on: https://go-review.googlesource.com/c/go/+/417095 Run-TryBot: Bryan Mills <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Auto-Submit: Bryan Mills <[email protected]> Reviewed-by: Russ Cox <[email protected]>
Non-main packages in module mode should not be installed to GOPATH/pkg, but due to golang#37015 they were installed there anyway. This change switches the 'go install' command in createHeaders to instead use 'go build' (with an extension determined by the install target for 'runtime/cgo', which is well-defined at least for the moment), and switches TestCachedInstall (which appears to be explicitly testing 'go install') to explicitly request GOPATH mode (which provides a well-defined install target for the library). This change follows a similar structure to CL 416954. For golang#37015. Change-Id: I22ae4af0f0d4c50adc9e0f0dc279859d1f258cc8 Reviewed-on: https://go-review.googlesource.com/c/go/+/417096 Run-TryBot: Bryan Mills <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Auto-Submit: Bryan Mills <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]>
-buildmode=shared installs shared libraries into GOROOT and expects to reuse them across builds. Builds in module mode, however, each have their own set of dependencies (determined by the module's requirements), so in general cannot share dependencies with a single GOROOT. Ideally in the long term we would like to eliminate -buildmode=shared entirely (see golang#47788), but first we need a replacement for the subset of use-cases where it still works today. In the meantime, we should run these tests only in GOPATH mode. Non-main packages in module mode should not be installed to GOPATH/pkg, but due to golang#37015 they were installed there anyway, and this test heavily relies on installing non-main packages. For golang#37015. Change-Id: I7c5d90b4075d6f33e3505d6a8f12752309ae5c03 Reviewed-on: https://go-review.googlesource.com/c/go/+/417194 Run-TryBot: Bryan Mills <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Auto-Submit: Bryan Mills <[email protected]>
This issue is currently labeled as early-in-cycle for Go 1.20. |
Change https://go.dev/cl/412476 mentions this issue: |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
From inside a module root directory, where
pkg
is a non main package.What did you expect to see?
An empty
Target
, since withGO111MODULE=on
the package archives are no more installed in$GOPATH
.What did you see instead?
NOTE: if it is decided that
Target
will be left empty, I hope thatRoot
will remain.The text was updated successfully, but these errors were encountered: