1
0
mirror of https://github.com/golang/go synced 2024-11-18 06:14:46 -07:00
go/cmd
Dmitri Shuralyov 3113a4aab4 cmd/godoc: add initial support for module mode
This change implements initial support for viewing Go package
documentation with godoc in module mode. There are no UI changes.

When running the godoc binary in a directory where module mode
is active (i.e., go env GOMOD reports a non-empty path), the
documentation will be shown for packages provided by modules
rather than from the GOPATH workspace.

The mode can be controlled in the same way as the go command, by
changing the GO111MODULE environment variable¹ value. For example,
'GO111MODULE=on godoc' will force godoc to run in module mode, and
'GO111MODULE=off godoc' will force godoc to run in GOPATH mode.

It is implemented by reusing the existing virtual filesystem
abstraction. The main module and all of its dependencies (in
other words, the build list²) are determined by invoking the
go list -m all command in the same directory. An attempt is
made to fill the module cache with any selected module versions
that are not already in the local module cache.

This behavior can be controlled in the same way as the go command,
by setting the GOPROXY environment variable. For example, setting
GOPROXY=off disables downloading of any modules. If any of the
modules could not be fetched, it is printed to stderr and
documentation is shown for all other available packages.

¹ https://golang.org/cmd/go/#hdr-Module_support
² https://golang.org/cmd/go/#hdr-The_main_module_and_the_build_list

Fixes golang/go#33655

Change-Id: I86f795537b65acae3771afd19d2e7cb360425467
Reviewed-on: https://go-review.googlesource.com/c/tools/+/196983
Reviewed-by: Andrew Bonventre <andybons@golang.org>
2019-11-07 17:57:43 +00:00
..
auth cmd/auth/cookieauth: add a GOAUTH implementation that reads from a cookiefile 2019-04-05 18:06:40 +00:00
benchcmp
bundle cmd/bundle: add -tags flag 2019-11-04 19:56:21 +00:00
callgraph all: skip tests if required tools are not found 2019-08-30 15:40:57 +00:00
compilebench cmd/compilebench: add more linker benchmarking 2019-09-11 14:31:56 +00:00
cover all: do not write to testdata directories 2019-08-30 17:05:20 +00:00
digraph cmd/digraph: use node instead of label ubiquitously 2019-10-24 13:39:24 +00:00
eg
fiximports all: fix more typos 2019-09-11 15:13:14 +00:00
getgo cmd/getgo/server: update to go112 GAE runtime 2019-08-22 19:19:35 +00:00
go-contrib-init
godex x/tools: remove old renaming imports of go/constant as exact 2018-08-10 17:04:37 +00:00
godoc cmd/godoc: add initial support for module mode 2019-11-07 17:57:43 +00:00
goimports cmd/goimports: reuse cached state 2019-05-20 21:49:40 +00:00
gomvpkg
gopls internal/lsp: use options hooks to install diff driver 2019-10-11 16:38:31 +00:00
gorename all: skip tests if required tools are not found 2019-08-30 15:40:57 +00:00
gotype
goyacc cmd/goyacc: put //line annotations on the first column. 2018-09-26 03:27:08 +00:00
guru all: do not write to testdata directories 2019-08-30 17:05:20 +00:00
html2article
present cmd/present: fix origin mismatch for websocket when using HTTPS 2019-10-14 20:52:21 +00:00
splitdwarf cmd/splitdwarf: fix skip on Windows 2019-05-25 14:57:41 +00:00
ssadump go/ssa/ssautil: add AllPackages method 2018-10-15 18:41:29 +00:00
stress cmd/stress: prefix logs with start date/time 2018-11-27 19:52:27 +00:00
stringer cmd/stringer: fix package godoc 2019-10-29 19:07:41 +00:00
toolstash