Thank you Dustin for starting the discussion on this. And I a m sorry for joining the discussion very late.
One other idea I would like to float for consideration for “perennial manylinux” is, moving the ABI and other requirements from the package name to a “metadata” file. From TensorFlow or a similar library’s point of view, there are more requirements we may want to specify. Therefore, packing all of these into the name can be difficult. What I had in mind is for a certain “tag”, pip will check this metadata files, which stores key-value pairs that are requirements for the pip package. From what I can see, we can pack much more information into such a file, and resort to as little heuristics as possible.
I can certainly see a few potential issues around this. One is, we need to be able to generate the key-value pairs to be used in a deterministic way on many different systems. And how to introduce new keys to be used in this metadata file can be difficult to control. Another issue I see is, it may require a lot of changes in current tooling to land such a change.
While we were discussing within TensorFlow, we realized that a perennial manylinux tag can be a quite open-ended discussion. Diversity of the Linux distributions make this a quite difficult problem. That is why we wanted to propose manylinux2014 as a quick stop gap solution to address immediate issues, as we thought addressing the perennial manylinux question until CentOS 6 is EOL may be difficult.