-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cffi fails to build on Python 3.13 #23
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: