BLD Pin cython<3.2.6 to avoid Cython __annotate__ pickling bug - #34533
Conversation
Well actually, this doesn't build: |
|
The failed job seems to be a flaky one, see #30810 |
That doesn't surprise me too much, I guess this extra could still be used with |
|
I've been trying to follow the story/catch up with the discussion related to the cython |
lesteve
left a comment
There was a problem hiding this comment.
LGTM, only add TODO comments linking to the Cython issue cython/cython#7846 and saying that we can tweak the pin when Cython has a release with a fix.
Other than the flaky build, the other Python 3.14 wheels pass which is 🎉 see wheel build logs
My memory tells me no, but for the scipy-dev build we already have a temporary work-around in #34526 1 Why I think this PR is not enough to force the cython<3.2.6 installation (without #34526). IIRC we use Footnotes
|
lesteve
left a comment
There was a problem hiding this comment.
Thanks!
Pushed a small tweak + [cd build] (mostly as another attempt to have a satisfying green wheel build)
<3.2.6<3.2.6 to avoid Cython __annotate__ pickling bug
<3.2.6 to avoid Cython __annotate__ pickling bugcython<3.2.6 to avoid Cython __annotate__ pickling bug
cython<3.2.6 to avoid Cython __annotate__ pickling bug
betatim
left a comment
There was a problem hiding this comment.
LGTM
I like using !=1.2.3 to exclude versions that are broken but leave the door open for newer versions. In particular for our CI env definitions where a bot comes to update them regularly that is a good pattern to use. In pyproject.toml I think it is fine if we implement the TODO comment when we know the fixed cython version
…t-learn#34533) Co-authored-by: Loïc Estève <[email protected]>
…t-learn#34533) Co-authored-by: Loïc Estève <[email protected]>
…t-learn#34533) Co-authored-by: Loïc Estève <[email protected]>
Reference Issues/PRs
Fixes #34525
What does this implement/fix? Explain your changes.
Pins
cython<3.2.6inpyproject.toml, in both[build-system] requiresand thebuildoptional-dependencies extra. These two lists are kept in sync historically, and only[build-system] requiresis actually read by pip's isolated build backend, so both need updating together for the fix to be complete and consistent.(The
buildextra isn't invoked anywhere in our own docs/CI —development_setup.rstinstalls build deps by literal package name instead — but it's still valid PEP 508 metadata: anyone canpip install -e ".[build]"to pull in the pinned build deps beforepip install --no-build-isolation --editable ., and it's also what tools that introspectpyproject.tomlextras without doing a build, e.g. PyPI's own project page, will see.)AI usage disclosure