Description
We'll be redesigning pkg.go.dev based on feedback received over the last year. This is the third in a series of issues about plans for the pkgsite/design-2020 milestone. Comment below with any feedback or suggestions related to this issue!
Overview
There are multiple ways in which “latest” can be defined for a path. In order to better express various relationships, we will use the following terms:
- Series: 1 or more modules that are major versions of each other
- Example: rsc.io/quote, rsc.io/quote/v2, rsc.io/quote/v3 are part of the same module series
- Project: 1 or more modules that share the same path prefix
- Example: golang.org/x/tools and golang.org/x/tools/gopls are considered to be part of the same project
- Latest minor version: the latest minor version of a module containing a path, according to the cmd/go definition. This is also referred to as the “latest” or “@latest” version.
- Latest major version: the latest major version in a module series.
- If the latest major version does not have any tagged versions, but an earlier version does, pkg.go.dev will default to the earlier version as the “latest” major version.
Design
Pkg.go.dev will continue to use the following:
- A “Latest” badge to indicate whether a user is viewing the latest minor version
- A banner to indicate when a user is not viewing the latest major version
Note: This image is a mock, so the data may not accurately represent the exact contents of this package.
We plan to also use the banner style to indicate other information related to surfacing the “latest” version, such as when a path is not present in the latest version of the module.
If a path exists in the latest version of a module, pkg.go.dev/<path> will always show the contents for the latest version of the containing module.
Related Issues
- x/pkgsite: flag packages that are no longer present in the latest version of the containing module #37631: flag packages that are no longer present in the latest version of the containing module
- x/pkgsite: /<path> should show the contents for the latest version of the containing module #39244: </ should show the contents for the latest version of the containing module
- x/pkgsite: multi-module projects have confusing versions #41032: multi-module projects have confusing versions
- x/pkgsite: latest version should not be +incompatible #37714: latest version should not be +incompatible
- x/pkgsite: don't imply that vN.x.y is the latest version when vN+1 exists #37765: don't imply that vN.x.y is the latest version when vN+1 exists (also discussed in proposal: cmd/go: notify about newer major versions #40323)
- x/pkgsite: new major version not surfaced when it does not yet have a release tag #41345: new major version not surfaced when it does not yet have a release tag
- x/pkgsite: no updates when a directory is changed to a module #43166: no updates when a directory is changed to a module