Skip to content

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

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

Activity

  1. added a commit that references this issue on Sep 2, 2025
  2. added this to the 22.0.0 milestone on Sep 2, 2025
  3. AlenkaF commented on Sep 2, 2025

    @AlenkaF
    Member

    Issue resolved by pull request 47313
    #47313

  4. added a commit that references this issue on May 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions