Please sign in to comment.
cmd/go: forbid resolving import to modules when outside of a module
When in module mode outside of any module, 'go build' and most other commands will now report an error instead of resolving a package path to a module. Previously, most commands would attempt to find the latest version of a module providing the package. This could be very slow if many packages needed to be resolved this way. Since there is no go.mod file where module requirements can be saved, it's a repeatedly slow and confusing experience. After this change, 'go build' and other commands may still be used outside of a module on packages in std and source files (.go arguments) that only import packages in std. Listing any other package on the command line or importing a package outside std will cause an error. 'go get' is exempted from the new behavior, since it's expected that 'go get' resolves paths to modules at new versions. Updates #32027 Change-Id: Ia9d3a3b4ad738ca5423472e17818d62b96a2c959 Reviewed-on: https://go-review.googlesource.com/c/go/+/198778 Run-TryBot: Jay Conrod <email@example.com> TryBot-Result: Gobot Gobot <firstname.lastname@example.org> Reviewed-by: Bryan C. Mills <email@example.com>
- Loading branch information...
Showing with 130 additions and 54 deletions.
- +4 −0 src/cmd/go/internal/modget/get.go
- +6 −0 src/cmd/go/internal/modload/import.go
- +4 −0 src/cmd/go/internal/modload/import_test.go
- +22 −19 src/cmd/go/internal/modload/init.go
- +3 −3 src/cmd/go/testdata/script/build_trimpath.txt
- +5 −0 src/cmd/go/testdata/script/mod_missingpkg_prerelease.txt
- +86 −32 src/cmd/go/testdata/script/mod_outside.txt