> I think that this is fine, but the PEP needs to be explicit. If it's a
> user option, the PEP should say "installers should allow the user to
> specify the list of compatibility tags, and the default should be
> XXX". If it's static, the PEP should say what it is.
>> Having different installers make different, incompatible assumptions,
> is unpleasant. At present, of course, the only 2 real contenders are
> the reference wheel implementation and pip. Others like
> distutils2/packaging may follow.
It might be easier to explain by defining a static list for each
version of Python and then say "and you can add previous versions to
the ordered set". Then for CPython 3.3, ignoring abi3, with pymalloc
giving the cp33m suffix, you could have only
cp33-cp33m-win32
cp33-none-win32
cp33-none-any
py33-none-any
py3-none-any
implementation - preferred abi - plat
implementation - none - plat
implementation - none - any
python major minor - none - any
python major - none - any
The rule for generating the last version's tags ignoring abi3 is that
you only keep the none-any tags:
cp32-none-any
py32-none-any
py3-none-any
appending the lists without duplicates you get
cp33-cp33m-win32
cp33-none-win32
cp33-none-any
py33-none-any
py3-none-any
cp32-none-any
py32-none-any
I'm not sure what to do with abi3 or whether to use the cp3 (major
only) implementation tag.