Conversation
In order to generate a wheel in accordance with PEP 425 to restrict the minimum required version of Python (3.6), the `python-tag` bdist_wheel option needs to be specified so the wheel gets tagged properly. Before: zipp-x.x.x-py3-none-any.whl After: zipp-x.x.x-py36-none-any.whl Signed-off-by: Vincent Fazio <vfazio@xes-inc.com>
|
I don't think this recommendation is correct. My quick reading of PEP 425 tells me that py36 means "works on Python 3.6 only". In particular, the FAQ mentions using The main place where the required python version is declared in the package metadata (Requires-Python) and not in the build name. To accept something like this, I'll need much more information, and in particular a demonstration that this change is correct and does what's intended. If you can do that, I'd rather see the change submitted upstream at jaraco/skeleton. |
|
That's not actually how it works. It's a ranked system... if the interpreter supports that version syntax, it will be allowed to install a wheel marked py37 will not install in a python 3.6 environment. a wheel marked py35 will. specifying py3 says you support all python 3 minor versions. that is not the case for this package based on the requirements |
|
Note that this is documented here: https://www.python.org/dev/peps/pep-0425/#id14 though it doesn't directly describe the situation that a tag for a higher version is rejected. since the version of tuples supported is based on the version of python running, the greatest version allowed will be py{major}{minor} as it has no concept of py{major}{minor+1}. This explains why a py37 or py38 tag cannot install in a Python 3.6.x environment |
|
Yes, I see that.
It's annoying that the build tools are leaving it to the user to manually declare these values. I'll file an issue with the wheel project to possibly default to a python tag that reflects the python_requires directive and I'll port this commit to the jaraco/skeleton project so it can affect all the projects. |
|
I've rebased your commit onto jaraco/skeleton@0b681b0, which should be merged in here shortly. |
* Replace pep517.build with build Resolves #30 * Prefer simple usage Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
* Use `extend-ignore` in flake8 config This option allows to add extra ignored rules to the default list instead of replacing it. The default exclusions are: E121, E123, E126, E226, E24, E704, W503 and W504. Fixes #28. Refs: * https://github.com/pypa/setuptools/pull/2486/files#r541943356 * https://flake8.pycqa.org/en/latest/user/options.html#cmdoption-flake8-extend-ignore * https://flake8.pycqa.org/en/latest/user/options.html#cmdoption-flake8-ignore * Enable complexity limit. Fixes jaraco/skeleton#34. * Replace pep517.build with build (#37) * Replace pep517.build with build Resolves #30 * Prefer simple usage Co-authored-by: Jason R. Coombs <jaraco@jaraco.com> * Use license_files instead of license_file in meta (#35) Singular `license_file` is deprecated since wheel v0.32.0. Refs: * https://wheel.readthedocs.io/en/stable/news.html * https://wheel.readthedocs.io/en/stable/user_guide.html#including-license-files-in-the-generated-wheel-file Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
In order to generate a wheel in accordance with PEP 425 to restrict the
minimum required version of Python (3.6), the
python-tagbdist_wheeloption needs to be specified so the wheel gets tagged properly.
Before:
zipp-x.x.x-py3-none-any.whl
After:
zipp-x.x.x-py36-none-any.whl
Signed-off-by: Vincent Fazio vfazio@xes-inc.com
closes #36