-
Notifications
You must be signed in to change notification settings - Fork 75
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
Conversation
dfca216
to
58a7826
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
msgspec/_utils.py
Outdated
@@ -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 |
Keeps around the semantic meaning for when this function is added back in Python 3.14.
Thanks for the PR (and everyone for their patience). With a new kid and recent layoff, I've been a bit busy and msgspec maintenance has languished. I really appreciate the help and patience here. I have a few small fixups I want to land with this release, but I'd expect a release supporting Python 3.13 (not with freethreading) out in the next day or two. I'll work on adding freethreading support after getting that initial release out. |
You are missing the python3-dev dependency. |
It was merged but not released or am I mistaken? An install from main should work for sure: install from vcs |
thank you. I wait for the release. Do you know when it is planned? |
No, but soon I guess. |
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