.. 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 <https://libexpat.github.io/>`_ 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 <marshal>` 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 base32, base64, base85,
ascii85, and Z85 decoders in :mod:`base64` and :mod:`binascii`. When true,
encodings with non-zero padding bits (base32/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__
<object.__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 <xml.etree.ElementTree.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
``<name>.start`` parallel to ``<name>.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 <soft deprecated>` :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
<imaplib.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 <annotate function>`.

..

.. 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 <dataclasses.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 <json.tool>`.

..

.. date: 2024-11-24-07-18-40
.. gh-issue: 108951
.. nonce: jyKygP
.. section: Library

:mod:`asyncio`: Add :meth:`TaskGroup.cancel <asyncio.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`.
