Closed
Description
Pkgsite needs to track three kinds of latest versions for each module:
- The raw latest version (see x/pkgsite: handle raw latest versions #44437)—determines retractions and deprecations;
- The cooked latest version, which is the raw one after applying retractions—what
go get
will download; - The good latest version, which is the latest version that pkg.go.dev has useful information for.
We will have a single table, module_latest_versions
, to track all of these. The table will be updated by the worker each time a module (at any version) is processed. It will be consulted by GetUnitMeta and other DataSource methods that require the latest version of a module.
Usually all three kinds of latest version will be the same, but sometimes they will differ. Pkgsite will always show the good latest version when the URL is unversioned (that is, it does not contain "@version"). If the cooked latest version differs, the page will say so.