Skip to content

✅ Run tests on free threaded python 3.14#13946

Closed
patrick91 wants to merge 19 commits intomasterfrom
feature/python-tests-t
Closed

✅ Run tests on free threaded python 3.14#13946
patrick91 wants to merge 19 commits intomasterfrom
feature/python-tests-t

Conversation

@patrick91
Copy link
Copy Markdown
Contributor

No description provided.

@patrick91 patrick91 force-pushed the feature/python-tests-t branch from 3113897 to fc6f9f8 Compare July 29, 2025 11:03
@svlandeg svlandeg changed the title Run tests on free threaded python and 3.14 ✅ Run tests on free threaded python and 3.14 Aug 18, 2025
@svlandeg svlandeg self-assigned this Sep 20, 2025
@svlandeg
Copy link
Copy Markdown
Member

svlandeg commented Sep 24, 2025

Had a look into this.

I suggest to skip 3.13t which was in beta and not supported by several libraries anyway. For instance, trio only supports 3.14t (and up), and pydantic-core also removed testing for 3.13t .

To be able to run our test suite on 3.14t in the CI, as far as I can see, we'd need

  • httptools to release wheels built against Cython 3.1+ (I verified that it installs fine locally)
  • pydantic 2.12.0 to be released with 314t wheels
  • bcrypt to release 3.14 support -> 5.0.0 is now released with free-threaded Python 3.14 support
  • orjson to start supporting free threading (some relevant discussion here)

I'll open a PR to start testing fastapi on (normal) Python 3.14 so we can work on that separately: #14110 #14165

CC @ngoldbaum: as I've seen many contributions from you on various libraries on this topic, does the above ☝️ sound about right? Any other feedback or pointers is appreciated 🙏

@svlandeg svlandeg removed their assignment Sep 24, 2025
@ngoldbaum
Copy link
Copy Markdown

does the above ☝️ sound about right? Any other feedback or pointers is appreciated 🙏

httptools isn't a blocker for me personally so I haven't touched it yet. I think it should be straightforward to update if anyone wants to take that on. It'd be really nice to add free-threaded wheel builds to their build automation.

Both pydantic and bcrypt should have releases with 3.14t support soon, I think.

orjson is trickier, I don't think there will be free-threaded support before 3.15. I know that pydatic-core uses https://github.com/pydantic/jiter rather than orjson. I'm not sure how tightly coupled fastapi is to orjson.

@github-actions github-actions Bot added the conflicts Automatically generated when a PR has a merge conflict label Oct 10, 2025
@github-actions

This comment was marked as resolved.

@github-actions github-actions Bot removed the conflicts Automatically generated when a PR has a merge conflict label Oct 10, 2025
@svlandeg svlandeg self-assigned this Oct 10, 2025
@svlandeg svlandeg changed the title ✅ Run tests on free threaded python and 3.14 ✅ Run tests on free threaded python 3.14 Oct 10, 2025
@svlandeg svlandeg removed their assignment Oct 21, 2025
Copy link
Copy Markdown
Member

@svlandeg svlandeg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This currently runs when explicitely disabling the GIL, which we need to do for orjson & ujson for now, cf also ultrajson/ultrajson#681 and https://github.com/ijl/orjson/issues/591#issuecomment-3145838844.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Oct 22, 2025

@github-actions github-actions Bot added the conflicts Automatically generated when a PR has a merge conflict label Dec 11, 2025
@github-actions
Copy link
Copy Markdown
Contributor

This pull request has a merge conflict that needs to be resolved.

@svlandeg svlandeg self-assigned this Mar 17, 2026
@svlandeg
Copy link
Copy Markdown
Member

svlandeg commented Mar 18, 2026

This PR has gone pretty stale and much has changed since I last worked on it, so I'm continuing this work in #15149.

@svlandeg svlandeg closed this Mar 18, 2026
@svlandeg svlandeg removed their assignment Mar 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conflicts Automatically generated when a PR has a merge conflict internal

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants