-
Notifications
You must be signed in to change notification settings - Fork 52
cffi fails to build on Python 3.13 #23
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
Looks like a previously private API is now public, so we probably just need to add another conditional for the new API: cffi/src/c/misc_thread_common.h Lines 334 to 340 in ba44abd
(though was it purposeful that the old macros are now missing?) |
That looks right to me. |
I'm happy if CPython introduces this kind of backward incompatibility, as opposed to more annoying ones. Someone with CPython 3.13 should submit and test a pull request. |
Yeah, as soon as cibuildwheel and PyPA's containers have 3.13 alpha support (I'm assuming within the next few weeks), this should be trivial to fix/test now that we've got proper CI testing on PRs. |
It looks like cffi's CI doesn't use it, but FWIW github action's |
Yeah, I just built it locally with pyenv to try it out- there are several other ancient private API aliases that were removed in 3.13.0a1 that also needed tending. I'll put up a WIP PR in a bit. I forgot that PyPA doesn't typically put alphas in the manylinux containers, so I might have to throw together a standalone 3.13 canary job or something, since we probably won't have the "one-liner CI additions" we need until ~ May 2024 when 3.13 hits beta. |
It looks like with 3.13-alpha2, several functions may have been re-introduced. Now the error I see is resolved by 49127c6 |
Thanks for fixing the issue! Is it possible to release this at the current stage of Python 3.13 development to enable testing with 3.13 for dependent packages? |
We likely won't start shipping pre-releases until 3.13 is in beta, and probably not a final release until 3.13.0rc1. There are just too many issues with people accidentally installing CFFI pre-releases with
requirements.txt
|
I am not sure I understand a reason for not having an actual release until CPython 3.13 is RC.
Thank you for the suggestions! |
Sadly the provided options are not enough in all cases. In https://github.com/zopefoundation/zope.index/actions/runs/7665156609/job/20890566920?pr=46 I am installing a So having an new alpha release, even if it is just an sdist, would be really helpful. |
I wish there was a way to shoehorn a modified wheel into pip's temporary build environments, but I don't think there is. It would solve the issue @icemac and I are facing. |
@icemac @domdfcoding Interesting- we rely heavily on exactly that pip wheel cache hack in our own CI for roughly the same reasons, but trying it with
That said, just specifying a constraints file that specifies the git ref that CFFI should come from worked for me for the entire chain in one shot using a clean 3.13.0a3 venv with an empty pip wheel cache, eg:
This also has the additional benefit of not relying on any undocumented behavior for the pip wheel cache- if your constraint specifies an immutable git ref (eg a specific SHA), the created Does that cover what you need? |
@nitzmahone Thank you for your guidance. It helped me to successfully build |
After some successsful runs on GitHub Actions for some other projects which have This problem is probably related to zopefoundation/meta#181. The last time it helped to have a proper release on PyPI to get rid of the error. If the wheel – which is needed to satisfy |
With 3.13's first beta out, I think it'd be a good time to look at getting this into a release. |
Yep, I've been updating the various bits to do a 3.13-supporting pre-release this week. |
This still happens to some 3.13 testing builds for aiohttp:
|
The fixes for Python 3.13 are only in cffi 1.17.0rc1 so far. Pip needs the |
The text was updated successfully, but these errors were encountered: