x/pkgsite: don't imply that vN.x.y is the latest version when vN+1 exists #37765
What is the URL of the page with the issue?
For example: https://pkg.go.dev/github.com/cespare/xxhash?tab=doc
What is your user agent?
What did you do?
Viewed the v1 documentation for a module that also has a v2.
What did you expect to see?
No v1 version of my module should be marked as "Latest" since v2 exists.
What did you see instead?
v1.1.0 was marked as "Latest".
I understand that v1 and v2 are essentially two different modules, and that the discovery site is showing that v1.1.0 is the latest version of the v1 module. However, this may mislead users into thinking that v1.1.0 is somehow up-to-date. I do not want new users of my module to use v1.1.0; I want them to use the real latest version of the module which is v2.1.1 at the moment.
Ideally, when viewing v1.1.0, the users would see on the page that v2 exists and is the latest major module version. There ought to be a link to quickly go to the latest version, just as there is a red "Go to latest" link when viewing the not-latest-minor-version page (example):
This is related to #36969, where the search ranking also pushes users toward using the old major version of my module.
Right now it seems that the discovery site has very little notion of the relationship between different major versions of the same module. Please consider how to make this site more friendly for maintainers of v2+ modules.
The text was updated successfully, but these errors were encountered:
I think there are two different notions of “latest” at play here.
One is “what is the latest implementation of this API?”, and for that notion,
The other is “what is the latest variant of this API that addresses the same general use-cases?”, and that notion is better answered by
It may be worthwhile to surface both of those answers in some fashion.
This change completes the GetLatestMajorVersion function in the DataSource interface that retrieves the latest major version of a module path by adding the implementation for the postgres package. Updates golang/go#37765 Change-Id: I48eadab8b71ffe73cec49f5c8bcd4f48f13b490d Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/250937 Reviewed-by: Julie Qiu <email@example.com> Reviewed-by: Jonathan Amsterdam <firstname.lastname@example.org> Run-TryBot: Julie Qiu <email@example.com> TryBot-Result: kokoro <firstname.lastname@example.org>
With the inclusion of the latest major version function, this commit changes current "latestversion" naming to "latestminorversion" in the latestversion middleware to specify the difference between both functions. Updates golang/go#37765 Change-Id: I1c4d8edf6ac30431ef1278abaa334d96cd459258 Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/251083 Reviewed-by: Julie Qiu <email@example.com> Run-TryBot: Julie Qiu <firstname.lastname@example.org> TryBot-Result: kokoro <email@example.com>
This change creates a function in the DataSource interface that retrieves the latest major version of a module path. This includes a function in the proxydatasource package. Updates golang/go#37765 Change-Id: I29505c1d7df51dd9bef8228e73bbedeea9771347 Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/250797 Reviewed-by: Julie Qiu <firstname.lastname@example.org> Run-TryBot: Julie Qiu <email@example.com>
This change introduces a middleware function for the new GetLatestMajorVersion function. We also rename the function name to LatestVersions to clarify the scope better. The latest major version value is generated and writen into new placeholder values that is prepared for the upcoming HTML changes. Updates golang/go#37765 Change-Id: I1f3b19a4e2cfb290000f756e8548670cbfd4033d Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/251157 Reviewed-by: Jonathan Amsterdam <firstname.lastname@example.org>
Thanks! We had it as the module path at first but we didn't want users thinking they would redirect to github.com/...
I agree with @myitcv -- it seems better to phrase this in terms of actual module names.
The fact that package/module names look an awful lot like github.com/[other hosting provider] URLs is just one of those things that Go users have to get used to. I attached a few examples at the bottom where module names are links within pkg.go.dev already.
But it also seems to me that the message could simply be:
That draws attention to the major version number, which is the important part of the message.