Skip to content

Support free-threaded CPython builds and upload cp313t wheels #1367

Open
@ngoldbaum

Description

@ngoldbaum

Unfortunately actually doing this might end up being blocked on upstream support in CFFI for free-threaded Python, see python-cffi/cffi#126 for more detail.

We are working on fixing CFFI in a fork: https://github.com/quansight-labs/cffi.

It looks like I can build pygit2 if I install setuptools and CFFI from the fork, and then build with --no-build-isolation:

(.venv) ± C_INCLUDE_PATH=/opt/homebrew/include python -m pip install . --no-build-isolation
Processing /Users/goldbaum/Documents/pygit2
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: cffi>=1.17.0 in /Users/goldbaum/Documents/free-threaded-compatibility/.venv/lib/python3.13t/site-packages (from pygit2==1.17.0) (1.18.0.dev0)
Requirement already satisfied: pycparser in /Users/goldbaum/Documents/free-threaded-compatibility/.venv/lib/python3.13t/site-packages (from cffi>=1.17.0->pygit2==1.17.0) (2.22)
Building wheels for collected packages: pygit2
  Building wheel for pygit2 (pyproject.toml) ... done
  Created wheel for pygit2: filename=pygit2-1.17.0-cp313-cp313t-macosx_15_0_arm64.whl size=261670 sha256=f3aa4e995b7a8f81d13040440b0fec75696e7407a15d9035ba7852b7c32871c9
  Stored in directory: /private/var/folders/nk/yds4mlh97kg9qdq745g715rw0000gn/T/pip-ephem-wheel-cache-5aoxf597/wheels/30/43/a7/885db85606d7de4f35d4eb2ecc0a8b6c24e6615ed88f7f3eb1
Successfully built pygit2
Installing collected packages: pygit2
Successfully installed pygit2-1.17.0

Not totally sure why I needed to pass C_INCLUDE_PATH to find libgit2 from homebrew.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions