Skip to content

Feat: Add free-threaded Python support - #357

Open
vchamarthi wants to merge 2 commits into
IntelPython:masterfrom
vchamarthi:feat/enable-free-threaded-python-clean
Open

Feat: Add free-threaded Python support#357
vchamarthi wants to merge 2 commits into
IntelPython:masterfrom
vchamarthi:feat/enable-free-threaded-python-clean

Conversation

@vchamarthi

Copy link
Copy Markdown
Contributor

Summary

Enable free-threaded Python support for mkl_fft.

The Meson migration in #303 is now merged, so this PR contains only the
changes required for free-threaded support.

Depends on IntelPython/mkl-service#213 for a compatible free-threaded
mkl-service package.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR enables free-threaded (PEP 703) Python support for mkl_fft by marking the Cython extension as free-threading compatible, aligning build tooling requirements, and expanding CI/conda packaging to cover both CPython 3.14 (GIL) and 3.14t (free-threaded) variants.

Changes:

  • Mark mkl_fft/_pydfti.pyx as freethreading_compatible for Cython and pin Cython to >=3.1.0 across build/packaging.
  • Update conda recipes to require cython >=3.1.0 and remove python-gil pins.
  • Extend conda/pip CI matrices to build/test CPython 3.14 cp314 and cp314t variants and adjust cache/artifact naming accordingly.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
pyproject.tomlPins build-time Cython to >=3.1.0 for free-threading support features.
mkl_fft/_pydfti.pyxDeclares the extension as free-threading compatible via a Cython directive.
conda-recipe/meta.yamlAligns Intel-channel recipe with Cython >=3.1.0 and drops python-gil pins.
conda-recipe-cf/meta.yamlAligns conda-forge recipe with Cython >=3.1.0 and drops python-gil pins.
AGENTS.mdUpdates documented build dependencies to reflect the Cython pin.
.github/workflows/conda-package.ymlAdds 3.14 cp314 and cp314t build/test coverage and distinguishes variants in cache/artifacts.
.github/workflows/conda-package-cf.ymlMirrors conda-forge CI to build/test both 3.14 variants and adjust cache/artifacts.
.github/workflows/build-with-standard-clang.ymlAdds 3.14t to the Python matrix (currently incompatible with actions/setup-python).
.github/workflows/build-with-clang.ymlAdds 3.14t to the Python matrix (currently incompatible with actions/setup-python).
.github/workflows/build_pip.ymlAdds 3.14 cp314/cp314t variants via a python_spec matchspec approach.

Comment thread.github/workflows/build-with-standard-clang.yml
Comment thread.github/workflows/build-with-clang.yml
@antonwolfyantonwolfy added this to the 2.4.0 release milestone Aug 5, 2026
Comment threadAGENTS.md
Comment threadmkl_fft/_pydfti.pyx
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@vchamarthi@antonwolfy