internal/datasource: factor out getModule

Move the getModule method into the shared implementation.

Move the proxy client into the shared implementation, and set it to
nil for the local proxy.

Remove the lock around getModule. As the comment explains, the
resulting race is benign, and we gain the benefit of allowing multiple
goroutines to look up modules concurrently.

Remove the BuildContext arg to getModule. It's not appropriate there,
since getModule's job is to deliver all the information about a module.
We'll re-introduce it (and use it properly) later.

For golang/go#47780

Change-Id: I3e9440c0d6c1b24f7a190a516c9efac1ec0f05bd
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/344949
Trust: Jonathan Amsterdam <jba@google.com>
Run-TryBot: Jonathan Amsterdam <jba@google.com>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jamal Carvalho <jamal@golang.org>
5 files changed
tree: 4905416d5b07b1e9cfde431714a45a75f41908db
  1. cmd/
  2. devtools/
  3. doc/
  4. internal/
  5. migrations/
  6. static/
  7. tests/
  8. third_party/
  9. .dockerignore
  10. .eslintignore
  11. .eslintrc.yaml
  12. .gitignore
  13. .prettierignore
  14. .prettierrc.yaml
  15. .stylelintignore
  16. .stylelintrc.yaml
  17. all.bash
  18. cloudbuild.yaml
  19. CONTRIBUTING.md
  20. go.mod
  21. go.sum
  22. jest.config.js
  23. LICENSE
  24. package-lock.json
  25. package.json
  26. PATENTS
  27. README.md
  28. tsconfig.json
README.md

Pkg.go.dev

Go Reference

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.

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 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