does it make sense for pex to support Python 3.12?...
# general
a
does it make sense for pex to support Python 3.12? I use pex to create nice reproducible virtual environments for tests from lockfiles and right now I cannot test Python 3.12 because pex itself does not support it. It's not a blocker for me but maybe it would be feasible to add support when the first beta comes out?
e
Yes. I have not looked into CI, but that's the only gate. I got 3.11 CI setup ~the 1st rc for that but would be happy to start testing 3.12 earlier. @ancient-breakfast-45303 if you want to move that along you're welcome to.
Looks like it's trivial - the python-setup action has pre-builts for the runners Pex uses: https://github.com/actions/python-versions/releases/tag/3.12.0-alpha.7-4618531320
There are already alot of shards. I'd just want to introduce {1 unit test, 1 it} x {1 mac, 1 linux} using the vendored Pip. to limit the blow-up to +4 shards.
Actually ditching mac since those are slower / rarer should be fine. The issue will just be to smoke out things like importlib importer changes for the vendor system, etc and 1 OS is enough for that.
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.
👍 1