Ok, the 1st issue is a big one, distutils is gone. The issue here is the bootstrap vendored Pip and setuptools use distutils extensively. So adding 3.12 means ditching 2.7, 3.5 and 3.6 since modern Pip and setuptools (and wheel) require Python >=3.7. It was my stated intention to cut Pex 3.0.0 this year; so it looks like Python 3.12 is the forcing function. It would be good to get Pex testing 3.12 at the beta 1 feature freeze in a few weeks; so I think I need to formalize a Pex 3.x plan here this week.