I recently stumbled across this thread about the python tag part of PEP 425. As a result of that conversation, I learned that python tags in the form
py3x indicate compatibility with at least Python 2.x or 3.x, respectively.
This got me thinking whether a simple
>= 3.4 should be reflected with a
py34 tag in the built wheel.
PEP 425 does seem to address this:
What tag do I use if my distribution uses a feature exclusive to the newest version of Python?
Compatibility tags aid installers in selecting the most compatible build of a single version of a distribution. For example, when there is no Python 3.3 compatible build of
beaglevote-1.2.0(it uses a Python 3.4 exclusive feature) it may still use the
py3-none-anytag instead of the
py34-none-anytag. A Python 3.3 user must combine other qualifiers, such as a requirement for the older release
beaglevote-1.1.0that does not use the new feature, to get a compatible build.
Why wouldn’t I want to use the more specific
py34 tag though? Wouldn’t it make sense to use the more specific tag so installers don’t even bother downloading a potentially incompatible wheel?