1
0
mirror of https://github.com/golang/go synced 2024-11-18 12:44:49 -07:00
go/cmd/godoc
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
..
blog.go cmd/godoc: redirect to https instead of http for blog.golang.org 2018-08-22 02:22:54 +00:00
codewalk.go all: replace reference to plan9.bell-labs.com with 9p.io 2019-08-26 06:06:29 +00:00
dl.go cmd/godoc: remove golang.org serving code 2019-02-20 19:02:57 +00:00
doc.go cmd/godoc: re-add documentation for flat presentation mode 2019-02-19 03:57:21 +00:00
godoc_test.go cmd/godoc: add initial support for module mode 2019-11-07 17:57:43 +00:00
goroot.go cmd/godoc: update findGOROOT 2019-10-07 18:40:23 +00:00
handlers.go godoc/env: replace with golangorgenv 2019-03-07 16:39:06 +00:00
index.go cmd/godoc: exclude /pkg from search indexing 2015-03-12 00:26:38 +00:00
main.go cmd/godoc: add initial support for module mode 2019-11-07 17:57:43 +00:00
play.go cmd/godoc: remove golang.org serving code 2019-02-20 19:02:57 +00:00