internal/index: format to nanoseconds for index URL. The golang index supports both: - https://index.golang.org/index?since=2019-04-10T20:30:42Z&limit=3 - https://index.golang.org/index?since=2019-04-10T20:30:42.400000Z&limit=3 And notably returns different results. That's because between the 42s mark and the 43s mark, new modules got indexed. So, at second granularity, you need your cursor's window size to be big enough to capture everything that changed in that second, or else risk missing modules OR not making progress beyond that second. The higher your precision, the less things can fit in the window, meaning that the cursor has a higher change to make progress / not lose anything. So, this change makes us use the highest precision available (second -> nano). Note that since postgres only has microsecond granularity we're actually going to be querying at microsecond granularity, but anyways, that's just a semantic detail as far as this change is concerned. We still get higher precision. (This change was inspired by our debugging cursor progress issues against our internal golang-index https://github.com/netflix-skunkworks/golang-index). Change-Id: I32d410214a104a8d694ec6edf9cba4a94c579f41 Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/803623 Reviewed-by: Carlos Amedee <carlos@golang.org> kokoro-CI: kokoro <noreply+kokoro@google.com> Reviewed-by: Ethan Lee <ethanalee@google.com> LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Ethan Lee <ethanalee@google.com>
This repository hosts the source code of the pkg.go.dev website, and pkgsite, a documentation server program.
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 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.
pkgsite provides a REST API for retrieving package and module information. Currently the API is on v1beta, but after a periodic of community feedback we will transition to v1. The API endpoints include:
/v1beta/package/{path}: Information about the package at {path}./v1beta/module/{path}: Information about the module at {path}./v1beta/versions/{path}: Versions of the module at {path}./v1beta/packages/{path}: Information about packages of the module at {path}./v1beta/search: Search results./v1beta/symbols/{path}: List of symbols for the package at {path}./v1beta/imported-by/{path}: Paths of packages importing the package at {path}./v1beta/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.
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.
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.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.