-
Notifications
You must be signed in to change notification settings - Fork 68
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
Build Python 3.13 wheels (not free-threaded) #711
base: main
Are you sure you want to change the base?
Conversation
9dbeea3
to
dfca216
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is ready for an initial review.
Mostly followed advice from
@@ -127,6 +127,7 @@ def get_class_annotations(obj): | |||
value = type(None) | |||
elif isinstance(value, str): | |||
value = _forward_ref(value) | |||
# TODO: Pass `type_params` to `_eval_type` to fix deprecation warning |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This missing parameter is causing a ton of warnings like this:
msgspec/_utils.py:130: DeprecationWarning: Failing to pass a value to the 'type_params' parameter of 'typing._eval_type' is deprecated, as it leads to incorrect behaviour when calling typing._eval_type on a stringified annotation that references a PEP 695 type parameter. It will be disallowed in Python 3.15.
FWIW I think this is hiding an actual error:
in Lines 790 to 793 in 2c37da0
|
macos-11 runners aren't available anymore, so I updated it to macos-14 in 748f4bb. |
With that change, the wheels are finally built instead of the workflow getting stuck forever:
https://github.com/edgarrmondragon/msgspec/actions/runs/10030128227/job/27719084757 |
I can also get msgspec to build with py313 with this branch, but not the branch in #703 |
@jcrist This is ready for review at your convenience :) |
Updated to use Python 3.13.0rc1 |
1aff991
to
8f03317
Compare
Updated to use Python 3.13.0rc2 |
@jcrist Can you please run the CI? |
Python 3.13 release is scheduled for then upcoming Monday. Are there any plans to merge this PR and publish a new version? |
Python 3.13 is out there. |
I was building on debian 13 trixie which uses GCC 14, I therefore had a few more required adjustments on top of yours: To build this locally, I used conda:
|
I do get a segfault though when importing msgspec.. Even with GIL enabled
|
@maurerle thanks for finding that. I'll give a read to https://py-free-threading.github.io/porting/, unless someone beats me to it and knows what's wrong here. |
When executing this on a gil build (e.g.
So make sure to execute this not in the build directory :) The segfault also occurs when starting the above mentioned freethreading build with an active GIL as in |
I can close this if #703 gets more attention, but I've confirmed changes here allow the wheels to be built in 3.8-3.13, and all tests are passing.
This warning is currently raised, but fixing it might be beyond the scope of this PR:
python/cpython#106004