- Add support for Python 3.12. With the removal of
distutils
from Python 3.12, projects
using CFFI features that depend ondistutils
at runtime must add a dependency on
setuptools
to function under Python 3.12+. CFFI does not declare a runtimesetuptools
requirement to avoid an unnecessary dependency for projects that do not require it. - Drop support for end-of-life Python versions (2.7, 3.6, 3.7).
- Add support for PEP517 builds;
setuptools
is now a required build dependency. - Declare
python_requires
metadata for Python 3.8+. This allows unsupported Pythons
to continue using previously released sdists and wheels. - Move project source under
src/
; a more standard layout that also enables CI to more easily
catch packaging errors.