diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index da70710b7ecfa3..177615621f6b8c 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -34,13 +34,13 @@ body: label: "CPython versions tested on:" multiple: true options: - - "3.9" - "3.10" - "3.11" - "3.12" - "3.13" - "3.14" - "3.15" + - "3.16" - "CPython main branch" validations: required: true diff --git a/.github/ISSUE_TEMPLATE/crash.yml b/.github/ISSUE_TEMPLATE/crash.yml index 470ad581367b10..81ae91e5b0af97 100644 --- a/.github/ISSUE_TEMPLATE/crash.yml +++ b/.github/ISSUE_TEMPLATE/crash.yml @@ -27,13 +27,13 @@ body: label: "CPython versions tested on:" multiple: true options: - - "3.9" - "3.10" - "3.11" - "3.12" - "3.13" - "3.14" - "3.15" + - "3.16" - "CPython main branch" validations: required: true diff --git a/Doc/c-api/exceptions.rst b/Doc/c-api/exceptions.rst index 2f8f108ee27f6a..fd9ea6272df7d8 100644 --- a/Doc/c-api/exceptions.rst +++ b/Doc/c-api/exceptions.rst @@ -1375,7 +1375,7 @@ Tracebacks The caller does not need to hold an :term:`attached thread state`, nor does *tstate* need to be attached. - .. versionadded:: next + .. versionadded:: 3.15 .. c:function:: const char* PyUnstable_DumpTracebackThreads(int fd, PyInterpreterState *interp, PyThreadState *current_tstate, Py_ssize_t max_threads) @@ -1411,4 +1411,4 @@ Tracebacks another thread deletes its :term:`thread state` while this function is being called, the process will likely crash. - .. versionadded:: next + .. versionadded:: 3.15 diff --git a/Doc/c-api/gcsupport.rst b/Doc/c-api/gcsupport.rst index 9c9c97f7b853d8..9c71bb3d59d5e9 100644 --- a/Doc/c-api/gcsupport.rst +++ b/Doc/c-api/gcsupport.rst @@ -414,7 +414,7 @@ In some cases, failure is not distinguishable from a successful ``NULL`` result. See :ref:`duringgc-functions` for common information. - .. versionadded:: next + .. versionadded:: 3.15 .. seealso:: @@ -433,7 +433,7 @@ In some cases, failure is not distinguishable from a successful ``NULL`` result. The reference is valid for the duration of the :c:member:`!tp_traverse` handler call. - .. versionadded:: next + .. versionadded:: 3.15 .. seealso:: :c:func:`PyType_GetBaseByToken` @@ -445,7 +445,7 @@ In some cases, failure is not distinguishable from a successful ``NULL`` result. These functions return a :term:`borrowed reference`, which is valid for the duration of the :c:member:`!tp_traverse` handler call. - .. versionadded:: next + .. versionadded:: 3.15 .. seealso:: diff --git a/Doc/c-api/interp-lifecycle.rst b/Doc/c-api/interp-lifecycle.rst index 38dc806c4b81cd..8dee601d04876b 100644 --- a/Doc/c-api/interp-lifecycle.rst +++ b/Doc/c-api/interp-lifecycle.rst @@ -410,7 +410,7 @@ Initializing and finalizing the interpreter (zero) if not. After :c:func:`Py_FinalizeEx` is called, this returns false until :c:func:`Py_Initialize` is called again. - .. versionchanged:: next + .. versionchanged:: 3.15 This function no longer returns true until initialization has fully completed, including import of the :mod:`site` module. Previously it could return true while :c:func:`Py_Initialize` was still running. @@ -631,7 +631,7 @@ it possible to avoid these issues by temporarily preventing finalization: automatically after all guards are released: it requires an explicit :c:func:`Py_EndInterpreter` call. - .. versionadded:: next + .. versionadded:: 3.15 .. c:function:: PyInterpreterGuard *PyInterpreterGuard_FromCurrent(void) @@ -671,7 +671,7 @@ it possible to avoid these issues by temporarily preventing finalization: The caller must hold an :term:`attached thread state`. - .. versionadded:: next + .. versionadded:: 3.15 .. c:function:: PyInterpreterGuard *PyInterpreterGuard_FromView(PyInterpreterView *view) @@ -688,7 +688,7 @@ it possible to avoid these issues by temporarily preventing finalization: The caller does not need to hold an :term:`attached thread state`. - .. versionadded:: next + .. versionadded:: 3.15 .. c:function:: void PyInterpreterGuard_Close(PyInterpreterGuard *guard) @@ -705,7 +705,7 @@ it possible to avoid these issues by temporarily preventing finalization: This function cannot fail, and the caller doesn't need to hold an :term:`attached thread state`. - .. versionadded:: next + .. versionadded:: 3.15 .. _interpreter-views: @@ -723,7 +723,7 @@ deleted. This can be done using interpreter views. This is a thread-safe way to access an interpreter that may have be finalizing or already destroyed. - .. versionadded:: next + .. versionadded:: 3.15 .. c:function:: PyInterpreterView *PyInterpreterView_FromCurrent(void) @@ -738,7 +738,7 @@ deleted. This can be done using interpreter views. The caller must hold an :term:`attached thread state`. - .. versionadded:: next + .. versionadded:: 3.15 .. c:function:: void PyInterpreterView_Close(PyInterpreterView *view) @@ -752,7 +752,7 @@ deleted. This can be done using interpreter views. This function cannot fail, and the caller doesn't need to hold an :term:`attached thread state`. - .. versionadded:: next + .. versionadded:: 3.15 .. c:function:: PyInterpreterView *PyInterpreterView_FromMain(void) @@ -774,7 +774,7 @@ deleted. This can be done using interpreter views. The caller does not need to hold an :term:`attached thread state`. - .. versionadded:: next + .. versionadded:: 3.15 Process-wide parameters diff --git a/Doc/c-api/module.rst b/Doc/c-api/module.rst index 7229ea6c69ee46..20fd66e35a0d4d 100644 --- a/Doc/c-api/module.rst +++ b/Doc/c-api/module.rst @@ -795,7 +795,7 @@ remove it. :c:macro:`Py_slot_subslots`, except it specifies an array of :c:type:`PyModuleDef_Slot` structures. - .. versionadded:: next + .. versionadded:: 3.15 .. _moduledef-dynamic: diff --git a/Doc/c-api/sentinel.rst b/Doc/c-api/sentinel.rst index 710ded56e2a6db..89e0a28bf3b835 100644 --- a/Doc/c-api/sentinel.rst +++ b/Doc/c-api/sentinel.rst @@ -10,14 +10,14 @@ Sentinel objects This instance of :c:type:`PyTypeObject` represents the Python :class:`sentinel` type. This is the same object as :class:`sentinel`. - .. versionadded:: next + .. versionadded:: 3.15 .. c:function:: int PySentinel_Check(PyObject *o) Return true if *o* is a :class:`sentinel` object. The :class:`sentinel` type does not allow subclasses, so this check is exact. - .. versionadded:: next + .. versionadded:: 3.15 .. c:function:: PyObject* PySentinel_New(const char *name, const char *module_name) @@ -32,4 +32,4 @@ Sentinel objects path matching *name*. Pickle treats *name* as a global variable name in *module_name* (see :meth:`object.__reduce__`). - .. versionadded:: next + .. versionadded:: 3.15 diff --git a/Doc/c-api/slots.rst b/Doc/c-api/slots.rst index 66fb6cd1298de2..b61c2f2e17bbc3 100644 --- a/Doc/c-api/slots.rst +++ b/Doc/c-api/slots.rst @@ -30,7 +30,7 @@ explicitly marked with :c:macro:`PySlot_STATIC`. Except when documented otherwise, multiple slots with the same ID (:c:member:`~PySlot.sl_id`) may not occur in a single slots array. -.. versionadded:: next +.. versionadded:: 3.15 Slot arrays generalize an earlier way of defining objects: using :c:type:`PyType_Spec` with :c:type:`PyType_Slot` for types, and @@ -125,7 +125,7 @@ Entries of the slots array use the following structure: Note that the "optionality" only applies to unknown slot IDs. This flag does not make Python skip invalid values of known slots. - .. versionadded:: next + .. versionadded:: 3.15 Convenience macros @@ -169,7 +169,7 @@ Convenience macros #define PySlot_STATIC_DATA(NAME, VALUE) \ {.sl_id=NAME, .sl_flags=PySlot_STATIC, .sl_ptr=(VALUE)} - .. versionadded:: next + .. versionadded:: 3.15 .. c:macro:: PySlot_END @@ -179,7 +179,7 @@ Convenience macros #define PySlot_END {0} - .. versionadded:: next + .. versionadded:: 3.15 .. c:macro:: PySlot_PTR(name, value) PySlot_PTR_STATIC(name, value) @@ -197,7 +197,7 @@ Convenience macros #define PySlot_PTR_STATIC(NAME, VALUE) \ {NAME, PySlot_INTPTR|Py_SLOT_STATIC, {0}, {(void*)(VALUE)}} - .. versionadded:: next + .. versionadded:: 3.15 .. _pyslot-common-ids: @@ -211,7 +211,7 @@ The following slot IDs may be used in both type and module definitions. Marks the end of a slots array. Defined as zero. - .. versionadded:: next + .. versionadded:: 3.15 .. c:macro:: Py_slot_subslots @@ -226,7 +226,7 @@ The following slot IDs may be used in both type and module definitions. Slot nesting depth is limited to 5 levels. This restriction may be lifted in the future. - .. versionadded:: next + .. versionadded:: 3.15 .. c:macro:: Py_slot_invalid @@ -237,4 +237,4 @@ The following slot IDs may be used in both type and module definitions. no effect. Without the flag, processing a slot with this ID will fail. - .. versionadded:: next + .. versionadded:: 3.15 diff --git a/Doc/c-api/stable.rst b/Doc/c-api/stable.rst index fe92f72f8ebd01..0ff066680b8c73 100644 --- a/Doc/c-api/stable.rst +++ b/Doc/c-api/stable.rst @@ -74,7 +74,7 @@ There are two Stable ABIs: :term:`free-threaded ` builds of CPython. It has stricter API limitations than ``abi3``. - .. versionadded:: next + .. versionadded:: 3.15 ``abi3t`` was added in :pep:`803` @@ -170,7 +170,7 @@ both Stable ABIs. :term:`free-threaded builds ` of CPython. See :ref:`above ` for common information. - .. versionadded:: next + .. versionadded:: 3.15 Both macros specify a target ABI; the different naming style is due to backwards compatibility. diff --git a/Doc/c-api/threads.rst b/Doc/c-api/threads.rst index f16125f383e09c..508a4d71ecdf96 100644 --- a/Doc/c-api/threads.rst +++ b/Doc/c-api/threads.rst @@ -296,7 +296,7 @@ Attaching/detaching thread states Otherwise, if both of the above cases fail, a new thread state is created for *guard*. It is then attached and marked as owned by ``PyThreadState_Ensure``. - .. versionadded:: next + .. versionadded:: 3.15 .. c:function:: PyThreadStateToken *PyThreadState_EnsureFromView(PyInterpreterView *view) @@ -308,7 +308,7 @@ Attaching/detaching thread states be implicitly guarded. The guard will be released upon the corresponding :c:func:`PyThreadState_Release` call. - .. versionadded:: next + .. versionadded:: 3.15 .. c:function:: void PyThreadState_Release(PyThreadStateToken *token) @@ -335,7 +335,7 @@ Attaching/detaching thread states attached thread state will be deallocated and deleted upon the internal counter reaching zero. Otherwise, nothing happens when the counter reaches zero. - .. versionadded:: next + .. versionadded:: 3.15 .. c:type:: PyThreadStateToken diff --git a/Doc/c-api/type.rst b/Doc/c-api/type.rst index f943de0510fd28..4771d0a7781bd6 100644 --- a/Doc/c-api/type.rst +++ b/Doc/c-api/type.rst @@ -575,7 +575,7 @@ but need extra remarks for use as slots: array, so that if processing of a later slots fails, error messages can include the name. - .. versionadded:: next + .. versionadded:: 3.15 .. c:macro:: Py_tp_basicsize @@ -591,7 +591,7 @@ but need extra remarks for use as slots: Use :c:member:`PyTypeObject.tp_basicsize` instead if needed, but be aware that a type's size is often considered an implementation detail. - .. versionadded:: next + .. versionadded:: 3.15 .. c:macro:: Py_tp_extra_basicsize @@ -620,7 +620,7 @@ but need extra remarks for use as slots: This slot may not be used with :c:func:`PyType_GetSlot`. - .. versionadded:: next + .. versionadded:: 3.15 .. c:macro:: Py_tp_itemsize @@ -652,7 +652,7 @@ but need extra remarks for use as slots: This slot may not be used with :c:func:`PyType_GetSlot`. - .. versionadded:: next + .. versionadded:: 3.15 .. c:macro:: Py_tp_flags @@ -668,7 +668,7 @@ but need extra remarks for use as slots: This slot may not be used with :c:func:`PyType_GetSlot`. Use :c:func:`PyType_GetFlags` instead. - .. versionadded:: next + .. versionadded:: 3.15 The following slots do not correspond to public fields in the underlying structures: @@ -691,7 +691,7 @@ underlying structures: This slot may not be used with :c:func:`PyType_GetSlot`. Use :c:func:`Py_TYPE` on the type object instead. - .. versionadded:: next + .. versionadded:: 3.15 .. c:macro:: Py_tp_module @@ -711,7 +711,7 @@ underlying structures: This slot may not be used with :c:func:`PyType_GetSlot`. Use :c:func:`PyType_GetModule` instead. - .. versionadded:: next + .. versionadded:: 3.15 .. c:macro:: Py_tp_token @@ -760,7 +760,7 @@ underlying structures: :c:macro:`Py_slot_subslots`, except it specifies an array of :c:type:`PyType_Slot` structures. - .. versionadded:: next + .. versionadded:: 3.15 Soft-deprecated API diff --git a/Doc/library/array.rst b/Doc/library/array.rst index 02eb775f31effc..ca7c055285aa82 100644 --- a/Doc/library/array.rst +++ b/Doc/library/array.rst @@ -107,7 +107,7 @@ The module defines the following item: A tuple with all available type codes. - .. versionchanged:: next + .. versionchanged:: 3.15 The type changed from :class:`str` to :class:`tuple`. diff --git a/Doc/library/ast.rst b/Doc/library/ast.rst index e10b8e22df0fef..4809fdb42bf3d7 100644 --- a/Doc/library/ast.rst +++ b/Doc/library/ast.rst @@ -168,7 +168,7 @@ Node classes arguments that were set as attributes of the AST node, even if they did not match any of the fields of the AST node. These cases now raise a :exc:`TypeError`. -.. deprecated-removed:: next 3.20 +.. deprecated-removed:: 3.15 3.20 In the :ref:`grammar above `, the AST node classes that correspond to production rules with variants (aka "sums") are abstract @@ -2548,7 +2548,7 @@ and classes for traversing abstract syntax trees: .. versionchanged:: 3.15 Omit optional ``Load()`` values by default. - .. versionchanged:: next + .. versionchanged:: 3.15 Added the *color* parameter. @@ -2608,7 +2608,7 @@ Command-line usage .. versionadded:: 3.9 -.. versionchanged:: next +.. versionchanged:: 3.15 The output is now syntax highlighted by default. This can be :ref:`controlled using environment variables `. diff --git a/Doc/library/asyncio-task.rst b/Doc/library/asyncio-task.rst index 2e17d0dc70c7a5..cc833b80d52542 100644 --- a/Doc/library/asyncio-task.rst +++ b/Doc/library/asyncio-task.rst @@ -381,7 +381,7 @@ and reliable way to wait for all tasks in the group to finish. * pass the task group instance or bound :meth:`cancel` method to some other task *before* opening the task group, allowing remote cancellation - .. versionadded:: next + .. versionadded:: 3.15 Example:: diff --git a/Doc/library/base64.rst b/Doc/library/base64.rst index 32da8294c5a58a..a722607b2c1f19 100644 --- a/Doc/library/base64.rst +++ b/Doc/library/base64.rst @@ -345,7 +345,7 @@ Refer to the documentation of the individual functions for more information. .. versionadded:: 3.4 - .. versionchanged:: next + .. versionchanged:: 3.15 Added the *canonical* parameter. Single-character final groups are now always rejected as encoding violations. diff --git a/Doc/library/calendar.rst b/Doc/library/calendar.rst index 3eb3f741eee45a..31faa8c4fb43dc 100644 --- a/Doc/library/calendar.rst +++ b/Doc/library/calendar.rst @@ -756,7 +756,7 @@ The following options are accepted: By default, today's date is highlighted in color and can be :ref:`controlled using environment variables `. -.. versionchanged:: next +.. versionchanged:: 3.15 By default, the month is now also highlighted in color, and the days of the week are also in color. This behavior can be :ref:`controlled using environment variables `. diff --git a/Doc/library/contextlib.rst b/Doc/library/contextlib.rst index 77bac8dcc3afbd..02be00f575e725 100644 --- a/Doc/library/contextlib.rst +++ b/Doc/library/contextlib.rst @@ -482,7 +482,7 @@ Functions and classes provided: .. versionadded:: 3.2 - .. versionchanged:: next + .. versionchanged:: 3.15 Decorating a generator function, coroutine function, or asynchronous generator function now keeps the context manager open across iteration or await. Previously the context manager exited as soon as the @@ -538,7 +538,7 @@ Functions and classes provided: .. versionadded:: 3.10 - .. versionchanged:: next + .. versionchanged:: 3.15 Decorating an asynchronous generator function now keeps the context manager open across iteration. Previously the context manager exited as soon as the generator object was created. Synchronous functions diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst index 3db66ad8ea66e7..438afa04c6630d 100644 --- a/Doc/library/ctypes.rst +++ b/Doc/library/ctypes.rst @@ -380,7 +380,7 @@ in both C and ``libffi``, the following complex types are available: - :py:class:`complex` - ``'Zg'`` -.. versionchanged:: next +.. versionchanged:: 3.15 The :py:attr:`~_SimpleCData._type_` types ``F``, ``D`` and ``G`` have been replaced with ``Zf``, ``Zd`` and ``Zg``. diff --git a/Doc/library/faulthandler.rst b/Doc/library/faulthandler.rst index 529e97bae6df8e..905e1acd433617 100644 --- a/Doc/library/faulthandler.rst +++ b/Doc/library/faulthandler.rst @@ -67,7 +67,7 @@ Dumping the traceback .. versionchanged:: 3.5 Added support for passing file descriptor to this function. - .. versionchanged:: next + .. versionchanged:: 3.15 Added the *max_threads* keyword argument. @@ -140,7 +140,7 @@ Fault handler state .. versionchanged:: 3.14 The dump now displays the C stack trace if *c_stack* is true. - .. versionchanged:: next + .. versionchanged:: 3.15 Added the *max_threads* keyword argument. .. function:: disable() @@ -178,7 +178,7 @@ Dumping the tracebacks after a timeout .. versionchanged:: 3.7 This function is now always available. - .. versionchanged:: next + .. versionchanged:: 3.15 Added the *max_threads* keyword argument. .. function:: cancel_dump_traceback_later() @@ -204,7 +204,7 @@ Dumping the traceback on a user signal .. versionchanged:: 3.5 Added support for passing file descriptor to this function. - .. versionchanged:: next + .. versionchanged:: 3.15 Added the *max_threads* keyword argument. .. function:: unregister(signum) diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index 4394dc0690cf7e..1fed142d81b4f7 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -1881,7 +1881,7 @@ are always available. They are listed here in alphabetical order. The name of the module where the sentinel was created. - .. versionadded:: next + .. versionadded:: 3.15 .. class:: slice(stop, /) diff --git a/Doc/library/gc.rst b/Doc/library/gc.rst index 701af579453ce3..65533e7e57adc3 100644 --- a/Doc/library/gc.rst +++ b/Doc/library/gc.rst @@ -133,11 +133,6 @@ The :mod:`!gc` module provides the following functions: With the third generation, things are a bit more complicated, see `Collecting the oldest generation `_ for more information. - In the free-threaded build, the increase in process memory usage is also - checked before running the collector. If the memory usage has not increased - by 10% since the last collection and the net number of object allocations - has not exceeded 40 times *threshold0*, the collection is not run. - See `Garbage collector design `_ for more information. .. versionchanged:: 3.14 diff --git a/Doc/library/http.server.rst b/Doc/library/http.server.rst index 772f2633b29443..c4b9173f9e34eb 100644 --- a/Doc/library/http.server.rst +++ b/Doc/library/http.server.rst @@ -379,7 +379,7 @@ instantiation, of which this module provides three different variants: .. versionchanged:: 3.9 The *directory* parameter accepts a :term:`path-like object`. - .. versionchanged:: next + .. versionchanged:: 3.15 Added *extra_response_headers* parameter. A lot of the work, such as parsing the request, is done by the base class @@ -400,7 +400,7 @@ instantiation, of which this module provides three different variants: cannot be guessed from the file extension of the requested URL. By default, it is set to ``'application/octet-stream'``. - .. versionadded:: next + .. versionadded:: 3.15 .. attribute:: extensions_map @@ -562,7 +562,7 @@ The following options are accepted: python -m http.server --content-type text/html - .. versionadded:: next + .. versionadded:: 3.15 .. option:: --tls-cert @@ -604,7 +604,7 @@ The following options are accepted: headers. Headers that are sent automatically by the server (for instance Content-Type) will not be overwritten by the server. - .. versionadded:: next + .. versionadded:: 3.15 .. _http.server-security: diff --git a/Doc/library/imaplib.rst b/Doc/library/imaplib.rst index fabe2ca9127984..b002f4978123e6 100644 --- a/Doc/library/imaplib.rst +++ b/Doc/library/imaplib.rst @@ -702,7 +702,7 @@ The following attributes are defined on instances of :class:`IMAP4`: interface. The caller is responsible to ensure that the current file is closed before changing it. - .. deprecated-removed:: next 3.19 + .. deprecated-removed:: 3.15 3.19 .. _imap4-example: diff --git a/Doc/library/inspect.rst b/Doc/library/inspect.rst index d8f9f98589c584..8713765b8aebfb 100644 --- a/Doc/library/inspect.rst +++ b/Doc/library/inspect.rst @@ -1244,7 +1244,7 @@ Classes and functions order of keyword-only parameters as of version 3.7, although in practice this order had always been preserved in Python 3. - .. versionchanged:: next + .. versionchanged:: 3.15 The *annotation_format* parameter was added. @@ -1850,7 +1850,7 @@ appending a colon and the qualified name of the target object. Print information about the specified object rather than the source code -.. versionchanged:: next +.. versionchanged:: 3.15 The ``--details`` option now supports basic introspection for modules without available source code and indicates when modules are frozen. diff --git a/Doc/library/pickletools.rst b/Doc/library/pickletools.rst index e753ad3b08b81a..769ca60af1837e 100644 --- a/Doc/library/pickletools.rst +++ b/Doc/library/pickletools.rst @@ -79,7 +79,7 @@ Command-line options A pickle file to read, or ``-`` to indicate reading from standard input. -.. versionadded:: next +.. versionadded:: 3.15 Output is in color by default and can be :ref:`controlled using environment variables `. diff --git a/Doc/library/pprint.rst b/Doc/library/pprint.rst index 0bdbe8c2e2bc97..d62ef1f4d1e6b1 100644 --- a/Doc/library/pprint.rst +++ b/Doc/library/pprint.rst @@ -209,7 +209,7 @@ PrettyPrinter objects .. versionchanged:: 3.11 No longer attempts to write to :data:`!sys.stdout` if it is ``None``. - .. versionchanged:: next + .. versionchanged:: 3.15 Changed default *indent* from 1 to 4 and default *width* from 80 to 88. The default ``compact=False`` layout is now similar to diff --git a/Doc/library/site.rst b/Doc/library/site.rst index 3703d2fa60056f..656fbd142dfb0f 100644 --- a/Doc/library/site.rst +++ b/Doc/library/site.rst @@ -96,7 +96,7 @@ or tab) are executed with :func:`exec`. The :file:`.pth` files are now decoded by UTF-8 at first and then by the :term:`locale encoding` if it fails. -.. versionchanged:: next +.. versionchanged:: 3.15 :file:`.pth` file lines starting with ``import`` are deprecated. During the deprecation period, such lines are still executed (except in the case @@ -110,7 +110,7 @@ or tab) are executed with :func:`exec`. file. Each error is reported and the remaining lines continue to be processed. -.. deprecated-removed:: next 3.20 +.. deprecated-removed:: 3.15 3.20 Decoding :file:`{name}.pth` files in any encoding other than ``utf-8-sig`` is deprecated in Python 3.15, and support for decoding from the locale @@ -126,7 +126,7 @@ or tab) are executed with :func:`exec`. Startup entry points (:file:`.start` files) ------------------------------------------- -.. versionadded:: next +.. versionadded:: 3.15 A startup entry point file is a file whose name has the form :file:`{name}.start` and exists in one of the site-packages directories @@ -371,7 +371,7 @@ Module contents startup data found in those files, so that you can process them explicitly (this is typically used by the :func:`main` function). - .. versionchanged:: next + .. versionchanged:: 3.15 Also processes :file:`.start` files. See :ref:`site-start-files`. All :file:`.pth` and :file:`.start` files are now read and diff --git a/Doc/library/struct.rst b/Doc/library/struct.rst index bf5f754e156d3c..05662c6c2d898d 100644 --- a/Doc/library/struct.rst +++ b/Doc/library/struct.rst @@ -284,7 +284,7 @@ platform-dependent. .. versionchanged:: 3.14 Added support for the ``'F'`` and ``'D'`` formats. -.. versionchanged:: next +.. versionchanged:: 3.15 Added support for the ``'Zf'`` and ``'Zd'`` formats. .. seealso:: diff --git a/Doc/library/threading.rst b/Doc/library/threading.rst index fbe3951e034d07..eca3e76d84a1cf 100644 --- a/Doc/library/threading.rst +++ b/Doc/library/threading.rst @@ -1502,7 +1502,7 @@ of the derived iterators. In this example, each number is printed exactly once, but the work is shared between the two threads. - .. versionadded:: next + .. versionadded:: 3.15 .. function:: synchronized_iterator(func) @@ -1540,7 +1540,7 @@ of the derived iterators. The returned wrapper preserves the metadata of *func*, such as its name and wrapped function reference. - .. versionadded:: next + .. versionadded:: 3.15 .. function:: concurrent_tee(iterable, n=2) @@ -1591,4 +1591,4 @@ of the derived iterators. In this example, both consumer threads see the full sequence of squares from a single generator expression. - .. versionadded:: next + .. versionadded:: 3.15 diff --git a/Doc/library/timeit.rst b/Doc/library/timeit.rst index b16849067f8936..dd574fce09f5fc 100644 --- a/Doc/library/timeit.rst +++ b/Doc/library/timeit.rst @@ -279,7 +279,7 @@ most cases. You can use :func:`time.process_time` to measure CPU time. baseline overhead can be measured by invoking the program without arguments, and it might differ between Python versions. -.. versionadded:: next +.. versionadded:: 3.15 Output is in color by default and can be :ref:`controlled using environment variables `. diff --git a/Doc/library/tokenize.rst b/Doc/library/tokenize.rst index 72fbcaba160660..2eea51734fde03 100644 --- a/Doc/library/tokenize.rst +++ b/Doc/library/tokenize.rst @@ -173,7 +173,7 @@ The following options are accepted: If :file:`filename.py` is specified its contents are tokenized to stdout. Otherwise, tokenization is performed on stdin. -.. versionadded:: next +.. versionadded:: 3.15 Output is in color by default and can be :ref:`controlled using environment variables `. diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index 1e544de74a040f..dca51b8014da5a 100644 --- a/Doc/library/typing.rst +++ b/Doc/library/typing.rst @@ -2970,7 +2970,7 @@ types. .. versionchanged:: 3.13 Support for the :data:`ReadOnly` qualifier was added. See :pep:`705`. - .. versionchanged:: next + .. versionchanged:: 3.15 Support for the *closed* and *extra_items* class arguments was added. See :pep:`728`. @@ -3476,7 +3476,7 @@ Functions and decorators detail, and the exact set of standard library classes that are disjoint bases at runtime may change in future versions of Python. - .. versionadded:: next + .. versionadded:: 3.15 .. decorator:: type_check_only diff --git a/Doc/library/unittest.rst b/Doc/library/unittest.rst index d55bc9f9662360..c54f3e2792c388 100644 --- a/Doc/library/unittest.rst +++ b/Doc/library/unittest.rst @@ -1110,7 +1110,7 @@ Test cases .. versionchanged:: 3.3 Added the *msg* keyword argument when used as a context manager. - .. versionchanged:: next + .. versionchanged:: 3.15 Warnings that do not match the specified category are no longer swallowed. Nested context managers are now supported. @@ -1144,7 +1144,7 @@ Test cases .. versionchanged:: 3.3 Added the *msg* keyword argument when used as a context manager. - .. versionchanged:: next + .. versionchanged:: 3.15 Warnings that do not match the specified category or regex are no longer swallowed. Nested context managers are now supported. diff --git a/Doc/library/webbrowser.rst b/Doc/library/webbrowser.rst index 30e4df1688d7a0..ae9855773463a1 100644 --- a/Doc/library/webbrowser.rst +++ b/Doc/library/webbrowser.rst @@ -223,11 +223,11 @@ Notes: .. versionchanged:: 3.13 Support for iOS has been added. -.. versionadded:: next +.. versionadded:: 3.15 :class:`!MacOS` has been added as a replacement for :class:`!MacOSXOSAScript`, opening browsers via :program:`/usr/bin/open` instead of :program:`osascript`. -.. deprecated-removed:: next 3.17 +.. deprecated-removed:: 3.15 3.17 :class:`!MacOSXOSAScript` is deprecated in favour of :class:`!MacOS`. Using :program:`/usr/bin/open` instead of :program:`osascript` is a security and usability improvement: :program:`osascript` may be blocked diff --git a/Doc/library/xml.rst b/Doc/library/xml.rst index 98be50e15ff463..62cf616ef37782 100644 --- a/Doc/library/xml.rst +++ b/Doc/library/xml.rst @@ -54,7 +54,7 @@ This module also defines utility functions. "!", "?", and "=" are forbidden. The name cannot start with a digit or a character like "-", ".", and "·". - .. versionadded:: next + .. versionadded:: 3.15 .. function:: is_valid_text(data) @@ -66,7 +66,7 @@ This module also defines utility functions. characters (excluding TAB, CR and LF), surrogate characters and special Unicode characters U+FFFE and U+FFFF. - .. versionadded:: next + .. versionadded:: 3.15 .. _xml-security: diff --git a/Doc/tutorial/interpreter.rst b/Doc/tutorial/interpreter.rst index 72cac1c1e909d3..45a2ca21801437 100644 --- a/Doc/tutorial/interpreter.rst +++ b/Doc/tutorial/interpreter.rst @@ -16,7 +16,7 @@ Unix shell's search path makes it possible to start it by typing the command: .. code-block:: text - python3.15 + python3.16 to the shell. [#]_ Since the choice of the directory where the interpreter lives is an installation option, other places are possible; check with your local @@ -97,8 +97,8 @@ before printing the first prompt: .. code-block:: shell-session - $ python3.15 - Python 3.15 (default, May 7 2025, 15:46:04) + $ python3.16 + Python 3.16 (default, May 7 2026, 19:03:04) [GCC 10.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> diff --git a/Doc/tutorial/stdlib.rst b/Doc/tutorial/stdlib.rst index e7c64104474050..dec2008add1bf5 100644 --- a/Doc/tutorial/stdlib.rst +++ b/Doc/tutorial/stdlib.rst @@ -15,7 +15,7 @@ operating system:: >>> import os >>> os.getcwd() # Return the current working directory - 'C:\\Python315' + 'C:\\Python316' >>> os.chdir('/server/accesslogs') # Change current working directory >>> os.system('mkdir today') # Run the command mkdir in the system shell 0 diff --git a/Doc/tutorial/stdlib2.rst b/Doc/tutorial/stdlib2.rst index 2c3ec71cd3de39..0b0e934186c4b5 100644 --- a/Doc/tutorial/stdlib2.rst +++ b/Doc/tutorial/stdlib2.rst @@ -289,7 +289,7 @@ applications include caching objects that are expensive to create:: Traceback (most recent call last): File "", line 1, in d['primary'] # entry was automatically removed - File "C:/python315/lib/weakref.py", line 46, in __getitem__ + File "C:/python316/lib/weakref.py", line 46, in __getitem__ o = self.data[key]() KeyError: 'primary' diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst index 7cbc03f5f1281e..59e8f4f9f5a3e4 100644 --- a/Doc/using/cmdline.rst +++ b/Doc/using/cmdline.rst @@ -662,7 +662,7 @@ Miscellaneous options initialization. Python needs to be :ref:`built in debug mode ` for this option to exist. See also :envvar:`PYTHON_PRESITE`. - .. versionchanged:: next + .. versionchanged:: 3.15 Accept also ``module:func`` entry point format. .. versionadded:: 3.13 @@ -1462,7 +1462,7 @@ Debug-mode variables Needs Python configured with the :option:`--with-pydebug` build option. - .. versionchanged:: next + .. versionchanged:: 3.15 Accept also ``module:func`` entry point format. .. versionadded:: 3.13 diff --git a/Doc/using/configure.rst b/Doc/using/configure.rst index 77771bb70e1a30..8ab7aa0d5e8263 100644 --- a/Doc/using/configure.rst +++ b/Doc/using/configure.rst @@ -1052,7 +1052,7 @@ Linker options The default (when ``-enable-shared`` is used) is to link the Python interpreter against the built shared library. - .. versionadded:: next + .. versionadded:: 3.15 Libraries options diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst index 50ce22c4e91f19..9e2f789334ff02 100644 --- a/Doc/whatsnew/3.15.rst +++ b/Doc/whatsnew/3.15.rst @@ -1903,6 +1903,7 @@ The major upgrades to the JIT are: * New tracing frontend * Basic register allocation in the JIT * More JIT optimizations +* GDB and GNU ``backtrace()`` unwinding support * Better machine code generation .. rubric:: LLVM 21 build-time dependency @@ -1954,6 +1955,17 @@ reference count updates and perform in-place operations on ints and floats. The JIT optimizer now supports significantly more operations than in 3.14. (Contributed by Kumar Aditya, Ken Jin, Jiahao Li, and Sacul in :gh:`131798`.) +.. rubric:: GDB and GNU ``backtrace()`` unwinding support + +The JIT compiler now publishes unwind information for generated machine code to the +GDB interface on supported Linux ELF platforms. When libgcc frame +registration is available, the same unwind information is also registered for +GNU ``backtrace()`` stack walkers. This allows native debuggers, crash +handlers, and diagnostic tools using these mechanisms to unwind through JIT +frames instead of stopping at generated code. +(Contributed by Diego Russo and Pablo Galindo Salgado in :gh:`146071` and +:gh:`149104`.) + .. rubric:: Better machine code generation The JIT compiler's machine code generator now produces better machine code diff --git a/Doc/whatsnew/3.16.rst b/Doc/whatsnew/3.16.rst new file mode 100644 index 00000000000000..5931586d5a1d9c --- /dev/null +++ b/Doc/whatsnew/3.16.rst @@ -0,0 +1,159 @@ + +**************************** + What's new in Python 3.16 +**************************** + +:Editor: TBD + +.. Rules for maintenance: + + * Anyone can add text to this document. Do not spend very much time + on the wording of your changes, because your text will probably + get rewritten to some degree. + + * The maintainer will go through Misc/NEWS periodically and add + changes; it's therefore more important to add your changes to + Misc/NEWS than to this file. + + * This is not a complete list of every single change; completeness + is the purpose of Misc/NEWS. Some changes I consider too small + or esoteric to include. If such a change is added to the text, + I'll just remove it. (This is another reason you shouldn't spend + too much time on writing your addition.) + + * If you want to draw your new text to the attention of the + maintainer, add 'XXX' to the beginning of the paragraph or + section. + + * It's OK to just add a fragmentary note about a change. For + example: "XXX Describe the transmogrify() function added to the + socket module." The maintainer will research the change and + write the necessary text. + + * You can comment out your additions if you like, but it's not + necessary (especially when a final release is some months away). + + * Credit the author of a patch or bugfix. Just the name is + sufficient; the e-mail address isn't necessary. + + * It's helpful to add the issue number as a comment: + + XXX Describe the transmogrify() function added to the socket + module. + (Contributed by P.Y. Developer in :gh:`12345`.) + + This saves the maintainer the effort of going through the VCS log + when researching a change. + +This article explains the new features in Python 3.16, compared to 3.15. + +For full details, see the :ref:`changelog `. + +.. note:: + + Prerelease users should be aware that this document is currently in draft + form. It will be updated substantially as Python 3.16 moves towards release, + so it's worth checking back even after reading earlier versions. + + +Summary --- release highlights +============================== + +.. This section singles out the most important changes in Python 3.16. + Brevity is key. + + +.. PEP-sized items next. + + + +New features +============ + + + +Other language changes +====================== + + + +New modules +=========== + +* None yet. + + +Improved modules +================ + +module_name +----------- + +* TODO + +.. Add improved modules above alphabetically, not here at the end. + +Optimizations +============= + +module_name +----------- + +* TODO + + + +Removed +======= + +module_name +----------- + +* TODO +.. Add removals above alphabetically, not here at the end. + + +Deprecated +========== + +* module_name: + TODO + + +.. Add deprecations above alphabetically, not here at the end. + + +Porting to Python 3.16 +====================== + +This section lists previously described changes and other bugfixes +that may require changes to your code. + + +Build changes +============= + + +C API changes +============= + +New features +------------ + +* TODO + +Porting to Python 3.16 +---------------------- + +* TODO + +Deprecated C APIs +----------------- + +* TODO + +.. Add C API deprecations above alphabetically, not here at the end. + +Removed C APIs +-------------- + diff --git a/Doc/whatsnew/index.rst b/Doc/whatsnew/index.rst index 38194db670b839..420876a9b3ecd0 100644 --- a/Doc/whatsnew/index.rst +++ b/Doc/whatsnew/index.rst @@ -11,6 +11,7 @@ anyone wishing to stay up-to-date after a new release. .. toctree:: :maxdepth: 2 + 3.16.rst 3.15.rst 3.14.rst 3.13.rst diff --git a/Include/internal/pycore_interp_structs.h b/Include/internal/pycore_interp_structs.h index 02a10e87b7e15c..f13bc2178b1e7e 100644 --- a/Include/internal/pycore_interp_structs.h +++ b/Include/internal/pycore_interp_structs.h @@ -263,16 +263,6 @@ struct _gc_runtime_state { #ifdef Py_GIL_DISABLED /* True if gc.freeze() has been used. */ int freeze_active; - - /* Memory usage of the process (RSS + swap) after last GC. */ - Py_ssize_t last_mem; - - /* This accumulates the new object count whenever collection is deferred - due to the RSS increase condition not being meet. Reset on collection. */ - Py_ssize_t deferred_count; - - /* Mutex held for gc_should_collect_mem_usage(). */ - PyMutex mutex; #else PyGC_Head *generation0; #endif diff --git a/Include/patchlevel.h b/Include/patchlevel.h index 974246f896e10b..d82d5258406941 100644 --- a/Include/patchlevel.h +++ b/Include/patchlevel.h @@ -21,13 +21,13 @@ /* Version parsed out into numeric values */ /*--start constants--*/ #define PY_MAJOR_VERSION 3 -#define PY_MINOR_VERSION 15 +#define PY_MINOR_VERSION 16 #define PY_MICRO_VERSION 0 #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA -#define PY_RELEASE_SERIAL 8 +#define PY_RELEASE_SERIAL 0 /* Version as a string */ -#define PY_VERSION "3.15.0a8+" +#define PY_VERSION "3.16.0a0" /*--end constants--*/ diff --git a/Lib/pydoc_data/module_docs.py b/Lib/pydoc_data/module_docs.py index 9e33c6765bb19e..1a3126d3db9590 100644 --- a/Lib/pydoc_data/module_docs.py +++ b/Lib/pydoc_data/module_docs.py @@ -1,4 +1,4 @@ -# Autogenerated by Sphinx on Tue Apr 7 14:21:08 2026 +# Autogenerated by Sphinx on Thu May 7 16:26:23 2026 # as part of the release process. module_docs = { diff --git a/Lib/pydoc_data/topics.py b/Lib/pydoc_data/topics.py index 68f6771d4cedcf..5f61001c46b79c 100644 --- a/Lib/pydoc_data/topics.py +++ b/Lib/pydoc_data/topics.py @@ -1,4 +1,4 @@ -# Autogenerated by Sphinx on Tue Apr 7 14:21:08 2026 +# Autogenerated by Sphinx on Thu May 7 16:26:23 2026 # as part of the release process. topics = { @@ -2572,7 +2572,7 @@ def foo(): | "None" | "True" | "False" - signed_number: ["-"] NUMBER + signed_number: ["+" | "-"] NUMBER The rule "strings" and the token "NUMBER" are defined in the standard Python grammar. Triple-quoted strings are supported. Raw strings and @@ -6841,8 +6841,9 @@ def whats_on_the_telly(penguin=None): 1. find a module, loading and initializing it if necessary -2. define a name or names in the local namespace for the scope where - the "import" statement occurs. +2. define a name or names in the current namespace for the scope where + the "import" statement occurs, just as an assignment statement + would (including "global" and "nonlocal" semantics). When the statement contains multiple clauses (separated by commas) the two steps are carried out separately for each clause, just as though @@ -6887,7 +6888,7 @@ def whats_on_the_telly(penguin=None): 3. if the attribute is not found, "ImportError" is raised. - 4. otherwise, a reference to that value is stored in the local + 4. otherwise, a reference to that value is stored in the current namespace, using the name in the "as" clause if it is present, otherwise using the attribute name @@ -6984,6 +6985,53 @@ def whats_on_the_telly(penguin=None): Added in version 3.15. +Compatibility via "__lazy_modules__" +------------------------------------ + +As an alternative to using the "lazy" keyword, a module can opt into +lazy loading for specific imports by defining a module-level +"__lazy_modules__" variable. When present, it must be a container of +fully qualified module name strings. Any regular (non-"lazy") +"import" statement at module scope whose target appears in +"__lazy_modules__" is treated as a lazy import, exactly as if the +"lazy" keyword had been used. + +This provides a way to enable lazy loading for specific dependencies +without changing individual "import" statements. This is useful when +supporting Python versions older than 3.15 while using lazy imports in +3.15+: + + __lazy_modules__ = ["json", "pathlib"] + + import json # loaded lazily (name is in __lazy_modules__) + import os # loaded eagerly (name not in __lazy_modules__) + + import pathlib # loaded lazily + +Relative imports are resolved to their absolute name before the +lookup, so "__lazy_modules__" must always contain fully qualified +module names. + +For "from"-style imports, the relevant name is the module following +"from", not the names of its members: + + # In mypackage/mymodule.py + __lazy_modules__ = ["mypackage", "mypackage.sub.utils"] + + from . import helper # loaded lazily: . resolves to mypackage + from .sub.utils import func # loaded lazily: .sub.utils resolves to mypackage.sub.utils + import json # loaded eagerly (not in __lazy_modules__) + +Imports inside functions, class bodies, or "try"/"except"/"finally" +blocks are always eager, regardless of "__lazy_modules__". + +Setting "-X lazy_imports=none" (or the "PYTHON_LAZY_IMPORTS" +environment variable to "none") overrides "__lazy_modules__" and +forces all imports to be eager. + +Added in version 3.15. + + Future statements ================= @@ -11035,8 +11083,18 @@ class is used in a class pattern with positional arguments, each str.swapcase() Return a copy of the string with uppercase characters converted to - lowercase and vice versa. Note that it is not necessarily true that - "s.swapcase().swapcase() == s". + lowercase and vice versa. For example: + + >>> 'Hello World'.swapcase() + 'hELLO wORLD' + + Note that it is not necessarily true that "s.swapcase().swapcase() + == s". For example: + + >>> 'straße'.swapcase().swapcase() + 'strasse' + + See also "str.lower()" and "str.upper()". str.title() @@ -12871,6 +12929,19 @@ def foo(): Added in version 3.14. +module.__lazy_modules__ + + A container (an object implementing "__contains__()") of fully + qualified module name strings. When defined at module scope, any + regular "import" statement in that module whose target module name + appears in this container is treated as a lazy import, as if the + "lazy" keyword had been used. Imports inside functions, class + bodies, or "try"/"except"/"finally" blocks are unaffected. + + See Compatibility via __lazy_modules__ for details and examples. + + Added in version 3.15. + Module dictionaries ------------------- @@ -13167,12 +13238,6 @@ class instance has a namespace implemented as a dictionary which is +----------------------------------------------------+----------------------------------------------------+ | codeobject.co_firstlineno | The line number of the first line of the function | +----------------------------------------------------+----------------------------------------------------+ -| codeobject.co_lnotab | A string encoding the mapping from *bytecode* | -| | offsets to line numbers. For details, see the | -| | source code of the interpreter. Deprecated since | -| | version 3.12: This attribute of code objects is | -| | deprecated, and may be removed in Python 3.15. | -+----------------------------------------------------+----------------------------------------------------+ | codeobject.co_stacksize | The required stack size of the code object | +----------------------------------------------------+----------------------------------------------------+ | codeobject.co_flags | An "integer" encoding a number of flags for the | diff --git a/Misc/NEWS.d/3.15.0b1.rst b/Misc/NEWS.d/3.15.0b1.rst new file mode 100644 index 00000000000000..e0fcab0eef870f --- /dev/null +++ b/Misc/NEWS.d/3.15.0b1.rst @@ -0,0 +1,2256 @@ +.. date: 2026-05-02-15-38-03 +.. gh-issue: 149254 +.. nonce: 0HOL0j +.. release date: 2026-05-07 +.. section: Security + +Update Android and iOS installer to use OpenSSL 3.5.6. + +.. + +.. date: 2026-04-26-17-49-58 +.. gh-issue: 149017 +.. nonce: EiVFPo +.. section: Security + +Update bundled `libexpat `_ to version 2.8.0. + +.. + +.. date: 2026-04-24-23-15-42 +.. gh-issue: 148252 +.. nonce: 8BLmzd +.. section: Security + +Fixed string table and sample record bounds checks in +:mod:`!_remote_debugging` when decoding certain ``.pyb`` inputs on 32-bit +builds. Patch by Maurycy Pawłowski-Wieroński. + +.. + +.. date: 2026-04-21-13-46-30 +.. gh-issue: 90309 +.. nonce: srvj9q +.. section: Security + +Base64-encode values when embedding cookies to JavaScript using the +:meth:`http.cookies.BaseCookie.js_output` method to avoid injection and +escaping. + +.. + +.. date: 2026-04-20-15-31-37 +.. gh-issue: 148808 +.. nonce: _Z8JL0 +.. section: Security + +Added buffer boundary check when using ``nbytes`` parameter with +:meth:`!asyncio.AbstractEventLoop.sock_recvfrom_into`. Only relevant for +Windows and the :class:`asyncio.ProactorEventLoop`. + +.. + +.. date: 2026-04-10-16-28-21 +.. gh-issue: 148395 +.. nonce: kfzm0G +.. section: Security + +Fix a dangling input pointer in :class:`lzma.LZMADecompressor`, +:class:`bz2.BZ2Decompressor`, and internal :class:`!zlib._ZlibDecompressor` +when memory allocation fails with :exc:`MemoryError`, which could let a +subsequent :meth:`!decompress` call read or write through a stale pointer to +the already-released caller buffer. + +.. + +.. date: 2026-04-08-14-25-47 +.. gh-issue: 148252 +.. nonce: IEp9Rt +.. section: Security + +Fixed stack depth calculation in :mod:`!_remote_debugging` when decoding +certain ``.pyb`` inputs on 32-bit builds. Issue originally identified and +diagnosed by Tristan Madani (@TristanInSec on GitHub). + +.. + +.. date: 2026-04-06-13-55-00 +.. gh-issue: 148178 +.. nonce: Rs7kLm +.. section: Security + +Hardened :mod:`!_remote_debugging` by validating remote debug offset tables +before using them to size memory reads or interpret remote layouts. + +.. + +.. date: 2026-03-31-09-15-51 +.. gh-issue: 148169 +.. nonce: EZJzz2 +.. section: Security + +A bypass in :mod:`webbrowser` allowed URLs prefixed with ``%action`` to pass +the dash-prefix safety check. + +.. + +.. date: 2026-03-29-12-51-33 +.. gh-issue: 146581 +.. nonce: 4vZfB0 +.. section: Security + +Fix vulnerability in :func:`shutil.unpack_archive` for ZIP files on Windows +which allowed to write files outside of the destination tree if the patch in +the archive contains a Windows drive prefix. Now such invalid paths will be +skipped. Files containing ".." in the name (like "foo..bar") are no longer +skipped. + +.. + +.. date: 2026-03-26-01-42-15 +.. gh-issue: 137586 +.. nonce: j3SkOm +.. section: Security + +Fix a PATH-injection vulnerability in :mod:`webbrowser` on macOS where +``osascript`` was invoked without an absolute path. The new :class:`!MacOS` +class uses ``/usr/bin/open`` directly, eliminating the dependency on +``osascript`` entirely. + +.. + +.. date: 2026-03-25-00-51-03 +.. gh-issue: 146333 +.. nonce: LqdL__bn +.. section: Security + +Fix quadratic backtracking in :class:`configparser.RawConfigParser` option +parsing regexes (``OPTCRE`` and ``OPTCRE_NV``). A crafted configuration line +with many whitespace characters could cause excessive CPU usage. + +.. + +.. date: 2026-03-20-09-29-42 +.. gh-issue: 146211 +.. nonce: PQVbs7 +.. section: Security + +Reject CR/LF characters in tunnel request headers for the +HTTPConnection.set_tunnel() method. + +.. + +.. date: 2026-05-06-15-57-28 +.. gh-issue: 148940 +.. nonce: dRIXiY +.. section: Core and Builtins + +Revert the process size based deferral of garbage collection (GH-133464). +The performance issue this change resolves is also fixed by GH-142562. This +approach has the problem that process size as seen by the OS (e.g. the +resident size or RSS) does not immediately decrease after cyclic garbage is +freed since mimalloc defers returning memory of the OS. This change applies +to the free-threaded GC only. + +.. + +.. date: 2026-05-03-10-24-50 +.. gh-issue: 149243 +.. nonce: Zh1q9_ +.. section: Core and Builtins + +Check for recursion limits in ``CALL_ALLOC_AND_ENTER_INIT`` opcode. + +.. + +.. date: 2026-05-02-18-02-41 +.. gh-issue: 126910 +.. nonce: nqDVrp +.. section: Core and Builtins + +Add support for unwinding JIT frames using GNU backtrace. Patch by Diego +Russo and Pablo Galindo + +.. + +.. date: 2026-04-30-01-35-09 +.. gh-issue: 149171 +.. nonce: meXWpl +.. section: Core and Builtins + +Allow assignment to the ``__module__`` attribute of +:class:`typing.TypeAliasType` instances. + +.. + +.. date: 2026-04-29-14-06-00 +.. gh-issue: 149122 +.. nonce: P8k2Lm +.. section: Core and Builtins + +Fix a crash in optimized calls to :func:`all`, :func:`any`, :func:`tuple`, +:func:`list`, and :func:`set` with an async generator expression argument +(for example, ``tuple(await x for x in y)``). These calls now correctly +raise ``TypeError`` instead of crashing. + +.. + +.. date: 2026-04-28-21-19-21 +.. gh-issue: 149049 +.. nonce: 98u2Ib +.. section: Core and Builtins + +Fix stack underflow for ``BINARY_OP`` in tier 2. + +.. + +.. date: 2026-04-28-05-59-17 +.. gh-issue: 83065 +.. nonce: f0UPNE +.. section: Core and Builtins + +Fix a deadlock that could occur when one thread is importing a submodule +(for example ``import pkg.sub.mod``) while another thread is importing one +of its parent packages (for example ``import pkg.sub``) and that parent's +``__init__.py`` itself imports the submodule. The import system now acquires +module locks in hierarchical (parent-before-child) order so the two threads +serialise instead of raising ``_DeadlockError``. + +.. + +.. date: 2026-04-22-14-55-18 +.. gh-issue: 113956 +.. nonce: 0VEXd6 +.. section: Core and Builtins + +Fix a data race in :func:`sys.intern` in the free-threaded build when +interning a string owned by another thread. An interned copy owned by the +current thread is used instead when it is not safe to immortalize the +original. + +.. + +.. date: 2026-04-21-19-29-29 +.. gh-issue: 148850 +.. nonce: MSH0J_ +.. section: Core and Builtins + +Fix the memory sanitizer false positive in :func:`os.getrandom`. + +.. + +.. date: 2026-04-21-14-36-44 +.. gh-issue: 148820 +.. nonce: XhOGhA +.. section: Core and Builtins + +Fix a race in :c:type:`!_PyRawMutex` on the free-threaded build where a +``Py_PARK_INTR`` return from ``_PySemaphore_Wait`` could let the waiter +destroy its semaphore before the unlocking thread's ``_PySemaphore_Wakeup`` +completed, causing a fatal ``ReleaseSemaphore`` error. + +.. + +.. date: 2026-04-21-06-43-32 +.. gh-issue: 148829 +.. nonce: GtIrYO +.. section: Core and Builtins + +Add :class:`sentinel`, implementing :pep:`661`. PEP by Tal Einat; patch by +Jelle Zijlstra. + +.. + +.. date: 2026-04-20-15-25-55 +.. gh-issue: 146270 +.. nonce: qZYfyc +.. section: Core and Builtins + +Fix a sequential consistency bug in ``structmember.c``. + +.. + +.. date: 2026-04-19-22-35-39 +.. gh-issue: 148766 +.. nonce: coLWln +.. section: Core and Builtins + +The interpreter help (such as ``python --help``) is now in color. Patch by +Hugo van Kemenade. + +.. + +.. date: 2026-04-18-16-41-04 +.. gh-issue: 148571 +.. nonce: Q6WB3A +.. section: Core and Builtins + +Fix a crash in the JIT optimizer when specialized opcode families inherited +incompatible recorded operand layouts. + +.. + +.. date: 2026-04-17-20-37-02 +.. gh-issue: 148653 +.. nonce: nbbHMh +.. section: Core and Builtins + +Forbid :mod:`marshalling ` recursive code objects, :class:`slice` +and :class:`frozendict` objects which cannot be correctly unmarshalled. + +.. + +.. date: 2026-04-17-11-30-00 +.. gh-issue: 142516 +.. nonce: GcGen315 +.. section: Core and Builtins + +Forward-port the generational cycle garbage collector to the default 3.15 +build, replacing the incremental collector while leaving the free-threaded +collector unchanged. + +.. + +.. date: 2026-04-15-12-00-00 +.. gh-issue: 146462 +.. nonce: 1YfK6v +.. section: Core and Builtins + +Added ``PyTypeObject.tp_basicsize``, ``PyTypeObject.tp_dictoffset``, and +``PyHeapTypeObject.ht_cached_keys`` offsets to :c:type:`!_Py_DebugOffsets` +to support version-independent read-only dict introspection tools. + +.. + +.. date: 2026-04-13-23-21-45 +.. gh-issue: 145239 +.. nonce: pL8qRt +.. section: Core and Builtins + +Unary plus is now accepted in :keyword:`match` literal patterns, mirroring +the existing support for unary minus. Patch by Bartosz Sławecki. + +.. + +.. date: 2026-04-13-16-52-33 +.. gh-issue: 148515 +.. nonce: 09xulC +.. section: Core and Builtins + +Fix a bug in the JIT optimizer reading operands for uops with multiple +caches. + +.. + +.. date: 2026-04-12-17-27-28 +.. gh-issue: 148390 +.. nonce: MAhw7F +.. section: Core and Builtins + +Fix an undefined behavior in :class:`memoryview` when using the native +boolean format (``?``) in :meth:`~memoryview.cast`. Previously, on some +common platforms, calling ``memoryview(b).cast("?").tolist()`` incorrectly +returned ``[False]`` instead of ``[True]`` for any even byte *b*. Patch by +Bénédikt Tran. + +.. + +.. date: 2026-04-12-10-40-57 +.. gh-issue: 148418 +.. nonce: ggA1LZ +.. section: Core and Builtins + +Fix a possible reference leak in a corrupted ``TYPE_CODE`` marshal stream. + +.. + +.. date: 2026-04-11-17-28-52 +.. gh-issue: 148393 +.. nonce: lX6gwN +.. section: Core and Builtins + +Fix data races between :c:func:`PyDict_Watch` / :c:func:`PyDict_Unwatch` and +concurrent dict mutation in the :term:`free-threaded build`. + +.. + +.. date: 2026-04-11-15-12-53 +.. gh-issue: 148398 +.. nonce: g62jCA +.. section: Core and Builtins + +Fix a bug in the JIT optimizer where class attribute loads were not +invalidated after type mutation. + +.. + +.. date: 2026-04-10-23-13-19 +.. gh-issue: 146527 +.. nonce: P3Xv4Q +.. section: Core and Builtins + +Add a ``GCMonitor`` class with a ``get_gc_stats`` method to the +:mod:`!_remote_debugging` module to allow reading GC statistics from an +external Python process without requiring the full ``RemoteUnwinder`` +functionality. Patch by Sergey Miryanov and Pablo Galindo. + +.. + +.. date: 2026-04-10-14-20-54 +.. gh-issue: 148284 +.. nonce: HKs-S_ +.. section: Core and Builtins + +Fix high stack consumption in Python's interpreter loop on Clang 22 by +setting function limits for inlining when building with computed gotos. + +.. + +.. date: 2026-04-09-14-18-33 +.. gh-issue: 148037 +.. nonce: aP3CSX +.. section: Core and Builtins + +Remove critical section from :c:func:`!PyCode_Addr2Line` in free-threading. + +.. + +.. date: 2026-04-08-06-59-23 +.. gh-issue: 115802 +.. nonce: jqfZty +.. section: Core and Builtins + +Improve JIT code generation on Linux AArch64 by reducing the indirect call +to external symbols. Patch by Diego Russo. + +.. + +.. date: 2026-04-08-02-49-07 +.. gh-issue: 148189 +.. nonce: 0KpXID +.. section: Core and Builtins + +Repaired undercount of bytes in type-specific free lists reported by +sys._debugmallocstats(). For types that participate in cyclic garbage +collection, it was missing two pointers used by GC. + +.. + +.. date: 2026-04-07-20-37-23 +.. gh-issue: 148222 +.. nonce: uF4D4E +.. section: Core and Builtins + +Fix vectorcall support in :class:`types.GenericAlias` when the underlying +type does not support the vectorcall protocol. Fix possible leaks in +:class:`types.GenericAlias` and :class:`types.UnionType` in case of memory +error. + +.. + +.. date: 2026-04-07-20-21-44 +.. gh-issue: 148208 +.. nonce: JAxpDU +.. section: Core and Builtins + +Fix recursion depth leak in :c:func:`PyObject_Print` + +.. + +.. date: 2026-04-06-18-25-53 +.. gh-issue: 95004 +.. nonce: CQeT_H +.. section: Core and Builtins + +The specializing interpreter now specializes for :class:`enum.Enum` +improving performance and scaling in free-threading. Patch by Kumar Aditya. + +.. + +.. date: 2026-04-05-16-10-00 +.. gh-issue: 149202 +.. nonce: W8sQeR +.. section: Core and Builtins + +Enable frame pointers by default for GCC-compatible CPython builds, +including ``-mno-omit-leaf-frame-pointer``, ``-marm`` on 32-bit ARM, and/or +``-mbackchain`` on s390x platforms when the compiler supports them, so +profilers and debuggers can unwind native interpreter frames more reliably. +Users can pass :option:`--without-frame-pointers` to ``./configure`` to opt +out. + +.. + +.. date: 2026-04-02-17-52-33 +.. gh-issue: 148014 +.. nonce: 2Y6ND_ +.. section: Core and Builtins + +Accept a function name in :option:`-X presite <-X>` command line option and +:envvar:`PYTHON_PRESITE` environment variable. Patch by Victor Stinner. + +.. + +.. date: 2026-04-02-13-25-09 +.. gh-issue: 147998 +.. nonce: wnzkRT +.. section: Core and Builtins + +Fixed a memory leak in interpreter helper calls so cleanup works when an +operation falls across interpreter boundaries. Patch by Maurycy +Pawłowski-Wieroński. + +.. + +.. date: 2026-03-26-08-49-35 +.. gh-issue: 146455 +.. nonce: f54083a9 +.. section: Core and Builtins + +Fix O(N²) compile-time regression in constant folding after it was moved +from AST to CFG optimizer. + +.. + +.. date: 2026-03-25-12-00-00 +.. gh-issue: 146306 +.. nonce: B9f62e +.. section: Core and Builtins + +Specialize float true division in the tier 2 optimizer with inplace mutation +for uniquely-referenced operands. + +.. + +.. date: 2026-03-23-11-34-37 +.. gh-issue: 142186 +.. nonce: v8Yp3W +.. section: Core and Builtins + +Global :mod:`sys.monitoring` events can now be turned on and disabled on a +per code object basis. Returning ``DISABLE`` from a callback disables the +event for the entire code object (for the current tool). + +.. + +.. date: 2026-03-17-20-30-17 +.. gh-issue: 126910 +.. nonce: NaUwmD +.. section: Core and Builtins + +Add support for unwinding JIT frames using GDB. Patch by Diego Russo and +Pablo Galindo. + +.. + +.. date: 2026-03-16-17-29-22 +.. gh-issue: 146031 +.. nonce: 6nyB7C +.. section: Core and Builtins + +The unstable API _PyInterpreterState_SetEvalFrameFunc has a companion +function _PyInterpreterState_SetEvalFrameAllowSpecialization to specify if +specialization should be allowed. When this option is set to 1 the +specializer will turn Python -> Python calls into specialized opcodes which +the replacement interpreter loop can choose to respect and perform inlined +dispatch. + +.. + +.. date: 2026-02-26-21-22-34 +.. gh-issue: 145278 +.. nonce: DHkYqt +.. section: Core and Builtins + +The :mod:`encodings` is now partially frozen, including the ``aliases`` and +``utf_8`` submodules. + +The :mod:`linecache` is now frozen. + +.. + +.. date: 2026-02-18-16-53-26 +.. gh-issue: 134584 +.. nonce: a-O4sd +.. section: Core and Builtins + +Optimize and eliminate redundant ref-counting for ``MAKE_FUNCTION`` in the +JIT. + +.. + +.. date: 2026-01-15-13-37-21 +.. gh-issue: 143886 +.. nonce: 2gk5QC +.. section: Core and Builtins + +Reorder function annotations so positional-only arguments are returned +before other arguments. This fixes how :func:`functools.singledispatch` +registers functions with positional-only arguments. + +.. + +.. date: 2025-12-08-00-25-35 +.. gh-issue: 98894 +.. nonce: hKWyfqNx +.. section: Core and Builtins + +Restore ``function__entry`` and ``function__return`` DTrace/SystemTap probes +that were broken since Python 3.11. + +.. + +.. date: 2025-08-16-12-56-08 +.. gh-issue: 116021 +.. nonce: hMN9yw +.. section: Core and Builtins + +Support for creating instances of abstract AST nodes from the :mod:`ast` +module is deprecated and scheduled for removal in Python 3.20. Patch by +Brian Schubert. + +.. + +.. date: 2025-08-15-21-33-16 +.. gh-issue: 137814 +.. nonce: 6yRTeu +.. section: Core and Builtins + +Fix the ``__qualname__`` attribute of ``__annotate__`` functions on +functions. + +.. + +.. date: 2025-08-09-19-00-36 +.. gh-issue: 137600 +.. nonce: p_p6OU +.. section: Core and Builtins + +:mod:`ast`: The constructors of AST nodes now raise a :exc:`TypeError` when +a required argument is omitted or when a keyword argument that does not map +to a field on the AST node is passed. These cases had previously raised a +:exc:`DeprecationWarning` since Python 3.13. Patch by Brian Schubert. + +.. + +.. date: 2025-08-01-20-31-30 +.. gh-issue: 137293 +.. nonce: 4x3JbV +.. section: Core and Builtins + +Fix :exc:`SystemError` when searching ELF Files in :func:`sys.remote_exec`. + +.. + +.. date: 2025-06-10-17-30-55 +.. gh-issue: 135357 +.. nonce: sUXU1W +.. section: Core and Builtins + +Add support for :data:`!socket.SO_PASSRIGHTS` on Linux. + +.. + +.. date: 2025-05-26-10-03-18 +.. gh-issue: 134690 +.. nonce: mUMT16 +.. section: Core and Builtins + +Removed deprecated in :pep:`626` since Python 3.12 +:attr:`!codeobject.co_lnotab` from :class:`types.CodeType`. + +.. + +.. date: 2025-01-17-19-48-28 +.. gh-issue: 100239 +.. nonce: 7pbTEA +.. section: Core and Builtins + +Specialize ``BINARY_OP`` for concatenation of lists and tuples, and +propagate the result type through ``_BINARY_OP_EXTEND`` in the tier 2 +optimizer so that follow-up type guards can be eliminated. + +.. + +.. date: 2026-05-06-14-26-37 +.. gh-issue: 148823 +.. nonce: ySmOE4 +.. section: Library + +Defer the import of ``_colorize`` in ``argparse`` until needed for coloring +output. + +.. + +.. date: 2026-05-06-05-56-59 +.. gh-issue: 141560 +.. nonce: wlSQaW +.. section: Library + +Add an *annotation_format* parameter to :func:`inspect.getfullargspec`. + +.. + +.. date: 2026-05-05-13-12-58 +.. gh-issue: 139489 +.. nonce: a8qqIM +.. section: Library + +Add the :func:`xml.is_valid_text` function, which allows to check whether a +string can be used in the XML document. + +.. + +.. date: 2026-05-05-00-30-04 +.. gh-issue: 142389 +.. nonce: 4daLzc +.. section: Library + +Add backticks to stdlib argparse help to display in colour. Patch by Hugo +van Kemenade. + +.. + +.. date: 2026-05-04-19-28-48 +.. gh-issue: 149377 +.. nonce: WNlc8Y +.. section: Library + +Update bundled pip to 26.1.1 + +.. + +.. date: 2026-05-04-18-01-35 +.. gh-issue: 142389 +.. nonce: 4Faqpq +.. section: Library + +Add backtick markup support in :mod:`argparse` option help text to highlight +inline code when color output is enabled. Patch by Hugo van Kemenade. + +.. + +.. date: 2026-05-04-16-26-33 +.. gh-issue: 148675 +.. nonce: xZwXa6 +.. section: Library + +Remove ``F`` and ``D`` formats from :mod:`array` and :class:`memoryview`. +Patch by Victor Stinner. + +.. + +.. date: 2026-05-04-04-06-36 +.. gh-issue: 149342 +.. nonce: d3CK-y +.. section: Library + +Fix :mod:`!_remote_debugging` binary writing so that sampling a thread whose +Python frame stack is empty (for example while it is in a C call or +mid-syscall) no longer raises ``RuntimeError("Invalid stack encoding +type")``, and so that ``BinaryWriter.total_samples`` after :meth:`!finalize` +or context-manager exit includes samples flushed from the RLE buffer. Patch +by Maurycy Pawłowski-Wieroński. + +.. + +.. date: 2026-05-04-00-51-32 +.. gh-issue: 149010 +.. nonce: BCp_8k +.. section: Library + +The ``inspect`` module CLI now reports as much information as it has +available for non-source modules when ``--details`` is specified, and +provides an error message rather than a traceback when ``--details`` is +omitted. It also reports improved information when the given target location +is not the target's defining location and when the given target is a data +value rather than a class or function definition. + +.. + +.. date: 2026-05-03-23-47-59 +.. gh-issue: 146609 +.. nonce: V9jqYf +.. section: Library + +Use :mod:`argparse` for colour help :mod:`timeit` CLI. Patch by Hugo van +Kemenade. + +.. + +.. date: 2026-05-03-23-29-34 +.. gh-issue: 142389 +.. nonce: SVYiSv +.. section: Library + +Add backticks for colour to regrtest and pdb's help description. Patch by +Hugo van Kemenade. + +.. + +.. date: 2026-05-03-17-32-24 +.. gh-issue: 144384 +.. nonce: q-8jSr +.. section: Library + +Lazily import :mod:`!_colorize`. Patch by Hugo van Kemenade. + +.. + +.. date: 2026-05-03-12-00-00 +.. gh-issue: 149321 +.. nonce: fUaxrz +.. section: Library + +Fix import cycles exposed by running standard library modules with ``-X +lazy_imports=none``. + +.. + +.. date: 2026-05-03-01-49-57 +.. gh-issue: 145378 +.. nonce: rtyAWM +.. section: Library + +Generate consistent colors for :mod:`pdb` commands in :mod:`pdb` REPL. + +.. + +.. date: 2026-05-02-19-09-04 +.. gh-issue: 149296 +.. nonce: DuKF0j +.. section: Library + +Add a ``dump`` subcommand to :mod:`profiling.sampling` that prints a single +traceback-style snapshot of a running process's Python stack, including +per-thread status, source line highlighting, optional bytecode opcode names, +and async-aware task reconstruction. Patch by Pablo Galindo. + +.. + +.. date: 2026-05-02-18-23-50 +.. gh-issue: 143231 +.. nonce: oBbQb5 +.. section: Library + +A *module* attribute has been added to :class:`!warnings.WarningMessage`. + +.. + +.. date: 2026-05-02-15-58-08 +.. gh-issue: 148675 +.. nonce: b3ZNlj +.. section: Library + +:mod:`ctypes`: Change the :py:attr:`~ctypes._SimpleCData._type_` of +:class:`~ctypes.c_float_complex`, :class:`~ctypes.c_double_complex` and +:class:`~ctypes.c_longdouble_complex` from ``F``, ``D`` and ``G`` to ``Zf``, +``Zd`` and ``Zg`` for compatibility with numpy. Patch by Victor Stinner. + +.. + +.. date: 2026-05-02-12-30-35 +.. gh-issue: 148675 +.. nonce: cu2YFT +.. section: Library + +The :data:`array.typecodes` type changed from :class:`str` to :class:`tuple` +to support type codes longer than 1 character (``Zf`` and ``Zd``). Patch by +Victor Stinner. + +.. + +.. date: 2026-05-02-01-09-29 +.. gh-issue: 149221 +.. nonce: __KOks +.. section: Library + +Catch rare math domain error for :func:`random.binomialvariate`. + +.. + +.. date: 2026-05-01-16-45-31 +.. gh-issue: 149231 +.. nonce: x2nBEE +.. section: Library + +In :mod:`tomllib`, the number of parts in TOML keys is now limited. + +.. + +.. date: 2026-05-01-11-39-37 +.. gh-issue: 143231 +.. nonce: 0cOHET +.. section: Library + +:func:`unittest.TestCase.assertWarns` and +:func:`unittest.TestCase.assertWarnsRegex` no longer swallow warnings that +do not match the specified category or regex. Nested context managers are +now supported. + +.. + +.. date: 2026-05-01-10-20-27 +.. gh-issue: 149214 +.. nonce: btP546 +.. section: Library + +Fix :mod:`!_remote_debugging` misreading non-ASCII Unicode strings (Latin-1, +BMP and non-BMP) from a remote process. Filenames and function names that +contain non-ASCII characters are now reported correctly in stack traces, the +sampling profiler, and :mod:`asyncio` task introspection. + +.. + +.. date: 2026-04-30-18-56-23 +.. gh-issue: 149189 +.. nonce: mszW10 +.. section: Library + +:mod:`pprint` now uses modern defaults: ``indent=4`` and ``width=88``, and +the default ``compact=False`` output is now formatted similar to +pretty-printed :func:`json.dumps`, with opening parentheses and brackets +followed by a newline and the contents indented by one level. The *expand* +parameter, added in 3.15.0a8, has been removed; ``compact=False`` (the +default) now produces the former ``expand=True`` layout. Patch by Hugo van +Kemenade. + +.. + +.. date: 2026-04-30-14-21-26 +.. gh-issue: 149173 +.. nonce: KJqZm0 +.. section: Library + +Fix inverted :envvar:`PYTHON_BASIC_REPL` environment check in +``pdb._pyrepl_available``. + +.. + +.. date: 2026-04-29-16-11-27 +.. gh-issue: 149117 +.. nonce: yEeTYd +.. section: Library + +Fix :func:`runpy.run_module` and :func:`runpy.run_path` to set the +:attr:`~ImportError.name` attribute on the :exc:`ImportError` they raise. + +.. + +.. date: 2026-04-29-14-33-42 +.. gh-issue: 149148 +.. nonce: EaiYvk +.. section: Library + +:mod:`ensurepip`: Upgrade bundled pip to 26.1. This version fixes the +:cve:`2026-3219` vulnerability. Patch by Victor Stinner. + +.. + +.. date: 2026-04-29-13-08-46 +.. gh-issue: 149009 +.. nonce: rek3Tw +.. section: Library + +Validate that :mod:`profiling.sampling` binary profiles do not contain more +unique (thread, interpreter) pairs than declared in the header. Patch by +Maurycy Pawłowski-Wieroński. + +.. + +.. date: 2026-04-28-17-47-55 +.. gh-issue: 148292 +.. nonce: oIq3ml +.. section: Library + +:mod:`ssl`: Update :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` for +OpenSSL 4. The classes now remember if they get a :exc:`ssl.SSLEOFError`. In +this case, following :meth:`~ssl.SSLSocket.read`, :meth:`!sendfile`, +:meth:`~ssl.SSLSocket.write`, and :meth:`~ssl.SSLSocket.do_handshake` calls +raise :exc:`ssl.SSLEOFError` without calling the underlying OpenSSL +function. Thanks to that, :class:`ssl.SSLSocket` behaves the same on all +OpenSSL versions on EOF. Patch by Victor Stinner. + +.. + +.. date: 2026-04-28-16-30-48 +.. gh-issue: 149085 +.. nonce: 5aNgBD +.. section: Library + +Add a *max_threads* keyword argument to :func:`faulthandler.dump_traceback`, +:func:`faulthandler.dump_traceback_later`, :func:`faulthandler.enable`, and +:func:`faulthandler.register`. + +.. + +.. date: 2026-04-28-16-25-40 +.. gh-issue: 148641 +.. nonce: aFgym0 +.. section: Library + +:func:`pkgutil.resolve_name` gets a new optional, keyword-only argument +called ``strict``. The default is ``False`` for backward compatibility. + +.. + +.. date: 2026-04-27-22-34-09 +.. gh-issue: 148093 +.. nonce: 9pWceM +.. section: Library + +Fix an out-of-bounds read of one byte in :func:`binascii.a2b_uu`. Raise +:exc:`binascii.Error`, instead of reading past the buffer end. + +.. + +.. date: 2026-04-27-20-15-54 +.. gh-issue: 149083 +.. nonce: BdrpU8 +.. section: Library + +:data:`dataclasses.MISSING` and :data:`dataclasses.KW_ONLY` are now +instances of :class:`sentinel`. + +.. + +.. date: 2026-04-27-17-12-11 +.. gh-issue: 148914 +.. nonce: i5C3kW +.. section: Library + +Fix memoization of in-band :class:`~pickle.PickleBuffer` in the Python +implementation of :mod:`pickle`. Previously, identical +:class:`!PickleBuffer`\ s did not preserve identity, and empty writable +:class:`!PickleBuffer` memoized an empty bytearray object in place of +``b''``, so the following references to ``b''`` were unpickled as an empty +bytearray object. + +.. + +.. date: 2026-04-26-23-01-50 +.. gh-issue: 149026 +.. nonce: Akk4Bc +.. section: Library + +Add colour to :mod:`pickletools` CLI output. Patch by Hugo van Kemenade. + +.. + +.. date: 2026-04-25-18-09-16 +.. gh-issue: 148991 +.. nonce: AZ64Et +.. section: Library + +Add colour to :mod:`tokenize` CLI output. Patch by Hugo van Kemenade. + +.. + +.. date: 2026-04-25-14-11-24 +.. gh-issue: 138907 +.. nonce: u21Wnh +.. section: Library + +Support :rfc:`9309` in :mod:`urllib.robotparser`. + +.. + +.. date: 2026-04-25-12-50-46 +.. gh-issue: 148981 +.. nonce: YMM4Y9 +.. section: Library + +Add *color* parameter to :func:`ast.dump`. + +.. + +.. date: 2026-04-25-12-04-27 +.. gh-issue: 148849 +.. nonce: Vk6yEW +.. section: Library + +Deprecate :meth:`http.cookies.Morsel.js_output` and +:meth:`http.cookies.BaseCookie.js_output`, which will be removed in Python +3.19. Use :meth:`http.cookies.Morsel.output` or +:meth:`http.cookies.BaseCookie.output` instead. + +.. + +.. date: 2026-04-25-11-56-05 +.. gh-issue: 146311 +.. nonce: iHWO0v +.. section: Library + +Add a *canonical* keyword-only parameter to the base16, base32, base64, +base85, ascii85, and Z85 decoders in :mod:`base64` and :mod:`binascii`. When +true, encodings with non-zero padding bits (base16/32/64) or non-canonical +encodings (base85/ascii85) are rejected. Single-character final groups in +:func:`binascii.a2b_ascii85` and :func:`binascii.a2b_base85` are now always +rejected as encoding violations, regardless of *canonical*; previously they +were silently ignored and produced no output bytes. + +.. + +.. date: 2026-04-23-21-47-49 +.. gh-issue: 148947 +.. nonce: W4V2lG +.. section: Library + +Fix crash in :deco:`dataclasses.dataclass` with ``slots=True`` that occurred +when a function found within the class had an empty ``__class__`` cell. + +.. + +.. date: 2026-04-23-07-38-04 +.. gh-issue: 148680 +.. nonce: ___ePl +.. section: Library + +``ForwardRef`` objects that contain internal names to represent known +objects now show the ``type_repr`` of the known object rather than the +internal ``__annotationlib_name_x__`` name when evaluated as strings. + +.. + +.. date: 2026-04-22-20-49-49 +.. gh-issue: 124397 +.. nonce: plMglV +.. section: Library + +The threading module added tooling to support concurrent iterator access: +:class:`threading.serialize_iterator`, +:func:`threading.synchronized_iterator`, and +:func:`threading.concurrent_tee`. + +.. + +.. date: 2026-04-20-18-29-21 +.. gh-issue: 148801 +.. nonce: ROeNqs +.. section: Library + +:mod:`xml.etree.ElementTree`: Fix a crash in :meth:`Element.__deepcopy__ +` on deeply nested trees. + +.. + +.. date: 2026-04-18-21-39-15 +.. gh-issue: 148735 +.. nonce: siw6DG +.. section: Library + +:mod:`xml.etree.ElementTree`: Fix a use-after-free in +:meth:`Element.findtext ` when the +element tree is mutated concurrently during the search. + +.. + +.. date: 2026-04-18-17-37-13 +.. gh-issue: 148740 +.. nonce: sYnFi0 +.. section: Library + +Fix usage for :mod:`uuid` command-line interface to support a custom +namespace be provided for uuid3 and uuid5. + +.. + +.. date: 2026-04-17-16-31-58 +.. gh-issue: 148688 +.. nonce: vVugFn +.. section: Library + +:mod:`bz2`, :mod:`compression.zstd`, :mod:`lzma`, :mod:`zlib`: Fix a double +free on memory allocation failure. Patch by Victor Stinner. + +.. + +.. date: 2026-04-17-13-56-44 +.. gh-issue: 148675 +.. nonce: f1kG70 +.. section: Library + +:mod:`array`, :mod:`struct`: Add support for ``Zd`` and ``Zf`` formats for +double complex and float complex. Patch by Victor Stinner. + +.. + +.. date: 2026-04-16-13-30-00 +.. gh-issue: 148651 +.. nonce: ZsTdLk +.. section: Library + +Fix reference leak in :class:`compression.zstd.ZstdDecompressor` when an +invalid option key is passed. + +.. + +.. date: 2026-04-15-21-46-52 +.. gh-issue: 148641 +.. nonce: -aoFyC +.. section: Library + +:pep:`829` (package startup configuration files) implements a new format +``.start`` parallel to ``.pth`` files, to replace ``import`` +lines in the latter. + +.. + +.. date: 2026-04-15-20-32-55 +.. gh-issue: 148639 +.. nonce: -dwsjB +.. section: Library + +Implement :pep:`800`, adding the :deco:`typing.disjoint_base` decorator. +Patch by Jelle Zijlstra. + +.. + +.. date: 2026-04-15-16-08-12 +.. gh-issue: 148615 +.. nonce: Uvx50R +.. section: Library + +Fix :mod:`pdb` to accept standard -- end of options separator. Reported by +haampie. Patched by Shrey Naithani. + +.. + +.. date: 2026-04-15-11-00-39 +.. gh-issue: 146553 +.. nonce: VGOsoP +.. section: Library + +Fix infinite loop in :func:`typing.get_type_hints` when ``__wrapped__`` +forms a cycle. Patch by Shamil Abdulaev. + +.. + +.. date: 2026-04-15-09-36-03 +.. gh-issue: 148599 +.. nonce: 90i1Ku +.. section: Library + +Update the :mod:`socket` module's WSA error messages to match official +documentation. + +.. + +.. date: 2026-04-14-09-04-35 +.. gh-issue: 148508 +.. nonce: -GiXml +.. section: Library + +An intermittent timing error when running SSL tests on iOS has been +resolved. + +.. + +.. date: 2026-04-13-21-38-50 +.. gh-issue: 144881 +.. nonce: 3kPqXw +.. section: Library + +:mod:`asyncio` debugging tools (``python -m asyncio ps`` and ``pstree``) now +retry automatically on transient errors that can occur when attaching to a +process under active thread delegation. The number of retries can be +controlled with the ``--retries`` flag. Patch by Bartosz Sławecki. + +.. + +.. date: 2026-04-13-15-59-44 +.. gh-issue: 148518 +.. nonce: RQdvsu +.. section: Library + +If an email containing an address header that ended in an open double quote +was parsed with a non-``compat32`` policy, accessing the ``username`` +attribute of the mailbox accessed through that header object would result in +an ``IndexError``. It now correctly returns an empty string as the result. + +.. + +.. date: 2026-04-13-06-22-27 +.. gh-issue: 148464 +.. nonce: Bj_NZy +.. section: Library + +Add missing ``__ctype_le/be__`` attributes for +:class:`~ctypes.c_float_complex` and :class:`~ctypes.c_double_complex`. +Patch by Sergey B Kirpichev. + +.. + +.. date: 2026-04-12-16-40-11 +.. gh-issue: 148370 +.. nonce: 0Li2EK +.. section: Library + +:mod:`configparser`: prevent quadratic behavior when a +:exc:`~configparser.ParsingError` is raised after a parser fails to parse +multiple lines. Patch by Bénédikt Tran. + +.. + +.. date: 2026-04-12-12-31-45 +.. gh-issue: 121190 +.. nonce: O6-E5_ +.. section: Library + +``importlib.resources.files()`` now emits a more meaningful error message +when module spec is None (as found in some ``__main__`` modules). + +.. + +.. date: 2026-04-11-17-28-06 +.. gh-issue: 127012 +.. nonce: h3rLYS +.. section: Library + +``importlib.abc.Traversable.read_text`` now allows/solicits an ``errors`` +parameter. + +.. + +.. date: 2026-04-11-12-32-38 +.. gh-issue: 137855 +.. nonce: tsVny_ +.. section: Library + +Improve import time of :mod:`dataclasses` module by lazy importing :mod:`re` +and :mod:`copy` modules. + +.. + +.. date: 2026-04-10-20-23-22 +.. gh-issue: 148352 +.. nonce: lrec3W +.. section: Library + +Add more color to :mod:`calendar`'s CLI output. Patch by Hugo van Kemenade. + +.. + +.. date: 2026-04-09-12-42-42 +.. gh-issue: 148254 +.. nonce: Xt7vKs +.. section: Library + +Use singular "sec" instead of "secs" in :mod:`timeit` verbose output for +consistency with other time units. + +.. + +.. date: 2026-04-08-21-39-01 +.. gh-issue: 130472 +.. nonce: 4Bk6qH +.. section: Library + +Integrate fancycompleter with import completions. + +.. + +.. date: 2026-04-08-14-19-17 +.. gh-issue: 148241 +.. nonce: fO_QT4 +.. section: Library + +:mod:`json`: Fix serialization: no longer call ``str(obj)`` on :class:`str` +subclasses. Patch by Victor Stinner. + +.. + +.. date: 2026-04-08-11-44-12 +.. gh-issue: 148225 +.. nonce: H34yJp +.. section: Library + +The :mod:`profiling.sampling` ``replay`` command now rejects non-binary +profile files with a clear error explaining that replay only accepts files +created with ``--binary``. + +.. + +.. date: 2026-04-07-14-13-40 +.. gh-issue: 148192 +.. nonce: 34AUYQ +.. section: Library + +``email.generator.Generator._make_boundary`` could fail to detect a +duplicate boundary string if linesep was not \n. It now correctly detects +boundary strings when linesep is \r\n as well. + +.. + +.. date: 2026-04-07-12-37-53 +.. gh-issue: 148207 +.. nonce: YhGem4 +.. section: Library + +:class:`typing.TypeVarTuple` now accepts ``bound``, ``covariant``, +``contravariant``, and ``infer_variance`` parameters, matching the interface +of :class:`typing.TypeVar` and :class:`typing.ParamSpec`. + +.. + +.. date: 2026-04-04-20-22-02 +.. gh-issue: 148100 +.. nonce: lSmGQi +.. section: Library + +:term:`Soft deprecate ` :func:`re.match` and +:meth:`re.Pattern.match` in favour of :func:`re.prefixmatch` and +:meth:`re.Pattern.prefixmatch`. Patch by Hugo van Kemenade. + +.. + +.. date: 2026-04-02-05-06-34 +.. gh-issue: 147991 +.. nonce: 2ANtR5 +.. section: Library + +Improve :mod:`tomllib` import time (up to 10x faster). Patch by Victor +Stinner. + +.. + +.. date: 2026-04-01-07-10-49 +.. gh-issue: 147957 +.. nonce: QXf5Xx +.. section: Library + +Guarantees that :meth:`collections.UserDict.popitem` will pop in the same +order as the wrapped dictionary rather than an arbitrary order. + +.. + +.. date: 2026-03-31-17-33-10 +.. gh-issue: 146256 +.. nonce: Nm_Ke_ +.. section: Library + +The ``profiling.sampling`` module now supports JSONL output format via +``--jsonl``. Each run emits a newline-delimited JSON file that is +sequentially parseable by external tools, scripts, and programmatic +consumers. Patch by Maurycy Pawłowski-Wieroński. + +.. + +.. date: 2026-03-29-21-31-14 +.. gh-issue: 146609 +.. nonce: BnshCt +.. section: Library + +Add colour to :mod:`timeit` CLI output. Patch by Hugo van Kemenade. + +.. + +.. date: 2026-03-28-11-31-32 +.. gh-issue: 146563 +.. nonce: cXtSym +.. section: Library + +:mod:`xml.parsers.expat`: add an exception note when a custom Expat handler +return value cannot be properly interpreted. Patch by Bénédikt Tran. + +.. + +.. date: 2026-03-26-01-42-20 +.. gh-issue: 137586 +.. nonce: KmHRwR +.. section: Library + +Add :class:`!MacOS` to :mod:`webbrowser` for macOS, which opens URLs via +``/usr/bin/open`` instead of piping AppleScript to ``osascript``. Deprecate +:class:`!MacOSXOSAScript` in favour of :class:`!MacOS`. + +.. + +.. date: 2026-03-25-07-17-41 +.. gh-issue: 146406 +.. nonce: ydsmqe +.. section: Library + +Cross-language method suggestions are now shown for :exc:`AttributeError` on +builtin types and their subclasses. For example, ``[].push()`` suggests +``append``, ``(1,2).append(3)`` suggests using a ``list``, ``None.keys()`` +suggests expecting a ``dict``, and ``1.0.__or__`` suggests using an ``int``. + +.. + +.. date: 2026-03-22-23-42-22 +.. gh-issue: 146313 +.. nonce: RtDeAd +.. section: Library + +Fix a deadlock in :mod:`multiprocessing`'s resource tracker where the parent +process could hang indefinitely in :func:`os.waitpid` during interpreter +shutdown if a child created via :func:`os.fork` still held the resource +tracker's pipe open. + +.. + +.. date: 2026-03-22-16-52-04 +.. gh-issue: 146292 +.. nonce: rJvvs0 +.. section: Library + +Add colour to :mod:`~http.server.BaseHTTPRequestHandler` logs, as used by +the :mod:`http.server` CLI. Patch by Hugo van Kemenade. + +.. + +.. date: 2026-03-13-14-23-33 +.. gh-issue: 145917 +.. nonce: TooGKx +.. section: Library + +Add MIME types for TTC and Haptics formats to :mod:`mimetypes`. (Contributed +by Charlie Lin in :gh:`145918`.) + +.. + +.. date: 2026-03-12-00-00-00 +.. gh-issue: 145846 +.. nonce: UbHxjv +.. section: Library + +Fix memory leak in ``_lsprof`` when ``clear()`` is called during active +profiling with nested calls. ``clearEntries()`` now walks the entire +``currentProfilerContext`` linked list instead of only freeing the top +context. + +.. + +.. date: 2026-03-11-15-09-52 +.. gh-issue: 145831 +.. nonce: _sW94w +.. section: Library + +Fix :func:`!email.quoprimime.decode` leaving a stray ``\r`` when +``eol='\r\n'`` by stripping the full *eol* string instead of one character. + +.. + +.. date: 2026-03-01-01-58-10 +.. gh-issue: 145378 +.. nonce: oy6rb9 +.. section: Library + +Use ``PyREPL`` as the default input console for :mod:`pdb` + +.. + +.. date: 2026-02-26-12-00-00 +.. gh-issue: 145244 +.. nonce: Kj31cp +.. section: Library + +Fixed a use-after-free in :mod:`json` encoder when a ``default`` callback +mutates the dictionary being serialized. + +.. + +.. date: 2026-02-25-22-20-00 +.. gh-issue: 117716 +.. nonce: w6kYp9 +.. section: Library + +Fix :mod:`wave` writing of odd-sized ``data`` chunks by appending the +required RIFF pad byte and correcting the RIFF chunk size field accordingly. + +.. + +.. date: 2026-02-25-10-00-00 +.. gh-issue: 145200 +.. nonce: m_4PAtcI +.. section: Library + +:mod:`hashlib`: fix a memory leak when allocating or initializing an OpenSSL +HMAC context fails. + +.. + +.. date: 2026-02-22-19-36-00 +.. gh-issue: 145056 +.. nonce: TH8nX4 +.. section: Library + +Add support for :class:`frozendict` in :meth:`dataclasses.asdict` and +:meth:`dataclasses.astuple`. + +.. + +.. date: 2026-02-22-00-00-00 +.. gh-issue: 145105 +.. nonce: csv-reader-reentrant +.. section: Library + +Fix crash in :mod:`csv` reader when iterating with a re-entrant iterator +that calls :func:`next` on the same reader from within ``__next__``. + +.. + +.. date: 2026-02-19-04-40-57 +.. gh-issue: 130750 +.. nonce: 0hW52O +.. section: Library + +Restore quoting of choices in :mod:`argparse` error messages for improved +clarity and consistency with documentation. + +.. + +.. date: 2026-02-12-18-05-16 +.. gh-issue: 137855 +.. nonce: 2_PTbg +.. section: Library + +Reduce the import time of :mod:`dataclasses` module by ~20%. + +.. + +.. date: 2026-02-07-12-54-20 +.. gh-issue: 70647 +.. nonce: Bja_Lk +.. section: Library + +:meth:`~datetime.datetime.strptime` now raises :exc:`ValueError` when the +format string contains ``%d`` without a year directive. Using ``%e`` without +a year now emits a :exc:`DeprecationWarning`. + +.. + +.. date: 2026-01-19-21-23-18 +.. gh-issue: 105936 +.. nonce: dGrzjM +.. section: Library + +Attempting to mutate non-field attributes of :mod:`dataclasses` with both +*frozen* and *slots* being ``True`` now raises +:class:`~dataclasses.FrozenInstanceError` instead of :class:`TypeError`. +Their non-dataclass subclasses can now freely mutate non-field attributes, +and the original non-slotted class can be garbage collected. + +.. + +.. date: 2025-12-17-04-10-35 +.. gh-issue: 142831 +.. nonce: ee3t4L +.. section: Library + +Fix a crash in the :mod:`json` module where a use-after-free could occur if +the object being encoded is modified during serialization. + +.. + +.. date: 2025-12-17-02-55-03 +.. gh-issue: 108411 +.. nonce: up7MAc +.. section: Library + +``typing.IO`` and ``typing.BinaryIO`` method arguments are now +positional-only. + +.. + +.. date: 2025-12-10-15-15-09 +.. gh-issue: 130273 +.. nonce: iCfiY5 +.. section: Library + +Fix traceback color output with Unicode characters. + +.. + +.. date: 2025-12-06-11-24-25 +.. gh-issue: 142307 +.. nonce: w8evI9 +.. section: Library + +:mod:`imaplib`: deprecate support for :attr:`IMAP4.file +`. This attribute was never meant to be part of the +public interface and altering its value may result in unclosed files or +other synchronization issues with the underlying socket. Patch by Bénédikt +Tran. + +.. + +.. date: 2025-12-06-08-48-26 +.. gh-issue: 141449 +.. nonce: hQvNW_ +.. section: Library + +Improve tests and documentation for non-function callables as +:term:`annotate functions `. + +.. + +.. date: 2025-10-18-12-13-39 +.. gh-issue: 140287 +.. nonce: 49iU-4 +.. section: Library + +The :mod:`asyncio` REPL now handles exceptions when executing +:envvar:`PYTHONSTARTUP` scripts. Patch by Bartosz Sławecki. + +.. + +.. date: 2025-10-08-15-36-00 +.. gh-issue: 139489 +.. nonce: W46tvn +.. section: Library + +Add the :func:`xml.is_valid_name` function, which allows to check whether a +string can be used as an element or attribute name in XML. + +.. + +.. date: 2025-08-24-15-09-30 +.. gh-issue: 75707 +.. nonce: GOWZrC +.. section: Library + +Add optional ``mtime`` argument to :func:`tarfile.open`, for setting the +``mtime`` header field in ``.tar.gz`` archives. + +.. + +.. date: 2025-07-02-17-01-17 +.. gh-issue: 125862 +.. nonce: WgFYj3 +.. section: Library + +The :func:`contextlib.contextmanager` and +:func:`contextlib.asynccontextmanager` decorators now work correctly with +generators, coroutine functions, and async generators when the wrapped +callables are used as decorators. + +.. + +.. date: 2025-06-22-16-29-10 +.. gh-issue: 135528 +.. nonce: Rt_QhR +.. section: Library + +:mod:`http.cookiejar`: add "tv", "or", "nom", "sch", and "web" to the +default list of supported country code second-level domains. + +.. + +.. date: 2025-06-02-22-23-38 +.. gh-issue: 135056 +.. nonce: yz3dSs +.. section: Library + +Add a ``-H`` or ``--header`` CLI option to :program:`python -m http.server`. +Contributed by Anton I. Sipos. + +.. + +.. date: 2025-05-23-10-28-51 +.. gh-issue: 134551 +.. nonce: 0rnq0X +.. section: Library + +Add t-strings support to pprint functions + +.. + +.. date: 2025-05-16-01-43-58 +.. gh-issue: 133956 +.. nonce: 5kWDYd +.. section: Library + +Fix bug where :func:`@dataclass ` wouldn't detect +``ClassVar`` fields if ``ClassVar`` was re-exported from a module other than +:mod:`typing`. + +.. + +.. date: 2025-04-17-15-26-35 +.. gh-issue: 132631 +.. nonce: IDFZfb +.. section: Library + +Fix "I/O operation on closed file" when parsing JSON Lines file with +:mod:`JSON CLI `. + +.. + +.. date: 2024-11-24-07-18-40 +.. gh-issue: 108951 +.. nonce: jyKygP +.. section: Library + +:mod:`asyncio`: Add :meth:`TaskGroup.cancel ` +which cancels unfinished tasks and exits the group without raising +:exc:`asyncio.CancelledError`. + +.. + +.. date: 2024-09-09-12-48-37 +.. gh-issue: 123853 +.. nonce: e-zFxb +.. section: Library + +Update the table of Windows language code identifiers (LCIDs) used by +:func:`locale.getdefaultlocale` on Windows to protocol version 16.0 +(2024-04-23). + +.. + +.. date: 2024-07-31-17-23-06 +.. gh-issue: 122476 +.. nonce: TtUa-c +.. section: Library + +The :mod:`email` module no longer incorrectly uses :rfc:`2047` encoding for +a mailbox with non-ASCII characters in its local-part. Under a policy with +:attr:`~email.policy.EmailPolicy.utf8` set ``False``, attempting to +serialize such a message will now raise an +:exc:`~email.errors.HeaderWriteError`. There is no valid 7-bit encoding for +an internationalized local-part. Use :data:`email.policy.SMTPUTF8` (or +another policy with ``utf8=True``) to correctly pass through the local-part +as Unicode characters. + +.. + +.. date: 2024-07-31-17-22-10 +.. gh-issue: 83938 +.. nonce: TtUa-c +.. section: Library + +The :mod:`email` module no longer incorrectly uses :rfc:`2047` encoding for +a mailbox with non-ASCII characters in its domain. Under a policy with +:attr:`~email.policy.EmailPolicy.utf8` set ``False``, attempting to +serialize such a message will now raise an +:exc:`~email.errors.HeaderWriteError`. Either apply an appropriate IDNA +encoding to convert the domain to ASCII before serialization, or use +:data:`email.policy.SMTPUTF8` (or another policy with ``utf8=True``) to +correctly pass through the internationalized domain name as Unicode +characters. + +.. + +.. date: 2024-07-30-19-19-33 +.. gh-issue: 81074 +.. nonce: YAeWNf +.. section: Library + +The :mod:`email` module no longer treats email addresses with non-ASCII +characters as defects when parsing a Unicode string or in the ``addr_spec`` +parameter to :class:`email.headerregistry.Address`. :rfc:`5322` permits such +addresses, and they were already supported when parsing bytes and in the +Address ``username`` parameter. + +The (undocumented) :exc:`!email.errors.NonASCIILocalPartDefect` is no longer +used and should be considered deprecated. + +.. + +.. date: 2024-02-10-21-25-22 +.. gh-issue: 70039 +.. nonce: 6wvcAP +.. section: Library + +Fixed bug where :meth:`smtplib.SMTP.starttls` could fail if +:meth:`smtplib.SMTP.connect` is called explicitly rather than implicitly. + +.. + +.. date: 2023-12-25-19-14-07 +.. gh-issue: 113471 +.. nonce: ZQMpbI +.. section: Library + +Allow :mod:`http.server` to set a default content-type when serving files +with an unknown or missing extension. + +.. + +.. date: 2023-09-08-13-10-32 +.. gh-issue: 83281 +.. nonce: 2Plpcj +.. section: Library + +:mod:`email`: improve handling trailing garbage in address lists to avoid +throwing AttributeError in certain edge cases + +.. + +.. date: 2022-09-17-20-20-01 +.. gh-issue: 96894 +.. nonce: t7my0A +.. section: Library + +Do not turn echo off for subsequent commands in batch activators +(``activate.bat`` and ``deactivate.bat``) of :mod:`venv`. + +.. + +.. date: 2026-04-17-02-28-55 +.. gh-issue: 148663 +.. nonce: MHIbRB +.. section: Documentation + +Document that :class:`calendar.IllegalMonthError` is a subclass of both +:exc:`ValueError` and :exc:`IndexError` since Python 3.12. + +.. + +.. date: 2026-04-02-07-20-00 +.. gh-issue: 146646 +.. nonce: GlobDoc1 +.. section: Documentation + +Document that :func:`glob.glob`, :func:`glob.iglob`, +:meth:`pathlib.Path.glob`, and :meth:`pathlib.Path.rglob` silently suppress +:exc:`OSError` exceptions raised from scanning the filesystem. + +.. + +.. date: 2026-05-05-18-49-44 +.. gh-issue: 149425 +.. nonce: QnQL8j +.. section: Tests + +Increase time delta in +``test.test_zipfile.test_core.OtherTests.test_write_without_source_date_epoch`` + +.. + +.. date: 2026-04-21-12-33-14 +.. gh-issue: 148600 +.. nonce: vnTb3t +.. section: Tests + +Add OpenSSL 4.0.0 support to test configurations. + +.. + +.. date: 2026-05-04-23-07-45 +.. gh-issue: 149353 +.. nonce: XfM8aQ +.. section: Build + +Avoid unnecessary JIT-related rebuilds during ``make install`` after +``--enable-optimizations`` builds. + +.. + +.. date: 2026-05-04-06-03-50 +.. gh-issue: 149351 +.. nonce: hN4sF0 +.. section: Build + +Avoid possible broken macOS framework install names when DESTDIR is +specified during builds. + +.. + +.. date: 2026-05-01-20-01-32 +.. gh-issue: 149252 +.. nonce: 4W_0-w +.. section: Build + +Update to WASI SDK 33. + +.. + +.. date: 2026-05-01-12-01-54 +.. gh-issue: 148690 +.. nonce: oTtYk- +.. section: Build + +Windows free-threaded builds now output to a different default path with +default filenames, for example, ``PCbuild/amd64t/python.exe`` rather than +``PCbuild/amd64/python3.15t.exe``. The ``PC/layout`` script has been updated +to ensure compatibility of generated layouts. + +.. + +.. date: 2026-04-30-08-43-47 +.. gh-issue: 146475 +.. nonce: 1cL4hX +.. section: Build + +Block Apple Clang from being used to build the JIT as it ships without +required LLVM tools. + +.. + +.. date: 2026-04-17-21-45-32 +.. gh-issue: 148644 +.. nonce: vwkknh +.. section: Build + +Errors during the PGO training job on Windows are no longer ignored, and a +non-zero return code will cause the build to fail. + +.. + +.. date: 2026-04-14-15-20-29 +.. gh-issue: 148535 +.. nonce: JjKiaa +.. section: Build + +No longer use the ``gcc -fprofile-update=atomic`` flag on i686. The flag has +been added to fix a random GCC internal error on PGO build (:gh:`145801`) +caused by corruption of profile data (.gcda files). The problem is that it +makes the PGO build way slower (up to 47x slower) on i686. Since the GCC +internal error was not seen on i686 so far, don't use +``-fprofile-update=atomic`` on i686 anymore. Patch by Victor Stinner. + +.. + +.. date: 2026-04-13-02-36-13 +.. gh-issue: 148483 +.. nonce: gLe1h8 +.. section: Build + +Use ``Py_GCC_ATTRIBUTE(unused)`` for stop_tracing label. + +.. + +.. date: 2026-04-12-22-54-16 +.. gh-issue: 148474 +.. nonce: ouIO8R +.. section: Build + +Fixed compilation of :file:`Python/pystrhex.c` with older clang versions. + +.. + +.. date: 2026-04-09-11-42-32 +.. gh-issue: 146445 +.. nonce: Z1vccC +.. section: Build + +The Android build tools have been moved to the Platforms folder. + +.. + +.. date: 2026-03-21-18-51-31 +.. gh-issue: 146264 +.. nonce: Q9Ej4m +.. section: Build + +Fix static module builds on non-WASI targets by linking HACL dependencies as +static libraries when ``MODULE_BUILDTYPE=static``, preventing duplicate +``_Py_LibHacl_*`` symbol errors at link time. + +.. + +.. date: 2025-09-03-14-55-59 +.. gh-issue: 138451 +.. nonce: -Qzh2S +.. section: Build + +Allow for custom LLVM path using ``LLVM_TOOLS_INSTALL_DIR`` during JIT +build. + +.. + +.. date: 2025-05-02-17-06-10 +.. gh-issue: 133312 +.. nonce: YkO6BI +.. section: Build + +Add a new ``./configure`` option +:option:`--enable-static-libpython-for-interpreter` which, when used with +:option:`--enable-shared`, continues to build the shared library but does +not use it for the interpreter. Instead, libpython is statically linked into +the interpreter, as if :option:`--enable-shared` had not been used. This +allows you to do a single build and get a Python interpreter binary that +does not use a shared library but also get a shared library for use by other +programs. + +.. + +.. date: 2026-05-03-13-55-51 +.. gh-issue: 149254 +.. nonce: ENtMYD +.. section: Windows + +Updated bundled version of OpenSSL to 3.5.6. + +.. + +.. date: 2026-05-01-12-03-39 +.. gh-issue: 148690 +.. nonce: TMV8dU +.. section: Windows + +Non-freethreaded builds on Windows now support extensions linked to +``python3t.dll``, and will include a copy of that library in normal installs +that references the non-freethreaded runtime. + +.. + +.. date: 2026-03-27-22-06-10 +.. gh-issue: 146458 +.. nonce: fYj0UQ +.. section: Windows + +Fix incorrect REPL height and width tracking on console window resize on +Windows. + +.. + +.. date: 2026-05-06-18-23-36 +.. gh-issue: 142295 +.. nonce: O9RmZH +.. section: macOS + +For Python macOS framework builds, update Info.plist files to be more +compliant with current Apple guidelines. Original patch contributed by +Martinus Verburg. + +.. + +.. date: 2026-05-01-20-12-33 +.. gh-issue: 149254 +.. nonce: kXdWpS +.. section: macOS + +Update macOS installer to use OpenSSL 3.5.6. + +.. + +.. date: 2026-03-07-20-47-40 +.. gh-issue: 94523 +.. nonce: dq7m2k +.. section: IDLE + +Detect file if modified at local disk and prompt to ask refresh. Patch by +Shixian Li. + +.. + +.. date: 2025-10-05-19-33-39 +.. gh-issue: 139551 +.. nonce: TX9BRc +.. section: IDLE + +Support rendering :exc:`BaseExceptionGroup` in IDLE. + +.. + +.. date: 2021-10-03-21-55-34 +.. gh-issue: 89520 +.. nonce: etEExa +.. section: IDLE + +Make IDLE extension configuration look at user config files, allowing +user-installed extensions to have settings and key bindings defined in +~/.idlerc. + +.. + +.. date: 2026-05-01-14-49-09 +.. gh-issue: 149225 +.. nonce: IdAYPZ +.. section: C API + +:c:type:`PyCriticalSection` and related functions are added to the Stable +ABI. + +.. + +.. date: 2026-05-01-00-00-00 +.. gh-issue: 149216 +.. nonce: TpWatch +.. section: C API + +:c:type:`PyType_WatchCallback` callbacks registered via +:c:func:`PyType_AddWatcher` are now also invoked when a watched heap type is +deallocated. Previously, type watchers were only notified of modifications, +which could cause stale references when a type was freed and its address was +reused. + +.. + +.. date: 2026-04-28-17-43-12 +.. gh-issue: 149101 +.. nonce: HTuHTb +.. section: C API + +Implement :pep:`788`. + +.. + +.. date: 2026-04-27-10-56-22 +.. gh-issue: 149044 +.. nonce: TbOcUS +.. section: C API + +Implement :pep:`820`: Unified slot system for the C API. + +.. + +.. date: 2026-04-09-14-45-44 +.. gh-issue: 148267 +.. nonce: p84kG_ +.. section: C API + +Using :c:macro:`Py_LIMITED_API` on a non-Windows free-threaded build no +longer needs an extra :c:macro:`Py_GIL_DISABLED`. + +.. + +.. date: 2026-04-05-18-18-59 +.. gh-issue: 145559 +.. nonce: qKJH9S +.. section: C API + +Rename ``_Py_DumpTraceback`` and ``_Py_DumpTracebackThreads`` to +:c:func:`PyUnstable_DumpTraceback` and +:c:func:`PyUnstable_DumpTracebackThreads`. + +.. + +.. date: 2026-04-03-11-06-20 +.. gh-issue: 146636 +.. nonce: zR6Jsn +.. section: C API + +Implement :pep:`803` -- ``abi3t``: Stable ABI for Free-Threaded Builds. + +.. + +.. date: 2026-03-22-00-00-00 +.. gh-issue: 146302 +.. nonce: PyIsInit +.. section: C API + +:c:func:`Py_IsInitialized` no longer returns true until initialization has +fully completed, including import of the :mod:`site` module. The underlying +runtime flags now use atomic operations. + +.. + +.. date: 2026-03-19-15-28-14 +.. gh-issue: 146063 +.. nonce: Sc-1RU +.. section: C API + +Add :c:func:`PyObject_CallFinalizerFromDealloc` function to the limited C +API. Patch by Victor Stinner. + +.. + +.. date: 2026-03-13-16-37-54 +.. gh-issue: 145921 +.. nonce: ssA7HZ +.. section: C API + +Add functions that are guaranteed to be safe for use in +:c:member:`~PyTypeObject.tp_traverse` handlers: +:c:func:`PyObject_GetTypeData_DuringGC`, +:c:func:`PyObject_GetItemData_DuringGC`, +:c:func:`PyType_GetModuleState_DuringGC`, +:c:func:`PyModule_GetState_DuringGC`, :c:func:`PyModule_GetToken_DuringGC`, +:c:func:`PyType_GetBaseByToken_DuringGC`, +:c:func:`PyType_GetModule_DuringGC`, +:c:func:`PyType_GetModuleByToken_DuringGC`. diff --git a/Misc/NEWS.d/next/Build/2025-05-02-17-06-10.gh-issue-133312.YkO6BI.rst b/Misc/NEWS.d/next/Build/2025-05-02-17-06-10.gh-issue-133312.YkO6BI.rst deleted file mode 100644 index 3ad2db63907ecb..00000000000000 --- a/Misc/NEWS.d/next/Build/2025-05-02-17-06-10.gh-issue-133312.YkO6BI.rst +++ /dev/null @@ -1,8 +0,0 @@ -Add a new ``./configure`` option -:option:`--enable-static-libpython-for-interpreter` which, when used -with :option:`--enable-shared`, continues to build the shared library -but does not use it for the interpreter. Instead, libpython is -statically linked into the interpreter, as if :option:`--enable-shared` -had not been used. This allows you to do a single build and get a Python -interpreter binary that does not use a shared library but also get a -shared library for use by other programs. diff --git a/Misc/NEWS.d/next/Build/2025-09-03-14-55-59.gh-issue-138451.-Qzh2S.rst b/Misc/NEWS.d/next/Build/2025-09-03-14-55-59.gh-issue-138451.-Qzh2S.rst deleted file mode 100644 index d83aee08025502..00000000000000 --- a/Misc/NEWS.d/next/Build/2025-09-03-14-55-59.gh-issue-138451.-Qzh2S.rst +++ /dev/null @@ -1 +0,0 @@ -Allow for custom LLVM path using ``LLVM_TOOLS_INSTALL_DIR`` during JIT build. diff --git a/Misc/NEWS.d/next/Build/2026-03-21-18-51-31.gh-issue-146264.Q9Ej4m.rst b/Misc/NEWS.d/next/Build/2026-03-21-18-51-31.gh-issue-146264.Q9Ej4m.rst deleted file mode 100644 index 1fdafe560432a6..00000000000000 --- a/Misc/NEWS.d/next/Build/2026-03-21-18-51-31.gh-issue-146264.Q9Ej4m.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix static module builds on non-WASI targets by linking HACL dependencies as -static libraries when ``MODULE_BUILDTYPE=static``, preventing duplicate -``_Py_LibHacl_*`` symbol errors at link time. diff --git a/Misc/NEWS.d/next/Build/2026-04-09-11-42-32.gh-issue-146445.Z1vccC.rst b/Misc/NEWS.d/next/Build/2026-04-09-11-42-32.gh-issue-146445.Z1vccC.rst deleted file mode 100644 index e51454b9701e12..00000000000000 --- a/Misc/NEWS.d/next/Build/2026-04-09-11-42-32.gh-issue-146445.Z1vccC.rst +++ /dev/null @@ -1 +0,0 @@ -The Android build tools have been moved to the Platforms folder. diff --git a/Misc/NEWS.d/next/Build/2026-04-12-22-54-16.gh-issue-148474.ouIO8R.rst b/Misc/NEWS.d/next/Build/2026-04-12-22-54-16.gh-issue-148474.ouIO8R.rst deleted file mode 100644 index d2d2bb62834572..00000000000000 --- a/Misc/NEWS.d/next/Build/2026-04-12-22-54-16.gh-issue-148474.ouIO8R.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed compilation of :file:`Python/pystrhex.c` with older clang versions. diff --git a/Misc/NEWS.d/next/Build/2026-04-13-02-36-13.gh-issue-148483.gLe1h8.rst b/Misc/NEWS.d/next/Build/2026-04-13-02-36-13.gh-issue-148483.gLe1h8.rst deleted file mode 100644 index 5b9b3069887580..00000000000000 --- a/Misc/NEWS.d/next/Build/2026-04-13-02-36-13.gh-issue-148483.gLe1h8.rst +++ /dev/null @@ -1 +0,0 @@ -Use ``Py_GCC_ATTRIBUTE(unused)`` for stop_tracing label. diff --git a/Misc/NEWS.d/next/Build/2026-04-14-15-20-29.gh-issue-148535.JjKiaa.rst b/Misc/NEWS.d/next/Build/2026-04-14-15-20-29.gh-issue-148535.JjKiaa.rst deleted file mode 100644 index 39f37acb14e098..00000000000000 --- a/Misc/NEWS.d/next/Build/2026-04-14-15-20-29.gh-issue-148535.JjKiaa.rst +++ /dev/null @@ -1,6 +0,0 @@ -No longer use the ``gcc -fprofile-update=atomic`` flag on i686. The flag has -been added to fix a random GCC internal error on PGO build (:gh:`145801`) -caused by corruption of profile data (.gcda files). The problem is that it -makes the PGO build way slower (up to 47x slower) on i686. Since the GCC -internal error was not seen on i686 so far, don't use -``-fprofile-update=atomic`` on i686 anymore. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Build/2026-04-17-21-45-32.gh-issue-148644.vwkknh.rst b/Misc/NEWS.d/next/Build/2026-04-17-21-45-32.gh-issue-148644.vwkknh.rst deleted file mode 100644 index a0cc9c9358cb26..00000000000000 --- a/Misc/NEWS.d/next/Build/2026-04-17-21-45-32.gh-issue-148644.vwkknh.rst +++ /dev/null @@ -1 +0,0 @@ -Errors during the PGO training job on Windows are no longer ignored, and a non-zero return code will cause the build to fail. diff --git a/Misc/NEWS.d/next/Build/2026-04-30-08-43-47.gh-issue-146475.1cL4hX.rst b/Misc/NEWS.d/next/Build/2026-04-30-08-43-47.gh-issue-146475.1cL4hX.rst deleted file mode 100644 index 225c659393fac5..00000000000000 --- a/Misc/NEWS.d/next/Build/2026-04-30-08-43-47.gh-issue-146475.1cL4hX.rst +++ /dev/null @@ -1,2 +0,0 @@ -Block Apple Clang from being used to build the JIT as it ships without -required LLVM tools. diff --git a/Misc/NEWS.d/next/Build/2026-05-01-12-01-54.gh-issue-148690.oTtYk-.rst b/Misc/NEWS.d/next/Build/2026-05-01-12-01-54.gh-issue-148690.oTtYk-.rst deleted file mode 100644 index 6845bad2b278de..00000000000000 --- a/Misc/NEWS.d/next/Build/2026-05-01-12-01-54.gh-issue-148690.oTtYk-.rst +++ /dev/null @@ -1,4 +0,0 @@ -Windows free-threaded builds now output to a different default path with -default filenames, for example, ``PCbuild/amd64t/python.exe`` rather than -``PCbuild/amd64/python3.15t.exe``. The ``PC/layout`` script has been updated -to ensure compatibility of generated layouts. diff --git a/Misc/NEWS.d/next/Build/2026-05-01-20-01-32.gh-issue-149252.4W_0-w.rst b/Misc/NEWS.d/next/Build/2026-05-01-20-01-32.gh-issue-149252.4W_0-w.rst deleted file mode 100644 index 646a8e33732016..00000000000000 --- a/Misc/NEWS.d/next/Build/2026-05-01-20-01-32.gh-issue-149252.4W_0-w.rst +++ /dev/null @@ -1 +0,0 @@ -Update to WASI SDK 33. diff --git a/Misc/NEWS.d/next/Build/2026-05-04-06-03-50.gh-issue-149351.hN4sF0.rst b/Misc/NEWS.d/next/Build/2026-05-04-06-03-50.gh-issue-149351.hN4sF0.rst deleted file mode 100644 index 792c8d394eccb2..00000000000000 --- a/Misc/NEWS.d/next/Build/2026-05-04-06-03-50.gh-issue-149351.hN4sF0.rst +++ /dev/null @@ -1,2 +0,0 @@ -Avoid possible broken macOS framework install names when DESTDIR is -specified during builds. diff --git a/Misc/NEWS.d/next/Build/2026-05-04-23-07-45.gh-issue-149353.XfM8aQ.rst b/Misc/NEWS.d/next/Build/2026-05-04-23-07-45.gh-issue-149353.XfM8aQ.rst deleted file mode 100644 index 3a3bad2906f783..00000000000000 --- a/Misc/NEWS.d/next/Build/2026-05-04-23-07-45.gh-issue-149353.XfM8aQ.rst +++ /dev/null @@ -1,2 +0,0 @@ -Avoid unnecessary JIT-related rebuilds during ``make install`` after -``--enable-optimizations`` builds. diff --git a/Misc/NEWS.d/next/C_API/2026-03-13-16-37-54.gh-issue-145921.ssA7HZ.rst b/Misc/NEWS.d/next/C_API/2026-03-13-16-37-54.gh-issue-145921.ssA7HZ.rst deleted file mode 100644 index 4a512832027703..00000000000000 --- a/Misc/NEWS.d/next/C_API/2026-03-13-16-37-54.gh-issue-145921.ssA7HZ.rst +++ /dev/null @@ -1,9 +0,0 @@ -Add functions that are guaranteed to be safe for use in -:c:member:`~PyTypeObject.tp_traverse` handlers: -:c:func:`PyObject_GetTypeData_DuringGC`, -:c:func:`PyObject_GetItemData_DuringGC`, -:c:func:`PyType_GetModuleState_DuringGC`, -:c:func:`PyModule_GetState_DuringGC`, :c:func:`PyModule_GetToken_DuringGC`, -:c:func:`PyType_GetBaseByToken_DuringGC`, -:c:func:`PyType_GetModule_DuringGC`, -:c:func:`PyType_GetModuleByToken_DuringGC`. diff --git a/Misc/NEWS.d/next/C_API/2026-03-19-15-28-14.gh-issue-146063.Sc-1RU.rst b/Misc/NEWS.d/next/C_API/2026-03-19-15-28-14.gh-issue-146063.Sc-1RU.rst deleted file mode 100644 index e20e11a754f694..00000000000000 --- a/Misc/NEWS.d/next/C_API/2026-03-19-15-28-14.gh-issue-146063.Sc-1RU.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add :c:func:`PyObject_CallFinalizerFromDealloc` function to the limited C API. -Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/C_API/2026-03-22-00-00-00.gh-issue-146302.PyIsInit.rst b/Misc/NEWS.d/next/C_API/2026-03-22-00-00-00.gh-issue-146302.PyIsInit.rst deleted file mode 100644 index e194e2bb2c378b..00000000000000 --- a/Misc/NEWS.d/next/C_API/2026-03-22-00-00-00.gh-issue-146302.PyIsInit.rst +++ /dev/null @@ -1,3 +0,0 @@ -:c:func:`Py_IsInitialized` no longer returns true until initialization has -fully completed, including import of the :mod:`site` module. The underlying -runtime flags now use atomic operations. diff --git a/Misc/NEWS.d/next/C_API/2026-04-03-11-06-20.gh-issue-146636.zR6Jsn.rst b/Misc/NEWS.d/next/C_API/2026-04-03-11-06-20.gh-issue-146636.zR6Jsn.rst deleted file mode 100644 index 7f84a6f954dc76..00000000000000 --- a/Misc/NEWS.d/next/C_API/2026-04-03-11-06-20.gh-issue-146636.zR6Jsn.rst +++ /dev/null @@ -1 +0,0 @@ -Implement :pep:`803` -- ``abi3t``: Stable ABI for Free-Threaded Builds. diff --git a/Misc/NEWS.d/next/C_API/2026-04-05-18-18-59.gh-issue-145559.qKJH9S.rst b/Misc/NEWS.d/next/C_API/2026-04-05-18-18-59.gh-issue-145559.qKJH9S.rst deleted file mode 100644 index 9495d42160a9cd..00000000000000 --- a/Misc/NEWS.d/next/C_API/2026-04-05-18-18-59.gh-issue-145559.qKJH9S.rst +++ /dev/null @@ -1,3 +0,0 @@ -Rename ``_Py_DumpTraceback`` and ``_Py_DumpTracebackThreads`` to -:c:func:`PyUnstable_DumpTraceback` and -:c:func:`PyUnstable_DumpTracebackThreads`. diff --git a/Misc/NEWS.d/next/C_API/2026-04-09-14-45-44.gh-issue-148267.p84kG_.rst b/Misc/NEWS.d/next/C_API/2026-04-09-14-45-44.gh-issue-148267.p84kG_.rst deleted file mode 100644 index 1ec1afd2cbfeb9..00000000000000 --- a/Misc/NEWS.d/next/C_API/2026-04-09-14-45-44.gh-issue-148267.p84kG_.rst +++ /dev/null @@ -1,2 +0,0 @@ -Using :c:macro:`Py_LIMITED_API` on a non-Windows free-threaded build no -longer needs an extra :c:macro:`Py_GIL_DISABLED`. diff --git a/Misc/NEWS.d/next/C_API/2026-04-27-10-56-22.gh-issue-149044.TbOcUS.rst b/Misc/NEWS.d/next/C_API/2026-04-27-10-56-22.gh-issue-149044.TbOcUS.rst deleted file mode 100644 index d7bb38f7cd7366..00000000000000 --- a/Misc/NEWS.d/next/C_API/2026-04-27-10-56-22.gh-issue-149044.TbOcUS.rst +++ /dev/null @@ -1 +0,0 @@ -Implement :pep:`820`: Unified slot system for the C API. diff --git a/Misc/NEWS.d/next/C_API/2026-04-28-17-43-12.gh-issue-149101.HTuHTb.rst b/Misc/NEWS.d/next/C_API/2026-04-28-17-43-12.gh-issue-149101.HTuHTb.rst deleted file mode 100644 index 9bcb835c19f09c..00000000000000 --- a/Misc/NEWS.d/next/C_API/2026-04-28-17-43-12.gh-issue-149101.HTuHTb.rst +++ /dev/null @@ -1 +0,0 @@ -Implement :pep:`788`. diff --git a/Misc/NEWS.d/next/C_API/2026-05-01-00-00-00.gh-issue-149216.TpWatch.rst b/Misc/NEWS.d/next/C_API/2026-05-01-00-00-00.gh-issue-149216.TpWatch.rst deleted file mode 100644 index 59850c3a48a76f..00000000000000 --- a/Misc/NEWS.d/next/C_API/2026-05-01-00-00-00.gh-issue-149216.TpWatch.rst +++ /dev/null @@ -1,5 +0,0 @@ -:c:type:`PyType_WatchCallback` callbacks registered via -:c:func:`PyType_AddWatcher` are now also invoked when a watched heap type is -deallocated. Previously, type watchers were only notified of modifications, -which could cause stale references when a type was freed and its address was -reused. diff --git a/Misc/NEWS.d/next/C_API/2026-05-01-14-49-09.gh-issue-149225.IdAYPZ.rst b/Misc/NEWS.d/next/C_API/2026-05-01-14-49-09.gh-issue-149225.IdAYPZ.rst deleted file mode 100644 index 98d716ab5fa764..00000000000000 --- a/Misc/NEWS.d/next/C_API/2026-05-01-14-49-09.gh-issue-149225.IdAYPZ.rst +++ /dev/null @@ -1,2 +0,0 @@ -:c:type:`PyCriticalSection` and related functions are added to the Stable -ABI. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-01-17-19-48-28.gh-issue-100239.7pbTEA.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-01-17-19-48-28.gh-issue-100239.7pbTEA.rst deleted file mode 100644 index 594ef72ac57fae..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-01-17-19-48-28.gh-issue-100239.7pbTEA.rst +++ /dev/null @@ -1,3 +0,0 @@ -Specialize ``BINARY_OP`` for concatenation of lists and tuples, and -propagate the result type through ``_BINARY_OP_EXTEND`` in the tier 2 -optimizer so that follow-up type guards can be eliminated. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-05-26-10-03-18.gh-issue-134690.mUMT16.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-05-26-10-03-18.gh-issue-134690.mUMT16.rst deleted file mode 100644 index d26fa590b3535f..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-05-26-10-03-18.gh-issue-134690.mUMT16.rst +++ /dev/null @@ -1,2 +0,0 @@ -Removed deprecated in :pep:`626` since Python 3.12 -:attr:`!codeobject.co_lnotab` from :class:`types.CodeType`. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-06-10-17-30-55.gh-issue-135357.sUXU1W.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-06-10-17-30-55.gh-issue-135357.sUXU1W.rst deleted file mode 100644 index 378bb59de7930a..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-06-10-17-30-55.gh-issue-135357.sUXU1W.rst +++ /dev/null @@ -1 +0,0 @@ -Add support for :data:`!socket.SO_PASSRIGHTS` on Linux. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-08-01-20-31-30.gh-issue-137293.4x3JbV.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-08-01-20-31-30.gh-issue-137293.4x3JbV.rst deleted file mode 100644 index 83289d4d9bc875..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-08-01-20-31-30.gh-issue-137293.4x3JbV.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :exc:`SystemError` when searching ELF Files in :func:`sys.remote_exec`. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-08-09-19-00-36.gh-issue-137600.p_p6OU.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-08-09-19-00-36.gh-issue-137600.p_p6OU.rst deleted file mode 100644 index d1d1e36215daa3..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-08-09-19-00-36.gh-issue-137600.p_p6OU.rst +++ /dev/null @@ -1,4 +0,0 @@ -:mod:`ast`: The constructors of AST nodes now raise a :exc:`TypeError` when -a required argument is omitted or when a keyword argument that does not map to -a field on the AST node is passed. These cases had previously raised a -:exc:`DeprecationWarning` since Python 3.13. Patch by Brian Schubert. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-08-15-21-33-16.gh-issue-137814.6yRTeu.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-08-15-21-33-16.gh-issue-137814.6yRTeu.rst deleted file mode 100644 index 83561312deeb02..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-08-15-21-33-16.gh-issue-137814.6yRTeu.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix the ``__qualname__`` attribute of ``__annotate__`` functions on -functions. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-08-16-12-56-08.gh-issue-116021.hMN9yw.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-08-16-12-56-08.gh-issue-116021.hMN9yw.rst deleted file mode 100644 index 967d8faaef3422..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-08-16-12-56-08.gh-issue-116021.hMN9yw.rst +++ /dev/null @@ -1,2 +0,0 @@ -Support for creating instances of abstract AST nodes from the :mod:`ast` module -is deprecated and scheduled for removal in Python 3.20. Patch by Brian Schubert. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-12-08-00-25-35.gh-issue-98894.hKWyfqNx.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-12-08-00-25-35.gh-issue-98894.hKWyfqNx.rst deleted file mode 100644 index 09ccf198a90583..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-12-08-00-25-35.gh-issue-98894.hKWyfqNx.rst +++ /dev/null @@ -1,2 +0,0 @@ -Restore ``function__entry`` and ``function__return`` DTrace/SystemTap probes -that were broken since Python 3.11. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-15-13-37-21.gh-issue-143886.2gk5QC.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-15-13-37-21.gh-issue-143886.2gk5QC.rst deleted file mode 100644 index fe4835ec28cfd5..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-15-13-37-21.gh-issue-143886.2gk5QC.rst +++ /dev/null @@ -1,3 +0,0 @@ -Reorder function annotations so positional-only arguments are returned -before other arguments. This fixes how :func:`functools.singledispatch` -registers functions with positional-only arguments. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-18-16-53-26.gh-issue-134584.a-O4sd.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-18-16-53-26.gh-issue-134584.a-O4sd.rst deleted file mode 100644 index 1258efcc01581a..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-18-16-53-26.gh-issue-134584.a-O4sd.rst +++ /dev/null @@ -1 +0,0 @@ -Optimize and eliminate redundant ref-counting for ``MAKE_FUNCTION`` in the JIT. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-26-21-22-34.gh-issue-145278.DHkYqt.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-26-21-22-34.gh-issue-145278.DHkYqt.rst deleted file mode 100644 index 6b6a9eb9813663..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-26-21-22-34.gh-issue-145278.DHkYqt.rst +++ /dev/null @@ -1,4 +0,0 @@ -The :mod:`encodings` is now partially frozen, including -the ``aliases`` and ``utf_8`` submodules. - -The :mod:`linecache` is now frozen. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-16-17-29-22.gh-issue-146031.6nyB7C.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-03-16-17-29-22.gh-issue-146031.6nyB7C.rst deleted file mode 100644 index cabcf975e5aa89..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-16-17-29-22.gh-issue-146031.6nyB7C.rst +++ /dev/null @@ -1 +0,0 @@ -The unstable API _PyInterpreterState_SetEvalFrameFunc has a companion function _PyInterpreterState_SetEvalFrameAllowSpecialization to specify if specialization should be allowed. When this option is set to 1 the specializer will turn Python -> Python calls into specialized opcodes which the replacement interpreter loop can choose to respect and perform inlined dispatch. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-17-20-30-17.gh-issue-126910.NaUwmD.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-03-17-20-30-17.gh-issue-126910.NaUwmD.rst deleted file mode 100644 index 4d2634d0dd1e81..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-17-20-30-17.gh-issue-126910.NaUwmD.rst +++ /dev/null @@ -1 +0,0 @@ -Add support for unwinding JIT frames using GDB. Patch by Diego Russo and Pablo Galindo. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-23-11-34-37.gh-issue-142186.v8Yp3W.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-03-23-11-34-37.gh-issue-142186.v8Yp3W.rst deleted file mode 100644 index 4a04658551c444..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-23-11-34-37.gh-issue-142186.v8Yp3W.rst +++ /dev/null @@ -1,3 +0,0 @@ -Global :mod:`sys.monitoring` events can now be turned on and disabled on a -per code object basis. Returning ``DISABLE`` from a callback disables the -event for the entire code object (for the current tool). diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-25-12-00-00.gh-issue-146306.B9f62e.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-03-25-12-00-00.gh-issue-146306.B9f62e.rst deleted file mode 100644 index c819a830f8bc86..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-25-12-00-00.gh-issue-146306.B9f62e.rst +++ /dev/null @@ -1,2 +0,0 @@ -Specialize float true division in the tier 2 optimizer with inplace -mutation for uniquely-referenced operands. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-26-08-49-35.gh-issue-146455.f54083a9.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-03-26-08-49-35.gh-issue-146455.f54083a9.rst deleted file mode 100644 index 4d7537f2529da6..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-26-08-49-35.gh-issue-146455.f54083a9.rst +++ /dev/null @@ -1 +0,0 @@ -Fix O(N²) compile-time regression in constant folding after it was moved from AST to CFG optimizer. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-02-13-25-09.gh-issue-147998.wnzkRT.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-02-13-25-09.gh-issue-147998.wnzkRT.rst deleted file mode 100644 index e83d9929eae5e0..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-02-13-25-09.gh-issue-147998.wnzkRT.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fixed a memory leak in interpreter helper calls so cleanup works when an -operation falls across interpreter boundaries. Patch by Maurycy -Pawłowski-Wieroński. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-02-17-52-33.gh-issue-148014.2Y6ND_.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-02-17-52-33.gh-issue-148014.2Y6ND_.rst deleted file mode 100644 index 964e5bdabbe1f0..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-02-17-52-33.gh-issue-148014.2Y6ND_.rst +++ /dev/null @@ -1,2 +0,0 @@ -Accept a function name in :option:`-X presite <-X>` command line option and -:envvar:`PYTHON_PRESITE` environment variable. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-05-16-10-00.gh-issue-149202.W8sQeR.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-05-16-10-00.gh-issue-149202.W8sQeR.rst deleted file mode 100644 index aae1529547c837..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-05-16-10-00.gh-issue-149202.W8sQeR.rst +++ /dev/null @@ -1,5 +0,0 @@ -Enable frame pointers by default for GCC-compatible CPython builds, including -``-mno-omit-leaf-frame-pointer``, ``-marm`` on 32-bit ARM, and/or ``-mbackchain`` -on s390x platforms when the compiler supports them, so profilers and debuggers -can unwind native interpreter frames more reliably. Users can pass -:option:`--without-frame-pointers` to ``./configure`` to opt out. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-06-18-25-53.gh-issue-95004.CQeT_H.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-06-18-25-53.gh-issue-95004.CQeT_H.rst deleted file mode 100644 index a492982bc62da7..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-06-18-25-53.gh-issue-95004.CQeT_H.rst +++ /dev/null @@ -1 +0,0 @@ -The specializing interpreter now specializes for :class:`enum.Enum` improving performance and scaling in free-threading. Patch by Kumar Aditya. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-07-20-21-44.gh-issue-148208.JAxpDU.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-07-20-21-44.gh-issue-148208.JAxpDU.rst deleted file mode 100644 index b8ae19f5877a7d..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-07-20-21-44.gh-issue-148208.JAxpDU.rst +++ /dev/null @@ -1 +0,0 @@ -Fix recursion depth leak in :c:func:`PyObject_Print` diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-07-20-37-23.gh-issue-148222.uF4D4E.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-07-20-37-23.gh-issue-148222.uF4D4E.rst deleted file mode 100644 index 2c273fc4daba3d..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-07-20-37-23.gh-issue-148222.uF4D4E.rst +++ /dev/null @@ -1 +0,0 @@ -Fix vectorcall support in :class:`types.GenericAlias` when the underlying type does not support the vectorcall protocol. Fix possible leaks in :class:`types.GenericAlias` and :class:`types.UnionType` in case of memory error. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-08-02-49-07.gh-issue-148189.0KpXID.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-08-02-49-07.gh-issue-148189.0KpXID.rst deleted file mode 100644 index d90e30b3d3fba8..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-08-02-49-07.gh-issue-148189.0KpXID.rst +++ /dev/null @@ -1 +0,0 @@ -Repaired undercount of bytes in type-specific free lists reported by sys._debugmallocstats(). For types that participate in cyclic garbage collection, it was missing two pointers used by GC. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-08-06-59-23.gh-issue-115802.jqfZty.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-08-06-59-23.gh-issue-115802.jqfZty.rst deleted file mode 100644 index 13ed51be0e6c5c..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-08-06-59-23.gh-issue-115802.jqfZty.rst +++ /dev/null @@ -1 +0,0 @@ -Improve JIT code generation on Linux AArch64 by reducing the indirect call to external symbols. Patch by Diego Russo. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-09-14-18-33.gh-issue-148037.aP3CSX.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-09-14-18-33.gh-issue-148037.aP3CSX.rst deleted file mode 100644 index b0cef595129817..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-09-14-18-33.gh-issue-148037.aP3CSX.rst +++ /dev/null @@ -1 +0,0 @@ -Remove critical section from :c:func:`!PyCode_Addr2Line` in free-threading. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-10-14-20-54.gh-issue-148284.HKs-S_.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-10-14-20-54.gh-issue-148284.HKs-S_.rst deleted file mode 100644 index a74f6c1a61affd..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-10-14-20-54.gh-issue-148284.HKs-S_.rst +++ /dev/null @@ -1 +0,0 @@ -Fix high stack consumption in Python's interpreter loop on Clang 22 by setting function limits for inlining when building with computed gotos. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-10-23-13-19.gh-issue-146527.P3Xv4Q.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-10-23-13-19.gh-issue-146527.P3Xv4Q.rst deleted file mode 100644 index e83b66f71da0ca..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-10-23-13-19.gh-issue-146527.P3Xv4Q.rst +++ /dev/null @@ -1,5 +0,0 @@ -Add a ``GCMonitor`` class with a ``get_gc_stats`` method to the -:mod:`!_remote_debugging` module to allow reading GC statistics from an -external Python process without requiring the full ``RemoteUnwinder`` -functionality. -Patch by Sergey Miryanov and Pablo Galindo. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-11-15-12-53.gh-issue-148398.g62jCA.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-11-15-12-53.gh-issue-148398.g62jCA.rst deleted file mode 100644 index 0a7ba0b27d9708..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-11-15-12-53.gh-issue-148398.g62jCA.rst +++ /dev/null @@ -1 +0,0 @@ -Fix a bug in the JIT optimizer where class attribute loads were not invalidated after type mutation. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-11-17-28-52.gh-issue-148393.lX6gwN.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-11-17-28-52.gh-issue-148393.lX6gwN.rst deleted file mode 100644 index 33c4b75bfb944c..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-11-17-28-52.gh-issue-148393.lX6gwN.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix data races between :c:func:`PyDict_Watch` / :c:func:`PyDict_Unwatch` -and concurrent dict mutation in the :term:`free-threaded build`. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-12-10-40-57.gh-issue-148418.ggA1LZ.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-12-10-40-57.gh-issue-148418.ggA1LZ.rst deleted file mode 100644 index 793858be7814c1..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-12-10-40-57.gh-issue-148418.ggA1LZ.rst +++ /dev/null @@ -1 +0,0 @@ -Fix a possible reference leak in a corrupted ``TYPE_CODE`` marshal stream. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-12-17-27-28.gh-issue-148390.MAhw7F.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-12-17-27-28.gh-issue-148390.MAhw7F.rst deleted file mode 100644 index 881964673307cc..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-12-17-27-28.gh-issue-148390.MAhw7F.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fix an undefined behavior in :class:`memoryview` when using the native -boolean format (``?``) in :meth:`~memoryview.cast`. Previously, on some -common platforms, calling ``memoryview(b).cast("?").tolist()`` incorrectly -returned ``[False]`` instead of ``[True]`` for any even byte *b*. -Patch by Bénédikt Tran. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-13-16-52-33.gh-issue-148515.09xulC.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-13-16-52-33.gh-issue-148515.09xulC.rst deleted file mode 100644 index 53d91c8198f3d0..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-13-16-52-33.gh-issue-148515.09xulC.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a bug in the JIT optimizer reading operands for uops with multiple -caches. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-13-23-21-45.gh-issue-145239.pL8qRt.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-13-23-21-45.gh-issue-145239.pL8qRt.rst deleted file mode 100644 index 282b99176642bc..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-13-23-21-45.gh-issue-145239.pL8qRt.rst +++ /dev/null @@ -1,3 +0,0 @@ -Unary plus is now accepted in :keyword:`match` literal patterns, mirroring -the existing support for unary minus. -Patch by Bartosz Sławecki. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-15-12-00-00.gh-issue-146462.1YfK6v.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-15-12-00-00.gh-issue-146462.1YfK6v.rst deleted file mode 100644 index 44019b7562a344..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-15-12-00-00.gh-issue-146462.1YfK6v.rst +++ /dev/null @@ -1,3 +0,0 @@ -Added ``PyTypeObject.tp_basicsize``, ``PyTypeObject.tp_dictoffset``, and -``PyHeapTypeObject.ht_cached_keys`` offsets to :c:type:`!_Py_DebugOffsets` to -support version-independent read-only dict introspection tools. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-17-11-30-00.gh-issue-142516.GcGen315.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-17-11-30-00.gh-issue-142516.GcGen315.rst deleted file mode 100644 index 5abb2485c20f12..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-17-11-30-00.gh-issue-142516.GcGen315.rst +++ /dev/null @@ -1 +0,0 @@ -Forward-port the generational cycle garbage collector to the default 3.15 build, replacing the incremental collector while leaving the free-threaded collector unchanged. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-17-20-37-02.gh-issue-148653.nbbHMh.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-17-20-37-02.gh-issue-148653.nbbHMh.rst deleted file mode 100644 index d3242235c6059b..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-17-20-37-02.gh-issue-148653.nbbHMh.rst +++ /dev/null @@ -1,2 +0,0 @@ -Forbid :mod:`marshalling ` recursive code objects, :class:`slice` -and :class:`frozendict` objects which cannot be correctly unmarshalled. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-18-16-41-04.gh-issue-148571.Q6WB3A.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-18-16-41-04.gh-issue-148571.Q6WB3A.rst deleted file mode 100644 index 70eeada34320ac..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-18-16-41-04.gh-issue-148571.Q6WB3A.rst +++ /dev/null @@ -1 +0,0 @@ -Fix a crash in the JIT optimizer when specialized opcode families inherited incompatible recorded operand layouts. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-19-22-35-39.gh-issue-148766.coLWln.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-19-22-35-39.gh-issue-148766.coLWln.rst deleted file mode 100644 index 946473d700f13a..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-19-22-35-39.gh-issue-148766.coLWln.rst +++ /dev/null @@ -1,2 +0,0 @@ -The interpreter help (such as ``python --help``) is now in color. Patch by -Hugo van Kemenade. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-20-15-25-55.gh-issue-146270.qZYfyc.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-20-15-25-55.gh-issue-146270.qZYfyc.rst deleted file mode 100644 index 46c292e183e0fd..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-20-15-25-55.gh-issue-146270.qZYfyc.rst +++ /dev/null @@ -1 +0,0 @@ -Fix a sequential consistency bug in ``structmember.c``. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-21-06-43-32.gh-issue-148829.GtIrYO.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-21-06-43-32.gh-issue-148829.GtIrYO.rst deleted file mode 100644 index 3d9b4faa6ca443..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-21-06-43-32.gh-issue-148829.GtIrYO.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add :class:`sentinel`, implementing :pep:`661`. PEP by Tal Einat; patch by -Jelle Zijlstra. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-21-14-36-44.gh-issue-148820.XhOGhA.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-21-14-36-44.gh-issue-148820.XhOGhA.rst deleted file mode 100644 index 392becaffb73cf..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-21-14-36-44.gh-issue-148820.XhOGhA.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fix a race in :c:type:`!_PyRawMutex` on the free-threaded build where a -``Py_PARK_INTR`` return from ``_PySemaphore_Wait`` could let the waiter -destroy its semaphore before the unlocking thread's -``_PySemaphore_Wakeup`` completed, causing a fatal ``ReleaseSemaphore`` -error. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-21-19-29-29.gh-issue-148850.MSH0J_.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-21-19-29-29.gh-issue-148850.MSH0J_.rst deleted file mode 100644 index 324d1610310158..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-21-19-29-29.gh-issue-148850.MSH0J_.rst +++ /dev/null @@ -1 +0,0 @@ -Fix the memory sanitizer false positive in :func:`os.getrandom`. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-22-14-55-18.gh-issue-113956.0VEXd6.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-22-14-55-18.gh-issue-113956.0VEXd6.rst deleted file mode 100644 index 54c04bbc28d416..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-22-14-55-18.gh-issue-113956.0VEXd6.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix a data race in :func:`sys.intern` in the free-threaded build when -interning a string owned by another thread. An interned copy owned by the -current thread is used instead when it is not safe to immortalize the -original. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-28-05-59-17.gh-issue-83065.f0UPNE.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-28-05-59-17.gh-issue-83065.f0UPNE.rst deleted file mode 100644 index 81bfa45c069fd4..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-28-05-59-17.gh-issue-83065.f0UPNE.rst +++ /dev/null @@ -1,7 +0,0 @@ -Fix a deadlock that could occur when one thread is importing a submodule -(for example ``import pkg.sub.mod``) while another thread is importing one -of its parent packages (for example ``import pkg.sub``) and that parent's -``__init__.py`` itself imports the submodule. The import system now -acquires module locks in hierarchical (parent-before-child) order so the -two threads serialise instead of raising -``_DeadlockError``. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-28-21-19-21.gh-issue-149049.98u2Ib.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-28-21-19-21.gh-issue-149049.98u2Ib.rst deleted file mode 100644 index 4c8f7e08a44859..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-28-21-19-21.gh-issue-149049.98u2Ib.rst +++ /dev/null @@ -1 +0,0 @@ -Fix stack underflow for ``BINARY_OP`` in tier 2. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-29-14-06-00.gh-issue-149122.P8k2Lm.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-29-14-06-00.gh-issue-149122.P8k2Lm.rst deleted file mode 100644 index f34b6ea857a06c..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-29-14-06-00.gh-issue-149122.P8k2Lm.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix a crash in optimized calls to :func:`all`, :func:`any`, :func:`tuple`, -:func:`list`, and :func:`set` with an async generator expression argument -(for example, ``tuple(await x for x in y)``). These calls now correctly raise -``TypeError`` instead of crashing. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-30-01-35-09.gh-issue-149171.meXWpl.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-30-01-35-09.gh-issue-149171.meXWpl.rst deleted file mode 100644 index f8320dd4c6b3c2..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-30-01-35-09.gh-issue-149171.meXWpl.rst +++ /dev/null @@ -1,2 +0,0 @@ -Allow assignment to the ``__module__`` attribute of -:class:`typing.TypeAliasType` instances. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-05-02-18-02-41.gh-issue-126910.nqDVrp.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-05-02-18-02-41.gh-issue-126910.nqDVrp.rst deleted file mode 100644 index 7103c7e9356042..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-05-02-18-02-41.gh-issue-126910.nqDVrp.rst +++ /dev/null @@ -1 +0,0 @@ -Add support for unwinding JIT frames using GNU backtrace. Patch by Diego Russo and Pablo Galindo diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-05-03-10-24-50.gh-issue-149243.Zh1q9_.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-05-03-10-24-50.gh-issue-149243.Zh1q9_.rst deleted file mode 100644 index 5c1956fe398364..00000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-05-03-10-24-50.gh-issue-149243.Zh1q9_.rst +++ /dev/null @@ -1 +0,0 @@ -Check for recursion limits in ``CALL_ALLOC_AND_ENTER_INIT`` opcode. diff --git a/Misc/NEWS.d/next/Documentation/2026-04-02-07-20-00.gh-issue-146646.GlobDoc1.rst b/Misc/NEWS.d/next/Documentation/2026-04-02-07-20-00.gh-issue-146646.GlobDoc1.rst deleted file mode 100644 index 4e89270442a33b..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2026-04-02-07-20-00.gh-issue-146646.GlobDoc1.rst +++ /dev/null @@ -1,3 +0,0 @@ -Document that :func:`glob.glob`, :func:`glob.iglob`, -:meth:`pathlib.Path.glob`, and :meth:`pathlib.Path.rglob` silently suppress -:exc:`OSError` exceptions raised from scanning the filesystem. diff --git a/Misc/NEWS.d/next/Documentation/2026-04-17-02-28-55.gh-issue-148663.MHIbRB.rst b/Misc/NEWS.d/next/Documentation/2026-04-17-02-28-55.gh-issue-148663.MHIbRB.rst deleted file mode 100644 index 0fbe5a699ef0ad..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2026-04-17-02-28-55.gh-issue-148663.MHIbRB.rst +++ /dev/null @@ -1,2 +0,0 @@ -Document that :class:`calendar.IllegalMonthError` is a subclass of both -:exc:`ValueError` and :exc:`IndexError` since Python 3.12. diff --git a/Misc/NEWS.d/next/IDLE/2021-10-03-21-55-34.gh-issue-89520.etEExa.rst b/Misc/NEWS.d/next/IDLE/2021-10-03-21-55-34.gh-issue-89520.etEExa.rst deleted file mode 100644 index e8e181cac21358..00000000000000 --- a/Misc/NEWS.d/next/IDLE/2021-10-03-21-55-34.gh-issue-89520.etEExa.rst +++ /dev/null @@ -1,3 +0,0 @@ -Make IDLE extension configuration look at user config files, allowing -user-installed extensions to have settings and key bindings defined in -~/.idlerc. diff --git a/Misc/NEWS.d/next/IDLE/2025-10-05-19-33-39.gh-issue-139551.TX9BRc.rst b/Misc/NEWS.d/next/IDLE/2025-10-05-19-33-39.gh-issue-139551.TX9BRc.rst deleted file mode 100644 index 5ea1dfc9b5100d..00000000000000 --- a/Misc/NEWS.d/next/IDLE/2025-10-05-19-33-39.gh-issue-139551.TX9BRc.rst +++ /dev/null @@ -1 +0,0 @@ -Support rendering :exc:`BaseExceptionGroup` in IDLE. diff --git a/Misc/NEWS.d/next/IDLE/2026-03-07-20-47-40.gh-issue-94523.dq7m2k.rst b/Misc/NEWS.d/next/IDLE/2026-03-07-20-47-40.gh-issue-94523.dq7m2k.rst deleted file mode 100644 index 831f6ac628768c..00000000000000 --- a/Misc/NEWS.d/next/IDLE/2026-03-07-20-47-40.gh-issue-94523.dq7m2k.rst +++ /dev/null @@ -1,2 +0,0 @@ -Detect file if modified at local disk and prompt to ask refresh. Patch by -Shixian Li. diff --git a/Misc/NEWS.d/next/Library/2022-09-17-20-20-01.gh-issue-96894.t7my0A.rst b/Misc/NEWS.d/next/Library/2022-09-17-20-20-01.gh-issue-96894.t7my0A.rst deleted file mode 100644 index 546d47b8a2f28f..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-09-17-20-20-01.gh-issue-96894.t7my0A.rst +++ /dev/null @@ -1,2 +0,0 @@ -Do not turn echo off for subsequent commands in batch activators -(``activate.bat`` and ``deactivate.bat``) of :mod:`venv`. diff --git a/Misc/NEWS.d/next/Library/2023-09-08-13-10-32.gh-issue-83281.2Plpcj.rst b/Misc/NEWS.d/next/Library/2023-09-08-13-10-32.gh-issue-83281.2Plpcj.rst deleted file mode 100644 index cf2ae770bd1940..00000000000000 --- a/Misc/NEWS.d/next/Library/2023-09-08-13-10-32.gh-issue-83281.2Plpcj.rst +++ /dev/null @@ -1,2 +0,0 @@ -:mod:`email`: improve handling trailing garbage in address lists to avoid throwing -AttributeError in certain edge cases diff --git a/Misc/NEWS.d/next/Library/2023-12-25-19-14-07.gh-issue-113471.ZQMpbI.rst b/Misc/NEWS.d/next/Library/2023-12-25-19-14-07.gh-issue-113471.ZQMpbI.rst deleted file mode 100644 index 99ba9bd1820fc1..00000000000000 --- a/Misc/NEWS.d/next/Library/2023-12-25-19-14-07.gh-issue-113471.ZQMpbI.rst +++ /dev/null @@ -1,2 +0,0 @@ -Allow :mod:`http.server` to set a default content-type when serving -files with an unknown or missing extension. diff --git a/Misc/NEWS.d/next/Library/2024-02-10-21-25-22.gh-issue-70039.6wvcAP.rst b/Misc/NEWS.d/next/Library/2024-02-10-21-25-22.gh-issue-70039.6wvcAP.rst deleted file mode 100644 index 8bb2cd188e89fa..00000000000000 --- a/Misc/NEWS.d/next/Library/2024-02-10-21-25-22.gh-issue-70039.6wvcAP.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed bug where :meth:`smtplib.SMTP.starttls` could fail if :meth:`smtplib.SMTP.connect` is called explicitly rather than implicitly. diff --git a/Misc/NEWS.d/next/Library/2024-07-30-19-19-33.gh-issue-81074.YAeWNf.rst b/Misc/NEWS.d/next/Library/2024-07-30-19-19-33.gh-issue-81074.YAeWNf.rst deleted file mode 100644 index 87de4fade14dfb..00000000000000 --- a/Misc/NEWS.d/next/Library/2024-07-30-19-19-33.gh-issue-81074.YAeWNf.rst +++ /dev/null @@ -1,8 +0,0 @@ -The :mod:`email` module no longer treats email addresses with non-ASCII -characters as defects when parsing a Unicode string or in the ``addr_spec`` -parameter to :class:`email.headerregistry.Address`. :rfc:`5322` permits such -addresses, and they were already supported when parsing bytes and in the Address -``username`` parameter. - -The (undocumented) :exc:`!email.errors.NonASCIILocalPartDefect` is no longer -used and should be considered deprecated. diff --git a/Misc/NEWS.d/next/Library/2024-07-31-17-22-10.gh-issue-83938.TtUa-c.rst b/Misc/NEWS.d/next/Library/2024-07-31-17-22-10.gh-issue-83938.TtUa-c.rst deleted file mode 100644 index 7082c72f685b05..00000000000000 --- a/Misc/NEWS.d/next/Library/2024-07-31-17-22-10.gh-issue-83938.TtUa-c.rst +++ /dev/null @@ -1,8 +0,0 @@ -The :mod:`email` module no longer incorrectly uses :rfc:`2047` encoding for -a mailbox with non-ASCII characters in its domain. Under a policy with -:attr:`~email.policy.EmailPolicy.utf8` set ``False``, attempting to serialize -such a message will now raise an :exc:`~email.errors.HeaderWriteError`. -Either apply an appropriate IDNA encoding to convert the domain to ASCII before -serialization, or use :data:`email.policy.SMTPUTF8` (or another policy with -``utf8=True``) to correctly pass through the internationalized domain name -as Unicode characters. diff --git a/Misc/NEWS.d/next/Library/2024-07-31-17-23-06.gh-issue-122476.TtUa-c.rst b/Misc/NEWS.d/next/Library/2024-07-31-17-23-06.gh-issue-122476.TtUa-c.rst deleted file mode 100644 index 29c076d3a746c6..00000000000000 --- a/Misc/NEWS.d/next/Library/2024-07-31-17-23-06.gh-issue-122476.TtUa-c.rst +++ /dev/null @@ -1,7 +0,0 @@ -The :mod:`email` module no longer incorrectly uses :rfc:`2047` encoding for -a mailbox with non-ASCII characters in its local-part. Under a policy with -:attr:`~email.policy.EmailPolicy.utf8` set ``False``, attempting to serialize -such a message will now raise an :exc:`~email.errors.HeaderWriteError`. -There is no valid 7-bit encoding for an internationalized local-part. Use -:data:`email.policy.SMTPUTF8` (or another policy with ``utf8=True``) to -correctly pass through the local-part as Unicode characters. diff --git a/Misc/NEWS.d/next/Library/2024-09-09-12-48-37.gh-issue-123853.e-zFxb.rst b/Misc/NEWS.d/next/Library/2024-09-09-12-48-37.gh-issue-123853.e-zFxb.rst deleted file mode 100644 index d7204c289369a7..00000000000000 --- a/Misc/NEWS.d/next/Library/2024-09-09-12-48-37.gh-issue-123853.e-zFxb.rst +++ /dev/null @@ -1,3 +0,0 @@ -Update the table of Windows language code identifiers (LCIDs) used by -:func:`locale.getdefaultlocale` on Windows to protocol version 16.0 -(2024-04-23). diff --git a/Misc/NEWS.d/next/Library/2024-11-24-07-18-40.gh-issue-108951.jyKygP.rst b/Misc/NEWS.d/next/Library/2024-11-24-07-18-40.gh-issue-108951.jyKygP.rst deleted file mode 100644 index 0e0280c9b6b0e7..00000000000000 --- a/Misc/NEWS.d/next/Library/2024-11-24-07-18-40.gh-issue-108951.jyKygP.rst +++ /dev/null @@ -1,2 +0,0 @@ -:mod:`asyncio`: Add :meth:`TaskGroup.cancel ` which cancels -unfinished tasks and exits the group without raising :exc:`asyncio.CancelledError`. diff --git a/Misc/NEWS.d/next/Library/2025-04-17-15-26-35.gh-issue-132631.IDFZfb.rst b/Misc/NEWS.d/next/Library/2025-04-17-15-26-35.gh-issue-132631.IDFZfb.rst deleted file mode 100644 index 9cc1d5a389c085..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-04-17-15-26-35.gh-issue-132631.IDFZfb.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix "I/O operation on closed file" when parsing JSON Lines file with -:mod:`JSON CLI `. diff --git a/Misc/NEWS.d/next/Library/2025-05-16-01-43-58.gh-issue-133956.5kWDYd.rst b/Misc/NEWS.d/next/Library/2025-05-16-01-43-58.gh-issue-133956.5kWDYd.rst deleted file mode 100644 index 5923e12d55964c..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-05-16-01-43-58.gh-issue-133956.5kWDYd.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix bug where :func:`@dataclass ` -wouldn't detect ``ClassVar`` fields -if ``ClassVar`` was re-exported from a module -other than :mod:`typing`. diff --git a/Misc/NEWS.d/next/Library/2025-05-23-10-28-51.gh-issue-134551.0rnq0X.rst b/Misc/NEWS.d/next/Library/2025-05-23-10-28-51.gh-issue-134551.0rnq0X.rst deleted file mode 100644 index 94e0c1e0b225d6..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-05-23-10-28-51.gh-issue-134551.0rnq0X.rst +++ /dev/null @@ -1 +0,0 @@ -Add t-strings support to pprint functions diff --git a/Misc/NEWS.d/next/Library/2025-06-02-22-23-38.gh-issue-135056.yz3dSs.rst b/Misc/NEWS.d/next/Library/2025-06-02-22-23-38.gh-issue-135056.yz3dSs.rst deleted file mode 100644 index 754df083ab1063..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-06-02-22-23-38.gh-issue-135056.yz3dSs.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add a ``-H`` or ``--header`` CLI option to :program:`python -m http.server`. Contributed by -Anton I. Sipos. diff --git a/Misc/NEWS.d/next/Library/2025-06-22-16-29-10.gh-issue-135528.Rt_QhR.rst b/Misc/NEWS.d/next/Library/2025-06-22-16-29-10.gh-issue-135528.Rt_QhR.rst deleted file mode 100644 index ab3855582c77ee..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-06-22-16-29-10.gh-issue-135528.Rt_QhR.rst +++ /dev/null @@ -1 +0,0 @@ -:mod:`http.cookiejar`: add "tv", "or", "nom", "sch", and "web" to the default list of supported country code second-level domains. diff --git a/Misc/NEWS.d/next/Library/2025-07-02-17-01-17.gh-issue-125862.WgFYj3.rst b/Misc/NEWS.d/next/Library/2025-07-02-17-01-17.gh-issue-125862.WgFYj3.rst deleted file mode 100644 index 1ccc91d55ec3ad..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-07-02-17-01-17.gh-issue-125862.WgFYj3.rst +++ /dev/null @@ -1,4 +0,0 @@ -The :func:`contextlib.contextmanager` and -:func:`contextlib.asynccontextmanager` decorators now work correctly with -generators, coroutine functions, and async generators when the wrapped -callables are used as decorators. diff --git a/Misc/NEWS.d/next/Library/2025-08-24-15-09-30.gh-issue-75707.GOWZrC.rst b/Misc/NEWS.d/next/Library/2025-08-24-15-09-30.gh-issue-75707.GOWZrC.rst deleted file mode 100644 index b2ff8a0cdf6f72..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-08-24-15-09-30.gh-issue-75707.GOWZrC.rst +++ /dev/null @@ -1 +0,0 @@ -Add optional ``mtime`` argument to :func:`tarfile.open`, for setting the ``mtime`` header field in ``.tar.gz`` archives. diff --git a/Misc/NEWS.d/next/Library/2025-10-08-15-36-00.gh-issue-139489.W46tvn.rst b/Misc/NEWS.d/next/Library/2025-10-08-15-36-00.gh-issue-139489.W46tvn.rst deleted file mode 100644 index 05edefda053a08..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-10-08-15-36-00.gh-issue-139489.W46tvn.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add the :func:`xml.is_valid_name` function, which allows to check -whether a string can be used as an element or attribute name in XML. diff --git a/Misc/NEWS.d/next/Library/2025-10-18-12-13-39.gh-issue-140287.49iU-4.rst b/Misc/NEWS.d/next/Library/2025-10-18-12-13-39.gh-issue-140287.49iU-4.rst deleted file mode 100644 index 09643956d98093..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-10-18-12-13-39.gh-issue-140287.49iU-4.rst +++ /dev/null @@ -1,2 +0,0 @@ -The :mod:`asyncio` REPL now handles exceptions when executing :envvar:`PYTHONSTARTUP` scripts. -Patch by Bartosz Sławecki. diff --git a/Misc/NEWS.d/next/Library/2025-12-06-08-48-26.gh-issue-141449.hQvNW_.rst b/Misc/NEWS.d/next/Library/2025-12-06-08-48-26.gh-issue-141449.hQvNW_.rst deleted file mode 100644 index 4e94c3c80d780f..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-12-06-08-48-26.gh-issue-141449.hQvNW_.rst +++ /dev/null @@ -1,2 +0,0 @@ -Improve tests and documentation for non-function callables as -:term:`annotate functions `. diff --git a/Misc/NEWS.d/next/Library/2025-12-06-11-24-25.gh-issue-142307.w8evI9.rst b/Misc/NEWS.d/next/Library/2025-12-06-11-24-25.gh-issue-142307.w8evI9.rst deleted file mode 100644 index 3c0eb0edcfba48..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-12-06-11-24-25.gh-issue-142307.w8evI9.rst +++ /dev/null @@ -1,4 +0,0 @@ -:mod:`imaplib`: deprecate support for :attr:`IMAP4.file `. -This attribute was never meant to be part of the public interface and altering -its value may result in unclosed files or other synchronization issues with -the underlying socket. Patch by Bénédikt Tran. diff --git a/Misc/NEWS.d/next/Library/2025-12-10-15-15-09.gh-issue-130273.iCfiY5.rst b/Misc/NEWS.d/next/Library/2025-12-10-15-15-09.gh-issue-130273.iCfiY5.rst deleted file mode 100644 index 2e0695334fd71e..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-12-10-15-15-09.gh-issue-130273.iCfiY5.rst +++ /dev/null @@ -1 +0,0 @@ -Fix traceback color output with Unicode characters. diff --git a/Misc/NEWS.d/next/Library/2025-12-17-02-55-03.gh-issue-108411.up7MAc.rst b/Misc/NEWS.d/next/Library/2025-12-17-02-55-03.gh-issue-108411.up7MAc.rst deleted file mode 100644 index 95aa41e922684f..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-12-17-02-55-03.gh-issue-108411.up7MAc.rst +++ /dev/null @@ -1,2 +0,0 @@ -``typing.IO`` and ``typing.BinaryIO`` method arguments are now -positional-only. diff --git a/Misc/NEWS.d/next/Library/2025-12-17-04-10-35.gh-issue-142831.ee3t4L.rst b/Misc/NEWS.d/next/Library/2025-12-17-04-10-35.gh-issue-142831.ee3t4L.rst deleted file mode 100644 index 5fa3cd2727a9e5..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-12-17-04-10-35.gh-issue-142831.ee3t4L.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a crash in the :mod:`json` module where a use-after-free could occur if -the object being encoded is modified during serialization. diff --git a/Misc/NEWS.d/next/Library/2026-01-19-21-23-18.gh-issue-105936.dGrzjM.rst b/Misc/NEWS.d/next/Library/2026-01-19-21-23-18.gh-issue-105936.dGrzjM.rst deleted file mode 100644 index c1d3ec806e597c..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-01-19-21-23-18.gh-issue-105936.dGrzjM.rst +++ /dev/null @@ -1,5 +0,0 @@ -Attempting to mutate non-field attributes of :mod:`dataclasses` -with both *frozen* and *slots* being ``True`` now raises -:class:`~dataclasses.FrozenInstanceError` instead of :class:`TypeError`. -Their non-dataclass subclasses can now freely mutate non-field attributes, -and the original non-slotted class can be garbage collected. diff --git a/Misc/NEWS.d/next/Library/2026-02-07-12-54-20.gh-issue-70647.Bja_Lk.rst b/Misc/NEWS.d/next/Library/2026-02-07-12-54-20.gh-issue-70647.Bja_Lk.rst deleted file mode 100644 index 9fd39743ca58bf..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-02-07-12-54-20.gh-issue-70647.Bja_Lk.rst +++ /dev/null @@ -1,3 +0,0 @@ -:meth:`~datetime.datetime.strptime` now raises :exc:`ValueError` when the -format string contains ``%d`` without a year directive. -Using ``%e`` without a year now emits a :exc:`DeprecationWarning`. diff --git a/Misc/NEWS.d/next/Library/2026-02-12-18-05-16.gh-issue-137855.2_PTbg.rst b/Misc/NEWS.d/next/Library/2026-02-12-18-05-16.gh-issue-137855.2_PTbg.rst deleted file mode 100644 index 586c7d3495ae26..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-02-12-18-05-16.gh-issue-137855.2_PTbg.rst +++ /dev/null @@ -1 +0,0 @@ -Reduce the import time of :mod:`dataclasses` module by ~20%. diff --git a/Misc/NEWS.d/next/Library/2026-02-19-04-40-57.gh-issue-130750.0hW52O.rst b/Misc/NEWS.d/next/Library/2026-02-19-04-40-57.gh-issue-130750.0hW52O.rst deleted file mode 100644 index 8bca48ab159476..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-02-19-04-40-57.gh-issue-130750.0hW52O.rst +++ /dev/null @@ -1,2 +0,0 @@ -Restore quoting of choices in :mod:`argparse` error messages for improved clarity and consistency with documentation. - diff --git a/Misc/NEWS.d/next/Library/2026-02-22-00-00-00.gh-issue-145105.csv-reader-reentrant.rst b/Misc/NEWS.d/next/Library/2026-02-22-00-00-00.gh-issue-145105.csv-reader-reentrant.rst deleted file mode 100644 index 1c2e06c86f6588..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-02-22-00-00-00.gh-issue-145105.csv-reader-reentrant.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix crash in :mod:`csv` reader when iterating with a re-entrant iterator -that calls :func:`next` on the same reader from within ``__next__``. diff --git a/Misc/NEWS.d/next/Library/2026-02-22-19-36-00.gh-issue-145056.TH8nX4.rst b/Misc/NEWS.d/next/Library/2026-02-22-19-36-00.gh-issue-145056.TH8nX4.rst deleted file mode 100644 index 45be0109677cd1..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-02-22-19-36-00.gh-issue-145056.TH8nX4.rst +++ /dev/null @@ -1 +0,0 @@ -Add support for :class:`frozendict` in :meth:`dataclasses.asdict` and :meth:`dataclasses.astuple`. diff --git a/Misc/NEWS.d/next/Library/2026-02-25-10-00-00.gh-issue-145200.m_4PAtcI.rst b/Misc/NEWS.d/next/Library/2026-02-25-10-00-00.gh-issue-145200.m_4PAtcI.rst deleted file mode 100644 index 2fae260377cf73..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-02-25-10-00-00.gh-issue-145200.m_4PAtcI.rst +++ /dev/null @@ -1,2 +0,0 @@ -:mod:`hashlib`: fix a memory leak when allocating -or initializing an OpenSSL HMAC context fails. diff --git a/Misc/NEWS.d/next/Library/2026-02-25-22-20-00.gh-issue-117716.w6kYp9.rst b/Misc/NEWS.d/next/Library/2026-02-25-22-20-00.gh-issue-117716.w6kYp9.rst deleted file mode 100644 index 77182a3f2c3303..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-02-25-22-20-00.gh-issue-117716.w6kYp9.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :mod:`wave` writing of odd-sized ``data`` chunks by appending the required RIFF pad byte and correcting the RIFF chunk size field accordingly. diff --git a/Misc/NEWS.d/next/Library/2026-02-26-12-00-00.gh-issue-145244.Kj31cp.rst b/Misc/NEWS.d/next/Library/2026-02-26-12-00-00.gh-issue-145244.Kj31cp.rst deleted file mode 100644 index 07d7c1fe85e292..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-02-26-12-00-00.gh-issue-145244.Kj31cp.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixed a use-after-free in :mod:`json` encoder when a ``default`` callback -mutates the dictionary being serialized. diff --git a/Misc/NEWS.d/next/Library/2026-03-01-01-58-10.gh-issue-145378.oy6rb9.rst b/Misc/NEWS.d/next/Library/2026-03-01-01-58-10.gh-issue-145378.oy6rb9.rst deleted file mode 100644 index b6a6273d882d79..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-03-01-01-58-10.gh-issue-145378.oy6rb9.rst +++ /dev/null @@ -1 +0,0 @@ -Use ``PyREPL`` as the default input console for :mod:`pdb` diff --git a/Misc/NEWS.d/next/Library/2026-03-11-15-09-52.gh-issue-145831._sW94w.rst b/Misc/NEWS.d/next/Library/2026-03-11-15-09-52.gh-issue-145831._sW94w.rst deleted file mode 100644 index 454b62bc0db95f..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-03-11-15-09-52.gh-issue-145831._sW94w.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix :func:`!email.quoprimime.decode` leaving a stray ``\r`` when -``eol='\r\n'`` by stripping the full *eol* string instead of one character. diff --git a/Misc/NEWS.d/next/Library/2026-03-12-00-00-00.gh-issue-145846.UbHxjv.rst b/Misc/NEWS.d/next/Library/2026-03-12-00-00-00.gh-issue-145846.UbHxjv.rst deleted file mode 100644 index 63cdb7686da998..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-03-12-00-00-00.gh-issue-145846.UbHxjv.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix memory leak in ``_lsprof`` when ``clear()`` is called during active -profiling with nested calls. ``clearEntries()`` now walks the entire -``currentProfilerContext`` linked list instead of only freeing the top context. diff --git a/Misc/NEWS.d/next/Library/2026-03-13-14-23-33.gh-issue-145917.TooGKx.rst b/Misc/NEWS.d/next/Library/2026-03-13-14-23-33.gh-issue-145917.TooGKx.rst deleted file mode 100644 index 23933a633f2391..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-03-13-14-23-33.gh-issue-145917.TooGKx.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add MIME types for TTC and Haptics formats to :mod:`mimetypes`. -(Contributed by Charlie Lin in :gh:`145918`.) diff --git a/Misc/NEWS.d/next/Library/2026-03-22-16-52-04.gh-issue-146292.rJvvs0.rst b/Misc/NEWS.d/next/Library/2026-03-22-16-52-04.gh-issue-146292.rJvvs0.rst deleted file mode 100644 index 40f3b386155cfc..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-03-22-16-52-04.gh-issue-146292.rJvvs0.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add colour to :mod:`~http.server.BaseHTTPRequestHandler` logs, as used by -the :mod:`http.server` CLI. Patch by Hugo van Kemenade. diff --git a/Misc/NEWS.d/next/Library/2026-03-22-23-42-22.gh-issue-146313.RtDeAd.rst b/Misc/NEWS.d/next/Library/2026-03-22-23-42-22.gh-issue-146313.RtDeAd.rst deleted file mode 100644 index 1beea3694c422e..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-03-22-23-42-22.gh-issue-146313.RtDeAd.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix a deadlock in :mod:`multiprocessing`'s resource tracker -where the parent process could hang indefinitely in :func:`os.waitpid` -during interpreter shutdown if a child created via :func:`os.fork` still -held the resource tracker's pipe open. diff --git a/Misc/NEWS.d/next/Library/2026-03-25-07-17-41.gh-issue-146406.ydsmqe.rst b/Misc/NEWS.d/next/Library/2026-03-25-07-17-41.gh-issue-146406.ydsmqe.rst deleted file mode 100644 index 0f8107d2383ba9..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-03-25-07-17-41.gh-issue-146406.ydsmqe.rst +++ /dev/null @@ -1,6 +0,0 @@ -Cross-language method suggestions are now shown for :exc:`AttributeError` on -builtin types and their subclasses. -For example, ``[].push()`` suggests ``append``, -``(1,2).append(3)`` suggests using a ``list``, -``None.keys()`` suggests expecting a ``dict``, -and ``1.0.__or__`` suggests using an ``int``. diff --git a/Misc/NEWS.d/next/Library/2026-03-26-01-42-20.gh-issue-137586.KmHRwR.rst b/Misc/NEWS.d/next/Library/2026-03-26-01-42-20.gh-issue-137586.KmHRwR.rst deleted file mode 100644 index 70122c8ceae507..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-03-26-01-42-20.gh-issue-137586.KmHRwR.rst +++ /dev/null @@ -1,3 +0,0 @@ -Add :class:`!MacOS` to :mod:`webbrowser` for macOS, which opens URLs via -``/usr/bin/open`` instead of piping AppleScript to ``osascript``. -Deprecate :class:`!MacOSXOSAScript` in favour of :class:`!MacOS`. diff --git a/Misc/NEWS.d/next/Library/2026-03-28-11-31-32.gh-issue-146563.cXtSym.rst b/Misc/NEWS.d/next/Library/2026-03-28-11-31-32.gh-issue-146563.cXtSym.rst deleted file mode 100644 index 2103024b616d4e..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-03-28-11-31-32.gh-issue-146563.cXtSym.rst +++ /dev/null @@ -1,2 +0,0 @@ -:mod:`xml.parsers.expat`: add an exception note when a custom Expat handler -return value cannot be properly interpreted. Patch by Bénédikt Tran. diff --git a/Misc/NEWS.d/next/Library/2026-03-29-21-31-14.gh-issue-146609.BnshCt.rst b/Misc/NEWS.d/next/Library/2026-03-29-21-31-14.gh-issue-146609.BnshCt.rst deleted file mode 100644 index 854fcc32ab76e1..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-03-29-21-31-14.gh-issue-146609.BnshCt.rst +++ /dev/null @@ -1 +0,0 @@ -Add colour to :mod:`timeit` CLI output. Patch by Hugo van Kemenade. diff --git a/Misc/NEWS.d/next/Library/2026-03-31-17-33-10.gh-issue-146256.Nm_Ke_.rst b/Misc/NEWS.d/next/Library/2026-03-31-17-33-10.gh-issue-146256.Nm_Ke_.rst deleted file mode 100644 index 636f45ae8d6c70..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-03-31-17-33-10.gh-issue-146256.Nm_Ke_.rst +++ /dev/null @@ -1,4 +0,0 @@ -The ``profiling.sampling`` module now supports JSONL output format via -``--jsonl``. Each run emits a newline-delimited JSON file that is -sequentially parseable by external tools, scripts, and programmatic -consumers. Patch by Maurycy Pawłowski-Wieroński. diff --git a/Misc/NEWS.d/next/Library/2026-04-01-07-10-49.gh-issue-147957.QXf5Xx.rst b/Misc/NEWS.d/next/Library/2026-04-01-07-10-49.gh-issue-147957.QXf5Xx.rst deleted file mode 100644 index 4a0e15d01c72b6..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-01-07-10-49.gh-issue-147957.QXf5Xx.rst +++ /dev/null @@ -1 +0,0 @@ -Guarantees that :meth:`collections.UserDict.popitem` will pop in the same order as the wrapped dictionary rather than an arbitrary order. diff --git a/Misc/NEWS.d/next/Library/2026-04-02-05-06-34.gh-issue-147991.2ANtR5.rst b/Misc/NEWS.d/next/Library/2026-04-02-05-06-34.gh-issue-147991.2ANtR5.rst deleted file mode 100644 index 581c52926c3565..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-02-05-06-34.gh-issue-147991.2ANtR5.rst +++ /dev/null @@ -1,2 +0,0 @@ -Improve :mod:`tomllib` import time (up to 10x faster). Patch by Victor -Stinner. diff --git a/Misc/NEWS.d/next/Library/2026-04-04-20-22-02.gh-issue-148100.lSmGQi.rst b/Misc/NEWS.d/next/Library/2026-04-04-20-22-02.gh-issue-148100.lSmGQi.rst deleted file mode 100644 index dd5bc6022e0e5c..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-04-20-22-02.gh-issue-148100.lSmGQi.rst +++ /dev/null @@ -1,3 +0,0 @@ -:term:`Soft deprecate ` :func:`re.match` and -:meth:`re.Pattern.match` in favour of :func:`re.prefixmatch` and -:meth:`re.Pattern.prefixmatch`. Patch by Hugo van Kemenade. diff --git a/Misc/NEWS.d/next/Library/2026-04-07-12-37-53.gh-issue-148207.YhGem4.rst b/Misc/NEWS.d/next/Library/2026-04-07-12-37-53.gh-issue-148207.YhGem4.rst deleted file mode 100644 index dd88be0ad25d11..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-07-12-37-53.gh-issue-148207.YhGem4.rst +++ /dev/null @@ -1,3 +0,0 @@ -:class:`typing.TypeVarTuple` now accepts ``bound``, ``covariant``, -``contravariant``, and ``infer_variance`` parameters, matching the interface -of :class:`typing.TypeVar` and :class:`typing.ParamSpec`. diff --git a/Misc/NEWS.d/next/Library/2026-04-07-14-13-40.gh-issue-148192.34AUYQ.rst b/Misc/NEWS.d/next/Library/2026-04-07-14-13-40.gh-issue-148192.34AUYQ.rst deleted file mode 100644 index 87a568b50c17c3..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-07-14-13-40.gh-issue-148192.34AUYQ.rst +++ /dev/null @@ -1,3 +0,0 @@ -``email.generator.Generator._make_boundary`` could fail to detect a duplicate -boundary string if linesep was not \n. It now correctly detects boundary -strings when linesep is \r\n as well. diff --git a/Misc/NEWS.d/next/Library/2026-04-08-11-44-12.gh-issue-148225.H34yJp.rst b/Misc/NEWS.d/next/Library/2026-04-08-11-44-12.gh-issue-148225.H34yJp.rst deleted file mode 100644 index 36d79a9fce75af..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-08-11-44-12.gh-issue-148225.H34yJp.rst +++ /dev/null @@ -1,3 +0,0 @@ -The :mod:`profiling.sampling` ``replay`` command now rejects non-binary -profile files with a clear error explaining that replay only accepts files -created with ``--binary``. diff --git a/Misc/NEWS.d/next/Library/2026-04-08-14-19-17.gh-issue-148241.fO_QT4.rst b/Misc/NEWS.d/next/Library/2026-04-08-14-19-17.gh-issue-148241.fO_QT4.rst deleted file mode 100644 index bf8d0e4382e6f6..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-08-14-19-17.gh-issue-148241.fO_QT4.rst +++ /dev/null @@ -1,2 +0,0 @@ -:mod:`json`: Fix serialization: no longer call ``str(obj)`` on :class:`str` -subclasses. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2026-04-08-21-39-01.gh-issue-130472.4Bk6qH.rst b/Misc/NEWS.d/next/Library/2026-04-08-21-39-01.gh-issue-130472.4Bk6qH.rst deleted file mode 100644 index 9384843b7c253b..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-08-21-39-01.gh-issue-130472.4Bk6qH.rst +++ /dev/null @@ -1 +0,0 @@ -Integrate fancycompleter with import completions. diff --git a/Misc/NEWS.d/next/Library/2026-04-09-12-42-42.gh-issue-148254.Xt7vKs.rst b/Misc/NEWS.d/next/Library/2026-04-09-12-42-42.gh-issue-148254.Xt7vKs.rst deleted file mode 100644 index 818310c31b9de6..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-09-12-42-42.gh-issue-148254.Xt7vKs.rst +++ /dev/null @@ -1,2 +0,0 @@ -Use singular "sec" instead of "secs" in :mod:`timeit` verbose output for -consistency with other time units. diff --git a/Misc/NEWS.d/next/Library/2026-04-10-20-23-22.gh-issue-148352.lrec3W.rst b/Misc/NEWS.d/next/Library/2026-04-10-20-23-22.gh-issue-148352.lrec3W.rst deleted file mode 100644 index 508b36791ea0e2..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-10-20-23-22.gh-issue-148352.lrec3W.rst +++ /dev/null @@ -1 +0,0 @@ -Add more color to :mod:`calendar`'s CLI output. Patch by Hugo van Kemenade. diff --git a/Misc/NEWS.d/next/Library/2026-04-11-12-32-38.gh-issue-137855.tsVny_.rst b/Misc/NEWS.d/next/Library/2026-04-11-12-32-38.gh-issue-137855.tsVny_.rst deleted file mode 100644 index 0ec08c2d2fd54a..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-11-12-32-38.gh-issue-137855.tsVny_.rst +++ /dev/null @@ -1,2 +0,0 @@ -Improve import time of :mod:`dataclasses` module by lazy importing :mod:`re` -and :mod:`copy` modules. diff --git a/Misc/NEWS.d/next/Library/2026-04-11-17-28-06.gh-issue-127012.h3rLYS.rst b/Misc/NEWS.d/next/Library/2026-04-11-17-28-06.gh-issue-127012.h3rLYS.rst deleted file mode 100644 index eafefb8a6c0cf5..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-11-17-28-06.gh-issue-127012.h3rLYS.rst +++ /dev/null @@ -1,2 +0,0 @@ -``importlib.abc.Traversable.read_text`` now allows/solicits an -``errors`` parameter. diff --git a/Misc/NEWS.d/next/Library/2026-04-12-12-31-45.gh-issue-121190.O6-E5_.rst b/Misc/NEWS.d/next/Library/2026-04-12-12-31-45.gh-issue-121190.O6-E5_.rst deleted file mode 100644 index 1e18015ed9cd43..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-12-12-31-45.gh-issue-121190.O6-E5_.rst +++ /dev/null @@ -1,2 +0,0 @@ -``importlib.resources.files()`` now emits a more meaningful error message -when module spec is None (as found in some ``__main__`` modules). diff --git a/Misc/NEWS.d/next/Library/2026-04-12-16-40-11.gh-issue-148370.0Li2EK.rst b/Misc/NEWS.d/next/Library/2026-04-12-16-40-11.gh-issue-148370.0Li2EK.rst deleted file mode 100644 index 3bb662350796f6..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-12-16-40-11.gh-issue-148370.0Li2EK.rst +++ /dev/null @@ -1,2 +0,0 @@ -:mod:`configparser`: prevent quadratic behavior when a :exc:`~configparser.ParsingError` -is raised after a parser fails to parse multiple lines. Patch by Bénédikt Tran. diff --git a/Misc/NEWS.d/next/Library/2026-04-13-06-22-27.gh-issue-148464.Bj_NZy.rst b/Misc/NEWS.d/next/Library/2026-04-13-06-22-27.gh-issue-148464.Bj_NZy.rst deleted file mode 100644 index 85b99531d033b1..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-13-06-22-27.gh-issue-148464.Bj_NZy.rst +++ /dev/null @@ -1,3 +0,0 @@ -Add missing ``__ctype_le/be__`` attributes for -:class:`~ctypes.c_float_complex` and :class:`~ctypes.c_double_complex`. Patch -by Sergey B Kirpichev. diff --git a/Misc/NEWS.d/next/Library/2026-04-13-15-59-44.gh-issue-148518.RQdvsu.rst b/Misc/NEWS.d/next/Library/2026-04-13-15-59-44.gh-issue-148518.RQdvsu.rst deleted file mode 100644 index 994e4ad7446670..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-13-15-59-44.gh-issue-148518.RQdvsu.rst +++ /dev/null @@ -1,4 +0,0 @@ -If an email containing an address header that ended in an open double quote -was parsed with a non-``compat32`` policy, accessing the ``username`` attribute -of the mailbox accessed through that header object would result in an -``IndexError``. It now correctly returns an empty string as the result. diff --git a/Misc/NEWS.d/next/Library/2026-04-13-21-38-50.gh-issue-144881.3kPqXw.rst b/Misc/NEWS.d/next/Library/2026-04-13-21-38-50.gh-issue-144881.3kPqXw.rst deleted file mode 100644 index 0812dc9efb6d8b..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-13-21-38-50.gh-issue-144881.3kPqXw.rst +++ /dev/null @@ -1,4 +0,0 @@ -:mod:`asyncio` debugging tools (``python -m asyncio ps`` and ``pstree``) -now retry automatically on transient errors that can occur when attaching -to a process under active thread delegation. The number of retries can be -controlled with the ``--retries`` flag. Patch by Bartosz Sławecki. diff --git a/Misc/NEWS.d/next/Library/2026-04-14-09-04-35.gh-issue-148508.-GiXml.rst b/Misc/NEWS.d/next/Library/2026-04-14-09-04-35.gh-issue-148508.-GiXml.rst deleted file mode 100644 index 7995dec397f7b7..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-14-09-04-35.gh-issue-148508.-GiXml.rst +++ /dev/null @@ -1,2 +0,0 @@ -An intermittent timing error when running SSL tests on iOS has been -resolved. diff --git a/Misc/NEWS.d/next/Library/2026-04-15-09-36-03.gh-issue-148599.90i1Ku.rst b/Misc/NEWS.d/next/Library/2026-04-15-09-36-03.gh-issue-148599.90i1Ku.rst deleted file mode 100644 index eb76b3358aa0f0..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-15-09-36-03.gh-issue-148599.90i1Ku.rst +++ /dev/null @@ -1 +0,0 @@ -Update the :mod:`socket` module's WSA error messages to match official documentation. diff --git a/Misc/NEWS.d/next/Library/2026-04-15-11-00-39.gh-issue-146553.VGOsoP.rst b/Misc/NEWS.d/next/Library/2026-04-15-11-00-39.gh-issue-146553.VGOsoP.rst deleted file mode 100644 index 44216318d474a9..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-15-11-00-39.gh-issue-146553.VGOsoP.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix infinite loop in :func:`typing.get_type_hints` when ``__wrapped__`` -forms a cycle. Patch by Shamil Abdulaev. diff --git a/Misc/NEWS.d/next/Library/2026-04-15-16-08-12.gh-issue-148615.Uvx50R.rst b/Misc/NEWS.d/next/Library/2026-04-15-16-08-12.gh-issue-148615.Uvx50R.rst deleted file mode 100644 index f023f0141889a6..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-15-16-08-12.gh-issue-148615.Uvx50R.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :mod:`pdb` to accept standard -- end of options separator. Reported by haampie. Patched by Shrey Naithani. diff --git a/Misc/NEWS.d/next/Library/2026-04-15-20-32-55.gh-issue-148639.-dwsjB.rst b/Misc/NEWS.d/next/Library/2026-04-15-20-32-55.gh-issue-148639.-dwsjB.rst deleted file mode 100644 index d7acdb0983837a..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-15-20-32-55.gh-issue-148639.-dwsjB.rst +++ /dev/null @@ -1,2 +0,0 @@ -Implement :pep:`800`, adding the :deco:`typing.disjoint_base` decorator. -Patch by Jelle Zijlstra. diff --git a/Misc/NEWS.d/next/Library/2026-04-15-21-46-52.gh-issue-148641.-aoFyC.rst b/Misc/NEWS.d/next/Library/2026-04-15-21-46-52.gh-issue-148641.-aoFyC.rst deleted file mode 100644 index 53779676fd100c..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-15-21-46-52.gh-issue-148641.-aoFyC.rst +++ /dev/null @@ -1,3 +0,0 @@ -:pep:`829` (package startup configuration files) implements a new format -``.start`` parallel to ``.pth`` files, to replace ``import`` -lines in the latter. diff --git a/Misc/NEWS.d/next/Library/2026-04-16-13-30-00.gh-issue-148651.ZsTdLk.rst b/Misc/NEWS.d/next/Library/2026-04-16-13-30-00.gh-issue-148651.ZsTdLk.rst deleted file mode 100644 index b69f94a17663dc..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-16-13-30-00.gh-issue-148651.ZsTdLk.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix reference leak in :class:`compression.zstd.ZstdDecompressor` when an -invalid option key is passed. diff --git a/Misc/NEWS.d/next/Library/2026-04-17-13-56-44.gh-issue-148675.f1kG70.rst b/Misc/NEWS.d/next/Library/2026-04-17-13-56-44.gh-issue-148675.f1kG70.rst deleted file mode 100644 index 340168819e891b..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-17-13-56-44.gh-issue-148675.f1kG70.rst +++ /dev/null @@ -1,2 +0,0 @@ -:mod:`array`, :mod:`struct`: Add support for ``Zd`` and ``Zf`` formats for -double complex and float complex. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2026-04-17-16-31-58.gh-issue-148688.vVugFn.rst b/Misc/NEWS.d/next/Library/2026-04-17-16-31-58.gh-issue-148688.vVugFn.rst deleted file mode 100644 index 1e367716e5a0a7..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-17-16-31-58.gh-issue-148688.vVugFn.rst +++ /dev/null @@ -1,2 +0,0 @@ -:mod:`bz2`, :mod:`compression.zstd`, :mod:`lzma`, :mod:`zlib`: Fix a double -free on memory allocation failure. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2026-04-18-17-37-13.gh-issue-148740.sYnFi0.rst b/Misc/NEWS.d/next/Library/2026-04-18-17-37-13.gh-issue-148740.sYnFi0.rst deleted file mode 100644 index 7e49cedda7beb2..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-18-17-37-13.gh-issue-148740.sYnFi0.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix usage for :mod:`uuid` command-line interface to support a custom namespace be -provided for uuid3 and uuid5. diff --git a/Misc/NEWS.d/next/Library/2026-04-18-21-39-15.gh-issue-148735.siw6DG.rst b/Misc/NEWS.d/next/Library/2026-04-18-21-39-15.gh-issue-148735.siw6DG.rst deleted file mode 100644 index db5e94c0ccac50..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-18-21-39-15.gh-issue-148735.siw6DG.rst +++ /dev/null @@ -1,3 +0,0 @@ -:mod:`xml.etree.ElementTree`: Fix a use-after-free in -:meth:`Element.findtext ` when the -element tree is mutated concurrently during the search. diff --git a/Misc/NEWS.d/next/Library/2026-04-20-18-29-21.gh-issue-148801.ROeNqs.rst b/Misc/NEWS.d/next/Library/2026-04-20-18-29-21.gh-issue-148801.ROeNqs.rst deleted file mode 100644 index 6fcd30e8f057b9..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-20-18-29-21.gh-issue-148801.ROeNqs.rst +++ /dev/null @@ -1,2 +0,0 @@ -:mod:`xml.etree.ElementTree`: Fix a crash in :meth:`Element.__deepcopy__ -` on deeply nested trees. diff --git a/Misc/NEWS.d/next/Library/2026-04-22-20-49-49.gh-issue-124397.plMglV.rst b/Misc/NEWS.d/next/Library/2026-04-22-20-49-49.gh-issue-124397.plMglV.rst deleted file mode 100644 index 431448a484b45f..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-22-20-49-49.gh-issue-124397.plMglV.rst +++ /dev/null @@ -1,3 +0,0 @@ -The threading module added tooling to support concurrent iterator access: -:class:`threading.serialize_iterator`, :func:`threading.synchronized_iterator`, -and :func:`threading.concurrent_tee`. diff --git a/Misc/NEWS.d/next/Library/2026-04-23-07-38-04.gh-issue-148680.___ePl.rst b/Misc/NEWS.d/next/Library/2026-04-23-07-38-04.gh-issue-148680.___ePl.rst deleted file mode 100644 index d3790079545a07..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-23-07-38-04.gh-issue-148680.___ePl.rst +++ /dev/null @@ -1 +0,0 @@ -``ForwardRef`` objects that contain internal names to represent known objects now show the ``type_repr`` of the known object rather than the internal ``__annotationlib_name_x__`` name when evaluated as strings. diff --git a/Misc/NEWS.d/next/Library/2026-04-23-21-47-49.gh-issue-148947.W4V2lG.rst b/Misc/NEWS.d/next/Library/2026-04-23-21-47-49.gh-issue-148947.W4V2lG.rst deleted file mode 100644 index f9783266f5cc42..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-23-21-47-49.gh-issue-148947.W4V2lG.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix crash in :deco:`dataclasses.dataclass` with ``slots=True`` that occurred -when a function found within the class had an empty ``__class__`` cell. diff --git a/Misc/NEWS.d/next/Library/2026-04-25-11-56-05.gh-issue-146311.iHWO0v.rst b/Misc/NEWS.d/next/Library/2026-04-25-11-56-05.gh-issue-146311.iHWO0v.rst deleted file mode 100644 index 4f4a8365b6cf5e..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-25-11-56-05.gh-issue-146311.iHWO0v.rst +++ /dev/null @@ -1,7 +0,0 @@ -Add a *canonical* keyword-only parameter to the base16, base32, base64, -base85, ascii85, and Z85 decoders in :mod:`base64` and :mod:`binascii`. -When true, encodings with non-zero padding bits (base16/32/64) or -non-canonical encodings (base85/ascii85) are rejected. Single-character -final groups in :func:`binascii.a2b_ascii85` and :func:`binascii.a2b_base85` -are now always rejected as encoding violations, regardless of *canonical*; -previously they were silently ignored and produced no output bytes. diff --git a/Misc/NEWS.d/next/Library/2026-04-25-12-04-27.gh-issue-148849.Vk6yEW.rst b/Misc/NEWS.d/next/Library/2026-04-25-12-04-27.gh-issue-148849.Vk6yEW.rst deleted file mode 100644 index 9725d63747d451..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-25-12-04-27.gh-issue-148849.Vk6yEW.rst +++ /dev/null @@ -1,4 +0,0 @@ -Deprecate :meth:`http.cookies.Morsel.js_output` and -:meth:`http.cookies.BaseCookie.js_output`, which will be removed in -Python 3.19. Use :meth:`http.cookies.Morsel.output` or -:meth:`http.cookies.BaseCookie.output` instead. diff --git a/Misc/NEWS.d/next/Library/2026-04-25-12-50-46.gh-issue-148981.YMM4Y9.rst b/Misc/NEWS.d/next/Library/2026-04-25-12-50-46.gh-issue-148981.YMM4Y9.rst deleted file mode 100644 index e36c7745f4080a..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-25-12-50-46.gh-issue-148981.YMM4Y9.rst +++ /dev/null @@ -1 +0,0 @@ -Add *color* parameter to :func:`ast.dump`. diff --git a/Misc/NEWS.d/next/Library/2026-04-25-14-11-24.gh-issue-138907.u21Wnh.rst b/Misc/NEWS.d/next/Library/2026-04-25-14-11-24.gh-issue-138907.u21Wnh.rst deleted file mode 100644 index cc996a85f1c167..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-25-14-11-24.gh-issue-138907.u21Wnh.rst +++ /dev/null @@ -1 +0,0 @@ -Support :rfc:`9309` in :mod:`urllib.robotparser`. diff --git a/Misc/NEWS.d/next/Library/2026-04-25-18-09-16.gh-issue-148991.AZ64Et.rst b/Misc/NEWS.d/next/Library/2026-04-25-18-09-16.gh-issue-148991.AZ64Et.rst deleted file mode 100644 index 336ed42e51f1b8..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-25-18-09-16.gh-issue-148991.AZ64Et.rst +++ /dev/null @@ -1 +0,0 @@ -Add colour to :mod:`tokenize` CLI output. Patch by Hugo van Kemenade. diff --git a/Misc/NEWS.d/next/Library/2026-04-26-23-01-50.gh-issue-149026.Akk4Bc.rst b/Misc/NEWS.d/next/Library/2026-04-26-23-01-50.gh-issue-149026.Akk4Bc.rst deleted file mode 100644 index d12a92e9f530da..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-26-23-01-50.gh-issue-149026.Akk4Bc.rst +++ /dev/null @@ -1 +0,0 @@ -Add colour to :mod:`pickletools` CLI output. Patch by Hugo van Kemenade. diff --git a/Misc/NEWS.d/next/Library/2026-04-27-17-12-11.gh-issue-148914.i5C3kW.rst b/Misc/NEWS.d/next/Library/2026-04-27-17-12-11.gh-issue-148914.i5C3kW.rst deleted file mode 100644 index 8348aad0d892c3..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-27-17-12-11.gh-issue-148914.i5C3kW.rst +++ /dev/null @@ -1,6 +0,0 @@ -Fix memoization of in-band :class:`~pickle.PickleBuffer` in the Python -implementation of :mod:`pickle`. Previously, identical -:class:`!PickleBuffer`\ s did not preserve identity, and empty writable -:class:`!PickleBuffer` memoized an empty bytearray object in place of -``b''``, so the following references to ``b''`` were unpickled as an empty -bytearray object. diff --git a/Misc/NEWS.d/next/Library/2026-04-27-20-15-54.gh-issue-149083.BdrpU8.rst b/Misc/NEWS.d/next/Library/2026-04-27-20-15-54.gh-issue-149083.BdrpU8.rst deleted file mode 100644 index 7ad81616802116..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-27-20-15-54.gh-issue-149083.BdrpU8.rst +++ /dev/null @@ -1,2 +0,0 @@ -:data:`dataclasses.MISSING` and :data:`dataclasses.KW_ONLY` are now -instances of :class:`sentinel`. diff --git a/Misc/NEWS.d/next/Library/2026-04-27-22-34-09.gh-issue-148093.9pWceM.rst b/Misc/NEWS.d/next/Library/2026-04-27-22-34-09.gh-issue-148093.9pWceM.rst deleted file mode 100644 index 9418044201f8bd..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-27-22-34-09.gh-issue-148093.9pWceM.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix an out-of-bounds read of one byte in :func:`binascii.a2b_uu`. Raise -:exc:`binascii.Error`, instead of reading past the buffer end. diff --git a/Misc/NEWS.d/next/Library/2026-04-28-16-25-40.gh-issue-148641.aFgym0.rst b/Misc/NEWS.d/next/Library/2026-04-28-16-25-40.gh-issue-148641.aFgym0.rst deleted file mode 100644 index 3820c5f9d0e697..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-28-16-25-40.gh-issue-148641.aFgym0.rst +++ /dev/null @@ -1,2 +0,0 @@ -:func:`pkgutil.resolve_name` gets a new optional, keyword-only argument -called ``strict``. The default is ``False`` for backward compatibility. diff --git a/Misc/NEWS.d/next/Library/2026-04-28-16-30-48.gh-issue-149085.5aNgBD.rst b/Misc/NEWS.d/next/Library/2026-04-28-16-30-48.gh-issue-149085.5aNgBD.rst deleted file mode 100644 index a5b92287bd0ef8..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-28-16-30-48.gh-issue-149085.5aNgBD.rst +++ /dev/null @@ -1,3 +0,0 @@ -Add a *max_threads* keyword argument to :func:`faulthandler.dump_traceback`, -:func:`faulthandler.dump_traceback_later`, :func:`faulthandler.enable`, and -:func:`faulthandler.register`. diff --git a/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst deleted file mode 100644 index e1f308df5a678e..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +++ /dev/null @@ -1,7 +0,0 @@ -:mod:`ssl`: Update :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` for -OpenSSL 4. The classes now remember if they get a :exc:`ssl.SSLEOFError`. In this -case, following :meth:`~ssl.SSLSocket.read`, :meth:`!sendfile`, -:meth:`~ssl.SSLSocket.write`, and :meth:`~ssl.SSLSocket.do_handshake` calls -raise :exc:`ssl.SSLEOFError` without calling the underlying OpenSSL function. -Thanks to that, :class:`ssl.SSLSocket` behaves the same on all OpenSSL versions -on EOF. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2026-04-29-13-08-46.gh-issue-149009.rek3Tw.rst b/Misc/NEWS.d/next/Library/2026-04-29-13-08-46.gh-issue-149009.rek3Tw.rst deleted file mode 100644 index e2f078742760a5..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-29-13-08-46.gh-issue-149009.rek3Tw.rst +++ /dev/null @@ -1,3 +0,0 @@ -Validate that :mod:`profiling.sampling` binary profiles do not contain more -unique (thread, interpreter) pairs than declared in the header. Patch by -Maurycy Pawłowski-Wieroński. diff --git a/Misc/NEWS.d/next/Library/2026-04-29-14-33-42.gh-issue-149148.EaiYvk.rst b/Misc/NEWS.d/next/Library/2026-04-29-14-33-42.gh-issue-149148.EaiYvk.rst deleted file mode 100644 index 06186773474fb9..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-29-14-33-42.gh-issue-149148.EaiYvk.rst +++ /dev/null @@ -1,2 +0,0 @@ -:mod:`ensurepip`: Upgrade bundled pip to 26.1. This version fixes -the :cve:`2026-3219` vulnerability. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2026-04-29-16-11-27.gh-issue-149117.yEeTYd.rst b/Misc/NEWS.d/next/Library/2026-04-29-16-11-27.gh-issue-149117.yEeTYd.rst deleted file mode 100644 index 41223e90ed0b0e..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-29-16-11-27.gh-issue-149117.yEeTYd.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :func:`runpy.run_module` and :func:`runpy.run_path` to set the -:attr:`~ImportError.name` attribute on the :exc:`ImportError` they -raise. diff --git a/Misc/NEWS.d/next/Library/2026-04-30-14-21-26.gh-issue-149173.KJqZm0.rst b/Misc/NEWS.d/next/Library/2026-04-30-14-21-26.gh-issue-149173.KJqZm0.rst deleted file mode 100644 index 019ab76b863577..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-30-14-21-26.gh-issue-149173.KJqZm0.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix inverted :envvar:`PYTHON_BASIC_REPL` environment check in -``pdb._pyrepl_available``. diff --git a/Misc/NEWS.d/next/Library/2026-04-30-18-56-23.gh-issue-149189.mszW10.rst b/Misc/NEWS.d/next/Library/2026-04-30-18-56-23.gh-issue-149189.mszW10.rst deleted file mode 100644 index 1fd7f76bb25c09..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-30-18-56-23.gh-issue-149189.mszW10.rst +++ /dev/null @@ -1,7 +0,0 @@ -:mod:`pprint` now uses modern defaults: ``indent=4`` and ``width=88``, -and the default ``compact=False`` output is now formatted similar to -pretty-printed :func:`json.dumps`, with opening parentheses and brackets -followed by a newline and the contents indented by one level. The -*expand* parameter, added in 3.15.0a8, has been removed; ``compact=False`` -(the default) now produces the former ``expand=True`` layout. -Patch by Hugo van Kemenade. diff --git a/Misc/NEWS.d/next/Library/2026-05-01-10-20-27.gh-issue-149214.btP546.rst b/Misc/NEWS.d/next/Library/2026-05-01-10-20-27.gh-issue-149214.btP546.rst deleted file mode 100644 index cbb05620626d0f..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-01-10-20-27.gh-issue-149214.btP546.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix :mod:`!_remote_debugging` misreading non-ASCII Unicode strings (Latin-1, -BMP and non-BMP) from a remote process. Filenames and function names that -contain non-ASCII characters are now reported correctly in stack traces, the -sampling profiler, and :mod:`asyncio` task introspection. diff --git a/Misc/NEWS.d/next/Library/2026-05-01-11-39-37.gh-issue-143231.0cOHET.rst b/Misc/NEWS.d/next/Library/2026-05-01-11-39-37.gh-issue-143231.0cOHET.rst deleted file mode 100644 index 05c9fa79904154..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-01-11-39-37.gh-issue-143231.0cOHET.rst +++ /dev/null @@ -1,4 +0,0 @@ -:func:`unittest.TestCase.assertWarns` and -:func:`unittest.TestCase.assertWarnsRegex` no longer swallow warnings that -do not match the specified category or regex. -Nested context managers are now supported. diff --git a/Misc/NEWS.d/next/Library/2026-05-01-16-45-31.gh-issue-149231.x2nBEE.rst b/Misc/NEWS.d/next/Library/2026-05-01-16-45-31.gh-issue-149231.x2nBEE.rst deleted file mode 100644 index c265b54db8bed4..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-01-16-45-31.gh-issue-149231.x2nBEE.rst +++ /dev/null @@ -1 +0,0 @@ -In :mod:`tomllib`, the number of parts in TOML keys is now limited. diff --git a/Misc/NEWS.d/next/Library/2026-05-02-01-09-29.gh-issue-149221.__KOks.rst b/Misc/NEWS.d/next/Library/2026-05-02-01-09-29.gh-issue-149221.__KOks.rst deleted file mode 100644 index fab2b0f6a23489..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-02-01-09-29.gh-issue-149221.__KOks.rst +++ /dev/null @@ -1 +0,0 @@ -Catch rare math domain error for :func:`random.binomialvariate`. diff --git a/Misc/NEWS.d/next/Library/2026-05-02-12-30-35.gh-issue-148675.cu2YFT.rst b/Misc/NEWS.d/next/Library/2026-05-02-12-30-35.gh-issue-148675.cu2YFT.rst deleted file mode 100644 index 0f4a737b3ce560..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-02-12-30-35.gh-issue-148675.cu2YFT.rst +++ /dev/null @@ -1,3 +0,0 @@ -The :data:`array.typecodes` type changed from :class:`str` to :class:`tuple` -to support type codes longer than 1 character (``Zf`` and ``Zd``). Patch by -Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2026-05-02-15-58-08.gh-issue-148675.b3ZNlj.rst b/Misc/NEWS.d/next/Library/2026-05-02-15-58-08.gh-issue-148675.b3ZNlj.rst deleted file mode 100644 index 93fd2c44cd6448..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-02-15-58-08.gh-issue-148675.b3ZNlj.rst +++ /dev/null @@ -1,4 +0,0 @@ -:mod:`ctypes`: Change the :py:attr:`~ctypes._SimpleCData._type_` of -:class:`~ctypes.c_float_complex`, :class:`~ctypes.c_double_complex` and -:class:`~ctypes.c_longdouble_complex` from ``F``, ``D`` and ``G`` to ``Zf``, -``Zd`` and ``Zg`` for compatibility with numpy. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2026-05-02-18-23-50.gh-issue-143231.oBbQb5.rst b/Misc/NEWS.d/next/Library/2026-05-02-18-23-50.gh-issue-143231.oBbQb5.rst deleted file mode 100644 index e4769866c2045d..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-02-18-23-50.gh-issue-143231.oBbQb5.rst +++ /dev/null @@ -1 +0,0 @@ -A *module* attribute has been added to :class:`!warnings.WarningMessage`. diff --git a/Misc/NEWS.d/next/Library/2026-05-02-19-09-04.gh-issue-149296.DuKF0j.rst b/Misc/NEWS.d/next/Library/2026-05-02-19-09-04.gh-issue-149296.DuKF0j.rst deleted file mode 100644 index f238693720696b..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-02-19-09-04.gh-issue-149296.DuKF0j.rst +++ /dev/null @@ -1,4 +0,0 @@ -Add a ``dump`` subcommand to :mod:`profiling.sampling` that prints a single -traceback-style snapshot of a running process's Python stack, including -per-thread status, source line highlighting, optional bytecode opcode names, -and async-aware task reconstruction. Patch by Pablo Galindo. diff --git a/Misc/NEWS.d/next/Library/2026-05-03-01-49-57.gh-issue-145378.rtyAWM.rst b/Misc/NEWS.d/next/Library/2026-05-03-01-49-57.gh-issue-145378.rtyAWM.rst deleted file mode 100644 index 416ad4b1e2072d..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-03-01-49-57.gh-issue-145378.rtyAWM.rst +++ /dev/null @@ -1 +0,0 @@ -Generate consistent colors for :mod:`pdb` commands in :mod:`pdb` REPL. diff --git a/Misc/NEWS.d/next/Library/2026-05-03-12-00-00.gh-issue-149321.fUaxrz.rst b/Misc/NEWS.d/next/Library/2026-05-03-12-00-00.gh-issue-149321.fUaxrz.rst deleted file mode 100644 index 8fd4bf60cf32a7..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-03-12-00-00.gh-issue-149321.fUaxrz.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix import cycles exposed by running standard library modules with -``-X lazy_imports=none``. diff --git a/Misc/NEWS.d/next/Library/2026-05-03-17-32-24.gh-issue-144384.q-8jSr.rst b/Misc/NEWS.d/next/Library/2026-05-03-17-32-24.gh-issue-144384.q-8jSr.rst deleted file mode 100644 index aad4b716e05372..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-03-17-32-24.gh-issue-144384.q-8jSr.rst +++ /dev/null @@ -1 +0,0 @@ -Lazily import :mod:`!_colorize`. Patch by Hugo van Kemenade. diff --git a/Misc/NEWS.d/next/Library/2026-05-03-23-29-34.gh-issue-142389.SVYiSv.rst b/Misc/NEWS.d/next/Library/2026-05-03-23-29-34.gh-issue-142389.SVYiSv.rst deleted file mode 100644 index 6f3f53187dead7..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-03-23-29-34.gh-issue-142389.SVYiSv.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add backticks for colour to regrtest and pdb's help description. Patch by -Hugo van Kemenade. diff --git a/Misc/NEWS.d/next/Library/2026-05-03-23-47-59.gh-issue-146609.V9jqYf.rst b/Misc/NEWS.d/next/Library/2026-05-03-23-47-59.gh-issue-146609.V9jqYf.rst deleted file mode 100644 index 51fde3b42494ec..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-03-23-47-59.gh-issue-146609.V9jqYf.rst +++ /dev/null @@ -1 +0,0 @@ -Use :mod:`argparse` for colour help :mod:`timeit` CLI. Patch by Hugo van Kemenade. diff --git a/Misc/NEWS.d/next/Library/2026-05-04-00-51-32.gh-issue-149010.BCp_8k.rst b/Misc/NEWS.d/next/Library/2026-05-04-00-51-32.gh-issue-149010.BCp_8k.rst deleted file mode 100644 index 31bf235566744c..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-04-00-51-32.gh-issue-149010.BCp_8k.rst +++ /dev/null @@ -1,6 +0,0 @@ -The ``inspect`` module CLI now reports as much information as it has -available for non-source modules when ``--details`` is specified, and -provides an error message rather than a traceback when ``--details`` is -omitted. It also reports improved information when the given target location -is not the target's defining location and when the given target is a data -value rather than a class or function definition. diff --git a/Misc/NEWS.d/next/Library/2026-05-04-04-06-36.gh-issue-149342.d3CK-y.rst b/Misc/NEWS.d/next/Library/2026-05-04-04-06-36.gh-issue-149342.d3CK-y.rst deleted file mode 100644 index 660a28ba52e679..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-04-04-06-36.gh-issue-149342.d3CK-y.rst +++ /dev/null @@ -1,6 +0,0 @@ -Fix :mod:`!_remote_debugging` binary writing so that sampling a thread -whose Python frame stack is empty (for example while it is in a C call or -mid-syscall) no longer raises ``RuntimeError("Invalid stack encoding -type")``, and so that ``BinaryWriter.total_samples`` after :meth:`!finalize` -or context-manager exit includes samples flushed from the RLE buffer. -Patch by Maurycy Pawłowski-Wieroński. diff --git a/Misc/NEWS.d/next/Library/2026-05-04-16-26-33.gh-issue-148675.xZwXa6.rst b/Misc/NEWS.d/next/Library/2026-05-04-16-26-33.gh-issue-148675.xZwXa6.rst deleted file mode 100644 index 6ba2e7aabf9ec8..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-04-16-26-33.gh-issue-148675.xZwXa6.rst +++ /dev/null @@ -1,2 +0,0 @@ -Remove ``F`` and ``D`` formats from :mod:`array` and :class:`memoryview`. -Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2026-05-04-18-01-35.gh-issue-142389.4Faqpq.rst b/Misc/NEWS.d/next/Library/2026-05-04-18-01-35.gh-issue-142389.4Faqpq.rst deleted file mode 100644 index 725f2debe2c615..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-04-18-01-35.gh-issue-142389.4Faqpq.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add backtick markup support in :mod:`argparse` option help text to highlight -inline code when color output is enabled. Patch by Hugo van Kemenade. diff --git a/Misc/NEWS.d/next/Library/2026-05-04-19-28-48.gh-issue-149377.WNlc8Y.rst b/Misc/NEWS.d/next/Library/2026-05-04-19-28-48.gh-issue-149377.WNlc8Y.rst deleted file mode 100644 index 7bab1c049e67ff..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-04-19-28-48.gh-issue-149377.WNlc8Y.rst +++ /dev/null @@ -1 +0,0 @@ -Update bundled pip to 26.1.1 diff --git a/Misc/NEWS.d/next/Library/2026-05-05-00-30-04.gh-issue-142389.4daLzc.rst b/Misc/NEWS.d/next/Library/2026-05-05-00-30-04.gh-issue-142389.4daLzc.rst deleted file mode 100644 index 4079854ef29349..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-05-00-30-04.gh-issue-142389.4daLzc.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add backticks to stdlib argparse help to display in colour. Patch by Hugo -van Kemenade. diff --git a/Misc/NEWS.d/next/Library/2026-05-05-13-12-58.gh-issue-139489.a8qqIM.rst b/Misc/NEWS.d/next/Library/2026-05-05-13-12-58.gh-issue-139489.a8qqIM.rst deleted file mode 100644 index c76879d3025bb6..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-05-13-12-58.gh-issue-139489.a8qqIM.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add the :func:`xml.is_valid_text` function, which allows to check whether -a string can be used in the XML document. diff --git a/Misc/NEWS.d/next/Library/2026-05-06-05-56-59.gh-issue-141560.wlSQaW.rst b/Misc/NEWS.d/next/Library/2026-05-06-05-56-59.gh-issue-141560.wlSQaW.rst deleted file mode 100644 index 7e5432be8b6bde..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-06-05-56-59.gh-issue-141560.wlSQaW.rst +++ /dev/null @@ -1 +0,0 @@ -Add an *annotation_format* parameter to :func:`inspect.getfullargspec`. diff --git a/Misc/NEWS.d/next/Library/2026-05-06-14-26-37.gh-issue-148823.ySmOE4.rst b/Misc/NEWS.d/next/Library/2026-05-06-14-26-37.gh-issue-148823.ySmOE4.rst deleted file mode 100644 index e362fab604b704..00000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-06-14-26-37.gh-issue-148823.ySmOE4.rst +++ /dev/null @@ -1 +0,0 @@ -Defer the import of ``_colorize`` in ``argparse`` until needed for coloring output. diff --git a/Misc/NEWS.d/next/Security/2026-03-20-09-29-42.gh-issue-146211.PQVbs7.rst b/Misc/NEWS.d/next/Security/2026-03-20-09-29-42.gh-issue-146211.PQVbs7.rst deleted file mode 100644 index 4993633b8ebebb..00000000000000 --- a/Misc/NEWS.d/next/Security/2026-03-20-09-29-42.gh-issue-146211.PQVbs7.rst +++ /dev/null @@ -1,2 +0,0 @@ -Reject CR/LF characters in tunnel request headers for the -HTTPConnection.set_tunnel() method. diff --git a/Misc/NEWS.d/next/Security/2026-03-25-00-51-03.gh-issue-146333.LqdL__bn.rst b/Misc/NEWS.d/next/Security/2026-03-25-00-51-03.gh-issue-146333.LqdL__bn.rst deleted file mode 100644 index 96d86ecc0a0fb3..00000000000000 --- a/Misc/NEWS.d/next/Security/2026-03-25-00-51-03.gh-issue-146333.LqdL__bn.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix quadratic backtracking in :class:`configparser.RawConfigParser` option -parsing regexes (``OPTCRE`` and ``OPTCRE_NV``). A crafted configuration line -with many whitespace characters could cause excessive CPU usage. diff --git a/Misc/NEWS.d/next/Security/2026-03-26-01-42-15.gh-issue-137586.j3SkOm.rst b/Misc/NEWS.d/next/Security/2026-03-26-01-42-15.gh-issue-137586.j3SkOm.rst deleted file mode 100644 index ce9387adc069a8..00000000000000 --- a/Misc/NEWS.d/next/Security/2026-03-26-01-42-15.gh-issue-137586.j3SkOm.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix a PATH-injection vulnerability in :mod:`webbrowser` on macOS where -``osascript`` was invoked without an absolute path. The new :class:`!MacOS` -class uses ``/usr/bin/open`` directly, eliminating the dependency on -``osascript`` entirely. diff --git a/Misc/NEWS.d/next/Security/2026-03-29-12-51-33.gh-issue-146581.4vZfB0.rst b/Misc/NEWS.d/next/Security/2026-03-29-12-51-33.gh-issue-146581.4vZfB0.rst deleted file mode 100644 index 98e65549d79016..00000000000000 --- a/Misc/NEWS.d/next/Security/2026-03-29-12-51-33.gh-issue-146581.4vZfB0.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fix vulnerability in :func:`shutil.unpack_archive` for ZIP files on Windows -which allowed to write files outside of the destination tree if the patch in -the archive contains a Windows drive prefix. Now such invalid paths will be -skipped. Files containing ".." in the name (like "foo..bar") are no longer -skipped. diff --git a/Misc/NEWS.d/next/Security/2026-03-31-09-15-51.gh-issue-148169.EZJzz2.rst b/Misc/NEWS.d/next/Security/2026-03-31-09-15-51.gh-issue-148169.EZJzz2.rst deleted file mode 100644 index 45cdeebe1b6d64..00000000000000 --- a/Misc/NEWS.d/next/Security/2026-03-31-09-15-51.gh-issue-148169.EZJzz2.rst +++ /dev/null @@ -1,2 +0,0 @@ -A bypass in :mod:`webbrowser` allowed URLs prefixed with ``%action`` to pass -the dash-prefix safety check. diff --git a/Misc/NEWS.d/next/Security/2026-04-06-13-55-00.gh-issue-148178.Rs7kLm.rst b/Misc/NEWS.d/next/Security/2026-04-06-13-55-00.gh-issue-148178.Rs7kLm.rst deleted file mode 100644 index ed138a54a859de..00000000000000 --- a/Misc/NEWS.d/next/Security/2026-04-06-13-55-00.gh-issue-148178.Rs7kLm.rst +++ /dev/null @@ -1,2 +0,0 @@ -Hardened :mod:`!_remote_debugging` by validating remote debug offset tables -before using them to size memory reads or interpret remote layouts. diff --git a/Misc/NEWS.d/next/Security/2026-04-08-14-25-47.gh-issue-148252.IEp9Rt.rst b/Misc/NEWS.d/next/Security/2026-04-08-14-25-47.gh-issue-148252.IEp9Rt.rst deleted file mode 100644 index adc2c9287149db..00000000000000 --- a/Misc/NEWS.d/next/Security/2026-04-08-14-25-47.gh-issue-148252.IEp9Rt.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fixed stack depth calculation in :mod:`!_remote_debugging` when decoding -certain ``.pyb`` inputs on 32-bit builds. Issue originally identified and -diagnosed by Tristan Madani (@TristanInSec on GitHub). diff --git a/Misc/NEWS.d/next/Security/2026-04-10-16-28-21.gh-issue-148395.kfzm0G.rst b/Misc/NEWS.d/next/Security/2026-04-10-16-28-21.gh-issue-148395.kfzm0G.rst deleted file mode 100644 index 9502189ab199c1..00000000000000 --- a/Misc/NEWS.d/next/Security/2026-04-10-16-28-21.gh-issue-148395.kfzm0G.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fix a dangling input pointer in :class:`lzma.LZMADecompressor`, -:class:`bz2.BZ2Decompressor`, and internal :class:`!zlib._ZlibDecompressor` -when memory allocation fails with :exc:`MemoryError`, which could let a -subsequent :meth:`!decompress` call read or write through a stale pointer to -the already-released caller buffer. diff --git a/Misc/NEWS.d/next/Security/2026-04-20-15-31-37.gh-issue-148808._Z8JL0.rst b/Misc/NEWS.d/next/Security/2026-04-20-15-31-37.gh-issue-148808._Z8JL0.rst deleted file mode 100644 index 0b5cf85fedfba1..00000000000000 --- a/Misc/NEWS.d/next/Security/2026-04-20-15-31-37.gh-issue-148808._Z8JL0.rst +++ /dev/null @@ -1,3 +0,0 @@ -Added buffer boundary check when using ``nbytes`` parameter with -:meth:`!asyncio.AbstractEventLoop.sock_recvfrom_into`. Only -relevant for Windows and the :class:`asyncio.ProactorEventLoop`. diff --git a/Misc/NEWS.d/next/Security/2026-04-21-13-46-30.gh-issue-90309.srvj9q.rst b/Misc/NEWS.d/next/Security/2026-04-21-13-46-30.gh-issue-90309.srvj9q.rst deleted file mode 100644 index d7d376737e4ad1..00000000000000 --- a/Misc/NEWS.d/next/Security/2026-04-21-13-46-30.gh-issue-90309.srvj9q.rst +++ /dev/null @@ -1,3 +0,0 @@ -Base64-encode values when embedding cookies to JavaScript using the -:meth:`http.cookies.BaseCookie.js_output` method to avoid injection -and escaping. diff --git a/Misc/NEWS.d/next/Security/2026-04-24-23-15-42.gh-issue-148252.8BLmzd.rst b/Misc/NEWS.d/next/Security/2026-04-24-23-15-42.gh-issue-148252.8BLmzd.rst deleted file mode 100644 index 531ea2348ffdef..00000000000000 --- a/Misc/NEWS.d/next/Security/2026-04-24-23-15-42.gh-issue-148252.8BLmzd.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fixed string table and sample record bounds checks in :mod:`!_remote_debugging` -when decoding certain ``.pyb`` inputs on 32-bit builds. Patch by Maurycy -Pawłowski-Wieroński. diff --git a/Misc/NEWS.d/next/Security/2026-04-26-17-49-58.gh-issue-149017.EiVFPo.rst b/Misc/NEWS.d/next/Security/2026-04-26-17-49-58.gh-issue-149017.EiVFPo.rst deleted file mode 100644 index 6aa7efb68a1981..00000000000000 --- a/Misc/NEWS.d/next/Security/2026-04-26-17-49-58.gh-issue-149017.EiVFPo.rst +++ /dev/null @@ -1 +0,0 @@ -Update bundled `libexpat `_ to version 2.8.0. diff --git a/Misc/NEWS.d/next/Security/2026-05-02-15-38-03.gh-issue-149254.0HOL0j.rst b/Misc/NEWS.d/next/Security/2026-05-02-15-38-03.gh-issue-149254.0HOL0j.rst deleted file mode 100644 index f3cf924db25b4c..00000000000000 --- a/Misc/NEWS.d/next/Security/2026-05-02-15-38-03.gh-issue-149254.0HOL0j.rst +++ /dev/null @@ -1 +0,0 @@ -Update Android and iOS installer to use OpenSSL 3.5.6. diff --git a/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst deleted file mode 100644 index a7d4c0cc80a146..00000000000000 --- a/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +++ /dev/null @@ -1 +0,0 @@ -Add OpenSSL 4.0.0 support to test configurations. diff --git a/Misc/NEWS.d/next/Tests/2026-05-05-18-49-44.gh-issue-149425.QnQL8j.rst b/Misc/NEWS.d/next/Tests/2026-05-05-18-49-44.gh-issue-149425.QnQL8j.rst deleted file mode 100644 index 680b1fd94488b9..00000000000000 --- a/Misc/NEWS.d/next/Tests/2026-05-05-18-49-44.gh-issue-149425.QnQL8j.rst +++ /dev/null @@ -1 +0,0 @@ -Increase time delta in ``test.test_zipfile.test_core.OtherTests.test_write_without_source_date_epoch`` diff --git a/Misc/NEWS.d/next/Windows/2026-03-27-22-06-10.gh-issue-146458.fYj0UQ.rst b/Misc/NEWS.d/next/Windows/2026-03-27-22-06-10.gh-issue-146458.fYj0UQ.rst deleted file mode 100644 index 178c04c657ecbb..00000000000000 --- a/Misc/NEWS.d/next/Windows/2026-03-27-22-06-10.gh-issue-146458.fYj0UQ.rst +++ /dev/null @@ -1 +0,0 @@ -Fix incorrect REPL height and width tracking on console window resize on Windows. diff --git a/Misc/NEWS.d/next/Windows/2026-05-01-12-03-39.gh-issue-148690.TMV8dU.rst b/Misc/NEWS.d/next/Windows/2026-05-01-12-03-39.gh-issue-148690.TMV8dU.rst deleted file mode 100644 index 1fa30f10e0e3dc..00000000000000 --- a/Misc/NEWS.d/next/Windows/2026-05-01-12-03-39.gh-issue-148690.TMV8dU.rst +++ /dev/null @@ -1,3 +0,0 @@ -Non-freethreaded builds on Windows now support extensions linked to -``python3t.dll``, and will include a copy of that library in normal installs -that references the non-freethreaded runtime. diff --git a/Misc/NEWS.d/next/Windows/2026-05-03-13-55-51.gh-issue-149254.ENtMYD.rst b/Misc/NEWS.d/next/Windows/2026-05-03-13-55-51.gh-issue-149254.ENtMYD.rst deleted file mode 100644 index 946654700a10c5..00000000000000 --- a/Misc/NEWS.d/next/Windows/2026-05-03-13-55-51.gh-issue-149254.ENtMYD.rst +++ /dev/null @@ -1 +0,0 @@ -Updated bundled version of OpenSSL to 3.5.6. diff --git a/Misc/NEWS.d/next/macOS/2026-05-01-20-12-33.gh-issue-149254.kXdWpS.rst b/Misc/NEWS.d/next/macOS/2026-05-01-20-12-33.gh-issue-149254.kXdWpS.rst deleted file mode 100644 index 278327c91f1baa..00000000000000 --- a/Misc/NEWS.d/next/macOS/2026-05-01-20-12-33.gh-issue-149254.kXdWpS.rst +++ /dev/null @@ -1 +0,0 @@ -Update macOS installer to use OpenSSL 3.5.6. diff --git a/Misc/NEWS.d/next/macOS/2026-05-06-18-23-36.gh-issue-142295.O9RmZH.rst b/Misc/NEWS.d/next/macOS/2026-05-06-18-23-36.gh-issue-142295.O9RmZH.rst deleted file mode 100644 index b3c43989cd10c3..00000000000000 --- a/Misc/NEWS.d/next/macOS/2026-05-06-18-23-36.gh-issue-142295.O9RmZH.rst +++ /dev/null @@ -1,3 +0,0 @@ -For Python macOS framework builds, update Info.plist files to be more -compliant with current Apple guidelines. Original patch contributed by -Martinus Verburg. diff --git a/Python/gc_free_threading.c b/Python/gc_free_threading.c index b4fcd365592aa5..4e36189580bbf8 100644 --- a/Python/gc_free_threading.c +++ b/Python/gc_free_threading.c @@ -17,30 +17,6 @@ #include "pydtrace.h" -// Platform-specific includes for get_process_mem_usage(). -#ifdef _WIN32 - #include - #include // For GetProcessMemoryInfo -#elif defined(__linux__) - #include // For sysconf, getpid -#elif defined(__APPLE__) - #include - #include // Required for TASK_VM_INFO - #include // For sysconf, getpid -#elif defined(__FreeBSD__) - #include - #include - #include // Requires sys/user.h for kinfo_proc definition - #include - #include // For sysconf, getpid - #include // For O_RDONLY - #include // For _POSIX2_LINE_MAX -#elif defined(__OpenBSD__) - #include - #include - #include // For kinfo_proc - #include // For sysconf, getpid -#endif // enable the "mark alive" pass of GC #define GC_ENABLE_MARK_ALIVE 1 @@ -2016,185 +1992,6 @@ cleanup_worklist(struct worklist *worklist) } } -// Return the memory usage (typically RSS + swap) of the process, in units of -// KB. Returns -1 if this operation is not supported or on failure. -static Py_ssize_t -get_process_mem_usage(void) -{ -#ifdef _WIN32 - // Windows implementation using GetProcessMemoryInfo - // Returns WorkingSetSize + PagefileUsage - PROCESS_MEMORY_COUNTERS pmc; - HANDLE hProcess = GetCurrentProcess(); - if (NULL == hProcess) { - // Should not happen for the current process - return -1; - } - - // GetProcessMemoryInfo returns non-zero on success - if (GetProcessMemoryInfo(hProcess, &pmc, sizeof(pmc))) { - // Values are in bytes, convert to KB. - return (Py_ssize_t)((pmc.WorkingSetSize + pmc.PagefileUsage) / 1024); - } - else { - return -1; - } - -#elif __linux__ - FILE* fp = fopen("/proc/self/status", "r"); - if (fp == NULL) { - return -1; - } - - char line_buffer[256]; - long long rss_kb = -1; - long long swap_kb = -1; - - while (fgets(line_buffer, sizeof(line_buffer), fp) != NULL) { - if (rss_kb == -1 && strncmp(line_buffer, "VmRSS:", 6) == 0) { - sscanf(line_buffer + 6, "%lld", &rss_kb); - } - else if (swap_kb == -1 && strncmp(line_buffer, "VmSwap:", 7) == 0) { - sscanf(line_buffer + 7, "%lld", &swap_kb); - } - if (rss_kb != -1 && swap_kb != -1) { - break; // Found both - } - } - fclose(fp); - - if (rss_kb != -1 && swap_kb != -1) { - return (Py_ssize_t)(rss_kb + swap_kb); - } - return -1; - -#elif defined(__APPLE__) - // --- MacOS (Darwin) --- - // Returns phys_footprint (RAM + compressed memory) - task_vm_info_data_t vm_info; - mach_msg_type_number_t count = TASK_VM_INFO_COUNT; - kern_return_t kerr; - - kerr = task_info(mach_task_self(), TASK_VM_INFO, (task_info_t)&vm_info, &count); - if (kerr != KERN_SUCCESS) { - return -1; - } - // phys_footprint is in bytes. Convert to KB. - return (Py_ssize_t)(vm_info.phys_footprint / 1024); - -#elif defined(__FreeBSD__) - // NOTE: Returns RSS only. Per-process swap usage isn't readily available - long page_size_kb = sysconf(_SC_PAGESIZE) / 1024; - if (page_size_kb <= 0) { - return -1; - } - - // Using /dev/null for vmcore avoids needing dump file. - // NULL for kernel file uses running kernel. - char errbuf[_POSIX2_LINE_MAX]; // For kvm error messages - kvm_t *kd = kvm_openfiles(NULL, "/dev/null", NULL, O_RDONLY, errbuf); - if (kd == NULL) { - return -1; - } - - // KERN_PROC_PID filters for the specific process ID - // n_procs will contain the number of processes returned (should be 1 or 0) - pid_t pid = getpid(); - int n_procs; - struct kinfo_proc *kp = kvm_getprocs(kd, KERN_PROC_PID, pid, &n_procs); - if (kp == NULL) { - kvm_close(kd); - return -1; - } - - Py_ssize_t rss_kb = -1; - if (n_procs > 0) { - // kp[0] contains the info for our process - // ki_rssize is in pages. Convert to KB. - rss_kb = (Py_ssize_t)kp->ki_rssize * page_size_kb; - } - else { - // Process with PID not found, shouldn't happen for self. - rss_kb = -1; - } - - kvm_close(kd); - return rss_kb; - -#elif defined(__OpenBSD__) - // NOTE: Returns RSS only. Per-process swap usage isn't readily available - long page_size_kb = sysconf(_SC_PAGESIZE) / 1024; - if (page_size_kb <= 0) { - return -1; - } - - struct kinfo_proc kp; - pid_t pid = getpid(); - int mib[6]; - size_t len = sizeof(kp); - - mib[0] = CTL_KERN; - mib[1] = KERN_PROC; - mib[2] = KERN_PROC_PID; - mib[3] = pid; - mib[4] = sizeof(struct kinfo_proc); // size of the structure we want - mib[5] = 1; // want 1 structure back - if (sysctl(mib, 6, &kp, &len, NULL, 0) == -1) { - return -1; - } - - if (len > 0) { - // p_vm_rssize is in pages on OpenBSD. Convert to KB. - return (Py_ssize_t)kp.p_vm_rssize * page_size_kb; - } - else { - // Process info not returned - return -1; - } -#else - // Unsupported platform - return -1; -#endif -} - -static bool -gc_should_collect_mem_usage(GCState *gcstate) -{ - Py_ssize_t mem = get_process_mem_usage(); - if (mem < 0) { - // Reading process memory usage is not support or failed. - return true; - } - int threshold = gcstate->young.threshold; - Py_ssize_t deferred = _Py_atomic_load_ssize_relaxed(&gcstate->deferred_count); - if (deferred > threshold * 40) { - // Too many new container objects since last GC, even though memory use - // might not have increased much. This is intended to avoid resource - // exhaustion if some objects consume resources but don't result in a - // memory usage increase. We use 40x as the factor here because older - // versions of Python would do full collections after roughly every - // 70,000 new container objects. - return true; - } - Py_ssize_t last_mem = _Py_atomic_load_ssize_relaxed(&gcstate->last_mem); - Py_ssize_t mem_threshold = Py_MAX(last_mem / 10, 128); - if ((mem - last_mem) > mem_threshold) { - // The process memory usage has increased too much, do a collection. - return true; - } - else { - // The memory usage has not increased enough, defer the collection and - // clear the young object count so we don't check memory usage again - // on the next call to gc_should_collect(). - PyMutex_Lock(&gcstate->mutex); - int young_count = _Py_atomic_exchange_int(&gcstate->young.count, 0); - _Py_atomic_store_ssize_relaxed(&gcstate->deferred_count, - gcstate->deferred_count + young_count); - PyMutex_Unlock(&gcstate->mutex); - return false; - } -} - static bool gc_should_collect(GCState *gcstate) { @@ -2214,7 +2011,7 @@ gc_should_collect(GCState *gcstate) // objects. return false; } - return gc_should_collect_mem_usage(gcstate); + return true; } static void @@ -2275,7 +2072,6 @@ gc_collect_internal(PyInterpreterState *interp, struct collection_state *state, } state->gcstate->young.count = 0; - state->gcstate->deferred_count = 0; for (int i = 1; i <= generation; ++i) { state->gcstate->old[i-1].count = 0; } @@ -2379,11 +2175,6 @@ gc_collect_internal(PyInterpreterState *interp, struct collection_state *state, // to be freed. delete_garbage(state); - // Store the current memory usage, can be smaller now if breaking cycles - // freed some memory. - Py_ssize_t last_mem = get_process_mem_usage(); - _Py_atomic_store_ssize_relaxed(&state->gcstate->last_mem, last_mem); - // Append objects with legacy finalizers to the "gc.garbage" list. handle_legacy_finalizers(state); } diff --git a/README.rst b/README.rst index 710882bc84b33d..48f86cdb86ed1d 100644 --- a/README.rst +++ b/README.rst @@ -1,4 +1,4 @@ -This is Python version 3.15.0 alpha 8 +This is Python version 3.16.0 alpha 0 ===================================== .. image:: https://github.com/python/cpython/actions/workflows/build.yml/badge.svg?branch=main&event=push @@ -136,7 +136,7 @@ What's New ---------- We have a comprehensive overview of the changes in the `What's new in Python -3.15 `_ document. For a more +3.16 `_ document. For a more detailed change log, read `Misc/NEWS `_, but a full accounting of changes can only be gleaned from the `commit history @@ -149,7 +149,7 @@ entitled "Installing multiple versions". Documentation ------------- -`Documentation for Python 3.15 `_ is online, +`Documentation for Python 3.16 `_ is online, updated daily. It can also be downloaded in many formats for faster access. The documentation @@ -208,7 +208,7 @@ and ``make altinstall`` in the others. Release Schedule ---------------- -See `PEP 790 `__ for Python 3.15 release details. +See `PEP 826 `__ for Python 3.16 release details. Copyright and License Information diff --git a/configure.ac b/configure.ac index ac3269ab765c0d..9863afe5bba97c 100644 --- a/configure.ac +++ b/configure.ac @@ -10,7 +10,7 @@ dnl to regenerate the configure script. dnl # Set VERSION so we only need to edit in one place (i.e., here) -m4_define([PYTHON_VERSION], [3.15]) +m4_define([PYTHON_VERSION], [3.16]) AC_PREREQ([2.72]) @@ -205,7 +205,7 @@ AC_SUBST([FREEZE_MODULE_DEPS]) AC_SUBST([PYTHON_FOR_BUILD_DEPS]) AC_CHECK_PROGS([PYTHON_FOR_REGEN], - [python$PACKAGE_VERSION python3.15 python3.14 python3.13 python3.12 python3.11 python3.10 python3 python], + [python$PACKAGE_VERSION python3.16 python3.15 python3.14 python3.13 python3.12 python3.11 python3.10 python3 python], [python3]) AC_SUBST([PYTHON_FOR_REGEN])