-
-
Notifications
You must be signed in to change notification settings - Fork 307
Description
Pex 2.1.0 from Dec 28, 2019 was the 1st Pex PyPI release to use Requires-Python metadata and it included an upper bound from the get-go; namely >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,<3.9. The discussion in https://discuss.python.org/t/requires-python-upper-limits/12663 points out the problems of not always using upper bounds - namely a resolver might backtrack past all versions that do specify an upper bound to arrive at a very old version with none and use that, which is almost surely the wrong answer. Since Python insists on breaking stdlib APIs Pex relies on often enough, I do not wish to abandon upper bounds while Pex is still in active maintenance mode. That said, the backtracking problem is real; so one way to fix it would be to yank all Pex versions older than 2.1.0 (2.0.3 and older). Yanking is specified in https://peps.python.org/pep-0592/ and appears to fit the bill well here. Anyone pinning to Pex 2.0.3 or older still gets that version, but, otherwise, they get newer Pex. Since Pex never breaks backwards compatibility - this works.