Next stage of my review (again, apologies this is coming in small chunks over an extended period - real life concerns are limiting my available time). I’ve now read through the whole PEP, so this should cover any significant questions from the PEP text itself. I still have to read the discussions on DPO - wish me luck! 
For clarity, I won’t be reviewing discussions anywhere other than DPO - if there’s any important comments elsewhere, people should copy them here ASAP.
Index metadata
The location of the index level metadata is described as follows:
The exact URL where the file is hosted is insignificant, but a link to it MUST be present on all index pages where the variant wheels are linked.
This isn’t at all clear to me. If I’m looking at the JSON based index format for a project X, how do I find the URL for the X version 1.0 variants file, x-1.0-variants.json? The text “a link to it MUST be present on all index pages where the variant wheels are linked” doesn’t give any indication of how that would be done.
The quoted text seems to have been written on the assumption that the HTML index would be used, but even then it’s not sufficiently well specified. For example, is the variant file allowed to be yanked? The spec (which says “a repository MAY include a data-yanked attribute on a file link”) would imply yes - because this is a file link. Similarly, all of the other attributes allowed for file links are technically valid on a variant file (although apart from yanking, they are pretty clearly pointless or inappropriate, and so unlikely to be a problem).
Variant indexes MAY elect to either auto-generate the file from the uploaded variant wheels or allow the user to manually generate it themselves and upload it to the index.
While it’s clearly intended, the PEP doesn’t explicitly note that indexes which do not auto-generate the variant index MUST block uploads of wheels that use variants not in the index, and MUST block changes to the index which remove variants that are still in use by wheels in the index.
As an example, I can imagine a simple index proxy which presents PyPI to the user, but allows supplementing it with extra wheels held locally, could be caught out by this requirement.
Acceptance process
As a heads up, I intend for this PEP to be provisionally accepted. In general, I’m reluctant to use provisional acceptance as a tool - it’s caused problems in the past - but in this case the PEP is basically useless without follow-up PEPs that define uses for the variant system. Therefore, a key requirement will be to have a process by which we can reject the variant format after the fact, if we are unable to agree on any follow-up PEPs. Provisional acceptance gives us that.
One particular concern here is the same issue that caused PEP 708 to get rejected. In order to be of use, the variant mechanism needs to be commonly available (i.e., not limited solely to PyPI). We can’t expect key packages like scipy or pytorch to adopt variants if that locks them into only being served from PyPI. And more importantly, we can’t expect users to accept such a lock-in. Specifically, commercial providers like Gitlab, Azure, and Artifactory need to be considered, as well as mirroring solutions like devpi. And another issue that came up in the PEP 708 rejection discussions - many users rely on the ability to serve a YOLO local index by downloading packages from PyPI and serving them with python -m http.server. If (for example) key wheels like numpy/scipy and pytorch started using variants, that strategy would no longer work (as the necessary wheel variant files would be missing). The PEP needs to address this issue.
While I acknowledge that this PEP is solely about the package format, I would like to see a document somewhere that walked through the process of implementing a trivial variant - essentially a sort of “Hello, world” example. In order to avoid needing to address the complexities of platform detection, I’m thinking of something like a variant that is only compatible if the install is being done on a Tuesday. That’s not a requirement of this PEP, but it should be available after this PEP is accepted, and before work starts on any of the follow-up PEPs, to demonstrate how the mechanism as a whole works.
Variant ordering
The “variant ordering” section (step 4) says “For every compatible variant”. This confused the heck out of me, as the PEP doesn’t define what the unqualified term “variant” means. Is it “variant namespace”? Or “variant wheel”? Or something else? The algorithm should be updated to carefully avoid using undefined terms (or alternatively, the PEP should formally define what an unqualified term “variant” means, and use it consistently in the text).
As a more general point, I find it very hard to get an intuitive “feel” for the ordering algorithm from the algorithm description here. Having some examples would be beneficial, IMO (especially examples that illustrate any corner cases that exist).
Lock files
Do we have any explicit feedback from lock file users on the way the PEP interacts with lockfiles? I’m concerned that the installation process for lockfiles was explicitly designed to be a single-pass mechanism with no resolution or other complex logic needed. The requirement to resolve variants seems contrary to that design. I know the PEP says tools SHOULD resolve variants, but it doesn’t say what they can do if they don’t resolve variants 
The pylock.toml includes a (non-normative) section describing how to install from a lockfile. PEP 825 should probably describe precisely how that section of the spec would change when variants are present.
The use case of auditing a lock file to establish what files will be installed should be considered - variants have the potential to significantly complicate that process (especially if variant compatibility involves an arbitrarily complex detection process that isn’t transparent to the auditor).
Installing
I’m assuming that for installation from a set of local wheels (pip’s --find-links option), something like the “installing from a package index” logic should be used, but with the variant data being read from the wheels themselves.
Has any consideration been given to installing from multiple sources? For example, via --extra-index-url, or having --find-links for some wheels, with the rest coming from PyPI? Will installers have to implement some sort of variant properties file merging process to support this? Has that mechanism been prototyped anywhere?