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
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions