https://github.com/python/cpython/commit/874d1122deb431c55ee34db93cc21ea3ace3753b commit: 874d1122deb431c55ee34db93cc21ea3ace3753b branch: 3.15 author: Miss Islington (bot) <[email protected]> committer: hugovk <[email protected]> date: 2026-10-07T14:00:02+03:00 summary:
[3.15] Doc: update abi3t build tool support (GH-158171) (#158959) Co-authored-by: Nathan Goldbaum <[email protected]> Co-authored-by: Petr Viktorin <[email protected]> Co-authored-by: Hugo van Kemenade <[email protected]> files: M Doc/howto/abi3t-migration.rst M Doc/whatsnew/3.15.rst diff --git a/Doc/howto/abi3t-migration.rst b/Doc/howto/abi3t-migration.rst index 501106679b02bd..3aa11a0dbf653d 100644 --- a/Doc/howto/abi3t-migration.rst +++ b/Doc/howto/abi3t-migration.rst @@ -169,14 +169,22 @@ or :c:member:`PyTypeObject.tp_itemsize`), it cannot be ported to ``abi3t`` 3.15. +.. _abi3t-migration-build: + Setting up the build ==================== -If you use a build tool (such as setuptools, meson-python, scikit-build-core), -search its documentation for a way to select ``abi3t``. -At the time of writing, not all of them have this; but if your tool does, -use it. -You may want to verify that it set the right flag by temporarily adding the +If you use a build tool, search its documentation for "``abi3t``", and follow +any instructions to select the ABI. +For reference, here are direct links for several popular build tools: + +- `meson-python + <https://mesonbuild.com/meson-python/how-to-guides/limited-api.html#the-abi3t-stable-abi>`__ +- `scikit-build-core + <https://scikit-build-core.readthedocs.io/en/stable/configuration/#customizing-the-output-wheel>`__ +- `Maturin <https://www.maturin.rs/bindings#py_limited_apiabi3>`__ + +You may want to verify that the tool set the right flag by temporarily adding the following just after ``#include <Python.h>``:: #if Py_TARGET_ABI3T+0 <= 0x30f0000 @@ -185,6 +193,13 @@ following just after ``#include <Python.h>``:: This should result in a different error than "``abi3t`` define is not set". +.. seealso:: + + `Building and distributing abi3t extensions + <https://py-free-threading.github.io/abi3t/>`__: + Build configuration and wheel testing examples in the community-maintained + Python Free-Threading Guide. + .. note:: If your build tool doesn't support ``abi3t`` yet, set the following macro diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst index bb091b2e7388a9..747c8ba9fea0e5 100644 --- a/Doc/whatsnew/3.15.rst +++ b/Doc/whatsnew/3.15.rst @@ -572,16 +572,19 @@ the existing Stable ABI (``abi3``) and the version-specific ABI for free-threading (``cp315t``) separately. Stable ABI for Free-Threaded Builds should typically -be selected in a build tool (such as, for example, Setuptools, meson-python, -scikit-build-core, or Maturin). -At the time of writing, these tools do **not** support ``abi3t``. -If this is the case for your tool, compile for ``cp315t`` separately. +be selected in a build tool. Tools with ``abi3t`` support include +meson-python, scikit-build-core, and Maturin; see +:ref:`abi3t-migration-build` for links to their documentation on ``abi3t`` builds. +If your build tool does not support ``abi3t``, compile for ``cp315t`` separately. If not using a build tool -- or when writing such a tool -- you can select ``abi3t`` by setting the macro :c:macro:`!Py_TARGET_ABI3T` as discussed in :ref:`abi3-compiling`. A practical :ref:`migration guide <abi3t-migration-howto>` for switching to ``abi3t`` is available. +The community-maintained `Python Free-Threading Guide +<https://py-free-threading.github.io/abi3t/>`__ provides examples of building +and testing ``abi3t`` wheels. .. seealso:: :pep:`803` for further details. _______________________________________________ Python-checkins mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3//lists/python-checkins.python.org Member address: [email protected]
