-
-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Python 3.12: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’ #7229
Comments
With the ABI changes we always have to wait for Cython to pick up those. This is why we don't even test against CPython alphas. There's usually nothing we can do but wait. So I'd expect this to be ignored until at least betas. |
Some good news, there's a beta of Cython 3 which has fixed it. For example:
So hopefully not too long to wait 🤞 |
Looks like we need to do this here too: aio-libs/frozenlist#436 |
I've updated the tests for 3.12. There are still a few issues to get it working though. If anybody would like to help getting the tests passing for 3.12, then we'll be able to include support in the next release. |
@Dreamsorcerer Would it be possible to backport #7400 to |
The only reason 3.8 got a new patch release was a security vulnerability. If you manage to demonstrate us another one, then we'll, talk. Unless 3.9 is out by that time. |
I mean, backports to that branch could be done but there's next to zero chance that another 3.8 stream release will ever be cut. I'd rather focus on getting 3.9.0 published instead.. |
Yep, I'd like to push a beta 3.9 release next week. So, if we can get Python 3.12 working in the next few days, then we can have it working with that release. Python 3.12 is still a couple of months from full release, so I don't see any reason to focus on adding support to the 3.8 release (the mentioned PR also has no user-facing impact anyway). I'm currently trying to push through the backlog of Dependabot PRs, in case any outdated dependencies are causing issues with 3.12. |
For the record, to the best of my knowledge the only thing that's really "blocking" py3.12 in 3.8.5 is regenerating the C sources with a newer version of Cython. For the time being, I'm going to just pass |
Because of aio-libs/aiohttp/issues/7229 the full pip install test is expected to fail on `rawhide` until the issue is fixed. Move test code from the plan to a real test to enable the adjust rule.
The second and final 3.12 release candidate is due out today, and the full 3.12.0 release is due out in less than one month: 2023-10-02. It would be great to get this released so everyone who depends on aiohttp has some time to test their code before 3.12.0 is out. We might find some bugs in our code, and we might even find bugs in CPython, and it'd be much better for those to be fixed before 3.12.0 final. Thank you! |
Why is this closed? I am getting similar error from latestly build python3.12 and running |
@neomachiney have you tried #7229 (comment)? |
This issue is closed because support for Python 3.12 has been added on The suggestion above will let you install the currently release of Edit: since I'm causing a notification on this thread already, I might as well add my +1 to the suggestion for a release that includes 3.12 support ahead of the official Python release. |
Thanks for the good work! Happy to test this in my existing projects and feed back the results. Where do I find the instructions to build from source? It looks like there are a few build dependencies I haven't yet been able to find the documentation for. |
You can take a look at the contributing docs although those could probably be a bit better. - name: Build aiohttp wheel
env:
AIOHTTP_COMMIT: <commit>
run: |
python -m venv venv-aiohttp
. venv-aiohttp/bin/activate
git clone --recurse-submodules https://github.com/aio-libs/aiohttp.git && cd aiohttp
git checkout ${{ env.AIOHTTP_COMMIT }}
cd vendor/llhttp/ && npm install && make && cd ../..
make cythonize
pip install build
python -m build
cd ..
ls -l aiohttp/dist
cp -r aiohttp/dist .
rm -rf aiohttp Replace When doing the build in a docker container, you might need to run |
@SnoopJ it fails even on using something like |
This invocation does work for projects whose entire build process can be invoked by |
Folks, what's the deal with not making a release including these changes? Those of us using aiohttp and attempting to support 3.12 ahead of its release are kind of in a pickle as a result of not having one. EDIT: I found #7639, nevermind. |
Python 3.12 does not work with current aiohttp, see aio-libs/aiohttp#7229 It is currently possible to build a wheel using aiohttp==3.9.0b0. However, unit tests fail in that case, because TestLNTransport::test_loop stalls.
How would you do this on windows? |
Just install 3.9.0b0? It's already built from that branch. |
CI build failures due to aio-libs/aiohttp#7229 - a new aiohttp release is needed, see aio-libs/aiohttp#7639
Describe the bug
We're using aiohttp in https://github.com/python/blurb_it and are testing against
3.12-dev
on GitHub Actions to help find problems early so they can be fixed before the full release.With Python 3.12.0a4, yarl-1.8.2.tar.gz installed fine.
With the newest Python 3.12.0a5, yarl-1.8.2.tar.gz fails to install. Reproducible on Ubuntu and macOS. For example:
Looks like this is the cause: python/cpython#101292 / python/cpython#101291
The log also shows similar errors in aiohttp's dependencies yarl (reported at aio-libs/yarl#829) and frozenlist (aio-libs/frozenlist#433).
Here's a similar report for Cython: cython/cython#5238
To Reproduce
python3.12 -m pip install aiohttp
Expected behavior
aiohttp installs.
Logs/tracebacks
Python Version
aiohttp Version
multidict Version
yarl Version
OS
Ubuntu 22.04
macOS Ventura 13.2.1
Related component
Server, Client
Additional context
https://github.com/hugovk/blurb_it/actions/runs/4301170729 shows alpha 4 passing and alpha 5 failing.
Code of Conduct
The text was updated successfully, but these errors were encountered: