@@ -19,8 +19,13 @@ The C API is divided into these tiers:
1919Each tier has different stability and maintenance requirements to consider
2020when you add or change definitions in it.
2121
22- The compatibility guarantees for public C API are explained in the
23- user documentation, ``Doc/c-api/stable.rst `` (:ref: `python:stable `).
22+ The public backwards compatibility guarantees for public C API are explained
23+ in the user documentation, ``Doc/c-api/stable.rst `` (:ref: `python:stable `).
24+ C language compatibility guarantees are is in ``Doc/c-api/intro.rst ``
25+ (:ref: `python:api-intro `).
26+
27+ Internally, we need to be more careful about compatibility than what we promise
28+ publicly. See :ref: `public-capi ` for details.
2429
2530
2631The internal API
@@ -93,6 +98,17 @@ CPython's public C API is available when ``Python.h`` is included normally
9398It should be defined in ``Include/cpython/ `` (unless part of the Limited API,
9499see below).
95100
101+ Before adding new public API, please ask in the `decisions repo `_ of
102+ the :pep: `C API workgroup <731 >`.
103+ This helps us ensure *newly added * API is consistent and maintainable.
104+
105+ Also check with the C API WG before requiring a C feature not present in C99.
106+ While the *public * docs only promise compatibility with C11, in practice
107+ we only intruduce C11 features individually as needed.
108+
109+ .. _decisions repo : https://github.com/capi-workgroup/decisions/issues
110+
111+
96112.. _public-api-guidelines :
97113
98114Guidelines for expanding/changing the public API
0 commit comments