--- /dev/null
+Pending removal in Python 3.19
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+* :pep:`456` embedders support for the string hashing scheme definition.
.. include:: c-api-pending-removal-in-3.15.rst
+.. include:: c-api-pending-removal-in-3.16.rst
+
.. include:: c-api-pending-removal-in-3.18.rst
+.. include:: c-api-pending-removal-in-3.19.rst
+
.. include:: c-api-pending-removal-in-3.20.rst
.. include:: c-api-pending-removal-in-future.rst
Deprecated C APIs
-----------------
+* Deprecate :pep:`456` support for providing an external definition
+ of the string hashing scheme. Removal is scheduled for Python 3.19.
+
+ Previously, embedders could define :c:macro:`Py_HASH_ALGORITHM` to be
+ ``Py_HASH_EXTERNAL`` to indicate that the hashing scheme was provided
+ externally but this feature was undocumented, untested and most likely
+ unused.
+
+ (Contributed by Bénédikt Tran in :gh:`141226`.)
+
* For unsigned integer formats in :c:func:`PyArg_ParseTuple`,
accepting Python integers with value that is larger than the maximal value
for the C type or less than the minimal value for the corresponding
--- /dev/null
+Deprecate :pep:`456` support for providing an external definition
+of the string hashing scheme. Removal is scheduled for Python 3.19.
+Patch by Bénédikt Tran.
_Py_HashSecret_t _Py_HashSecret = {{0}};
#if Py_HASH_ALGORITHM == Py_HASH_EXTERNAL
-extern PyHash_FuncDef PyHash_Func;
+Py_DEPRECATED(3.15) extern PyHash_FuncDef PyHash_Func;
#else
static PyHash_FuncDef PyHash_Func;
#endif