pypa / manylinux

Python wheels that work on any linux (almost)
MIT License
1.42k stars 217 forks source link

feat: add CPython 3.13 `--disable-gil` build #1564

Closed mayeut closed 3 months ago

mayeut commented 8 months ago

fix #1548

draft while blocked by:

mayeut commented 3 months ago

@pradyunsg,

follow-up on your request to add support for free-threaded builds to cibuildwheel: I was kind of hoping that the release of pip would be any day now. I see there are a couple of issues blocking a release for now and, if the release can't be planned in the near future, then the option proposed by @henryiii to use the pip beta on python 3.13 (or maybe python 3.13 free-threaded only) could be implemented here.

henryiii commented 3 months ago

I think it would be pretty reasonable to use the beta on 3.13 only. I don't think there's an environment selector for free threaded? I'd prefer not to differentiate on free threaded if there's no environment selector for it.

henryiii commented 3 months ago

Why is setuptools/wheel on 3.12, actually?

mayeut commented 3 months ago

As mentioned in the commit message, it shouldn't be there & perhaps especially for python 3.12 where it's not part of ensurepip / venv. Keeping it only as a precaution not to introduce regressions downstream.

henryiii commented 3 months ago

I didn't see the description, good. I expect after 3.13 is out for a while, it probably can be removed safely from 3.12 too.

pradyunsg commented 3 months ago

I was kind of hoping that the release of pip would be any day now.

I'd have liked that too but we also have the other part of the packaging upgrade affecting us in this release: https://pradyunsg.me/blog/2024/05/13/pip-24-1-betas/. Due to some non-public health issues on my part, the actual process and comms around this haven't gone through as smoothly/effectively as I'd like. 😅

mayeut commented 3 months ago

Thanks for the feedback @pradyunsg !

I'll merge without waiting for the final release then.

FYI, pip 24.1b1 can install properly free-threaded wheels now (there's a minimal build / install test here). It also fixes issues with graalpy (c.f. #1520) but this one will have to wait for the final release.

henryiii commented 3 months ago

In case people are trying this out, python3.13t -m venv ... still installs pip 24.0, something to watch for when testing this! Remember to upgrade pip in venvs.

henryiii commented 3 months ago

Ouch, this may include isolated builds. Edit: most cases seem okay.