Skip to content

Build cp313t linux wheels#7575

Closed
jarrodmillman wants to merge 2 commits intoscikit-image:mainfrom
jarrodmillman:cp313t
Closed

Build cp313t linux wheels#7575
jarrodmillman wants to merge 2 commits intoscikit-image:mainfrom
jarrodmillman:cp313t

Conversation

@jarrodmillman
Copy link
Copy Markdown
Contributor

@jarrodmillman jarrodmillman commented Oct 6, 2024

Description

To merge after 0.25.0 is released. Reverts 07db769.

Checklist

Release note

For maintainers and optionally contributors, please refer to the instructions on how to document this PR for the release notes.

...

@jarrodmillman jarrodmillman added the ⏩ type: Enhancement Improve existing features label Oct 6, 2024
@jarrodmillman jarrodmillman marked this pull request as draft October 6, 2024 22:41
@jarrodmillman jarrodmillman added this to the 0.26 milestone Oct 7, 2024
@jarrodmillman jarrodmillman marked this pull request as ready for review December 13, 2024 22:23
call-workflow-build-wheels:
uses: ./.github/workflows/wheels_recipe.yml
with:
CIBW_SKIP: cp313t-* # until Cython 3.1 is released
Copy link
Copy Markdown
Member

@lagru lagru Feb 4, 2025

Choose a reason for hiding this comment

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

I'm guessing we are still waiting for this before we include the free-threaded build on PyPI?

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

It'd be great to follow NumPy, SciPy, scikit-learn et al., and include cp313t wheels in the next releases. This helps the rollout and allows users to start testing. There's no reason one must wait for Cython 3.1 (which is on an uncertain timeline, since it depends on one maintainer with very limited bandwidth).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Yes, I don't see why not.

Copy link
Copy Markdown
Member

@lagru lagru left a comment

Choose a reason for hiding this comment

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

Can be merged IMO if the CI passes. Should make free-threaded nightlies available again if I understand things correctly.

@jarrodmillman
Copy link
Copy Markdown
Contributor Author

I can check, but I disabled this because it was blocking the release to PyPI. I will need to double-check to see what wasn't working.

@jarrodmillman
Copy link
Copy Markdown
Contributor Author

According to my commit message, "Building cp313t wheels requires Cython 3.1, which hasn't been released." I will take a look and see what scipy is doing.

@jarrodmillman
Copy link
Copy Markdown
Contributor Author

@rgommers
Copy link
Copy Markdown

rgommers commented Feb 8, 2025

That log has disappeared so not sure what went wrong or what changed after the initial PR that added nightly wheels.

Here is what NumPy does (and SciPy mirrors that):

(1) in the wheel build job, disable build isolation:
https://github.com/numpy/numpy/blob/11cc665f85fb1038cc2a5b2bdb64a1255215d651/.github/workflows/wheels.yml#L164-L168

(2) in that same wheels.yml job, a few lines down, ensure CIBW_FREE_THREADED_SUPPORT: True is set when cibuildwheel is invoked.

(3) in the shell script that runs before cibuildwheel is invoked (as configued in pyproject.toml, install the necessary build dependencies, and pull in Cython nightly:
https://github.com/numpy/numpy/blob/11cc665f85fb1038cc2a5b2bdb64a1255215d651/tools/wheels/cibw_before_build.sh#L56-L63

NumPy, SciPy and PyWavelets all have cp313t wheels up on PyPI, so Cython is the only package for which a nightly is still needed.

@stefanv
Copy link
Copy Markdown
Member

stefanv commented Feb 8, 2025

Thanks, Ralf! I figured it out yesterday in #7575. Side note: there's a new way of specifying free threaded support now, using options.

@rgommers
Copy link
Copy Markdown

rgommers commented Feb 9, 2025

Thanks, Ralf! I figured it out yesterday in #7575.

Great! You meant gh-7699 here.

Side note: there's a new way of specifying free threaded support now, using options.

If that's used in gh-7699, did you mean CIBW_ENABLE=cpython-freethreading or CIBW_BUILD: ${{ matrix.cibw_python }} with cibw_python equal to "cp313t-*"? Different from CIBW_FREE_THREADED_SUPPORT indeed, I didn't check the cibuildwheel docs yet on latest recommended method.

@stefanv
Copy link
Copy Markdown
Member

stefanv commented Feb 9, 2025

Sorry, shouldn't respond to these things from a phone; yes, that PR and:

https://cibuildwheel.pypa.io/en/stable/options/#enable

@jarrodmillman jarrodmillman marked this pull request as draft February 19, 2025 02:35
@jarrodmillman jarrodmillman removed this from the 0.26 milestone Feb 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⏩ type: Enhancement Improve existing features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants