Skip to content

Initial support for abi3t.abi3 wheels.#232

Open
ngoldbaum wants to merge 10 commits into
python-cffi:mainfrom
ngoldbaum:abi3t.abi3
Open

Initial support for abi3t.abi3 wheels.#232
ngoldbaum wants to merge 10 commits into
python-cffi:mainfrom
ngoldbaum:abi3t.abi3

Conversation

@ngoldbaum

@ngoldbaum ngoldbaum commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Towards fixing #226.

Also adds Python 3.15 CI and drops Python 3.9.

It looks like CFFI's setuptools extension is sufficiently independent from setuptools that pypa/setuptools#5193 isn't required for this to work.

@ngoldbaum

Copy link
Copy Markdown
Contributor Author

Interesting, I haven't seen that race in ctypes before and I don't see any upstream discussion.

@ngoldbaum

Copy link
Copy Markdown
Contributor Author

It looks like CI is green. However, I forgot that most of the test jobs build wheels with cibuildwheel, and I'll need to wait for 3.15.0b1 to add 3.15 and 3.15t tests outside the pytest-run-parallel CI.

@hynek

hynek commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

cibuildwheel 4.0 w/ 3.15 support is out! 🎉

(yes, I'm waiting for a 3.15 cffi in general, and ideally one with stable ft abi in particular 😇)

@ngoldbaum

ngoldbaum commented Jun 8, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the ping, this definitely needs an update now that Python 3.15 is in beta.

Unfortunately setuptools support is going to need to wait on pypa/setuptools#5193 and for development to restart moving on setuptools.

I also have #241 open, which I'm hoping will provide an escape hatch for people who feel like CFFI forces them to use setuptools.

@ngoldbaum ngoldbaum marked this pull request as ready for review June 8, 2026 18:01
ffi = FFI()
ffi.cdef("int foo(int);")
lib = ffi.verify("""
#include <errno.h>

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is needed now because CPython intentionally doesn't trasiently include errno.h on python limited API versions newer than 3.11: https://github.com/python/cpython/blob/5c1321731403031d933ca469977e4bb3859c8680/Include/Python.h#L32-L48

@ngoldbaum

Copy link
Copy Markdown
Contributor Author

I marked this ready for review, CI is green 🥳

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants