Revert "cmd/internal/doc: allow reading packages from module cache"

This reverts CL 815900 (commit b687f4531903f3d3f9f772535500ac084d4dde60).

Reason for revert: it broke `go doc -http` and `go doc -http
<stdlib_package>`

pkgsite.BuildServer sets Paths to ["."] only when len(Paths) == 0 &&
!UseCache && Proxy == nil. The doc command sends no Paths of its own,
so UseCache cancelled that default. No local getter was built, which
means packages in the local workspace don't load either.

UseCache also put a module cache getter ahead of the stdlib getter.
Since stdlib packages are not likely in the module cache, and even when
they do, they are under a specially named module, the module cache
getter faces module.EscapePath(<package>) failure and that results
in HTTP 500. `go doc -http errors` or `go doc -http` outside a module
that opens /std fails.

The reverted CL did not achieve what it set out to do either. The go
command drops the version when it builds the URL for the documentation
server, so "go doc -http pkg@v1.4.0" opens /pkg and the server shows the
newest version in the cache, not the intended version. Fixing that
needs a change in cmd/go.

For golang/go#78459

Change-Id: I122ddf08dbd1f50b46397c97edc49e086a6a6964
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/831604
Reviewed-by: Sean Liao <sean@liao.dev>
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
kokoro-CI: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
1 file changed
tree: 9010f482972e72ac9496ea34f3a931bbcc3367c2
  1. cmd/
  2. deploy/
  3. devtools/
  4. doc/
  5. internal/
  6. migrations/
  7. static/
  8. tests/
  9. third_party/
  10. .dockerignore
  11. .gitignore
  12. .prettierignore
  13. .prettierrc.yaml
  14. .stylelintignore
  15. .stylelintrc.yaml
  16. all.bash
  17. codereview.cfg
  18. CONTRIBUTING.md
  19. db-schema.sql
  20. eslint.config.js
  21. go.mod
  22. go.sum
  23. integration_test.go
  24. jest.config.js
  25. LICENSE
  26. package-lock.json
  27. package.json
  28. PATENTS
  29. README.md
  30. tsconfig.json
README.md

golang.org/x/pkgsite

This repository hosts the source code of the pkg.go.dev website, and pkgsite, a documentation server program.

Go Reference

pkg.go.dev: a site for discovering Go packages

Pkg.go.dev is a website for discovering and evaluating Go packages and modules.

You can check it out at https://pkg.go.dev.

pkgsite: a documentation server

pkgsite program extracts and generates documentation for Go projects.

Example usage:

$ go install golang.org/x/pkgsite/cmd/pkgsite@latest
$ cd myproject
$ pkgsite -open .

For more information, see the pkgsite documentation.

API

pkgsite provides a REST API for retrieving package and module information. The API endpoints include:

  • /v1/package/{path}: Information about the package at {path}.
  • /v1/module/{path}: Information about the module at {path}.
  • /v1/versions/{path}: Versions of the module at {path}.
  • /v1/packages/{path}: Information about packages of the module at {path}.
  • /v1/search: Search results.
  • /v1/symbols/{path}: List of symbols for the package at {path}.
  • /v1/imported-by/{path}: Paths of packages importing the package at {path}.
  • /v1/vulns/{path}: Vulnerabilities of the module at {path}.

For detailed documentation of parameters and response schemas, see the documentation page served at /api, or refer directly to the annotated source code in internal/api/api.go.

Issues

If you want to report a bug or have a feature suggestion, please first check the known issues to see if your issue is already being discussed. If an issue does not already exist, feel free to file an issue.

For answers to frequently asked questions, see pkg.go.dev/about.

You can also chat with us on the #pkgsite Slack channel on the Gophers Slack.

Contributing

We would love your help!

Our canonical Git repository is located at go.googlesource.com/pkgsite. There is a mirror of the repository at github.com/golang/pkgsite.

To contribute, please read our contributing guide.

License

Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.

Links