Skip to content

[Python] Free-threaded wheels for 3.13 have started failing with cffi 2.0.0b1 #47256

@raulcd

Description

@raulcd

Describe the bug, including details regarding any error messages, version, and platform.

The test-ubuntu-22.04-python-313-freethreading has started failing because cffi 2.0.0b1 does not support free-threaded for Python 3.13:

   #12 [6/6] RUN /arrow-dev/bin/python -m pip install       --pre       --prefer-binary       --extra-index-url "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"       -r arrow/python/requirements-build.txt       -r arrow/python/requirements-test.txt
  #12 0.610 Looking in indexes: https://pypi.org/simple, https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
  #12 0.611 Ignoring oldest-supported-numpy: markers 'python_version < "3.9"' don't match your environment
  #12 0.611 Ignoring pyuwsgi: markers 'sys_platform != "win32" and python_version < "3.13"' don't match your environment
  #12 1.195 Collecting cython>=3 (from -r arrow/python/requirements-build.txt (line 1))
  #12 1.642   Downloading https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/cython/3.2.0a0/cython-3.2.0a0-py3-none-any.whl (1.2 MB)
  #12 1.936      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 8.0 MB/s  0:00:00
  #12 2.605 Collecting numpy>=1.25 (from -r arrow/python/requirements-build.txt (line 3))
  #12 2.955   Downloading https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/numpy/2.4.0.dev0/numpy-2.4.0.dev0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.7 MB)
  #12 3.281      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.7/16.7 MB 51.1 MB/s  0:00:00
  #12 3.485 Collecting setuptools_scm>=8 (from -r arrow/python/requirements-build.txt (line 4))
  #12 3.520   Downloading setuptools_scm-8.3.1-py3-none-any.whl.metadata (7.0 kB)
  #12 3.531 Requirement already satisfied: setuptools>=64 in /arrow-dev/lib/python3.13t/site-packages (from -r arrow/python/requirements-build.txt (line 5)) (80.9.0)
  #12 3.818 Collecting cffi (from -r arrow/python/requirements-test.txt (line 1))
  #12 3.830   Downloading cffi-2.0.0b1.tar.gz (521 kB)
  #12 3.959   Installing build dependencies: started
  #12 5.297   Installing build dependencies: finished with status 'done'
  #12 5.298   Getting requirements to build wheel: started
  #12 5.624   Getting requirements to build wheel: finished with status 'error'
  #12 5.630   error: subprocess-exited-with-error
  #12 5.630   
  #12 5.630   × Getting requirements to build wheel did not run successfully.
  #12 5.630   │ exit code: 1
  #12 5.630   ╰─> [20 lines of output]
  #12 5.630       Traceback (most recent call last):
  #12 5.630         File "/arrow-dev/lib/python3.13t/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
  #12 5.630           main()
  #12 5.630           ~~~~^^
  #12 5.630         File "/arrow-dev/lib/python3.13t/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
  #12 5.630           json_out["return_val"] = hook(**hook_input["kwargs"])
  #12 5.630                                    ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  #12 5.630         File "/arrow-dev/lib/python3.13t/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 143, in get_requires_for_build_wheel
  #12 5.630           return hook(config_settings)
  #12 5.630         File "/tmp/pip-build-env-s4d82846/overlay/lib/python3.13t/site-packages/setuptools/build_meta.py", line 331, in get_requires_for_build_wheel
  #12 5.630           return self._get_build_requires(config_settings, requirements=[])
  #12 5.630                  ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  #12 5.630         File "/tmp/pip-build-env-s4d82846/overlay/lib/python3.13t/site-packages/setuptools/build_meta.py", line 301, in _get_build_requires
  #12 5.630           self.run_setup()
  #12 5.630           ~~~~~~~~~~~~~~^^
  #12 5.630         File "/tmp/pip-build-env-s4d82846/overlay/lib/python3.13t/site-packages/setuptools/build_meta.py", line 317, in run_setup
  #12 5.630           exec(code, locals())
  #12 5.630           ~~~~^^^^^^^^^^^^^^^^
  #12 5.630         File "<string>", line 22, in <module>
  #12 5.630       RuntimeError: CFFI does not support the free-threaded build of CPython 3.13. Upgrade to free-threaded 3.14 or newer to use CFFI with the free-threaded build.
  #12 5.630       [end of output]

This was previously working so we shouldpotentially pin cffi for free-threaded py13:
cffi 2.0.0b1 was released on the 29th of July

Component(s)

Python

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions