Open bastimeyer opened 4 months ago
Tag validation is handled by a vendored copy of the packaging
library. If there's a tag validation issue, please open an issue there. I will update the vendored copy when there's a fixed upstream release.
This isn't a packaging
issue, because if I remove the option from pycryptodome
's setup.cfg
, then a cp313t
wheel is built just fine.
Please re-read what I posted and see the linked lines of code above which explain the issue.
This is not supposed to be an abi3
wheel. abi3
is incompatible with no-GIL builds (t
):
Apologies. But if this concerns bdist_wheel
, then I must redirect you to the setuptools
project which is now the canonical location of that command.
The way I handle this in scikit-build-core is that if abi3
isn't supported, it is ignored instead and a regular build is created. This is true for free-threading, or if the target version is higher than the current version of Python. (And yes, pypa/setuptools is where all this lives now)
Ok, I see, this was vendored in setuptools
but hasn't made it into a new release just yet (current one is 70.0.0
):
https://github.com/pypa/setuptools/commit/b3d3e93a834426f1bef8712e1405495084eb3b7f
However, this should be fixed here too IMO, because there probably are projects which set a specific version of setuptools
or which limit the max version, which means they won't get any fixes without the wheel
package.
Going to open another issue on the setuptools issue tracker now...
If they have a problem, then they would need to bump the setuptools
version. This is perfectly reasonable if someone expects to get new features working with their build system.
I ran into this issue while trying to build a
pycryptodome
wheel on CPython3.13t
. See https://github.com/Legrandin/pycryptodome/issues/813The
pycryptodome
project sets thepy-limited-api
option tocp35
in order to limit itsabi3
wheels tocp35
and above.However, when using CPython
3.13t
(built without global interpreter lock - PEP 703), this option raises anAssertionError
when trying to build the wheel.The reason for this is this if-else-block: https://github.com/pypa/wheel/blob/0.43.0/src/wheel/bdist_wheel.py#L344-L348
Building CPython 3.13 without the GIL adds the
t
ABI flag, so the(impl_name + impl_ver).startswith("cp3")
check is incorrect where it setsabi_tag = "abi3"
if the condition is true. TheAssertionError
is then raised afterwards when it checks for supported tags: https://github.com/pypa/wheel/blob/0.43.0/src/wheel/bdist_wheel.py#L349-L356