Skip to content

Python-requires directive is misguided

In !101 (closed), I learned that the python-requires directive in this project isn't adequately configured. It uses !=3.4 when what it means is !=3.4.*. It's a nice foot-gun in our packaging ecosystem, one which I've encountered in the past.

Now I'm stuck in the most awful position of having released a 1.1 (and 1.1.1) declaring "backward-compatibility", but being incompatible with versions of Python that even the latest version of pip will pull.

$ python3.4 -m pip-run importlib_metadata                                                                                                                           
DEPRECATION: Python 3.4 support has been deprecated. pip 19.1 will be the last one supporting it. Please upgrade your Python as Python 3.4 won't be maintained after March 2019 (cf PEP 429).
Collecting importlib_metadata
  Downloading https://files.pythonhosted.org/packages/37/d6/ca74c8b836e9bc535e9a8b6d8600bb324b522a63cf44a8b09af7fdf08ba2/importlib_metadata-1.1.1-py2.py3-none-any.whl
Collecting zipp>=0.5 (from importlib_metadata)
  Using cached https://files.pythonhosted.org/packages/74/3d/1ee25a26411ba0401b43c6376d2316a71addcc72ef8690b101b4ea56d76a/zipp-0.6.0-py2.py3-none-any.whl
Collecting more-itertools (from zipp>=0.5->importlib_metadata)
  Using cached https://files.pythonhosted.org/packages/45/dc/3241eef99eb45f1def35cf93af35d1cf9ef4c0991792583b8f33ea41b092/more_itertools-7.2.0-py3-none-any.whl
Installing collected packages: more-itertools, zipp, importlib-metadata
Successfully installed importlib-metadata-1.1.1 more-itertools-7.2.0 zipp-0.6.0

What's worse is that there's no way to fix this issue, short of deleting the public releases of 1.1 and 1.1.1, which brings its own issues.