Depend on CFFI 2.0.0 or newer on Python > 3.8#13448
Conversation
pyproject.toml
Outdated
| "cffi>=1.14; platform_python_implementation != 'PyPy' and python_version < '3.14'", | ||
| "cffi>=2.0.0; platform_python_implementation != 'PyPy' and python_version >= '3.14'", | ||
| "cffi>=1.14; platform_python_implementation != 'PyPy' and python_version == '3.8'", | ||
| "cffi>=2.0.0; platform_python_implementation != 'PyPy' and python_version > '3.9'", |
| "cffi>=2.0.0; platform_python_implementation != 'PyPy' and python_version >= '3.14'", | ||
| "cffi>=1.14; platform_python_implementation != 'PyPy' and python_version == '3.8'", | ||
| "cffi>=2.0.0; platform_python_implementation != 'PyPy' and python_version > '3.9'", | ||
| # Must be kept in sync with ./.github/requirements/build-requirements.{in,txt} |
There was a problem hiding this comment.
these files need to be updated for this
| setuptools!=74.0.0 | ||
| cffi>=1.12; platform_python_implementation != 'PyPy' and python_version < '3.14' | ||
| cffi>=2.0.0; platform_python_implementation != 'PyPy' and python_version >= '3.14' | ||
| cffi>=1.12; platform_python_implementation != 'PyPy' and python_version == '3.8' |
There was a problem hiding this comment.
| cffi>=1.12; platform_python_implementation != 'PyPy' and python_version == '3.8' | |
| cffi>=1.14; platform_python_implementation != 'PyPy' and python_version == '3.8' |
|
Should I add a changelog entry for the new minimum CFFI version? |
|
nah |
|
This is a pretty strict version pin; Are there any other solutions to the above-mentioned issue that don't involve such a restrictive version pin? |
|
Does 46.0.0 work for you? The version bound was only py314 there. More broadly, I’m not aware of a good answer to this situation, only tradeoffs to choose between. There is no way to express free threaded only dependencies and pip additionally has a constraint where it does not consider pre-release to match >=3.14. Once 3.14 is out we could consider shifting the pin back up to 3.14 but technically that’s still incorrect since we only need it on 3.14t. Separately, cffi 2.0 is not a semantic versioned library though so compatibility should not be an issue and libraries bounding <2 are under a misapprehension. That said, I imagine you aren’t setting that bound, it’s some other dep. |
|
(Let's move this discussion to #13468 so it's all in one place. Thanks!) |
To hopefully fix the issue with CFFI 2.0.0 not installing on Python 3.14 under pip because it's a prerelease.