]> Cypherpunks repositories - gostls13.git/commit
cmd/go: forbid resolving import to modules when outside of a module
authorJay Conrod <jayconrod@google.com>
Wed, 2 Oct 2019 21:51:54 +0000 (17:51 -0400)
committerJay Conrod <jayconrod@google.com>
Wed, 9 Oct 2019 23:03:55 +0000 (23:03 +0000)
commit3322f3e0ce6e8a8bbdd8e17803887a1f7119a52e
treec14474090c4761c28311893488c6a85aaf78e332
parentaa09e751ff8e1adeebbd4dcd562e998b33d1b4fa
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 <jayconrod@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
src/cmd/go/internal/modget/get.go
src/cmd/go/internal/modload/import.go
src/cmd/go/internal/modload/import_test.go
src/cmd/go/internal/modload/init.go
src/cmd/go/testdata/script/build_trimpath.txt
src/cmd/go/testdata/script/mod_missingpkg_prerelease.txt
src/cmd/go/testdata/script/mod_outside.txt