Misfeature: universal wheel filename has "-py2.py3" even with `requires-python=">=3"`
dbarnett opened this issue · 6 comments
Is it intentional that there's a "py2" in universal wheel filenames that the build builder creates?
For instance, if I clone https://github.com/insanum/gcalcli/tree/4dabc51664aad65db282668769e85db83a057bb5 and run python -m build
it outputs a file dist/gcalcli-4.4.0-py2.py3-none-any.whl, where the "py2" is misleading because it explicitly does not support EOL python 2.
build is a unified front end for build systems. The wheel is generated by your build system, in this case setuptools. Please open a ticket on the setuptools tracker.
For setuptools, “universal” means py2.py3. You should remove the “universal” setting. It’s no longer needed or helpful.
Ah thanks, in that case maybe the real misfeature is that nothing warns when you combine tool.distutils.bdist_wheel.universal = true
with project.requires-python = ">= 3"
.
The setuptools docs say to use it "If your project contains no C extensions and is expected to work on both Python 2 and 3", which to me sounded more like a general expectation that it's compatible with different configurations vs. an endorsement that it supports python <3.
Indeed, so it might be worth bringing it up with setutpools if nobody has already.
Indeed, so it might be worth bringing it up with setutpools if nobody has already.
Done: pypa/setuptools#4613
expected to work on both Python 2
If your project doesn't meet the requirements (no Python 2 support), why would you set this option? You don't need to tell setuptools your package doesn't contain C extensions, it knows that already. This was only added as a way to tell Python 2+3 packages long before requires-python was a thing.