[Distutils] Idea: Using Trove classifiers for platform compatibility warnings

Thomas Kluyver thomas at kluyver.me.uk
Mon Apr 24 11:27:24 EDT 2017

On Sat, Apr 8, 2017, at 03:17 AM, Nick Coghlan wrote:
> 2. At least one "Programming Language :: Python" tag is set, but the
> tags don't include any that cover the *current* Python version

We've just enabled setuptools, PyPI and pip to use the python-requires
metadata field, so that (for instance), IPython 6.0 was uploaded with
python-requires: >=3.3 . Pip 9 respects that, so users running 'pip
install ipython' on Python 2.7 will get the latest IPython 5.x release.

So we have a relatively elegant way to tell pip about supported Python
versions - although it's designed for the use case "this won't work on
X.Y, so don't even try to install it", rather than "this isn't
explicitly marked as supporting X.Y, but it might work anyway."

Personally I try to avoid the 'Python :: X.Y' classifiers because I
don't want to be updating a dozen packages every time a new Python comes
out. I've used the 'Python :: 2'/'Python :: 3' classifiers before - but
even those could cause a lot of inaccurate metadata if Python 4 happens
and is mostly compatible with Python 3.


More information about the Distutils-SIG mailing list