]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Python 3.15.0b4 v3.15.0b4
authorHugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Sat, 18 Jul 2026 07:56:32 +0000 (09:56 +0200)
committerHugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Sat, 18 Jul 2026 07:57:43 +0000 (09:57 +0200)
149 files changed:
Doc/library/concurrent.futures.rst
Include/patchlevel.h
Lib/pydoc_data/module_docs.py
Lib/pydoc_data/topics.py
Misc/NEWS.d/3.15.0b4.rst [new file with mode: 0644]
Misc/NEWS.d/next/Build/2026-06-28-16-17-55.gh-issue-152502.6SNqMg.rst [deleted file]
Misc/NEWS.d/next/Build/2026-07-01-17-53-00.gh-issue-152769.Kp7mQ2.rst [deleted file]
Misc/NEWS.d/next/Build/2026-07-02-16-25-13.gh-issue-152870.oh9eD1.rst [deleted file]
Misc/NEWS.d/next/Build/2026-07-09-22-45-00.gh-issue-153438.Qr7N2p.rst [deleted file]
Misc/NEWS.d/next/Build/2026-07-11-07-26-16.gh-issue-126877.Zt7Kq2.rst [deleted file]
Misc/NEWS.d/next/C_API/2026-07-08-00-38-32.gh-issue-153300.lVoWyR.rst [deleted file]
Misc/NEWS.d/next/C_API/2026-07-09-16-46-30.gh-issue-145633.jyNwAs.rst [deleted file]
Misc/NEWS.d/next/C_API/2026-07-09-17-33-29.gh-issue-152132.Ma8MJZ.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-04-21-15-07-03.gh-issue-148825.AbJzmZ.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-04-29-15-10-59.gh-issue-149162.BPPyrq.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-05-11-15-58-23.gh-issue-149689.9Ht49z.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-05-26-00-06-30.gh-issue-150411.u-d-_5.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-05-29-17-51-11.gh-issue-144774.jPcixe.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-03-16-27-00.gh-issue-150858.j2dSkD.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-03-21-14-28.gh-issue-150459.qpsCEl.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-06-20-15-08.gh-issue-151029.A33CKK.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-17-16-46-07.gh-issue-151126.vhTL0T.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-18-00-00-00.gh-issue-151644.5cFffN.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-18-16-00-10.gh-issue-151126.tBqn6I.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-19-16-40-01.gh-issue-151619.35yyJW.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-20-10-01-26.gh-issue-151672.K-w7j0.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-21-16-00-00.gh-issue-151773.mN4kRt.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-22-14-48-22.gh-issue-151912.YcxfnU.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-23-12-03-55.gh-issue-151763.K7QfWG.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-23-19-50-22.gh-issue-152020.DTKXjR.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-23-23-48-54.gh-issue-151763.Eu8pYQ.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-24-13-36-31.gh-issue-151722.lWKfE1.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-25-21-34-15.gh-issue-152228.a6K14K.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-05-49-13.gh-issue-152235.YU20T9.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-22-03-16.gh-issue-152235.ZKWiWk.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-27-10-05-12.gh-issue-152375.L-ZBk6.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-28-14-31-03.gh-issue-152492._09Zee.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-28-14-39-05.gh-issue-152405.-_3YRo.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-29-23-29-14.gh-issue-152635.O21J0O.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-06-30-14-00-00.gh-issue-152682.yId7e5.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-07-07-04-16-48.gh-issue-153205.5fE8QZ.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2026-07-08-13-23-11.gh-issue-153298.wvcXxN.rst [deleted file]
Misc/NEWS.d/next/IDLE/2026-06-28-06-46-46.gh-issue-85320.Hq2vKn.rst [deleted file]
Misc/NEWS.d/next/IDLE/2026-07-01-00-00-00.gh-issue-66331.wMcLaS.rst [deleted file]
Misc/NEWS.d/next/IDLE/2026-07-01-00-15-58.gh-issue-152728.yxIhMN.rst [deleted file]
Misc/NEWS.d/next/IDLE/2026-07-01-12-00-00.gh-issue-71956.rPlAlL.rst [deleted file]
Misc/NEWS.d/next/IDLE/2026-07-01-14-00-00.gh-issue-89360.mUlTiC.rst [deleted file]
Misc/NEWS.d/next/IDLE/2026-07-01-15-00-00.gh-issue-134300.iDlPaT.rst [deleted file]
Misc/NEWS.d/next/IDLE/2026-07-01-16-00-00.gh-issue-80504.gReP.rst [deleted file]
Misc/NEWS.d/next/IDLE/2026-07-01-17-00-00.gh-issue-65339.oUtTxt.rst [deleted file]
Misc/NEWS.d/next/IDLE/2026-07-01-18-00-00.gh-issue-83653.cFgInt.rst [deleted file]
Misc/NEWS.d/next/IDLE/2026-07-01-19-00-00.gh-issue-82183.rNsTrt.rst [deleted file]
Misc/NEWS.d/next/Library/2023-06-12-21-31-02.gh-issue-105708.5fFwP8.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-05-20-50-35.gh-issue-79638.Y-JfaH.rst [deleted file]
Misc/NEWS.d/next/Library/2025-11-02-05-28-56.gh-issue-115634.JbcNnF.rst [deleted file]
Misc/NEWS.d/next/Library/2026-02-11-16-47-27.gh-issue-140729.2uTPQp.rst [deleted file]
Misc/NEWS.d/next/Library/2026-03-26-00-00-00.gh-issue-47005.xxc89c.rst [deleted file]
Misc/NEWS.d/next/Library/2026-05-18-12-42-31.gh-issue-149816.F98iME.rst [deleted file]
Misc/NEWS.d/next/Library/2026-05-31-14-39-25.gh-issue-150641.LLIhd1.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-03-19-35-32.gh-issue-150583.dedI24.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-06-06-29-17.gh-issue-150994.I2119M.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-11-06-56-31.gh-issue-150994.gd1wVw.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-12-00-00-00.gh-issue-151416.spawnUA.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-15-15-32-36.gh-issue-151497.1cfmSV.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-17-00-00-00.gh-issue-148660.odcopy.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-17-22-31-57.gh-issue-151613.n0nua1.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-18-12-48-03.gh-issue-151640.R4c3Fx.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-18-23-59-46.gh-issue-151596.5ma144.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-20-21-15-13.gh-issue-151814.OIbgsO.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-21-15-50-24.gh-issue-86165.dyac1G.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-23-13-27-14.gh-issue-126219.kOfv2g.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-23-17-14-04.gh-issue-127802.nGSxo6.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-24-10-46-35.gh-issue-152060.f2asrt.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-24-12-00-00.gh-issue-152052.yBssDE.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-24-12-00-00.gh-issue-152079.f1tzus.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-24-16-40-15.gh-issue-151378.iYWa_6.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-24-22-16-35.gh-issue-105895.hRkuEw.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-24-23-28-42.gh-issue-151669.tPUavQ.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-25-01-00-43.gh-issue-151763.wWeHBe.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-25-07-08-17.gh-issue-152157.dt5Ef0.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-25-10-07-54.gh-issue-152156.gscPU9.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-25-12-00-00.gh-issue-152212.Zk7Qm2.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-25-14-32-42.gh-issue-139145.kT9rmP.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-25-14-32-43.gh-issue-139816.Lq2vXa.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-25-20-00-00.gh-issue-151496.kMnT3x.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-26-12-50-26.gh-issue-152246.MfXMd1.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-26-13-10-00.gh-issue-80937.Hq3mNp.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-26-13-39-11.gh-issue-152248.N2Rmaf.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-26-15-00-00.gh-issue-38464.yDPjKH.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-26-15-30-00.gh-issue-88758.Qw7nLp.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-26-15-41-34.gh-issue-152305.WnbbBc.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-26-16-30-00.gh-issue-83274.Kx9mQv.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-26-23-56-40.gh-issue-71880.782D31.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-27-12-30-00.gh-issue-133031.Na8Bit.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-27-17-19-09.gh-issue-151126.huUyOM.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-28-11-00-40.gh-issue-78335.Kp3mWq.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-28-12-45-09.gh-issue-152356.Dr4w2Q.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-29-01-08-53.gh-issue-110357.QGWdZQ.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-29-09-45-00.gh-issue-152569.Kf7Lq2.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-29-22-16-57.gh-issue-50966.Tq5mLp.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-30-12-00-00.gh-issue-40038.qK7mGv.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-30-13-00-00.gh-issue-151842.OOM31g.rst [deleted file]
Misc/NEWS.d/next/Library/2026-06-30-21-40-00.gh-issue-152502.Kq3Vn7.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-01-10-00-00.gh-issue-88574.Kz3wQm.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-01-10-30-00.gh-issue-63121.Rm4tZp.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-01-12-00-00.gh-issue-108280.Nq8vTr.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-01-12-00-00.gh-issue-152718.pr0f1l.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-02-12-00-00.gh-issue-152847.PitKqc.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-02-13-30-00.gh-issue-152849.K9dRvP.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-02-19-21-15.gh-issue-152068.ThsmJU.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-02-22-19-53.gh-issue-150880.vPZ7jK.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-03-14-54-33.gh-issue-152951.u8tPCI.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-03-17-29-34.gh-issue-150579.0tLpQukIU.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-03-18-30-00.gh-issue-119592.mQr3Vx.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-03-21-10-00.gh-issue-54930.hq09Er.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-04-11-14-06.gh-issue-152851.diYvTf.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-04-13-00-00.gh-issue-135661.CIkADG.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-04-20-28-51.gh-issue-153037.XUSp_g.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-05-10-24-30.gh-issue-143921.wQx3Tn.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-05-12-00-00.gh-issue-153056.tMpLat.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-05-14-30-00.gh-issue-153062.teeFT1.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-05-16-09-31.gh-issue-153068.huY9Jh.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-06-12-00-00.gh-issue-153200.isqrtLt.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-07-02-26-43.gh-issue-153210.LUXIcm.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-07-13-31-52.gh-issue-148286.-qu-em.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-07-17-50-54.gh-issue-143990.FoNtCf.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-07-22-06-52.gh-issue-153293.0DvYdc.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-08-01-03-17.gh-issue-153292.oHDt3l.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-08-01-47-15.gh-issue-153083.XbKZCp.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-08-21-15-00.gh-issue-153333.Kp3mZq.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-09-00-00-00.gh-issue-153406.vyMmB6.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-09-14-00-00.gh-issue-153417.Bw7Rq2.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-09-15-18-23.gh-issue-151292.f4NQSW.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-12-00-00-00.gh-issue-85943.8f906e.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-13-10-27-08.gh-issue-153658.A6o4n5.rst [deleted file]
Misc/NEWS.d/next/Library/2026-07-14-19-45-21.gh-issue-153695.UYdZJZ.rst [deleted file]
Misc/NEWS.d/next/Security/2026-01-16-11-58-19.gh-issue-143927.aviFeG.rst [deleted file]
Misc/NEWS.d/next/Security/2026-05-30-00-00-00.gh-issue-150743.httpdos.rst [deleted file]
Misc/NEWS.d/next/Security/2026-06-10-13-08-19.gh-issue-151558.mL74i2.rst [deleted file]
Misc/NEWS.d/next/Security/2026-06-23-13-28-16.gh-issue-151981.xBHEcU.rst [deleted file]
Misc/NEWS.d/next/Security/2026-06-23-14-19-30.gh-issue-151987.8mNIMf.rst [deleted file]
Misc/NEWS.d/next/Security/2026-06-25-20-44-20.gh-issue-152216.VxiK5y.rst [deleted file]
Misc/NEWS.d/next/Security/2026-07-04-17-00-00.gh-issue-153030.RovkP6.rst [deleted file]
Misc/NEWS.d/next/Tests/2026-06-16-05-11-38.gh-issue-151096.Kq3Lp9.rst [deleted file]
Misc/NEWS.d/next/Tests/2026-06-22-19-45-00.gh-issue-151626.K9pZ2x.rst [deleted file]
Misc/NEWS.d/next/Windows/2026-04-21-16-07-11.gh-issue-140146.TAcUHA.rst [deleted file]
Misc/NEWS.d/next/macOS/2026-07-17-23-20-27.gh-issue-152023.QAAgdj.rst [deleted file]
Misc/NEWS.d/next/macOS/2026-07-17-23-35-36.gh-issue-124111.dmM4lk.rst [deleted file]
README.rst

index cadf841b43537e5615639a424209ebcb21072cf4..bf17f0429d7f1698d41c04354da26394ecf3ed5e 100644 (file)
@@ -421,7 +421,7 @@ in a REPL or a lambda should not be expected to work.
       require the *fork* start method for :class:`ProcessPoolExecutor` you must
       explicitly pass ``mp_context=multiprocessing.get_context("fork")``.
 
-   .. versionchanged:: next
+   .. versionchanged:: 3.15
       Fixed a deadlock (:gh:`115634`) where the executor could hang after
       a worker process exited upon reaching its *max_tasks_per_child*
       limit while tasks remained queued.
index f597c49cfd398db02e0ea0d359d12cf8a012060c..425ce233955cfdac4b1c052f1fe71cd5ebcc03c6 100644 (file)
 #define PY_MINOR_VERSION        15
 #define PY_MICRO_VERSION        0
 #define PY_RELEASE_LEVEL        PY_RELEASE_LEVEL_BETA
-#define PY_RELEASE_SERIAL       3
+#define PY_RELEASE_SERIAL       4
 
 /* Version as a string */
-#define PY_VERSION              "3.15.0b3+dev"
+#define PY_VERSION              "3.15.0b4"
 /*--end constants--*/
 
 
index 8611b1e7c47dd1c2a43f3cd2d4a67a19e21ca278..e10baa0f29cacee76f86911a0c935d7ff0e67651 100644 (file)
@@ -1,4 +1,4 @@
-# Autogenerated by Sphinx on Tue Jun 23 12:35:44 2026
+# Autogenerated by Sphinx on Sat Jul 18 09:57:06 2026
 # as part of the release process.
 
 module_docs = {
index 7016734651125df3a18c9ed119e0d3d46685dd3e..72915fa49f2baf949feb95f360a92122559dfe7c 100644 (file)
@@ -1,4 +1,4 @@
-# Autogenerated by Sphinx on Tue Jun 23 12:35:44 2026
+# Autogenerated by Sphinx on Sat Jul 18 09:57:06 2026
 # as part of the release process.
 
 topics = {
@@ -2063,12 +2063,12 @@ exception, and the exception occurs in the "try" clause of the inner
 handler, the outer handler will not handle the exception.)
 
 When an exception has been assigned using "as target", it is cleared
-at the end of the "except" clause.  This is as if
+at the end of the "except" clause.  This is as if:
 
    except E as N:
        foo
 
-was translated to
+was translated to:
 
    except E as N:
        try:
@@ -2116,8 +2116,8 @@ have either "except" or "except*" clauses, but not both. The exception
 type for matching is mandatory in the case of "except*", so "except*:"
 is a syntax error. The type is interpreted as in the case of "except",
 but matching is performed on the exceptions contained in the group
-that is being handled. An "TypeError" is raised if a matching type is
-subclass of "BaseExceptionGroup", because that would have ambiguous
+that is being handled. A "TypeError" is raised if a matching type is a
+subclass of "BaseExceptionGroup", because that would have ambiguous
 semantics.
 
 When an exception group is raised in the try block, each "except*"
@@ -2132,7 +2132,7 @@ the group have been matched, or the last "except*" clause has run.
 
 After all "except*" clauses execute, the group of unhandled exceptions
 is merged with any exceptions that were raised or re-raised from
-within "except*" clauses. This merged exception group propagates on.:
+within "except*" clauses. This merged exception group propagates on:
 
    >>> try:
    ...     raise ExceptionGroup("eg",
@@ -3018,7 +3018,7 @@ as a list or a dictionary: if the function modifies the object (e.g.
 by appending an item to a list), the default parameter value is in
 effect modified.  This is generally not what was intended.  A way
 around this is to use "None" as the default, and explicitly test for
-it in the body of the function, e.g.:
+it in the body of the function, for example:
 
    def whats_on_the_telly(penguin=None):
        if penguin is None:
@@ -6404,7 +6404,7 @@ as a list or a dictionary: if the function modifies the object (e.g.
 by appending an item to a list), the default parameter value is in
 effect modified.  This is generally not what was intended.  A way
 around this is to use "None" as the default, and explicitly test for
-it in the body of the function, e.g.:
+it in the body of the function, for example:
 
    def whats_on_the_telly(penguin=None):
        if penguin is None:
@@ -7335,6 +7335,606 @@ See Container displays for general information on displays.
 The formal grammar for list displays is:
 
    list: '[' [flexible_expression_list] ']'
+''',
+    'match': r'''The "match" statement
+*********************
+
+Added in version 3.10.
+
+The match statement is used for pattern matching.  Syntax:
+
+   match_stmt:   'match' subject_expr ":" NEWLINE INDENT case_block+ DEDENT
+   subject_expr: flexible_expression "," [flexible_expression_list [',']]
+                 | assignment_expression
+   case_block:   'case' patterns [guard] ":" suite
+
+Note:
+
+  This section uses single quotes to denote soft keywords.
+
+Pattern matching takes a pattern as input (following "case") and a
+subject value (following "match").  The pattern (which may contain
+subpatterns) is matched against the subject value.  The outcomes are:
+
+* A match success or failure (also termed a pattern success or
+  failure).
+
+* Possible binding of matched values to a name.  The prerequisites for
+  this are further discussed below.
+
+The "match" and "case" keywords are soft keywords.
+
+See also:
+
+  * **PEP 634** – Structural Pattern Matching: Specification
+
+  * **PEP 636** – Structural Pattern Matching: Tutorial
+
+
+Overview
+========
+
+Here’s an overview of the logical flow of a match statement:
+
+1. The subject expression "subject_expr" is evaluated and a resulting
+   subject value obtained. If the subject expression contains a comma,
+   a tuple is constructed using the standard rules.
+
+2. Each pattern in a "case_block" is attempted to match with the
+   subject value. The specific rules for success or failure are
+   described below. The match attempt can also bind some or all of the
+   standalone names within the pattern. The precise pattern binding
+   rules vary per pattern type and are specified below.  **Name
+   bindings made during a successful pattern match outlive the
+   executed block and can be used after the match statement**.
+
+   Note:
+
+     During failed pattern matches, some subpatterns may succeed.  Do
+     not rely on bindings being made for a failed match.  Conversely,
+     do not rely on variables remaining unchanged after a failed
+     match.  The exact behavior is dependent on implementation and may
+     vary.  This is an intentional decision made to allow different
+     implementations to add optimizations.
+
+3. If the pattern succeeds, the corresponding guard (if present) is
+   evaluated. In this case all name bindings are guaranteed to have
+   happened.
+
+   * If the guard evaluates as true or is missing, the "block" inside
+     "case_block" is executed.
+
+   * Otherwise, the next "case_block" is attempted as described above.
+
+   * If there are no further case blocks, the match statement is
+     completed.
+
+Note:
+
+  Users should generally never rely on a pattern being evaluated.
+  Depending on implementation, the interpreter may cache values or use
+  other optimizations which skip repeated evaluations.
+
+A sample match statement:
+
+   >>> flag = False
+   >>> match (100, 200):
+   ...    case (100, 300):  # Mismatch: 200 != 300
+   ...        print('Case 1')
+   ...    case (100, 200) if flag:  # Successful match, but guard fails
+   ...        print('Case 2')
+   ...    case (100, y):  # Matches and binds y to 200
+   ...        print(f'Case 3, y: {y}')
+   ...    case _:  # Pattern not attempted
+   ...        print('Case 4, I match anything!')
+   ...
+   Case 3, y: 200
+
+In this case, "if flag" is a guard.  Read more about that in the next
+section.
+
+
+Guards
+======
+
+   guard: "if" assignment_expression
+
+A "guard" (which is part of the "case") must succeed for code inside
+the "case" block to execute.  It takes the form: "if" followed by an
+expression.
+
+The logical flow of a "case" block with a "guard" follows:
+
+1. Check that the pattern in the "case" block succeeded.  If the
+   pattern failed, the "guard" is not evaluated and the next "case"
+   block is checked.
+
+2. If the pattern succeeded, evaluate the "guard".
+
+   * If the "guard" condition evaluates as true, the case block is
+     selected.
+
+   * If the "guard" condition evaluates as false, the case block is
+     not selected.
+
+   * If the "guard" raises an exception during evaluation, the
+     exception bubbles up.
+
+Guards are allowed to have side effects as they are expressions.
+Guard evaluation must proceed from the first to the last case block,
+one at a time, skipping case blocks whose pattern(s) don’t all
+succeed. (I.e., guard evaluation must happen in order.) Guard
+evaluation must stop once a case block is selected.
+
+
+Irrefutable Case Blocks
+=======================
+
+An irrefutable case block is a match-all case block.  A match
+statement may have at most one irrefutable case block, and it must be
+last.
+
+A case block is considered irrefutable if it has no guard and its
+pattern is irrefutable.  A pattern is considered irrefutable if we can
+prove from its syntax alone that it will always succeed.  Only the
+following patterns are irrefutable:
+
+* AS Patterns whose left-hand side is irrefutable
+
+* OR Patterns containing at least one irrefutable pattern
+
+* Capture Patterns
+
+* Wildcard Patterns
+
+* parenthesized irrefutable patterns
+
+
+Patterns
+========
+
+Note:
+
+  This section uses grammar notations beyond standard EBNF:
+
+  * the notation "SEP.RULE+" is shorthand for "RULE (SEP RULE)*"
+
+  * the notation "!RULE" is shorthand for a negative lookahead
+    assertion
+
+The top-level syntax for "patterns" is:
+
+   patterns:       open_sequence_pattern | pattern
+   pattern:        as_pattern | or_pattern
+   closed_pattern: | literal_pattern
+                   | capture_pattern
+                   | wildcard_pattern
+                   | value_pattern
+                   | group_pattern
+                   | sequence_pattern
+                   | mapping_pattern
+                   | class_pattern
+
+The descriptions below will include a description “in simple terms” of
+what a pattern does for illustration purposes (credits to Raymond
+Hettinger for a document that inspired most of the descriptions). Note
+that these descriptions are purely for illustration purposes and **may
+not** reflect the underlying implementation.  Furthermore, they do not
+cover all valid forms.
+
+
+OR Patterns
+-----------
+
+An OR pattern is two or more patterns separated by vertical bars "|".
+Syntax:
+
+   or_pattern: "|".closed_pattern+
+
+Only the final subpattern may be irrefutable, and each subpattern must
+bind the same set of names to avoid ambiguity.
+
+An OR pattern matches each of its subpatterns in turn to the subject
+value, until one succeeds.  The OR pattern is then considered
+successful.  Otherwise, if none of the subpatterns succeed, the OR
+pattern fails.
+
+In simple terms, "P1 | P2 | ..." will try to match "P1", if it fails
+it will try to match "P2", succeeding immediately if any succeeds,
+failing otherwise.
+
+
+AS Patterns
+-----------
+
+An AS pattern matches an OR pattern on the left of the "as" keyword
+against a subject.  Syntax:
+
+   as_pattern: or_pattern "as" capture_pattern
+
+If the OR pattern fails, the AS pattern fails.  Otherwise, the AS
+pattern binds the subject to the name on the right of the as keyword
+and succeeds. "capture_pattern" cannot be a "_".
+
+In simple terms "P as NAME" will match with "P", and on success it
+will set "NAME = <subject>".
+
+
+Literal Patterns
+----------------
+
+A literal pattern corresponds to most literals in Python.  Syntax:
+
+   literal_pattern: signed_number
+                    | signed_number "+" NUMBER
+                    | signed_number "-" NUMBER
+                    | strings
+                    | "None"
+                    | "True"
+                    | "False"
+   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
+byte strings are supported.  f-strings and t-strings are not
+supported.
+
+The forms "signed_number '+' NUMBER" and "signed_number '-' NUMBER"
+are for expressing complex numbers; they require a real number on the
+left and an imaginary number on the right. E.g. "3 + 4j".
+
+In simple terms, "LITERAL" will succeed only if "<subject> ==
+LITERAL". For the singletons "None", "True" and "False", the "is"
+operator is used.
+
+
+Capture Patterns
+----------------
+
+A capture pattern binds the subject value to a name. Syntax:
+
+   capture_pattern: !'_' NAME
+
+A single underscore "_" is not a capture pattern (this is what "!'_'"
+expresses). It is instead treated as a "wildcard_pattern".
+
+In a given pattern, a given name can only be bound once.  E.g. "case
+x, x: ..." is invalid while "case [x] | x: ..." is allowed.
+
+Capture patterns always succeed.  The binding follows scoping rules
+established by the assignment expression operator in **PEP 572**; the
+name becomes a local variable in the closest containing function scope
+unless there’s an applicable "global" or "nonlocal" statement.
+
+In simple terms "NAME" will always succeed and it will set "NAME =
+<subject>".
+
+
+Wildcard Patterns
+-----------------
+
+A wildcard pattern always succeeds (matches anything) and binds no
+name.  Syntax:
+
+   wildcard_pattern: '_'
+
+"_" is a soft keyword within any pattern, but only within patterns.
+It is an identifier, as usual, even within "match" subject
+expressions, "guard"s, and "case" blocks.
+
+In simple terms, "_" will always succeed.
+
+
+Value Patterns
+--------------
+
+A value pattern represents a named value in Python. Syntax:
+
+   value_pattern: attr
+   attr:          name_or_attr "." NAME
+   name_or_attr:  attr | NAME
+
+The dotted name in the pattern is looked up using standard Python name
+resolution rules.  The pattern succeeds if the value found compares
+equal to the subject value (using the "==" equality operator).
+
+In simple terms "NAME1.NAME2" will succeed only if "<subject> ==
+NAME1.NAME2"
+
+Note:
+
+  If the same value occurs multiple times in the same match statement,
+  the interpreter may cache the first value found and reuse it rather
+  than repeat the same lookup.  This cache is strictly tied to a given
+  execution of a given match statement.
+
+
+Group Patterns
+--------------
+
+A group pattern allows users to add parentheses around patterns to
+emphasize the intended grouping.  Otherwise, it has no additional
+syntax. Syntax:
+
+   group_pattern: "(" pattern ")"
+
+In simple terms "(P)" has the same effect as "P".
+
+
+Sequence Patterns
+-----------------
+
+A sequence pattern contains several subpatterns to be matched against
+sequence elements. The syntax is similar to the unpacking of a list or
+tuple.
+
+   sequence_pattern:       "[" [maybe_sequence_pattern] "]"
+                           | "(" [open_sequence_pattern] ")"
+   open_sequence_pattern:  maybe_star_pattern "," [maybe_sequence_pattern]
+   maybe_sequence_pattern: ",".maybe_star_pattern+ ","?
+   maybe_star_pattern:     star_pattern | pattern
+   star_pattern:           "*" (capture_pattern | wildcard_pattern)
+
+There is no difference if parentheses  or square brackets are used for
+sequence patterns (i.e. "(...)" vs "[...]" ).
+
+Note:
+
+  A single pattern enclosed in parentheses without a trailing comma
+  (e.g. "(3 | 4)") is a group pattern. While a single pattern enclosed
+  in square brackets (e.g. "[3 | 4]") is still a sequence pattern.
+
+At most one star subpattern may be in a sequence pattern.  The star
+subpattern may occur in any position. If no star subpattern is
+present, the sequence pattern is a fixed-length sequence pattern;
+otherwise it is a variable-length sequence pattern.
+
+The following is the logical flow for matching a sequence pattern
+against a subject value:
+
+1. If the subject value is not a sequence [2], the sequence pattern
+   fails.
+
+2. If the subject value is an instance of "str", "bytes" or
+   "bytearray" the sequence pattern fails.
+
+3. The subsequent steps depend on whether the sequence pattern is
+   fixed or variable-length.
+
+   If the sequence pattern is fixed-length:
+
+   1. If the length of the subject sequence is not equal to the number
+      of subpatterns, the sequence pattern fails
+
+   2. Subpatterns in the sequence pattern are matched to their
+      corresponding items in the subject sequence from left to right.
+      Matching stops as soon as a subpattern fails.  If all
+      subpatterns succeed in matching their corresponding item, the
+      sequence pattern succeeds.
+
+   Otherwise, if the sequence pattern is variable-length:
+
+   1. If the length of the subject sequence is less than the number of
+      non-star subpatterns, the sequence pattern fails.
+
+   2. The leading non-star subpatterns are matched to their
+      corresponding items as for fixed-length sequences.
+
+   3. If the previous step succeeds, the star subpattern matches a
+      list formed of the remaining subject items, excluding the
+      remaining items corresponding to non-star subpatterns following
+      the star subpattern.
+
+   4. Remaining non-star subpatterns are matched to their
+      corresponding subject items, as for a fixed-length sequence.
+
+   Note:
+
+     The length of the subject sequence is obtained via "len()" (i.e.
+     via the "__len__()" protocol). This length may be cached by the
+     interpreter in a similar manner as value patterns.
+
+In simple terms "[P1, P2, P3," … ", P<N>]" matches only if all the
+following happens:
+
+* check "<subject>" is a sequence
+
+* "len(subject) == <N>"
+
+* "P1" matches "<subject>[0]" (note that this match can also bind
+  names)
+
+* "P2" matches "<subject>[1]" (note that this match can also bind
+  names)
+
+* … and so on for the corresponding pattern/element.
+
+
+Mapping Patterns
+----------------
+
+A mapping pattern contains one or more key-value patterns.  The syntax
+is similar to the construction of a dictionary. Syntax:
+
+   mapping_pattern:     "{" [items_pattern] "}"
+   items_pattern:       ",".key_value_pattern+ ","?
+   key_value_pattern:   (literal_pattern | value_pattern) ":" pattern
+                        | double_star_pattern
+   double_star_pattern: "**" capture_pattern
+
+At most one double star pattern may be in a mapping pattern.  The
+double star pattern must be the last subpattern in the mapping
+pattern.
+
+Duplicate keys in mapping patterns are disallowed. Duplicate literal
+keys will raise a "SyntaxError". Two keys that otherwise have the same
+value will raise a "ValueError" at runtime.
+
+The following is the logical flow for matching a mapping pattern
+against a subject value:
+
+1. If the subject value is not a mapping [3],the mapping pattern
+   fails.
+
+2. If every key given in the mapping pattern is present in the subject
+   mapping, and the pattern for each key matches the corresponding
+   item of the subject mapping, the mapping pattern succeeds.
+
+3. If duplicate keys are detected in the mapping pattern, the pattern
+   is considered invalid. A "SyntaxError" is raised for duplicate
+   literal values; or a "ValueError" for named keys of the same value.
+
+Note:
+
+  Key-value pairs are matched using the two-argument form of the
+  mapping subject’s "get()" method.  Matched key-value pairs must
+  already be present in the mapping, and not created on-the-fly via
+  "__missing__()" or "__getitem__()".
+
+In simple terms "{KEY1: P1, KEY2: P2, ... }" matches only if all the
+following happens:
+
+* check "<subject>" is a mapping
+
+* "KEY1 in <subject>"
+
+* "P1" matches "<subject>[KEY1]"
+
+* … and so on for the corresponding KEY/pattern pair.
+
+
+Class Patterns
+--------------
+
+A class pattern represents a class and its positional and keyword
+arguments (if any).  Syntax:
+
+   class_pattern:       name_or_attr "(" [pattern_arguments ","?] ")"
+   pattern_arguments:   positional_patterns ["," keyword_patterns]
+                        | keyword_patterns
+   positional_patterns: ",".pattern+
+   keyword_patterns:    ",".keyword_pattern+
+   keyword_pattern:     NAME "=" pattern
+
+The same keyword should not be repeated in class patterns.
+
+The following is the logical flow for matching a class pattern against
+a subject value:
+
+1. If "name_or_attr" is not an instance of the builtin "type" , raise
+   "TypeError".
+
+2. If the subject value is not an instance of "name_or_attr" (tested
+   via "isinstance()"), the class pattern fails.
+
+3. If no pattern arguments are present, the pattern succeeds.
+   Otherwise, the subsequent steps depend on whether keyword or
+   positional argument patterns are present.
+
+   For a number of built-in types (specified below), a single
+   positional subpattern is accepted which will match the entire
+   subject; for these types keyword patterns also work as for other
+   types.
+
+   If only keyword patterns are present, they are processed as
+   follows, one by one:
+
+   1. The keyword is looked up as an attribute on the subject.
+
+      * If this raises an exception other than "AttributeError", the
+        exception bubbles up.
+
+      * If this raises "AttributeError", the class pattern has failed.
+
+      * Else, the subpattern associated with the keyword pattern is
+        matched against the subject’s attribute value.  If this fails,
+        the class pattern fails; if this succeeds, the match proceeds
+        to the next keyword.
+
+   2. If all keyword patterns succeed, the class pattern succeeds.
+
+   If any positional patterns are present, they are converted to
+   keyword patterns using the "__match_args__" attribute on the class
+   "name_or_attr" before matching:
+
+   1. The equivalent of "getattr(cls, "__match_args__", ())" is
+      called.
+
+      * If this raises an exception, the exception bubbles up.
+
+      * If the returned value is not a tuple, the conversion fails and
+        "TypeError" is raised.
+
+      * If there are more positional patterns than
+        "len(cls.__match_args__)", "TypeError" is raised.
+
+      * Otherwise, positional pattern "i" is converted to a keyword
+        pattern using "__match_args__[i]" as the keyword.
+        "__match_args__[i]" must be a string; if not "TypeError" is
+        raised.
+
+      * If there are duplicate keywords, "TypeError" is raised.
+
+      See also:
+
+        Customizing positional arguments in class pattern matching
+
+   2. Once all positional patterns have been converted to keyword
+      patterns, the match proceeds as if there were only keyword
+      patterns.
+
+   For the following built-in types the handling of positional
+   subpatterns is different:
+
+   * "bool"
+
+   * "bytearray"
+
+   * "bytes"
+
+   * "dict"
+
+   * "float"
+
+   * "frozendict"
+
+   * "frozenset"
+
+   * "int"
+
+   * "list"
+
+   * "set"
+
+   * "str"
+
+   * "tuple"
+
+   These classes accept a single positional argument, and the pattern
+   there is matched against the whole object rather than an attribute.
+   For example "int(0|1)" matches the value "0", but not the value
+   "0.0".
+
+In simple terms "CLS(P1, attr=P2)" matches only if the following
+happens:
+
+* "isinstance(<subject>, CLS)"
+
+* convert "P1" to a keyword pattern using "CLS.__match_args__"
+
+* For each keyword argument "attr=P2":
+
+  * "hasattr(<subject>, "attr")"
+
+  * "P2" matches "<subject>.attr"
+
+* … and so on for the corresponding keyword argument/pattern pair.
+
+See also:
+
+  * **PEP 634** – Structural Pattern Matching: Specification
+
+  * **PEP 636** – Structural Pattern Matching: Tutorial
 ''',
     'naming': r'''Naming and binding
 ******************
@@ -12106,12 +12706,12 @@ exception, and the exception occurs in the "try" clause of the inner
 handler, the outer handler will not handle the exception.)
 
 When an exception has been assigned using "as target", it is cleared
-at the end of the "except" clause.  This is as if
+at the end of the "except" clause.  This is as if:
 
    except E as N:
        foo
 
-was translated to
+was translated to:
 
    except E as N:
        try:
@@ -12159,8 +12759,8 @@ have either "except" or "except*" clauses, but not both. The exception
 type for matching is mandatory in the case of "except*", so "except*:"
 is a syntax error. The type is interpreted as in the case of "except",
 but matching is performed on the exceptions contained in the group
-that is being handled. An "TypeError" is raised if a matching type is
-subclass of "BaseExceptionGroup", because that would have ambiguous
+that is being handled. A "TypeError" is raised if a matching type is a
+subclass of "BaseExceptionGroup", because that would have ambiguous
 semantics.
 
 When an exception group is raised in the try block, each "except*"
@@ -12175,7 +12775,7 @@ the group have been matched, or the last "except*" clause has run.
 
 After all "except*" clauses execute, the group of unhandled exceptions
 is merged with any exceptions that were raised or re-raised from
-within "except*" clauses. This merged exception group propagates on.:
+within "except*" clauses. This merged exception group propagates on:
 
    >>> try:
    ...     raise ExceptionGroup("eg",
@@ -14117,6 +14717,13 @@ class frozendict(iterable, /, **kwargs)
    signifying (respectively) the types of the frozendict’s keys and
    values.
 
+   classmethod fromkeys(iterable, value=None, /)
+
+      Similar to "dict.fromkeys()", but call again the type
+      constructor with an initialized "frozendict" if the type is a
+      "frozendict" subclass or if the constructor returned a
+      "frozendict".
+
    Added in version 3.15.
 ''',
     'typesmethods': r'''Methods
diff --git a/Misc/NEWS.d/3.15.0b4.rst b/Misc/NEWS.d/3.15.0b4.rst
new file mode 100644 (file)
index 0000000..ebe9b3c
--- /dev/null
@@ -0,0 +1,1570 @@
+.. date: 2026-07-04-17-00-00
+.. gh-issue: 153030
+.. nonce: RovkP6
+.. release date: 2026-07-18
+.. section: Security
+
+Fixed quadratic complexity in incremental parsing of long unterminated
+constructs (such as tags or comments) in :class:`html.parser.HTMLParser`,
+which could be exploited for a denial of service.
+
+..
+
+.. date: 2026-06-25-20-44-20
+.. gh-issue: 152216
+.. nonce: VxiK5y
+.. section: Security
+
+Update bundled `libexpat <https://libexpat.github.io/>`_ to version 2.8.2.
+
+..
+
+.. date: 2026-06-23-14-19-30
+.. gh-issue: 151987
+.. nonce: 8mNIMf
+.. section: Security
+
+The :meth:`tarfile.TarFile.extract` method now applies the given filter when
+it extracts a link target from the archive as a fallback.
+
+..
+
+.. date: 2026-06-23-13-28-16
+.. gh-issue: 151981
+.. nonce: xBHEcU
+.. section: Security
+
+In :mod:`tarfile`, seeking a stream now stops when end of the stream is
+reached.
+
+..
+
+.. date: 2026-06-10-13-08-19
+.. gh-issue: 151558
+.. nonce: mL74i2
+.. section: Security
+
+Fixed an vulnerability in the :mod:`tarfile` ``data`` and ``tar`` extraction
+filters where crafted archives could create a symlink pointing outside the
+destination directory. This was a bypass of :cve:`2025-4330`.
+
+..
+
+.. date: 2026-05-30-00-00-00
+.. gh-issue: 150743
+.. nonce: httpdos
+.. section: Security
+
+:mod:`http.client` now limits the number of chunked-response trailer lines
+it will read to :attr:`~http.client.HTTPConnection.max_response_headers`
+(100 by default), and the number of interim (1xx) responses it will skip to
+100.  A malicious or broken server could previously stream trailer lines or
+``100 Continue`` responses forever, hanging the client even when a socket
+timeout was in use. Reported by ``@YLChen-007`` via GHSA-w4q2-g22w-6fr4.
+
+..
+
+.. date: 2026-01-16-11-58-19
+.. gh-issue: 143927
+.. nonce: aviFeG
+.. section: Security
+
+Normalize all line endings (CR, CRLF, and LF) to LF+TAB when writing
+multi-line configparser values.
+
+..
+
+.. date: 2026-07-08-13-23-11
+.. gh-issue: 153298
+.. nonce: wvcXxN
+.. section: Core and Builtins
+
+Fixes a data race in :class:`types.GenericAlias` ``__parameters__``
+initialization on free-threading builds.
+
+..
+
+.. date: 2026-07-07-04-16-48
+.. gh-issue: 153205
+.. nonce: 5fE8QZ
+.. section: Core and Builtins
+
+Fix a potential :exc:`SystemError` during vector calls when memory
+allocation fails. A :exc:`MemoryError` is now raised instead.
+
+..
+
+.. date: 2026-06-30-14-00-00
+.. gh-issue: 152682
+.. nonce: yId7e5
+.. section: Core and Builtins
+
+Fix NULL pointer dereference in :func:`compile` when a reserved name (e.g.
+``__classdict__``) is used as a type parameter name and memory allocation
+fails while formatting the error message.
+
+..
+
+.. date: 2026-06-29-23-29-14
+.. gh-issue: 152635
+.. nonce: O21J0O
+.. section: Core and Builtins
+
+Fix a crash caused when running out of memory creating a
+:mod:`!_interpchannels` channel. Now a :exc:`MemoryError` is correctly
+raised.
+
+..
+
+.. date: 2026-06-28-14-39-05
+.. gh-issue: 152405
+.. nonce: -_3YRo
+.. section: Core and Builtins
+
+Do not expose the internal mapping of :class:`types.MappingProxyType` when
+performing rich-compare operations with non-stdlib types. Previously, it was
+possible to mutate the internal mapping of a proxy there. Now we pass not
+the original :class:`dict` instance, but its copy, when dealing with custom
+types.
+
+..
+
+.. date: 2026-06-28-14-31-03
+.. gh-issue: 152492
+.. nonce: _09Zee
+.. section: Core and Builtins
+
+:type:`collections.OrderedDict` ``update`` method can now accept
+:type:`frozendict` as an argument.
+
+..
+
+.. date: 2026-06-27-10-05-12
+.. gh-issue: 152375
+.. nonce: L-ZBk6
+.. section: Core and Builtins
+
+Fix undefined behaviour when a :mod:`sys.monitoring` callback raised an
+exception while the program was following a branch or loop.
+
+..
+
+.. date: 2026-06-26-22-03-16
+.. gh-issue: 152235
+.. nonce: ZKWiWk
+.. section: Core and Builtins
+
+Defer GC tracking of :meth:`set.intersection`, :meth:`set.difference`,
+:meth:`set.symmetric_difference`, :meth:`set.union` and ``set.__sub__``.
+Patch by Donghee Na.
+
+..
+
+.. date: 2026-06-26-05-49-13
+.. gh-issue: 152235
+.. nonce: YU20T9
+.. section: Core and Builtins
+
+Defer GC tracking of a :class:`set` or :class:`frozenset` to the end of its
+construction from iterable. Patch by Donghee Na.
+
+..
+
+.. date: 2026-06-25-21-34-15
+.. gh-issue: 152228
+.. nonce: a6K14K
+.. section: Core and Builtins
+
+Fix an assertion failure when python is built in a debug mode that happened
+in :meth:`str.replace` under a limited memory situation.
+
+..
+
+.. date: 2026-06-24-13-36-31
+.. gh-issue: 151722
+.. nonce: lWKfE1
+.. section: Core and Builtins
+
+:meth:`!frozendict.fromkeys` now only tracks the :class:`frozendict` in the
+garbage collector once the dictionary is fully initialized. Patch by Donghee
+Na and Victor Stinner.
+
+..
+
+.. date: 2026-06-23-23-48-54
+.. gh-issue: 151763
+.. nonce: Eu8pYQ
+.. section: Core and Builtins
+
+Fixes possible crash on :class:`types.CodeType` deallocation.
+
+..
+
+.. date: 2026-06-23-19-50-22
+.. gh-issue: 152020
+.. nonce: DTKXjR
+.. section: Core and Builtins
+
+On the free-threaded build, :func:`asyncio.all_tasks` no longer loses
+eager-started tasks when called from a thread other than the one running the
+event loop.
+
+..
+
+.. date: 2026-06-23-12-03-55
+.. gh-issue: 151763
+.. nonce: K7QfWG
+.. section: Core and Builtins
+
+Fix a potential crash in :func:`compile`, :func:`exec`, :func:`eval` and
+:func:`ast.parse` when an allocation fails: the parser or compiler could
+return without setting an exception.
+
+..
+
+.. date: 2026-06-22-14-48-22
+.. gh-issue: 151912
+.. nonce: YcxfnU
+.. section: Core and Builtins
+
+Fixed a crash in ``type()`` when selecting a metaclass whose ``tp_new`` slot
+is ``NULL``. Such metaclasses are now rejected with ``TypeError`` instead of
+causing a NULL pointer dereference.
+
+..
+
+.. date: 2026-06-21-16-00-00
+.. gh-issue: 151773
+.. nonce: mN4kRt
+.. section: Core and Builtins
+
+Fix a crash in :func:`contextvars.ContextVar.set` when memory allocation
+fails.
+
+..
+
+.. date: 2026-06-20-10-01-26
+.. gh-issue: 151672
+.. nonce: K-w7j0
+.. section: Core and Builtins
+
+Fix an inconsistency where calling ``__lazy_import__`` with a string
+``fromlist`` would return a :class:`types.LazyImportType` that resolves to
+the named member, rather than the module being imported.
+
+..
+
+.. date: 2026-06-19-16-40-01
+.. gh-issue: 151619
+.. nonce: 35yyJW
+.. section: Core and Builtins
+
+Fix an issue where using non-module global or builtin namespaces (such as
+dictionaries passed to :func:`exec`) could cause cached global loads to
+produce unresolved :ref:`lazy imports <lazy-imports>`.
+
+..
+
+.. date: 2026-06-18-16-00-10
+.. gh-issue: 151126
+.. nonce: tBqn6I
+.. section: Core and Builtins
+
+Fix a crash when sharing :class:`memoryview` objects between interpreters
+fails due to running out of memory. It now raises a proper
+:exc:`MemoryError`.
+
+..
+
+.. date: 2026-06-18-00-00-00
+.. gh-issue: 151644
+.. nonce: 5cFffN
+.. section: Core and Builtins
+
+Fix a data race in :func:`sys.setdlopenflags` and :func:`sys.getdlopenflags`
+when called concurrently in the free-threaded build. The underlying
+``_PyImport_GetDLOpenFlags`` and ``_PyImport_SetDLOpenFlags`` functions now
+use atomic load/store operations.
+
+..
+
+.. date: 2026-06-17-16-46-07
+.. gh-issue: 151126
+.. nonce: vhTL0T
+.. section: Core and Builtins
+
+Avoid possible crash in ``_winapi.c`` where a device has no memory left. Now
+it properly raises a :exc:`MemoryError`. Patch by Ivy Xu.
+
+..
+
+.. date: 2026-06-06-20-15-08
+.. gh-issue: 151029
+.. nonce: A33CKK
+.. section: Core and Builtins
+
+On Linux, fix :func:`sys.remote_exec` unable to find remote writable memory
+when ``libpython`` replaced on disk.
+
+..
+
+.. date: 2026-06-03-21-14-28
+.. gh-issue: 150459
+.. nonce: qpsCEl
+.. section: Core and Builtins
+
+Fix :exc:`SyntaxError` error message for ``from x lazy import y``. Raise
+:exc:`SyntaxWarning` on ``from . lazy import x`` (with whitespace between
+the dots and a module named ``lazy``).
+
+..
+
+.. date: 2026-06-03-16-27-00
+.. gh-issue: 150858
+.. nonce: j2dSkD
+.. section: Core and Builtins
+
+Fix a data race while changing ``__qualname__`` of a type concurrently on
+free-threaded builds.
+
+..
+
+.. date: 2026-05-29-17-51-11
+.. gh-issue: 144774
+.. nonce: jPcixe
+.. section: Core and Builtins
+
+Fix data race in :class:`BaseException` when an exception is copied while
+being mutated.
+
+..
+
+.. date: 2026-05-26-00-06-30
+.. gh-issue: 150411
+.. nonce: u-d-_5
+.. section: Core and Builtins
+
+Fix a data race in the free-threaded build when :func:`gc.get_count` reads
+the young generation allocation count while another thread updates it.
+
+..
+
+.. date: 2026-05-11-15-58-23
+.. gh-issue: 149689
+.. nonce: 9Ht49z
+.. section: Core and Builtins
+
+Fix missing error propagation in parser action helpers when memory
+allocation fails. Patch by Thomas Kowalski.
+
+..
+
+.. date: 2026-04-29-15-10-59
+.. gh-issue: 149162
+.. nonce: BPPyrq
+.. section: Core and Builtins
+
+Fix a potential deadlock in :c:func:`PyUnicode_InternFromString` and other
+interning functions in the :term:`free-threaded build` when called from C++
+static local initializers.
+
+..
+
+.. date: 2026-04-21-15-07-03
+.. gh-issue: 148825
+.. nonce: AbJzmZ
+.. section: Core and Builtins
+
+Fix build error if specialization is disabled.
+
+..
+
+.. date: 2026-07-14-19-45-21
+.. gh-issue: 153695
+.. nonce: UYdZJZ
+.. section: Library
+
+Hashing a :class:`sqlite3.Row` that contains an unhashable value now raises
+:exc:`TypeError` instead of :exc:`SystemError`. Patch by tonghuaroot.
+
+..
+
+.. date: 2026-07-13-10-27-08
+.. gh-issue: 153658
+.. nonce: A6o4n5
+.. section: Library
+
+Fix :meth:`sqlite3.Connection.iterdump` raising
+:exc:`sqlite3.OperationalError` when a table name contains a single quote.
+Patch by tonghuaroot.
+
+..
+
+.. date: 2026-07-12-00-00-00
+.. gh-issue: 85943
+.. nonce: 8f906e
+.. section: Library
+
+Fix :mod:`struct` functions raising :exc:`BytesWarning` under the ``-bb``
+command line option when a :class:`str` format is used after an equal
+:class:`bytes` format (or vice versa).  The internal format cache no longer
+mixes :class:`str` and :class:`bytes` keys.
+
+..
+
+.. date: 2026-07-09-15-18-23
+.. gh-issue: 151292
+.. nonce: f4NQSW
+.. section: Library
+
+Store the sample count in :mod:`profiling.sampling` binary format, as a
+64-bit integer, widening from previously used 32-bit integer. This breaks
+the existing recordings. Long or thread-heavy profiling sessions will no
+longer fail because of :exc:`OverflowError`. Patch by Maurycy
+Pawłowski-Wieroński.
+
+..
+
+.. date: 2026-07-09-14-00-00
+.. gh-issue: 153417
+.. nonce: Bw7Rq2
+.. section: Library
+
+Error messages from :meth:`imaplib.IMAP4.select` and
+:meth:`imaplib.IMAP4.uid` no longer raise :exc:`BytesWarning` under
+:option:`!-bb` when the mailbox or command argument is :class:`bytes`.
+
+..
+
+.. date: 2026-07-09-00-00-00
+.. gh-issue: 153406
+.. nonce: vyMmB6
+.. section: Library
+
+:func:`email.utils.parsedate_to_datetime` now raises :exc:`ValueError`
+instead of :exc:`OverflowError` when the parsed year or timezone offset is
+out of range, matching its documented behavior.
+
+..
+
+.. date: 2026-07-08-21-15-00
+.. gh-issue: 153333
+.. nonce: Kp3mZq
+.. section: Library
+
+The ``readprofile`` method of :class:`tkinter.Tk` now reads the user's
+profile scripts using the encoding declared in the file, instead of the
+locale encoding.
+
+..
+
+.. date: 2026-07-08-01-47-15
+.. gh-issue: 153083
+.. nonce: XbKZCp
+.. section: Library
+
+Defer GC tracking of an :class:`array.array` to the end of its construction.
+Patch by Donghee Na.
+
+..
+
+.. date: 2026-07-08-01-03-17
+.. gh-issue: 153292
+.. nonce: oHDt3l
+.. section: Library
+
+Fix data race in repr of :class:`threading.RLock` in free-threading build.
+
+..
+
+.. date: 2026-07-07-22-06-52
+.. gh-issue: 153293
+.. nonce: 0DvYdc
+.. section: Library
+
+Fix the live sampling profiler TUI keeping stale aggregated opcode
+statistics after a stats reset.
+
+..
+
+.. date: 2026-07-07-17-50-54
+.. gh-issue: 143990
+.. nonce: FoNtCf
+.. section: Library
+
+A :class:`tkinter.font.Font` created from a named font, including by
+:meth:`~tkinter.font.Font.copy`, now copies its configured options rather
+than the options resolved by Tcl's ``font actual``, preserving a size
+specified in pixels (a negative size).
+
+..
+
+.. date: 2026-07-07-13-31-52
+.. gh-issue: 148286
+.. nonce: -qu-em
+.. section: Library
+
+Fix undefined behavior in
+:attr:`compression.zstd.ZstdDecompressor.unused_data` when a complete frame
+was decompressed in a single call.
+
+..
+
+.. date: 2026-07-07-02-26-43
+.. gh-issue: 153210
+.. nonce: LUXIcm
+.. section: Library
+
+Fix crash on :mod:`array` import under a memory pressure.
+
+..
+
+.. date: 2026-07-06-12-00-00
+.. gh-issue: 153200
+.. nonce: isqrtLt
+.. section: Library
+
+Fix :func:`math.isqrt` returning an incorrect result for arguments not less
+than 2**64 that are instances of an :class:`int` subclass with an overridden
+comparison operator.
+
+..
+
+.. date: 2026-07-05-16-09-31
+.. gh-issue: 153068
+.. nonce: huY9Jh
+.. section: Library
+
+Fix :meth:`!cProfile.Profile.enable` to no longer overwrite errors from
+:mod:`sys.monitoring`.
+
+..
+
+.. date: 2026-07-05-14-30-00
+.. gh-issue: 153062
+.. nonce: teeFT1
+.. section: Library
+
+Fix a crash when concurrently iterating an :func:`itertools.tee` iterator on
+the free-threaded build.
+
+..
+
+.. date: 2026-07-05-12-00-00
+.. gh-issue: 153056
+.. nonce: tMpLat
+.. section: Library
+
+Fix :class:`string.Template` raising a spurious :exc:`ValueError` when the
+*pattern* attribute is a compiled regular expression object, which the
+documentation allows.  On the free-threaded build this also occurred as a
+data race on the first concurrent use.
+
+..
+
+.. date: 2026-07-05-10-24-30
+.. gh-issue: 143921
+.. nonce: wQx3Tn
+.. section: Library
+
+Narrow the control character check in :mod:`imaplib` commands: only NUL, CR
+and LF are now rejected. Other control characters are valid in quoted
+strings and can occur in mailbox names returned by the server, so they are
+now accepted and sent quoted.
+
+..
+
+.. date: 2026-07-04-20-28-51
+.. gh-issue: 153037
+.. nonce: XUSp_g
+.. section: Library
+
+Fix :class:`~compression.zstd.ZstdFile` raising :exc:`AttributeError`
+instead of :exc:`io.UnsupportedOperation` when iterating over a file that is
+not open for reading.
+
+..
+
+.. date: 2026-07-04-13-00-00
+.. gh-issue: 135661
+.. nonce: CIkADG
+.. section: Library
+
+Fix :class:`html.parser.HTMLParser`: an abruptly closed empty comment
+(``<!-->`` or ``<!--->``) no longer extends up to a later ``-->`` in the
+same :meth:`~html.parser.HTMLParser.feed` call.
+
+..
+
+.. date: 2026-07-04-11-14-06
+.. gh-issue: 152851
+.. nonce: diYvTf
+.. section: Library
+
+Prevent a crash when allocation fails while copying a :func:`BLAKE-2s/2b
+<hashlib.blake2b>` object. Patch by Bénédikt Tran.
+
+..
+
+.. date: 2026-07-03-21-10-00
+.. gh-issue: 54930
+.. nonce: hq09Er
+.. section: Library
+
+Error responses of :class:`http.server.BaseHTTPRequestHandler` to malformed
+request lines now include a status line and headers instead of being sent in
+the bare HTTP/0.9 style. Only a valid HTTP/0.9 request (a two-word ``GET``
+request line) now receives an HTTP/0.9 style response.
+
+..
+
+.. date: 2026-07-03-18-30-00
+.. gh-issue: 119592
+.. nonce: mQr3Vx
+.. section: Library
+
+Fix :class:`concurrent.futures.ProcessPoolExecutor` stranding submitted work
+forever when a worker process exited upon reaching its *max_tasks_per_child*
+limit after :meth:`~concurrent.futures.Executor.shutdown` was called with
+``wait=False``: a replacement worker is now spawned and the remaining work
+executed as documented. If the executor has instead been garbage collected
+without ``shutdown()`` (:gh:`152967`), or a replacement worker cannot be
+started, the remaining futures now fail with
+:exc:`~concurrent.futures.process.BrokenProcessPool` instead of never
+resolving. A worker exit racing ``shutdown(wait=False)`` can also no longer
+crash the executor management thread.
+
+..
+
+.. date: 2026-07-03-17-29-34
+.. gh-issue: 150579
+.. nonce: 0tLpQukIU
+.. section: Library
+
+:mod:`concurrent.futures` now uses lazy imports for its executor submodules
+instead of a module ``__getattr__`` hook.
+
+..
+
+.. date: 2026-07-03-14-54-33
+.. gh-issue: 152951
+.. nonce: u8tPCI
+.. section: Library
+
+:class:`collections.deque` prevent rare crash when calling ``extend`` under
+high memory pressure conditions.
+
+..
+
+.. date: 2026-07-02-22-19-53
+.. gh-issue: 150880
+.. nonce: vPZ7jK
+.. section: Library
+
+Normalize non-extended Windows paths before appending the wildcard used by
+``os.listdir()`` and ``os.scandir()``, making paths with trailing spaces
+behave consistently with other filesystem APIs.
+
+..
+
+.. date: 2026-07-02-19-21-15
+.. gh-issue: 152068
+.. nonce: ThsmJU
+.. section: Library
+
+Fixes a bug when a line was split (particularly on macOS Terminal.app) in
+the middle of a colorized keyword, causing the ANSI Color Reset sequence
+(ESC0m) to not be properly printed, causing the output to be colored when it
+shouldn't
+
+..
+
+.. date: 2026-07-02-13-30-00
+.. gh-issue: 152849
+.. nonce: K9dRvP
+.. section: Library
+
+Out-of-range float and integer timestamps now raise :exc:`OverflowError`
+with the same message. Patch by tonghuaroot.
+
+..
+
+.. date: 2026-07-02-12-00-00
+.. gh-issue: 152847
+.. nonce: PitKqc
+.. section: Library
+
+Reject a POSIX TZ transition rule with non-digit characters in the
+day-of-year field in the pure-Python :mod:`zoneinfo` parser. Patch by
+tonghuaroot.
+
+..
+
+.. date: 2026-07-01-12-00-00
+.. gh-issue: 152718
+.. nonce: pr0f1l
+.. section: Library
+
+Fix unbounded memory allocation in the :mod:`profiling.sampling` binary
+profile reader when a file declares more string or frame entries than it
+contains.
+
+..
+
+.. date: 2026-07-01-12-00-00
+.. gh-issue: 108280
+.. nonce: Nq8vTr
+.. section: Library
+
+Connecting :mod:`imaplib` to a server that does not send a valid IMAP4
+greeting (for example a POP3 server answering on the IMAP port) now raises
+an error reporting the server's response instead of ``imaplib.IMAP4.error:
+None``.
+
+..
+
+.. date: 2026-07-01-10-30-00
+.. gh-issue: 63121
+.. nonce: Rm4tZp
+.. section: Library
+
+:mod:`imaplib` now refreshes the cached capability list after a successful
+:meth:`~imaplib.IMAP4.login` or :meth:`~imaplib.IMAP4.authenticate`, using
+the ``CAPABILITY`` response sent by the server or, if none was sent, by
+querying it, so that capabilities that become available only after
+authentication (such as ``ENABLE`` on Gmail) are recognized.  Capabilities
+advertised in the server greeting are now also used, avoiding a redundant
+``CAPABILITY`` command.
+
+..
+
+.. date: 2026-07-01-10-00-00
+.. gh-issue: 88574
+.. nonce: Kz3wQm
+.. section: Library
+
+:mod:`imaplib` no longer fails when a server sends a spurious blank line
+after the counted data of a literal, including after a literal that
+terminates a response (such as a mailbox name returned by ``LIST``). Such
+blank lines are now skipped without swallowing the following line.
+
+..
+
+.. date: 2026-06-30-21-40-00
+.. gh-issue: 152502
+.. nonce: Kq3Vn7
+.. section: Library
+
+Detect the :mod:`curses` mouse interface (:func:`~curses.getmouse`, the
+``BUTTON*`` constants, and others) with a configure capability probe or
+library macros instead of gating it on ncurses-specific macros.  It is now
+also available with other curses implementations that provide it, such as
+NetBSD curses and PDCurses (the latter underpins ``windows-curses``).
+
+..
+
+.. date: 2026-06-30-13-00-00
+.. gh-issue: 151842
+.. nonce: OOM31g
+.. section: Library
+
+Fix a crash in :func:`!_interpreters.capture_exception` when
+:exc:`MemoryError` happens. Patch by Amrutha Modela.
+
+..
+
+.. date: 2026-06-30-12-00-00
+.. gh-issue: 40038
+.. nonce: qK7mGv
+.. section: Library
+
+:mod:`imaplib` now again quotes command arguments when necessary, for
+example mailbox names containing a space.  Such quoting was inadvertently
+disabled when the module was ported to Python 3, and the arguments are now
+quoted according to the :rfc:`3501` grammar.  For backward compatibility, an
+argument already enclosed in double quotes is left unchanged, so code that
+quotes arguments itself keeps working.
+
+..
+
+.. date: 2026-06-29-22-16-57
+.. gh-issue: 50966
+.. nonce: Tq5mLp
+.. section: Library
+
+Fix unbounded recursion in :mod:`turtle` when a mouse event handler that
+moves the turtle is reentered while the screen is being redrawn, for example
+with ``screen.ondrag(turtle.goto)``.  This could previously crash the
+interpreter.
+
+..
+
+.. date: 2026-06-29-09-45-00
+.. gh-issue: 152569
+.. nonce: Kf7Lq2
+.. section: Library
+
+Fix :func:`asyncio.wait` leaking waiting tasks via the await-graph when
+racing a future that never resolves. The waiting task is now discarded from
+every future's ``awaited_by`` set once :func:`~asyncio.wait` returns, even
+for pending futures.
+
+..
+
+.. date: 2026-06-29-01-08-53
+.. gh-issue: 110357
+.. nonce: QGWdZQ
+.. section: Library
+
+Importing :mod:`hashlib` no longer logs an error to stderr when a normally
+guaranteed hash algorithm is unavailable in the current runtime (for example
+under an OpenSSL FIPS configuration or a build using
+:option:`--without-builtin-hashlib-hashes <--with-builtin-hashlib-hashes>`).
+Code that actually uses the missing algorithm still gets a clear
+:exc:`ValueError`.
+
+..
+
+.. date: 2026-06-28-12-45-09
+.. gh-issue: 152356
+.. nonce: Dr4w2Q
+.. section: Library
+
+Fix a hang in ``profiling.sampling run --blocking`` on Windows when the
+target process exits. The profiler now finalizes binary profiles instead of
+continuing to sample the exited process.
+
+..
+
+.. date: 2026-06-28-11-00-40
+.. gh-issue: 78335
+.. nonce: Kp3mWq
+.. section: Library
+
+Update the docstrings of :mod:`tkinter` and :mod:`tkinter.ttk` widget
+classes to list all supported widget options, including options added in Tk
+9.0 and 9.1.  ``tkinter.Menubutton`` and ``tkinter.Message`` previously had
+no option list at all.
+
+..
+
+.. date: 2026-06-27-17-19-09
+.. gh-issue: 151126
+.. nonce: huUyOM
+.. section: Library
+
+Fix two crashes in :mod:`tkinter` and :mod:`socket` modules initialization
+under a memory pressure. Sets missing :exc:`MemoryError`.
+
+..
+
+.. date: 2026-06-27-12-30-00
+.. gh-issue: 133031
+.. nonce: Na8Bit
+.. section: Library
+
+:class:`curses.textpad.Textbox` now enters and reads back the non-ASCII
+characters of an 8-bit locale encoding, instead of mangling them with a
+7-bit mask.
+
+..
+
+.. date: 2026-06-26-23-56-40
+.. gh-issue: 71880
+.. nonce: 782D31
+.. section: Library
+
+:class:`curses.textpad.Textbox` now lets the lower-right cell of the window
+be edited.  Writing it with :meth:`~curses.window.addch` would move the
+cursor past the end of the window, raising an error and scrolling a
+scrollable window, so it is now written with :meth:`~curses.window.insch`,
+which keeps the cursor in place.
+
+..
+
+.. date: 2026-06-26-16-30-00
+.. gh-issue: 83274
+.. nonce: Kx9mQv
+.. section: Library
+
+Deallocating a :mod:`tkinter` application from a thread other than the one
+it was created in no longer crashes the interpreter.  The underlying Tcl
+interpreter is leaked instead, and a :exc:`RuntimeWarning` is reported.
+
+..
+
+.. date: 2026-06-26-15-41-34
+.. gh-issue: 152305
+.. nonce: WnbbBc
+.. section: Library
+
+Fix the pure-Python :meth:`datetime.time.strftime` implementation raising
+:exc:`AttributeError` for the year directives. Patch by tonghuaroot.
+
+..
+
+.. date: 2026-06-26-15-30-00
+.. gh-issue: 88758
+.. nonce: Qw7nLp
+.. section: Library
+
+:meth:`!tkinter.Misc.focus_get`, :meth:`!focus_displayof`,
+:meth:`!focus_lastfor` and :meth:`!winfo_containing` now return ``None``
+instead of raising :exc:`KeyError` when the widget was not created by
+:mod:`tkinter` (for example a torn-off menu).
+
+..
+
+.. date: 2026-06-26-15-00-00
+.. gh-issue: 38464
+.. nonce: yDPjKH
+.. section: Library
+
+:meth:`!tkinter.Misc.nametowidget` now resolves the auto-generated names of
+cloned menus (a menu used as a menubar or a cascade) back to the original
+widget.
+
+..
+
+.. date: 2026-06-26-13-39-11
+.. gh-issue: 152248
+.. nonce: N2Rmaf
+.. section: Library
+
+Make the C and pure-Python :mod:`zoneinfo` parsers validate POSIX TZ
+abbreviations consistently, rejecting unquoted abbreviations with non-letter
+characters and empty quoted abbreviations. Patch by tonghuaroot.
+
+..
+
+.. date: 2026-06-26-13-10-00
+.. gh-issue: 80937
+.. nonce: Hq3mNp
+.. section: Library
+
+Fix a memory leak in :mod:`tkinter` when a Tcl command created with
+``createcommand`` was not explicitly removed before the interpreter was
+deleted.  The command no longer keeps the interpreter alive through a
+reference cycle.
+
+..
+
+.. date: 2026-06-26-12-50-26
+.. gh-issue: 152246
+.. nonce: MfXMd1
+.. section: Library
+
+Fix the pure-Python :mod:`zoneinfo` parser accepting an invalid POSIX TZ
+transition rule with a non-period separator. Patch by tonghuaroot.
+
+..
+
+.. date: 2026-06-25-20-00-00
+.. gh-issue: 151496
+.. nonce: kMnT3x
+.. section: Library
+
+Fixed ``profiling.sampling --gecko`` with ``--async-aware`` by flattening
+async task stacks before generating Gecko samples. ``--binary`` now rejects
+``--async-aware`` until the binary format supports async task data.
+
+..
+
+.. date: 2026-06-25-14-32-43
+.. gh-issue: 139816
+.. nonce: Lq2vXa
+.. section: Library
+
+Fix a hang in :mod:`tkinter` on interactive Python built without
+:mod:`readline`.  An exception raised in a callback no longer causes the
+event loop to stop and wait for the user to press Enter; pending callbacks
+now keep running until input is actually available on stdin.
+
+..
+
+.. date: 2026-06-25-14-32-42
+.. gh-issue: 139145
+.. nonce: kT9rmP
+.. section: Library
+
+Fix a busy loop in :mod:`tkinter` on interactive Python.  When a Tcl command
+running its own event loop (such as ``vwait`` or :meth:`!wait_variable`) was
+active and input arrived on stdin, the event loop kept spinning at 100% CPU.
+The stdin file handler is now removed as soon as input is available.  Based
+on a patch by Michiel de Hoon.
+
+..
+
+.. date: 2026-06-25-12-00-00
+.. gh-issue: 152212
+.. nonce: Zk7Qm2
+.. section: Library
+
+Fix the pure-Python :mod:`zoneinfo` parser accepting a POSIX TZ string with
+a ``std`` abbreviation but no offset. This is invalid per POSIX and now
+raises :exc:`ValueError`, matching the C accelerator. Patch by tonghuaroot.
+
+..
+
+.. date: 2026-06-25-10-07-54
+.. gh-issue: 152156
+.. nonce: gscPU9
+.. section: Library
+
+Fix a possible crash in :func:`concurrent.interpreters.create` under limited
+memory conditions.
+
+..
+
+.. date: 2026-06-25-07-08-17
+.. gh-issue: 152157
+.. nonce: dt5Ef0
+.. section: Library
+
+The C implementations of :meth:`~datetime.datetime.fromisoformat` and
+:meth:`~datetime.time.fromisoformat` now reject a decimal separator that is
+not followed by any fractional digit before a timezone designator.
+
+..
+
+.. date: 2026-06-25-01-00-43
+.. gh-issue: 151763
+.. nonce: wWeHBe
+.. section: Library
+
+Fix crash in :func:`!_interpqueues.create` whe :exc:`MemoryError` happens on
+queue creation.
+
+..
+
+.. date: 2026-06-24-23-28-42
+.. gh-issue: 151669
+.. nonce: tPUavQ
+.. section: Library
+
+On Windows, when populating tar archives from filesystem content, to conform
+to the tar format standard, backslashes in symlink targets are be replaced
+by slashes.
+
+..
+
+.. date: 2026-06-24-22-16-35
+.. gh-issue: 105895
+.. nonce: hRkuEw
+.. section: Library
+
+Add :keyword:`match` and :keyword:`case` to the list of supported topics by
+:func:`help`.
+
+..
+
+.. date: 2026-06-24-16-40-15
+.. gh-issue: 151378
+.. nonce: iYWa_6
+.. section: Library
+
+Fix a bug in the binary collector in Tachyon that caused unbounded memory
+growth while profiling a thread that stayed asleep. Patch by Maurycy
+Pawłowski-Wieroński.
+
+..
+
+.. date: 2026-06-24-12-00-00
+.. gh-issue: 152079
+.. nonce: f1tzus
+.. section: Library
+
+Fix :meth:`datetime.datetime.fromisoformat` in the C implementation dropping
+the sub-second part of a UTC offset whose whole-second part is zero,
+matching the pure-Python implementation.
+
+..
+
+.. date: 2026-06-24-12-00-00
+.. gh-issue: 152052
+.. nonce: yBssDE
+.. section: Library
+
+The :mod:`json` C accelerator now correctly reports an unterminated string
+for a ``\uXXXX`` escape at the end of the input.
+
+..
+
+.. date: 2026-06-24-10-46-35
+.. gh-issue: 152060
+.. nonce: f2asrt
+.. section: Library
+
+Fix :meth:`datetime.datetime.fromisoformat` raising :exc:`AssertionError`
+instead of :exc:`ValueError` for some malformed strings in the pure-Python
+implementation, matching the C implementation.
+
+..
+
+.. date: 2026-06-23-17-14-04
+.. gh-issue: 127802
+.. nonce: nGSxo6
+.. section: Library
+
+The deprecated :class:`tkinter.Variable` methods :meth:`!trace_variable`,
+:meth:`!trace`, :meth:`!trace_vdelete` and :meth:`!trace_vinfo` are now
+scheduled for removal in Python 3.17.
+
+..
+
+.. date: 2026-06-23-13-27-14
+.. gh-issue: 126219
+.. nonce: kOfv2g
+.. section: Library
+
+Fixed a crash in :class:`tkinter.Tk` when *className* contains a non-BMP
+character and tkinter is built against Tcl/Tk 8.x.  Such a name is now
+rejected with a :exc:`ValueError`.
+
+..
+
+.. date: 2026-06-21-15-50-24
+.. gh-issue: 86165
+.. nonce: dyac1G
+.. section: Library
+
+Fix :func:`imaplib.Time2Internaldate` to use the local timezone offset for
+``time.struct_time`` values with ``tm_gmtoff`` set to ``None``, as returned
+by ``datetime.datetime.timetuple()``. Contributed by Xiao Yuan.
+
+..
+
+.. date: 2026-06-20-21-15-13
+.. gh-issue: 151814
+.. nonce: OIbgsO
+.. section: Library
+
+Fix unbounded memory growth in :class:`io.TextIOWrapper` when repeatedly
+writing an empty string.
+
+..
+
+.. date: 2026-06-18-23-59-46
+.. gh-issue: 151596
+.. nonce: 5ma144
+.. section: Library
+
+Add missing ``size`` positional argument to the pure-Python implementation
+of :meth:`io.TextIOBase.readline`.
+
+..
+
+.. date: 2026-06-18-12-48-03
+.. gh-issue: 151640
+.. nonce: R4c3Fx
+.. section: Library
+
+Fix a data race in :class:`io.BytesIO` in free-threaded builds when
+whole-buffer reads or peeks, or :meth:`~io.BytesIO.getvalue`, share the
+internal buffer with concurrent writes.
+
+..
+
+.. date: 2026-06-17-22-31-57
+.. gh-issue: 151613
+.. nonce: n0nua1
+.. section: Library
+
+Fix another way the Tachyon profiler frame cache could produce impossible
+mixed stack traces when ``_PyInterpreterFrame`` addresses are reused, by
+validating cached frame anchors with a sequence counter.
+
+..
+
+.. date: 2026-06-17-00-00-00
+.. gh-issue: 148660
+.. nonce: odcopy
+.. section: Library
+
+Fix a crash in :meth:`!collections.OrderedDict.copy` when a key's ``__eq__``
+or a subclass method mutates the dict during the copy.  Now raises
+:exc:`RuntimeError` instead, as iteration does.
+
+..
+
+.. date: 2026-06-15-15-32-36
+.. gh-issue: 151497
+.. nonce: 1cfmSV
+.. section: Library
+
+Opening a :mod:`tarfile` archive no longer attempts to pre-allocate a huge
+buffer when a crafted or truncated member claims an oversized extended
+header (a GNU long name/link or a pax header).  The extended header is now
+read in bounded chunks, so its size field can no longer trigger memory
+exhaustion.
+
+..
+
+.. date: 2026-06-12-00-00-00
+.. gh-issue: 151416
+.. nonce: spawnUA
+.. section: Library
+
+Fix a crash in :func:`os.spawnv` and :func:`os.spawnve` when an *argv*
+item's :meth:`~os.PathLike.__fspath__` method mutates the *argv* list during
+argument conversion.  :func:`!os.spawnv` argument conversion errors other
+than :exc:`TypeError`, such as the :exc:`ValueError` for an embedded null,
+are no longer replaced with a generic :exc:`TypeError`.
+
+..
+
+.. date: 2026-06-11-06-56-31
+.. gh-issue: 150994
+.. nonce: gd1wVw
+.. section: Library
+
+Make type annotations in the private ``_colorize`` module resolvable.
+
+..
+
+.. date: 2026-06-06-06-29-17
+.. gh-issue: 150994
+.. nonce: I2119M
+.. section: Library
+
+Make the type annotations in the private ``_colorize`` module resolvable.
+
+..
+
+.. date: 2026-06-03-19-35-32
+.. gh-issue: 150583
+.. nonce: dedI24
+.. section: Library
+
+Correctly set the default compression level in :mod:`compression.zstd` when
+passing a digested dictionary during compression.
+
+..
+
+.. date: 2026-05-31-14-39-25
+.. gh-issue: 150641
+.. nonce: LLIhd1
+.. section: Library
+
+Fix bug where :func:`typing.evaluate_forward_ref` with the ``STRING`` format
+could leak internal names used by the annotation machinery.
+
+..
+
+.. date: 2026-05-18-12-42-31
+.. gh-issue: 149816
+.. nonce: F98iME
+.. section: Library
+
+Fix a potential use after free condition in :func:`pickle.dumps` in
+free-threaded mode when serializing lists.
+
+..
+
+.. date: 2026-03-26-00-00-00
+.. gh-issue: 47005
+.. nonce: xxc89c
+.. section: Library
+
+Fix :meth:`!urllib.request.AbstractHTTPHandler.do_open` to give regular
+headers set via :meth:`~urllib.request.Request.add_header` priority over
+unredirected headers, consistent with
+:meth:`~urllib.request.Request.get_header` and
+:meth:`~urllib.request.Request.header_items`.
+
+..
+
+.. date: 2026-02-11-16-47-27
+.. gh-issue: 140729
+.. nonce: 2uTPQp
+.. section: Library
+
+Fix a pickling error in the ``cProfile`` module when profiling a script that
+uses :class:`multiprocessing.Process` with the ``spawn`` and ``forkserver``
+start methods.
+
+..
+
+.. date: 2025-11-02-05-28-56
+.. gh-issue: 115634
+.. nonce: JbcNnF
+.. section: Library
+
+Fix a deadlock in :class:`concurrent.futures.ProcessPoolExecutor` when using
+``max_tasks_per_child``, present since the feature was introduced in Python
+3.11. The executor stopped scheduling queued tasks after a worker process
+exited upon reaching its task limit. Based on a fix proposed by Tabrez
+Mohammed.
+
+..
+
+.. date: 2025-09-05-20-50-35
+.. gh-issue: 79638
+.. nonce: Y-JfaH
+.. section: Library
+
+Disallow all access in :mod:`urllib.robotparser` if the ``robots.txt`` file
+is unreachable due to server or network errors.
+
+..
+
+.. date: 2023-06-12-21-31-02
+.. gh-issue: 105708
+.. nonce: 5fFwP8
+.. section: Library
+
+Accept an uppercase V prefix in IPvFuture addresses in
+:func:`urllib.parse.urlsplit`.
+
+..
+
+.. date: 2026-06-22-19-45-00
+.. gh-issue: 151626
+.. nonce: K9pZ2x
+.. section: Tests
+
+Fix several tests in ``test.test_inspect``, ``test.test_import``,
+``test.test_importlib``, ``test.test_py_compile`` and
+``test.test_compileall`` that failed when the test suite was run with
+:envvar:`PYTHONPYCACHEPREFIX` set.  These tests now neutralize the pycache
+prefix where they assume the default ``__pycache__`` bytecode layout.
+
+..
+
+.. date: 2026-06-16-05-11-38
+.. gh-issue: 151096
+.. nonce: Kq3Lp9
+.. section: Tests
+
+Fix ``test_embed`` failing when CPython is configured with a split exec
+prefix (``--exec-prefix`` differing from ``--prefix``).
+
+..
+
+.. date: 2026-07-11-07-26-16
+.. gh-issue: 126877
+.. nonce: Zt7Kq2
+.. section: Build
+
+Fix the :program:`configure` check for Tcl/Tk which could wrongly succeed
+with optimizing compilers when the libraries are missing.
+
+..
+
+.. date: 2026-07-09-22-45-00
+.. gh-issue: 153438
+.. nonce: Qr7N2p
+.. section: Build
+
+Update Windows build and installer tooling and documentation to use the
+current download URL for ``nuget.exe``.
+
+..
+
+.. date: 2026-07-02-16-25-13
+.. gh-issue: 152870
+.. nonce: oh9eD1
+.. section: Build
+
+Fix a compilation error in the :mod:`decimal` C extension (``_decimal``)
+when it is built with ``EXTRA_FUNCTIONALITY``. ``Context.apply()`` called
+the internal ``_apply`` helper using its pre-Argument-Clinic signature; the
+call is now made through the generated ``_impl`` function.
+
+..
+
+.. date: 2026-07-01-17-53-00
+.. gh-issue: 152769
+.. nonce: Kp7mQ2
+.. section: Build
+
+Enable the :ref:`perf profiler <perf_profiling>` trampoline on Alpine Linux
+with the musl C library on ``x86_64`` and ``aarch64``. The trampoline is
+architecture-specific and does not depend on the C library, so the same
+assembly trampoline used for glibc is reused for musl.
+
+..
+
+.. date: 2026-06-28-16-17-55
+.. gh-issue: 152502
+.. nonce: 6SNqMg
+.. section: Build
+
+The :mod:`curses` module now detects ``set_escdelay()``, ``set_tabsize()``
+and the ``ESCDELAY`` and ``TABSIZE`` variables with :program:`configure`
+capability probes instead of the ncurses-specific ``NCURSES_EXT_FUNCS``
+macro, so they are exposed when building against other curses
+implementations such as NetBSD curses that provide them.
+
+..
+
+.. date: 2026-04-21-16-07-11
+.. gh-issue: 140146
+.. nonce: TAcUHA
+.. section: Windows
+
+Prevent :mod:`tkinter` from hanging on Windows if stdin is redirected to a
+pipe in an interactive session. This is helpful for testing interactive
+usage of tkinter from a script, for example as part of the cpython test
+suite.
+
+..
+
+.. date: 2026-07-17-23-35-36
+.. gh-issue: 124111
+.. nonce: dmM4lk
+.. section: macOS
+
+Update macOS installer to use Tcl/Tk 9.0.4.
+
+..
+
+.. date: 2026-07-17-23-20-27
+.. gh-issue: 152023
+.. nonce: QAAgdj
+.. section: macOS
+
+Update macOS installer builds to SQLite 3.53.3. Enable median() and
+percentile() functions.
+
+..
+
+.. date: 2026-07-01-19-00-00
+.. gh-issue: 82183
+.. nonce: rNsTrt
+.. section: IDLE
+
+When the shell is busy running code, using "Run... Customized" with "Restart
+shell" unchecked now reports that the shell is executing instead of
+restarting it anyway.
+
+..
+
+.. date: 2026-07-01-18-00-00
+.. gh-issue: 83653
+.. nonce: cFgInt
+.. section: IDLE
+
+Blanking an integer entry in IDLE's Settings dialog, such as "Auto squeeze
+min lines", no longer saves an empty string as an invalid configuration
+value.
+
+..
+
+.. date: 2026-07-01-17-00-00
+.. gh-issue: 65339
+.. nonce: oUtTxt
+.. section: IDLE
+
+Saving the IDLE Shell or an Output window now defaults to a ``.txt``
+extension and lists text files before Python files, since their content is
+not Python source.
+
+..
+
+.. date: 2026-07-01-16-00-00
+.. gh-issue: 80504
+.. nonce: gReP
+.. section: IDLE
+
+The "In files:" field of IDLE's Find in Files dialog now always contains a
+full directory path, even for an unsaved editor or the Shell.  This shows in
+the grep output which directory was searched.
+
+..
+
+.. date: 2026-07-01-15-00-00
+.. gh-issue: 134300
+.. nonce: iDlPaT
+.. section: IDLE
+
+Do not add the ``idlelib`` directory to the path of the IDLE user process.
+User code run in IDLE can no longer import ``idlelib`` submodules as
+top-level modules, such as ``import help``.
+
+..
+
+.. date: 2026-07-01-14-00-00
+.. gh-issue: 89360
+.. nonce: mUlTiC
+.. section: IDLE
+
+Fix a rare crash in the IDLE editor when the completion window is closed:
+deleting a key binding for a sequence that is not bound to the virtual event
+is now ignored instead of raising a ``ValueError``.
+
+..
+
+.. date: 2026-07-01-12-00-00
+.. gh-issue: 71956
+.. nonce: rPlAlL
+.. section: IDLE
+
+Fix Replace All in the IDLE editor's Replace dialog when the search
+direction is "Up" and "Wrap around" is off: it now replaces all matches
+above the current position instead of only the first one.
+
+..
+
+.. date: 2026-07-01-00-15-58
+.. gh-issue: 152728
+.. nonce: yxIhMN
+.. section: IDLE
+
+Move functions run.fix_scaling, editor.fixwordbreaks (as fix_word_breaks)
+and pyshell.fix_x11_paste to idlelib.util.
+
+..
+
+.. date: 2026-07-01-00-00-00
+.. gh-issue: 66331
+.. nonce: wMcLaS
+.. section: IDLE
+
+Set the ``WM_CLASS`` window property of IDLE's windows to ``Idle`` on X11,
+so that window managers group and label them correctly instead of using the
+default ``Toplevel``.
+
+..
+
+.. date: 2026-06-28-06-46-46
+.. gh-issue: 85320
+.. nonce: Hq2vKn
+.. section: IDLE
+
+IDLE now reads and writes its configuration files and the breakpoints file
+using UTF-8 instead of the locale encoding.  This keeps non-ASCII data (such
+as non-ASCII paths) from being corrupted and makes the files portable
+between environments.
+
+..
+
+.. date: 2026-07-09-17-33-29
+.. gh-issue: 152132
+.. nonce: Ma8MJZ
+.. section: C API
+
+Fix :c:func:`Py_RunMain` to return an exit code, rather than calling
+:c:func:`Py_Exit`, when running a script, a command, or the REPL. Patch by
+Victor Stinner.
+
+..
+
+.. date: 2026-07-09-16-46-30
+.. gh-issue: 145633
+.. nonce: jyNwAs
+.. section: C API
+
+:c:func:`PyFloat_Pack8` and ``PyFloat_Unpack*`` functions are no longer
+guaranteed to always succeed on CPython.
+
+..
+
+.. date: 2026-07-08-00-38-32
+.. gh-issue: 153300
+.. nonce: lVoWyR
+.. section: C API
+
+:c:func:`PyConfig_Set()` now also set global configuration variables. For
+example, ``PyConfig_Set("inspect", value)`` now also sets
+:c:var:`Py_InspectFlag`. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Build/2026-06-28-16-17-55.gh-issue-152502.6SNqMg.rst b/Misc/NEWS.d/next/Build/2026-06-28-16-17-55.gh-issue-152502.6SNqMg.rst
deleted file mode 100644 (file)
index cc0fabe..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-The :mod:`curses` module now detects ``set_escdelay()``, ``set_tabsize()`` and
-the ``ESCDELAY`` and ``TABSIZE`` variables with :program:`configure` capability
-probes instead of the ncurses-specific ``NCURSES_EXT_FUNCS`` macro, so they are
-exposed when building against other curses implementations such as NetBSD curses
-that provide them.
diff --git a/Misc/NEWS.d/next/Build/2026-07-01-17-53-00.gh-issue-152769.Kp7mQ2.rst b/Misc/NEWS.d/next/Build/2026-07-01-17-53-00.gh-issue-152769.Kp7mQ2.rst
deleted file mode 100644 (file)
index 04a6ef4..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Enable the :ref:`perf profiler <perf_profiling>` trampoline on Alpine Linux with the
-musl C library on ``x86_64`` and ``aarch64``. The
-trampoline is architecture-specific and does not depend on the C library, so
-the same assembly trampoline used for glibc is reused for musl.
diff --git a/Misc/NEWS.d/next/Build/2026-07-02-16-25-13.gh-issue-152870.oh9eD1.rst b/Misc/NEWS.d/next/Build/2026-07-02-16-25-13.gh-issue-152870.oh9eD1.rst
deleted file mode 100644 (file)
index eaddd22..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix a compilation error in the :mod:`decimal` C extension (``_decimal``) when
-it is built with ``EXTRA_FUNCTIONALITY``. ``Context.apply()`` called the
-internal ``_apply`` helper using its pre-Argument-Clinic signature; the call is
-now made through the generated ``_impl`` function.
diff --git a/Misc/NEWS.d/next/Build/2026-07-09-22-45-00.gh-issue-153438.Qr7N2p.rst b/Misc/NEWS.d/next/Build/2026-07-09-22-45-00.gh-issue-153438.Qr7N2p.rst
deleted file mode 100644 (file)
index edab8e6..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Update Windows build and installer tooling and documentation to use the
-current download URL for ``nuget.exe``.
diff --git a/Misc/NEWS.d/next/Build/2026-07-11-07-26-16.gh-issue-126877.Zt7Kq2.rst b/Misc/NEWS.d/next/Build/2026-07-11-07-26-16.gh-issue-126877.Zt7Kq2.rst
deleted file mode 100644 (file)
index 1d7d4fa..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix the :program:`configure` check for Tcl/Tk which could wrongly succeed
-with optimizing compilers when the libraries are missing.
diff --git a/Misc/NEWS.d/next/C_API/2026-07-08-00-38-32.gh-issue-153300.lVoWyR.rst b/Misc/NEWS.d/next/C_API/2026-07-08-00-38-32.gh-issue-153300.lVoWyR.rst
deleted file mode 100644 (file)
index 3c19c0e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-:c:func:`PyConfig_Set()` now also set global configuration variables. For
-example, ``PyConfig_Set("inspect", value)`` now also sets
-:c:var:`Py_InspectFlag`. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/C_API/2026-07-09-16-46-30.gh-issue-145633.jyNwAs.rst b/Misc/NEWS.d/next/C_API/2026-07-09-16-46-30.gh-issue-145633.jyNwAs.rst
deleted file mode 100644 (file)
index cdb6837..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-:c:func:`PyFloat_Pack8` and ``PyFloat_Unpack*`` functions are no longer
-guaranteed to always succeed on CPython.
diff --git a/Misc/NEWS.d/next/C_API/2026-07-09-17-33-29.gh-issue-152132.Ma8MJZ.rst b/Misc/NEWS.d/next/C_API/2026-07-09-17-33-29.gh-issue-152132.Ma8MJZ.rst
deleted file mode 100644 (file)
index 633c41e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix :c:func:`Py_RunMain` to return an exit code, rather than calling
-:c:func:`Py_Exit`, when running a script, a command, or the REPL. Patch by
-Victor Stinner.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-21-15-07-03.gh-issue-148825.AbJzmZ.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-21-15-07-03.gh-issue-148825.AbJzmZ.rst
deleted file mode 100644 (file)
index 5cf727b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix build error if specialization is disabled.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-04-29-15-10-59.gh-issue-149162.BPPyrq.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-04-29-15-10-59.gh-issue-149162.BPPyrq.rst
deleted file mode 100644 (file)
index b4c443e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix a potential deadlock in :c:func:`PyUnicode_InternFromString` and other
-interning functions in the :term:`free-threaded build` when called from C++
-static local initializers.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-05-11-15-58-23.gh-issue-149689.9Ht49z.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-05-11-15-58-23.gh-issue-149689.9Ht49z.rst
deleted file mode 100644 (file)
index aa67276..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix missing error propagation in parser action helpers when memory allocation
-fails. Patch by Thomas Kowalski.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-05-26-00-06-30.gh-issue-150411.u-d-_5.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-05-26-00-06-30.gh-issue-150411.u-d-_5.rst
deleted file mode 100644 (file)
index 5b19a4f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix a data race in the free-threaded build when :func:`gc.get_count` reads
-the young generation allocation count while another thread updates it.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-05-29-17-51-11.gh-issue-144774.jPcixe.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-05-29-17-51-11.gh-issue-144774.jPcixe.rst
deleted file mode 100644 (file)
index 3dd117e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix data race in :class:`BaseException` when an exception is copied while being mutated.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-03-16-27-00.gh-issue-150858.j2dSkD.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-03-16-27-00.gh-issue-150858.j2dSkD.rst
deleted file mode 100644 (file)
index dcb932b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix a data race while changing ``__qualname__`` of a type concurrently on free-threaded builds.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-03-21-14-28.gh-issue-150459.qpsCEl.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-03-21-14-28.gh-issue-150459.qpsCEl.rst
deleted file mode 100644 (file)
index a3e3e38..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix :exc:`SyntaxError` error message for ``from x lazy import y``.
-Raise :exc:`SyntaxWarning` on ``from . lazy import x``
-(with whitespace between the dots and a module named ``lazy``).
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-06-20-15-08.gh-issue-151029.A33CKK.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-06-20-15-08.gh-issue-151029.A33CKK.rst
deleted file mode 100644 (file)
index cbfe595..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-On Linux, fix :func:`sys.remote_exec` unable to find remote writable memory
-when ``libpython`` replaced on disk.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-17-16-46-07.gh-issue-151126.vhTL0T.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-17-16-46-07.gh-issue-151126.vhTL0T.rst
deleted file mode 100644 (file)
index 6f2d230..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Avoid possible crash in ``_winapi.c`` where a device has no memory left. Now
-it properly raises a :exc:`MemoryError`. Patch by Ivy Xu.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-18-00-00-00.gh-issue-151644.5cFffN.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-18-00-00-00.gh-issue-151644.5cFffN.rst
deleted file mode 100644 (file)
index ff5058e..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix a data race in :func:`sys.setdlopenflags` and :func:`sys.getdlopenflags`
-when called concurrently in the free-threaded build. The underlying
-``_PyImport_GetDLOpenFlags`` and ``_PyImport_SetDLOpenFlags`` functions now
-use atomic load/store operations.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-18-16-00-10.gh-issue-151126.tBqn6I.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-18-16-00-10.gh-issue-151126.tBqn6I.rst
deleted file mode 100644 (file)
index d495df4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix a crash when sharing :class:`memoryview` objects between interpreters
-fails due to running out of memory. It now raises a proper
-:exc:`MemoryError`.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-19-16-40-01.gh-issue-151619.35yyJW.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-19-16-40-01.gh-issue-151619.35yyJW.rst
deleted file mode 100644 (file)
index 28ba203..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix an issue where using non-module global or builtin namespaces (such as
-dictionaries passed to :func:`exec`) could cause cached global loads to
-produce unresolved :ref:`lazy imports <lazy-imports>`.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-20-10-01-26.gh-issue-151672.K-w7j0.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-20-10-01-26.gh-issue-151672.K-w7j0.rst
deleted file mode 100644 (file)
index 4f4823d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix an inconsistency where calling ``__lazy_import__`` with a string
-``fromlist`` would return a :class:`types.LazyImportType` that resolves to
-the named member, rather than the module being imported.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-21-16-00-00.gh-issue-151773.mN4kRt.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-21-16-00-00.gh-issue-151773.mN4kRt.rst
deleted file mode 100644 (file)
index b4193c5..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix a crash in :func:`contextvars.ContextVar.set` when memory allocation
-fails.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-22-14-48-22.gh-issue-151912.YcxfnU.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-22-14-48-22.gh-issue-151912.YcxfnU.rst
deleted file mode 100644 (file)
index 07b7394..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fixed a crash in ``type()`` when selecting a metaclass whose ``tp_new`` slot is ``NULL``. Such metaclasses are now rejected with ``TypeError`` instead of causing a NULL pointer dereference.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-23-12-03-55.gh-issue-151763.K7QfWG.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-23-12-03-55.gh-issue-151763.K7QfWG.rst
deleted file mode 100644 (file)
index 64d0146..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix a potential crash in :func:`compile`, :func:`exec`, :func:`eval` and
-:func:`ast.parse` when an allocation fails: the parser or compiler could
-return without setting an exception.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-23-19-50-22.gh-issue-152020.DTKXjR.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-23-19-50-22.gh-issue-152020.DTKXjR.rst
deleted file mode 100644 (file)
index 93c716f..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-On the free-threaded build, :func:`asyncio.all_tasks` no longer loses
-eager-started tasks when called from a thread other than the one running the
-event loop.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-23-23-48-54.gh-issue-151763.Eu8pYQ.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-23-23-48-54.gh-issue-151763.Eu8pYQ.rst
deleted file mode 100644 (file)
index d4746e9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fixes possible crash on :class:`types.CodeType` deallocation.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-24-13-36-31.gh-issue-151722.lWKfE1.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-24-13-36-31.gh-issue-151722.lWKfE1.rst
deleted file mode 100644 (file)
index db50b00..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-:meth:`!frozendict.fromkeys` now only tracks the :class:`frozendict` in the
-garbage collector once the dictionary is fully initialized. Patch by Donghee Na
-and Victor Stinner.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-25-21-34-15.gh-issue-152228.a6K14K.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-25-21-34-15.gh-issue-152228.a6K14K.rst
deleted file mode 100644 (file)
index 8af7ae0..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix an assertion failure when python is built in a debug mode
-that happened in :meth:`str.replace` under a limited memory situation.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-05-49-13.gh-issue-152235.YU20T9.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-05-49-13.gh-issue-152235.YU20T9.rst
deleted file mode 100644 (file)
index 8d386ad..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Defer GC tracking of a :class:`set` or :class:`frozenset` to the end of its
-construction from iterable. Patch by Donghee Na.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-22-03-16.gh-issue-152235.ZKWiWk.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-22-03-16.gh-issue-152235.ZKWiWk.rst
deleted file mode 100644 (file)
index ff89a24..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Defer GC tracking of :meth:`set.intersection`, :meth:`set.difference`,
-:meth:`set.symmetric_difference`, :meth:`set.union` and ``set.__sub__``.
-Patch by Donghee Na.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-27-10-05-12.gh-issue-152375.L-ZBk6.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-27-10-05-12.gh-issue-152375.L-ZBk6.rst
deleted file mode 100644 (file)
index db6ae30..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix undefined behaviour when a :mod:`sys.monitoring` callback raised an
-exception while the program was following a branch or loop.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-28-14-31-03.gh-issue-152492._09Zee.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-28-14-31-03.gh-issue-152492._09Zee.rst
deleted file mode 100644 (file)
index 16cb5a2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-:type:`collections.OrderedDict` ``update`` method can now accept :type:`frozendict` as an argument.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-28-14-39-05.gh-issue-152405.-_3YRo.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-28-14-39-05.gh-issue-152405.-_3YRo.rst
deleted file mode 100644 (file)
index d7c473c..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Do not expose the internal mapping of :class:`types.MappingProxyType`
-when performing rich-compare operations with non-stdlib types.
-Previously, it was possible to mutate the internal mapping of a proxy there.
-Now we pass not the original :class:`dict` instance, but its copy,
-when dealing with custom types.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-29-23-29-14.gh-issue-152635.O21J0O.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-29-23-29-14.gh-issue-152635.O21J0O.rst
deleted file mode 100644 (file)
index dadb25f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix a crash caused when running out of memory creating a
-:mod:`!_interpchannels` channel. Now a :exc:`MemoryError` is correctly raised.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-30-14-00-00.gh-issue-152682.yId7e5.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-30-14-00-00.gh-issue-152682.yId7e5.rst
deleted file mode 100644 (file)
index aba0b59..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix NULL pointer dereference in :func:`compile` when a reserved name (e.g.
-``__classdict__``) is used as a type parameter name and memory allocation
-fails while formatting the error message.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-07-07-04-16-48.gh-issue-153205.5fE8QZ.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-07-07-04-16-48.gh-issue-153205.5fE8QZ.rst
deleted file mode 100644 (file)
index 9ccfbff..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix a potential :exc:`SystemError` during vector calls when memory allocation fails.
-A :exc:`MemoryError` is now raised instead.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-07-08-13-23-11.gh-issue-153298.wvcXxN.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-07-08-13-23-11.gh-issue-153298.wvcXxN.rst
deleted file mode 100644 (file)
index 38d5488..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fixes a data race in :class:`types.GenericAlias` ``__parameters__``
-initialization on free-threading builds.
diff --git a/Misc/NEWS.d/next/IDLE/2026-06-28-06-46-46.gh-issue-85320.Hq2vKn.rst b/Misc/NEWS.d/next/IDLE/2026-06-28-06-46-46.gh-issue-85320.Hq2vKn.rst
deleted file mode 100644 (file)
index ec34bf8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-IDLE now reads and writes its configuration files and the breakpoints file
-using UTF-8 instead of the locale encoding.  This keeps non-ASCII data (such
-as non-ASCII paths) from being corrupted and makes the files portable between
-environments.
diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-00-00-00.gh-issue-66331.wMcLaS.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-00-00-00.gh-issue-66331.wMcLaS.rst
deleted file mode 100644 (file)
index e00e7c7..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Set the ``WM_CLASS`` window property of IDLE's windows to ``Idle`` on X11,
-so that window managers group and label them correctly instead of using the
-default ``Toplevel``.
diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-00-15-58.gh-issue-152728.yxIhMN.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-00-15-58.gh-issue-152728.yxIhMN.rst
deleted file mode 100644 (file)
index d73512a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Move functions run.fix_scaling, editor.fixwordbreaks (as fix_word_breaks)
-and pyshell.fix_x11_paste to idlelib.util.
diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-12-00-00.gh-issue-71956.rPlAlL.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-12-00-00.gh-issue-71956.rPlAlL.rst
deleted file mode 100644 (file)
index 1a92ed4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix Replace All in the IDLE editor's Replace dialog when the search
-direction is "Up" and "Wrap around" is off: it now replaces all matches
-above the current position instead of only the first one.
diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-14-00-00.gh-issue-89360.mUlTiC.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-14-00-00.gh-issue-89360.mUlTiC.rst
deleted file mode 100644 (file)
index 9e3023f..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix a rare crash in the IDLE editor when the completion window is closed:
-deleting a key binding for a sequence that is not bound to the virtual
-event is now ignored instead of raising a ``ValueError``.
diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-15-00-00.gh-issue-134300.iDlPaT.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-15-00-00.gh-issue-134300.iDlPaT.rst
deleted file mode 100644 (file)
index 791acbb..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Do not add the ``idlelib`` directory to the path of the IDLE user process.
-User code run in IDLE can no longer import ``idlelib`` submodules as
-top-level modules, such as ``import help``.
diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-16-00-00.gh-issue-80504.gReP.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-16-00-00.gh-issue-80504.gReP.rst
deleted file mode 100644 (file)
index 93adb33..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-The "In files:" field of IDLE's Find in Files dialog now always contains a
-full directory path, even for an unsaved editor or the Shell.  This shows
-in the grep output which directory was searched.
diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-17-00-00.gh-issue-65339.oUtTxt.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-17-00-00.gh-issue-65339.oUtTxt.rst
deleted file mode 100644 (file)
index a8b216e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Saving the IDLE Shell or an Output window now defaults to a ``.txt``
-extension and lists text files before Python files, since their content is
-not Python source.
diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-18-00-00.gh-issue-83653.cFgInt.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-18-00-00.gh-issue-83653.cFgInt.rst
deleted file mode 100644 (file)
index 5812b2d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Blanking an integer entry in IDLE's Settings dialog, such as "Auto squeeze
-min lines", no longer saves an empty string as an invalid configuration
-value.
diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-19-00-00.gh-issue-82183.rNsTrt.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-19-00-00.gh-issue-82183.rNsTrt.rst
deleted file mode 100644 (file)
index 2af412f..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-When the shell is busy running code, using "Run... Customized" with "Restart
-shell" unchecked now reports that the shell is executing instead of
-restarting it anyway.
diff --git a/Misc/NEWS.d/next/Library/2023-06-12-21-31-02.gh-issue-105708.5fFwP8.rst b/Misc/NEWS.d/next/Library/2023-06-12-21-31-02.gh-issue-105708.5fFwP8.rst
deleted file mode 100644 (file)
index 79289c1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Accept an uppercase V prefix in IPvFuture addresses in :func:`urllib.parse.urlsplit`.
diff --git a/Misc/NEWS.d/next/Library/2025-09-05-20-50-35.gh-issue-79638.Y-JfaH.rst b/Misc/NEWS.d/next/Library/2025-09-05-20-50-35.gh-issue-79638.Y-JfaH.rst
deleted file mode 100644 (file)
index bd9fff0..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Disallow all access in :mod:`urllib.robotparser` if the ``robots.txt`` file
-is unreachable due to server or network errors.
diff --git a/Misc/NEWS.d/next/Library/2025-11-02-05-28-56.gh-issue-115634.JbcNnF.rst b/Misc/NEWS.d/next/Library/2025-11-02-05-28-56.gh-issue-115634.JbcNnF.rst
deleted file mode 100644 (file)
index f023ce9..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Fix a deadlock in :class:`concurrent.futures.ProcessPoolExecutor` when
-using ``max_tasks_per_child``, present since the feature was introduced in
-Python 3.11. The executor stopped scheduling queued tasks after a worker
-process exited upon reaching its task limit. Based on a fix proposed by
-Tabrez Mohammed.
diff --git a/Misc/NEWS.d/next/Library/2026-02-11-16-47-27.gh-issue-140729.2uTPQp.rst b/Misc/NEWS.d/next/Library/2026-02-11-16-47-27.gh-issue-140729.2uTPQp.rst
deleted file mode 100644 (file)
index 49c9adc..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix a pickling error in the ``cProfile`` module when profiling a script that
-uses :class:`multiprocessing.Process` with the ``spawn`` and ``forkserver``
-start methods.
diff --git a/Misc/NEWS.d/next/Library/2026-03-26-00-00-00.gh-issue-47005.xxc89c.rst b/Misc/NEWS.d/next/Library/2026-03-26-00-00-00.gh-issue-47005.xxc89c.rst
deleted file mode 100644 (file)
index 646367f..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix :meth:`!urllib.request.AbstractHTTPHandler.do_open` to give regular
-headers set via :meth:`~urllib.request.Request.add_header` priority over
-unredirected headers, consistent with :meth:`~urllib.request.Request.get_header`
-and :meth:`~urllib.request.Request.header_items`.
diff --git a/Misc/NEWS.d/next/Library/2026-05-18-12-42-31.gh-issue-149816.F98iME.rst b/Misc/NEWS.d/next/Library/2026-05-18-12-42-31.gh-issue-149816.F98iME.rst
deleted file mode 100644 (file)
index 21e3ae0..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix a potential use after free condition in :func:`pickle.dumps` in free-threaded
-mode when serializing lists.
diff --git a/Misc/NEWS.d/next/Library/2026-05-31-14-39-25.gh-issue-150641.LLIhd1.rst b/Misc/NEWS.d/next/Library/2026-05-31-14-39-25.gh-issue-150641.LLIhd1.rst
deleted file mode 100644 (file)
index eba899c..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix bug where :func:`typing.evaluate_forward_ref` with the ``STRING`` format
-could leak internal names used by the annotation machinery.
diff --git a/Misc/NEWS.d/next/Library/2026-06-03-19-35-32.gh-issue-150583.dedI24.rst b/Misc/NEWS.d/next/Library/2026-06-03-19-35-32.gh-issue-150583.dedI24.rst
deleted file mode 100644 (file)
index edb551b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Correctly set the default compression level in :mod:`compression.zstd` when passing a digested
-dictionary during compression.
diff --git a/Misc/NEWS.d/next/Library/2026-06-06-06-29-17.gh-issue-150994.I2119M.rst b/Misc/NEWS.d/next/Library/2026-06-06-06-29-17.gh-issue-150994.I2119M.rst
deleted file mode 100644 (file)
index c4a610c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Make the type annotations in the private ``_colorize`` module resolvable.
diff --git a/Misc/NEWS.d/next/Library/2026-06-11-06-56-31.gh-issue-150994.gd1wVw.rst b/Misc/NEWS.d/next/Library/2026-06-11-06-56-31.gh-issue-150994.gd1wVw.rst
deleted file mode 100644 (file)
index 005a1d9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Make type annotations in the private ``_colorize`` module resolvable.
diff --git a/Misc/NEWS.d/next/Library/2026-06-12-00-00-00.gh-issue-151416.spawnUA.rst b/Misc/NEWS.d/next/Library/2026-06-12-00-00-00.gh-issue-151416.spawnUA.rst
deleted file mode 100644 (file)
index fd034d9..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Fix a crash in :func:`os.spawnv` and :func:`os.spawnve` when an *argv*
-item's :meth:`~os.PathLike.__fspath__` method mutates the *argv* list
-during argument conversion.  :func:`!os.spawnv` argument conversion errors
-other than :exc:`TypeError`, such as the :exc:`ValueError` for an embedded
-null, are no longer replaced with a generic :exc:`TypeError`.
diff --git a/Misc/NEWS.d/next/Library/2026-06-15-15-32-36.gh-issue-151497.1cfmSV.rst b/Misc/NEWS.d/next/Library/2026-06-15-15-32-36.gh-issue-151497.1cfmSV.rst
deleted file mode 100644 (file)
index a4c03c9..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Opening a :mod:`tarfile` archive no longer attempts to pre-allocate a huge
-buffer when a crafted or truncated member claims an oversized extended header
-(a GNU long name/link or a pax header).  The extended header is now read in
-bounded chunks, so its size field can no longer trigger memory exhaustion.
diff --git a/Misc/NEWS.d/next/Library/2026-06-17-00-00-00.gh-issue-148660.odcopy.rst b/Misc/NEWS.d/next/Library/2026-06-17-00-00-00.gh-issue-148660.odcopy.rst
deleted file mode 100644 (file)
index 30c2e36..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix a crash in :meth:`!collections.OrderedDict.copy` when a key's
-``__eq__`` or a subclass method mutates the dict during the copy.  Now
-raises :exc:`RuntimeError` instead, as iteration does.
diff --git a/Misc/NEWS.d/next/Library/2026-06-17-22-31-57.gh-issue-151613.n0nua1.rst b/Misc/NEWS.d/next/Library/2026-06-17-22-31-57.gh-issue-151613.n0nua1.rst
deleted file mode 100644 (file)
index fbf3ce4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix another way the Tachyon profiler frame cache could produce impossible
-mixed stack traces when ``_PyInterpreterFrame`` addresses are reused, by
-validating cached frame anchors with a sequence counter.
diff --git a/Misc/NEWS.d/next/Library/2026-06-18-12-48-03.gh-issue-151640.R4c3Fx.rst b/Misc/NEWS.d/next/Library/2026-06-18-12-48-03.gh-issue-151640.R4c3Fx.rst
deleted file mode 100644 (file)
index ef61a7d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix a data race in :class:`io.BytesIO` in free-threaded builds when
-whole-buffer reads or peeks, or :meth:`~io.BytesIO.getvalue`, share the
-internal buffer with concurrent writes.
diff --git a/Misc/NEWS.d/next/Library/2026-06-18-23-59-46.gh-issue-151596.5ma144.rst b/Misc/NEWS.d/next/Library/2026-06-18-23-59-46.gh-issue-151596.5ma144.rst
deleted file mode 100644 (file)
index 17ec134..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Add missing ``size`` positional argument to the pure-Python implementation of :meth:`io.TextIOBase.readline`.
diff --git a/Misc/NEWS.d/next/Library/2026-06-20-21-15-13.gh-issue-151814.OIbgsO.rst b/Misc/NEWS.d/next/Library/2026-06-20-21-15-13.gh-issue-151814.OIbgsO.rst
deleted file mode 100644 (file)
index 1365fb4..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix unbounded memory growth in :class:`io.TextIOWrapper` when repeatedly
-writing an empty string.
diff --git a/Misc/NEWS.d/next/Library/2026-06-21-15-50-24.gh-issue-86165.dyac1G.rst b/Misc/NEWS.d/next/Library/2026-06-21-15-50-24.gh-issue-86165.dyac1G.rst
deleted file mode 100644 (file)
index 0b630e9..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix :func:`imaplib.Time2Internaldate` to use the local timezone offset for
-``time.struct_time`` values with ``tm_gmtoff`` set to ``None``, as returned by
-``datetime.datetime.timetuple()``. Contributed by Xiao Yuan.
diff --git a/Misc/NEWS.d/next/Library/2026-06-23-13-27-14.gh-issue-126219.kOfv2g.rst b/Misc/NEWS.d/next/Library/2026-06-23-13-27-14.gh-issue-126219.kOfv2g.rst
deleted file mode 100644 (file)
index 8cc8c64..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fixed a crash in :class:`tkinter.Tk` when *className* contains a non-BMP
-character and tkinter is built against Tcl/Tk 8.x.  Such a name is now
-rejected with a :exc:`ValueError`.
diff --git a/Misc/NEWS.d/next/Library/2026-06-23-17-14-04.gh-issue-127802.nGSxo6.rst b/Misc/NEWS.d/next/Library/2026-06-23-17-14-04.gh-issue-127802.nGSxo6.rst
deleted file mode 100644 (file)
index 9484c9d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-The deprecated :class:`tkinter.Variable` methods :meth:`!trace_variable`,
-:meth:`!trace`, :meth:`!trace_vdelete` and :meth:`!trace_vinfo` are now
-scheduled for removal in Python 3.17.
diff --git a/Misc/NEWS.d/next/Library/2026-06-24-10-46-35.gh-issue-152060.f2asrt.rst b/Misc/NEWS.d/next/Library/2026-06-24-10-46-35.gh-issue-152060.f2asrt.rst
deleted file mode 100644 (file)
index 6088a6b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix :meth:`datetime.datetime.fromisoformat` raising :exc:`AssertionError`
-instead of :exc:`ValueError` for some malformed strings in the pure-Python
-implementation, matching the C implementation.
diff --git a/Misc/NEWS.d/next/Library/2026-06-24-12-00-00.gh-issue-152052.yBssDE.rst b/Misc/NEWS.d/next/Library/2026-06-24-12-00-00.gh-issue-152052.yBssDE.rst
deleted file mode 100644 (file)
index f9ffbbd..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-The :mod:`json` C accelerator now correctly reports an unterminated string for a
-``\uXXXX`` escape at the end of the input.
diff --git a/Misc/NEWS.d/next/Library/2026-06-24-12-00-00.gh-issue-152079.f1tzus.rst b/Misc/NEWS.d/next/Library/2026-06-24-12-00-00.gh-issue-152079.f1tzus.rst
deleted file mode 100644 (file)
index 492d007..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix :meth:`datetime.datetime.fromisoformat` in the C implementation dropping
-the sub-second part of a UTC offset whose whole-second part is zero, matching
-the pure-Python implementation.
diff --git a/Misc/NEWS.d/next/Library/2026-06-24-16-40-15.gh-issue-151378.iYWa_6.rst b/Misc/NEWS.d/next/Library/2026-06-24-16-40-15.gh-issue-151378.iYWa_6.rst
deleted file mode 100644 (file)
index 0b3eb86..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix a bug in the binary collector in Tachyon that caused unbounded memory
-growth while profiling a thread that stayed asleep. Patch by Maurycy
-Pawłowski-Wieroński.
diff --git a/Misc/NEWS.d/next/Library/2026-06-24-22-16-35.gh-issue-105895.hRkuEw.rst b/Misc/NEWS.d/next/Library/2026-06-24-22-16-35.gh-issue-105895.hRkuEw.rst
deleted file mode 100644 (file)
index c69e6fa..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Add :keyword:`match` and :keyword:`case` to the list of supported topics by
-:func:`help`.
diff --git a/Misc/NEWS.d/next/Library/2026-06-24-23-28-42.gh-issue-151669.tPUavQ.rst b/Misc/NEWS.d/next/Library/2026-06-24-23-28-42.gh-issue-151669.tPUavQ.rst
deleted file mode 100644 (file)
index d8e4850..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-On Windows, when populating tar archives from filesystem content, to
-conform to the tar format standard, backslashes in symlink targets are
-be replaced by slashes.
diff --git a/Misc/NEWS.d/next/Library/2026-06-25-01-00-43.gh-issue-151763.wWeHBe.rst b/Misc/NEWS.d/next/Library/2026-06-25-01-00-43.gh-issue-151763.wWeHBe.rst
deleted file mode 100644 (file)
index 2f5e840..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix crash in :func:`!_interpqueues.create` whe :exc:`MemoryError`
-happens on queue creation.
diff --git a/Misc/NEWS.d/next/Library/2026-06-25-07-08-17.gh-issue-152157.dt5Ef0.rst b/Misc/NEWS.d/next/Library/2026-06-25-07-08-17.gh-issue-152157.dt5Ef0.rst
deleted file mode 100644 (file)
index 00e83b4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-The C implementations of :meth:`~datetime.datetime.fromisoformat` and :meth:`~datetime.time.fromisoformat`
-now reject a decimal separator that is not followed by any
-fractional digit before a timezone designator.
diff --git a/Misc/NEWS.d/next/Library/2026-06-25-10-07-54.gh-issue-152156.gscPU9.rst b/Misc/NEWS.d/next/Library/2026-06-25-10-07-54.gh-issue-152156.gscPU9.rst
deleted file mode 100644 (file)
index 30e5612..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix a possible crash in :func:`concurrent.interpreters.create` under limited
-memory conditions.
diff --git a/Misc/NEWS.d/next/Library/2026-06-25-12-00-00.gh-issue-152212.Zk7Qm2.rst b/Misc/NEWS.d/next/Library/2026-06-25-12-00-00.gh-issue-152212.Zk7Qm2.rst
deleted file mode 100644 (file)
index 2b1d272..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix the pure-Python :mod:`zoneinfo` parser accepting a POSIX TZ string with a
-``std`` abbreviation but no offset. This is invalid per POSIX and now
-raises :exc:`ValueError`, matching the C accelerator. Patch by tonghuaroot.
diff --git a/Misc/NEWS.d/next/Library/2026-06-25-14-32-42.gh-issue-139145.kT9rmP.rst b/Misc/NEWS.d/next/Library/2026-06-25-14-32-42.gh-issue-139145.kT9rmP.rst
deleted file mode 100644 (file)
index 3fa639c..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Fix a busy loop in :mod:`tkinter` on interactive Python.  When a Tcl command
-running its own event loop (such as ``vwait`` or :meth:`!wait_variable`) was
-active and input arrived on stdin, the event loop kept spinning at 100% CPU.
-The stdin file handler is now removed as soon as input is available.  Based on
-a patch by Michiel de Hoon.
diff --git a/Misc/NEWS.d/next/Library/2026-06-25-14-32-43.gh-issue-139816.Lq2vXa.rst b/Misc/NEWS.d/next/Library/2026-06-25-14-32-43.gh-issue-139816.Lq2vXa.rst
deleted file mode 100644 (file)
index b180dee..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix a hang in :mod:`tkinter` on interactive Python built without
-:mod:`readline`.  An exception raised in a callback no longer causes the
-event loop to stop and wait for the user to press Enter; pending callbacks
-now keep running until input is actually available on stdin.
diff --git a/Misc/NEWS.d/next/Library/2026-06-25-20-00-00.gh-issue-151496.kMnT3x.rst b/Misc/NEWS.d/next/Library/2026-06-25-20-00-00.gh-issue-151496.kMnT3x.rst
deleted file mode 100644 (file)
index 994e5da..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fixed ``profiling.sampling --gecko`` with ``--async-aware`` by flattening
-async task stacks before generating Gecko samples. ``--binary`` now rejects
-``--async-aware`` until the binary format supports async task data.
diff --git a/Misc/NEWS.d/next/Library/2026-06-26-12-50-26.gh-issue-152246.MfXMd1.rst b/Misc/NEWS.d/next/Library/2026-06-26-12-50-26.gh-issue-152246.MfXMd1.rst
deleted file mode 100644 (file)
index 0858199..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix the pure-Python :mod:`zoneinfo` parser accepting an invalid POSIX TZ
-transition rule with a non-period separator. Patch by tonghuaroot.
diff --git a/Misc/NEWS.d/next/Library/2026-06-26-13-10-00.gh-issue-80937.Hq3mNp.rst b/Misc/NEWS.d/next/Library/2026-06-26-13-10-00.gh-issue-80937.Hq3mNp.rst
deleted file mode 100644 (file)
index 4ea0179..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix a memory leak in :mod:`tkinter` when a Tcl command created with
-``createcommand`` was not explicitly removed before the interpreter was
-deleted.  The command no longer keeps the interpreter alive through a
-reference cycle.
diff --git a/Misc/NEWS.d/next/Library/2026-06-26-13-39-11.gh-issue-152248.N2Rmaf.rst b/Misc/NEWS.d/next/Library/2026-06-26-13-39-11.gh-issue-152248.N2Rmaf.rst
deleted file mode 100644 (file)
index 8921ad1..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Make the C and pure-Python :mod:`zoneinfo` parsers validate POSIX TZ
-abbreviations consistently, rejecting unquoted abbreviations with non-letter
-characters and empty quoted abbreviations. Patch by tonghuaroot.
diff --git a/Misc/NEWS.d/next/Library/2026-06-26-15-00-00.gh-issue-38464.yDPjKH.rst b/Misc/NEWS.d/next/Library/2026-06-26-15-00-00.gh-issue-38464.yDPjKH.rst
deleted file mode 100644 (file)
index c1c272b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-:meth:`!tkinter.Misc.nametowidget` now resolves the auto-generated names of
-cloned menus (a menu used as a menubar or a cascade) back to the original
-widget.
diff --git a/Misc/NEWS.d/next/Library/2026-06-26-15-30-00.gh-issue-88758.Qw7nLp.rst b/Misc/NEWS.d/next/Library/2026-06-26-15-30-00.gh-issue-88758.Qw7nLp.rst
deleted file mode 100644 (file)
index 31d5671..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-:meth:`!tkinter.Misc.focus_get`, :meth:`!focus_displayof`,
-:meth:`!focus_lastfor` and :meth:`!winfo_containing` now return ``None``
-instead of raising :exc:`KeyError` when the widget was not created by
-:mod:`tkinter` (for example a torn-off menu).
diff --git a/Misc/NEWS.d/next/Library/2026-06-26-15-41-34.gh-issue-152305.WnbbBc.rst b/Misc/NEWS.d/next/Library/2026-06-26-15-41-34.gh-issue-152305.WnbbBc.rst
deleted file mode 100644 (file)
index 4f27e2e..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix the pure-Python :meth:`datetime.time.strftime` implementation raising :exc:`AttributeError` for the
-year directives. Patch by tonghuaroot.
diff --git a/Misc/NEWS.d/next/Library/2026-06-26-16-30-00.gh-issue-83274.Kx9mQv.rst b/Misc/NEWS.d/next/Library/2026-06-26-16-30-00.gh-issue-83274.Kx9mQv.rst
deleted file mode 100644 (file)
index 3b722d2..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Deallocating a :mod:`tkinter` application from a thread other than the one it
-was created in no longer crashes the interpreter.  The underlying Tcl
-interpreter is leaked instead, and a :exc:`RuntimeWarning` is reported.
diff --git a/Misc/NEWS.d/next/Library/2026-06-26-23-56-40.gh-issue-71880.782D31.rst b/Misc/NEWS.d/next/Library/2026-06-26-23-56-40.gh-issue-71880.782D31.rst
deleted file mode 100644 (file)
index 5a12f42..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-:class:`curses.textpad.Textbox` now lets the lower-right cell of the window be
-edited.  Writing it with :meth:`~curses.window.addch` would move the cursor
-past the end of the window, raising an error and scrolling a scrollable window,
-so it is now written with :meth:`~curses.window.insch`, which keeps the cursor
-in place.
diff --git a/Misc/NEWS.d/next/Library/2026-06-27-12-30-00.gh-issue-133031.Na8Bit.rst b/Misc/NEWS.d/next/Library/2026-06-27-12-30-00.gh-issue-133031.Na8Bit.rst
deleted file mode 100644 (file)
index 96e9efe..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-:class:`curses.textpad.Textbox` now enters and reads back the non-ASCII
-characters of an 8-bit locale encoding, instead of mangling them with a 7-bit
-mask.
diff --git a/Misc/NEWS.d/next/Library/2026-06-27-17-19-09.gh-issue-151126.huUyOM.rst b/Misc/NEWS.d/next/Library/2026-06-27-17-19-09.gh-issue-151126.huUyOM.rst
deleted file mode 100644 (file)
index 2e51fd4..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix two crashes in :mod:`tkinter` and :mod:`socket` modules initialization
-under a memory pressure. Sets missing :exc:`MemoryError`.
diff --git a/Misc/NEWS.d/next/Library/2026-06-28-11-00-40.gh-issue-78335.Kp3mWq.rst b/Misc/NEWS.d/next/Library/2026-06-28-11-00-40.gh-issue-78335.Kp3mWq.rst
deleted file mode 100644 (file)
index 641889c..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Update the docstrings of :mod:`tkinter` and :mod:`tkinter.ttk` widget classes
-to list all supported widget options, including options added in Tk 9.0 and
-9.1.  ``tkinter.Menubutton`` and ``tkinter.Message`` previously had no option
-list at all.
diff --git a/Misc/NEWS.d/next/Library/2026-06-28-12-45-09.gh-issue-152356.Dr4w2Q.rst b/Misc/NEWS.d/next/Library/2026-06-28-12-45-09.gh-issue-152356.Dr4w2Q.rst
deleted file mode 100644 (file)
index 6a4ceec..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix a hang in ``profiling.sampling run --blocking`` on Windows when the
-target process exits. The profiler now finalizes binary profiles instead of
-continuing to sample the exited process.
diff --git a/Misc/NEWS.d/next/Library/2026-06-29-01-08-53.gh-issue-110357.QGWdZQ.rst b/Misc/NEWS.d/next/Library/2026-06-29-01-08-53.gh-issue-110357.QGWdZQ.rst
deleted file mode 100644 (file)
index 7c2384e..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-Importing :mod:`hashlib` no longer logs an error to stderr when a normally
-guaranteed hash algorithm is unavailable in the current runtime (for example
-under an OpenSSL FIPS configuration or a build using
-:option:`--without-builtin-hashlib-hashes <--with-builtin-hashlib-hashes>`).
-Code that actually uses the missing algorithm still gets a clear
-:exc:`ValueError`.
diff --git a/Misc/NEWS.d/next/Library/2026-06-29-09-45-00.gh-issue-152569.Kf7Lq2.rst b/Misc/NEWS.d/next/Library/2026-06-29-09-45-00.gh-issue-152569.Kf7Lq2.rst
deleted file mode 100644 (file)
index fb7e32a..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix :func:`asyncio.wait` leaking waiting tasks via the await-graph when racing a
-future that never resolves. The waiting task is now discarded from every future's
-``awaited_by`` set once :func:`~asyncio.wait` returns, even for pending futures.
diff --git a/Misc/NEWS.d/next/Library/2026-06-29-22-16-57.gh-issue-50966.Tq5mLp.rst b/Misc/NEWS.d/next/Library/2026-06-29-22-16-57.gh-issue-50966.Tq5mLp.rst
deleted file mode 100644 (file)
index 96a0938..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix unbounded recursion in :mod:`turtle` when a mouse event handler that moves
-the turtle is reentered while the screen is being redrawn, for example with
-``screen.ondrag(turtle.goto)``.  This could previously crash the interpreter.
diff --git a/Misc/NEWS.d/next/Library/2026-06-30-12-00-00.gh-issue-40038.qK7mGv.rst b/Misc/NEWS.d/next/Library/2026-06-30-12-00-00.gh-issue-40038.qK7mGv.rst
deleted file mode 100644 (file)
index 1f393d2..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-:mod:`imaplib` now again quotes command arguments when necessary, for
-example mailbox names containing a space.  Such quoting was inadvertently
-disabled when the module was ported to Python 3, and the arguments are now
-quoted according to the :rfc:`3501` grammar.  For backward compatibility,
-an argument already enclosed in double quotes is left unchanged, so code
-that quotes arguments itself keeps working.
diff --git a/Misc/NEWS.d/next/Library/2026-06-30-13-00-00.gh-issue-151842.OOM31g.rst b/Misc/NEWS.d/next/Library/2026-06-30-13-00-00.gh-issue-151842.OOM31g.rst
deleted file mode 100644 (file)
index 8a2ecf3..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix a crash in :func:`!_interpreters.capture_exception` when
-:exc:`MemoryError` happens. Patch by Amrutha Modela.
diff --git a/Misc/NEWS.d/next/Library/2026-06-30-21-40-00.gh-issue-152502.Kq3Vn7.rst b/Misc/NEWS.d/next/Library/2026-06-30-21-40-00.gh-issue-152502.Kq3Vn7.rst
deleted file mode 100644 (file)
index 815bc47..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Detect the :mod:`curses` mouse interface (:func:`~curses.getmouse`, the
-``BUTTON*`` constants, and others) with a configure capability probe or library
-macros instead of gating it on ncurses-specific macros.  It is now also
-available with other curses implementations that provide it, such as NetBSD
-curses and PDCurses (the latter underpins ``windows-curses``).
diff --git a/Misc/NEWS.d/next/Library/2026-07-01-10-00-00.gh-issue-88574.Kz3wQm.rst b/Misc/NEWS.d/next/Library/2026-07-01-10-00-00.gh-issue-88574.Kz3wQm.rst
deleted file mode 100644 (file)
index 371f4d0..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-:mod:`imaplib` no longer fails when a server sends a spurious blank line
-after the counted data of a literal, including after a literal that
-terminates a response (such as a mailbox name returned by ``LIST``).
-Such blank lines are now skipped without swallowing the following line.
diff --git a/Misc/NEWS.d/next/Library/2026-07-01-10-30-00.gh-issue-63121.Rm4tZp.rst b/Misc/NEWS.d/next/Library/2026-07-01-10-30-00.gh-issue-63121.Rm4tZp.rst
deleted file mode 100644 (file)
index a63b164..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-:mod:`imaplib` now refreshes the cached capability list after a successful
-:meth:`~imaplib.IMAP4.login` or :meth:`~imaplib.IMAP4.authenticate`, using
-the ``CAPABILITY`` response sent by the server or, if none was sent, by
-querying it, so that capabilities that become available only after
-authentication (such as ``ENABLE`` on Gmail) are recognized.  Capabilities
-advertised in the server greeting are now also used, avoiding a redundant
-``CAPABILITY`` command.
diff --git a/Misc/NEWS.d/next/Library/2026-07-01-12-00-00.gh-issue-108280.Nq8vTr.rst b/Misc/NEWS.d/next/Library/2026-07-01-12-00-00.gh-issue-108280.Nq8vTr.rst
deleted file mode 100644 (file)
index 487c9da..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Connecting :mod:`imaplib` to a server that does not send a valid IMAP4
-greeting (for example a POP3 server answering on the IMAP port) now raises
-an error reporting the server's response instead of
-``imaplib.IMAP4.error: None``.
diff --git a/Misc/NEWS.d/next/Library/2026-07-01-12-00-00.gh-issue-152718.pr0f1l.rst b/Misc/NEWS.d/next/Library/2026-07-01-12-00-00.gh-issue-152718.pr0f1l.rst
deleted file mode 100644 (file)
index 63d9d7f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix unbounded memory allocation in the :mod:`profiling.sampling` binary profile
-reader when a file declares more string or frame entries than it contains.
diff --git a/Misc/NEWS.d/next/Library/2026-07-02-12-00-00.gh-issue-152847.PitKqc.rst b/Misc/NEWS.d/next/Library/2026-07-02-12-00-00.gh-issue-152847.PitKqc.rst
deleted file mode 100644 (file)
index 3f20d78..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Reject a POSIX TZ transition rule with non-digit characters in the
-day-of-year field in the pure-Python :mod:`zoneinfo` parser. Patch by
-tonghuaroot.
diff --git a/Misc/NEWS.d/next/Library/2026-07-02-13-30-00.gh-issue-152849.K9dRvP.rst b/Misc/NEWS.d/next/Library/2026-07-02-13-30-00.gh-issue-152849.K9dRvP.rst
deleted file mode 100644 (file)
index 053a5df..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Out-of-range float and integer timestamps now raise :exc:`OverflowError`
-with the same message. Patch by tonghuaroot.
diff --git a/Misc/NEWS.d/next/Library/2026-07-02-19-21-15.gh-issue-152068.ThsmJU.rst b/Misc/NEWS.d/next/Library/2026-07-02-19-21-15.gh-issue-152068.ThsmJU.rst
deleted file mode 100644 (file)
index 9ec8413..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fixes a bug when a line was split (particularly on macOS Terminal.app) in the middle of a colorized keyword, causing the ANSI Color Reset sequence (ESC0m) to not be properly printed, causing the output to be colored when it shouldn't
diff --git a/Misc/NEWS.d/next/Library/2026-07-02-22-19-53.gh-issue-150880.vPZ7jK.rst b/Misc/NEWS.d/next/Library/2026-07-02-22-19-53.gh-issue-150880.vPZ7jK.rst
deleted file mode 100644 (file)
index a7bf210..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Normalize non-extended Windows paths before appending the wildcard used by
-``os.listdir()`` and ``os.scandir()``, making paths with trailing spaces
-behave consistently with other filesystem APIs.
diff --git a/Misc/NEWS.d/next/Library/2026-07-03-14-54-33.gh-issue-152951.u8tPCI.rst b/Misc/NEWS.d/next/Library/2026-07-03-14-54-33.gh-issue-152951.u8tPCI.rst
deleted file mode 100644 (file)
index c3d56c6..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-:class:`collections.deque` prevent rare crash when calling ``extend`` under
-high memory pressure conditions.
diff --git a/Misc/NEWS.d/next/Library/2026-07-03-17-29-34.gh-issue-150579.0tLpQukIU.rst b/Misc/NEWS.d/next/Library/2026-07-03-17-29-34.gh-issue-150579.0tLpQukIU.rst
deleted file mode 100644 (file)
index 7aff384..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-:mod:`concurrent.futures` now uses lazy imports for its executor submodules
-instead of a module ``__getattr__`` hook.
diff --git a/Misc/NEWS.d/next/Library/2026-07-03-18-30-00.gh-issue-119592.mQr3Vx.rst b/Misc/NEWS.d/next/Library/2026-07-03-18-30-00.gh-issue-119592.mQr3Vx.rst
deleted file mode 100644 (file)
index f718c87..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-Fix :class:`concurrent.futures.ProcessPoolExecutor` stranding submitted
-work forever when a worker process exited upon reaching its
-*max_tasks_per_child* limit after
-:meth:`~concurrent.futures.Executor.shutdown` was called with
-``wait=False``: a replacement worker is now spawned and the remaining work
-executed as documented. If the executor has instead been garbage collected
-without ``shutdown()`` (:gh:`152967`), or a replacement worker cannot be
-started, the remaining futures now fail with
-:exc:`~concurrent.futures.process.BrokenProcessPool` instead of never
-resolving. A worker exit racing ``shutdown(wait=False)`` can also no
-longer crash the executor management thread.
diff --git a/Misc/NEWS.d/next/Library/2026-07-03-21-10-00.gh-issue-54930.hq09Er.rst b/Misc/NEWS.d/next/Library/2026-07-03-21-10-00.gh-issue-54930.hq09Er.rst
deleted file mode 100644 (file)
index 1cfc021..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Error responses of :class:`http.server.BaseHTTPRequestHandler` to malformed
-request lines now include a status line and headers instead of being sent in
-the bare HTTP/0.9 style.
-Only a valid HTTP/0.9 request (a two-word ``GET`` request line) now receives
-an HTTP/0.9 style response.
diff --git a/Misc/NEWS.d/next/Library/2026-07-04-11-14-06.gh-issue-152851.diYvTf.rst b/Misc/NEWS.d/next/Library/2026-07-04-11-14-06.gh-issue-152851.diYvTf.rst
deleted file mode 100644 (file)
index aab033e..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Prevent a crash when allocation fails while copying a :func:`BLAKE-2s/2b
-<hashlib.blake2b>` object. Patch by Bénédikt Tran.
diff --git a/Misc/NEWS.d/next/Library/2026-07-04-13-00-00.gh-issue-135661.CIkADG.rst b/Misc/NEWS.d/next/Library/2026-07-04-13-00-00.gh-issue-135661.CIkADG.rst
deleted file mode 100644 (file)
index 26a912a..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix :class:`html.parser.HTMLParser`: an abruptly closed empty comment
-(``<!-->`` or ``<!--->``) no longer extends up to a later ``-->`` in the same
-:meth:`~html.parser.HTMLParser.feed` call.
diff --git a/Misc/NEWS.d/next/Library/2026-07-04-20-28-51.gh-issue-153037.XUSp_g.rst b/Misc/NEWS.d/next/Library/2026-07-04-20-28-51.gh-issue-153037.XUSp_g.rst
deleted file mode 100644 (file)
index cbfc62f..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix :class:`~compression.zstd.ZstdFile` raising :exc:`AttributeError`
-instead of :exc:`io.UnsupportedOperation` when iterating over a file that
-is not open for reading.
diff --git a/Misc/NEWS.d/next/Library/2026-07-05-10-24-30.gh-issue-143921.wQx3Tn.rst b/Misc/NEWS.d/next/Library/2026-07-05-10-24-30.gh-issue-143921.wQx3Tn.rst
deleted file mode 100644 (file)
index 04e8bd6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Narrow the control character check in :mod:`imaplib` commands: only NUL, CR
-and LF are now rejected. Other control characters are valid in quoted
-strings and can occur in mailbox names returned by the server, so they are
-now accepted and sent quoted.
diff --git a/Misc/NEWS.d/next/Library/2026-07-05-12-00-00.gh-issue-153056.tMpLat.rst b/Misc/NEWS.d/next/Library/2026-07-05-12-00-00.gh-issue-153056.tMpLat.rst
deleted file mode 100644 (file)
index a2bc89f..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix :class:`string.Template` raising a spurious :exc:`ValueError` when the
-*pattern* attribute is a compiled regular expression object, which the
-documentation allows.  On the free-threaded build this also occurred as a data
-race on the first concurrent use.
diff --git a/Misc/NEWS.d/next/Library/2026-07-05-14-30-00.gh-issue-153062.teeFT1.rst b/Misc/NEWS.d/next/Library/2026-07-05-14-30-00.gh-issue-153062.teeFT1.rst
deleted file mode 100644 (file)
index ed1aaa1..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix a crash when concurrently iterating an :func:`itertools.tee` iterator on
-the free-threaded build.
diff --git a/Misc/NEWS.d/next/Library/2026-07-05-16-09-31.gh-issue-153068.huY9Jh.rst b/Misc/NEWS.d/next/Library/2026-07-05-16-09-31.gh-issue-153068.huY9Jh.rst
deleted file mode 100644 (file)
index accf6e9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix :meth:`!cProfile.Profile.enable` to no longer overwrite errors from
-:mod:`sys.monitoring`.
diff --git a/Misc/NEWS.d/next/Library/2026-07-06-12-00-00.gh-issue-153200.isqrtLt.rst b/Misc/NEWS.d/next/Library/2026-07-06-12-00-00.gh-issue-153200.isqrtLt.rst
deleted file mode 100644 (file)
index a27ac73..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix :func:`math.isqrt` returning an incorrect result for arguments not
-less than 2**64 that are instances of an :class:`int` subclass with an
-overridden comparison operator.
diff --git a/Misc/NEWS.d/next/Library/2026-07-07-02-26-43.gh-issue-153210.LUXIcm.rst b/Misc/NEWS.d/next/Library/2026-07-07-02-26-43.gh-issue-153210.LUXIcm.rst
deleted file mode 100644 (file)
index d5d4b7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix crash on :mod:`array` import under a memory pressure.
diff --git a/Misc/NEWS.d/next/Library/2026-07-07-13-31-52.gh-issue-148286.-qu-em.rst b/Misc/NEWS.d/next/Library/2026-07-07-13-31-52.gh-issue-148286.-qu-em.rst
deleted file mode 100644 (file)
index 60cd490..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix undefined behavior in
-:attr:`compression.zstd.ZstdDecompressor.unused_data` when a complete frame
-was decompressed in a single call.
diff --git a/Misc/NEWS.d/next/Library/2026-07-07-17-50-54.gh-issue-143990.FoNtCf.rst b/Misc/NEWS.d/next/Library/2026-07-07-17-50-54.gh-issue-143990.FoNtCf.rst
deleted file mode 100644 (file)
index a78dccc..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-A :class:`tkinter.font.Font` created from a named font,
-including by :meth:`~tkinter.font.Font.copy`,
-now copies its configured options rather than the options resolved by Tcl's ``font actual``,
-preserving a size specified in pixels (a negative size).
diff --git a/Misc/NEWS.d/next/Library/2026-07-07-22-06-52.gh-issue-153293.0DvYdc.rst b/Misc/NEWS.d/next/Library/2026-07-07-22-06-52.gh-issue-153293.0DvYdc.rst
deleted file mode 100644 (file)
index ac358bb..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix the live sampling profiler TUI keeping stale aggregated opcode
-statistics after a stats reset.
diff --git a/Misc/NEWS.d/next/Library/2026-07-08-01-03-17.gh-issue-153292.oHDt3l.rst b/Misc/NEWS.d/next/Library/2026-07-08-01-03-17.gh-issue-153292.oHDt3l.rst
deleted file mode 100644 (file)
index dc363e1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix data race in repr of :class:`threading.RLock` in free-threading build.
diff --git a/Misc/NEWS.d/next/Library/2026-07-08-01-47-15.gh-issue-153083.XbKZCp.rst b/Misc/NEWS.d/next/Library/2026-07-08-01-47-15.gh-issue-153083.XbKZCp.rst
deleted file mode 100644 (file)
index b6d9685..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Defer GC tracking of an :class:`array.array` to the end of its construction.
-Patch by Donghee Na.
diff --git a/Misc/NEWS.d/next/Library/2026-07-08-21-15-00.gh-issue-153333.Kp3mZq.rst b/Misc/NEWS.d/next/Library/2026-07-08-21-15-00.gh-issue-153333.Kp3mZq.rst
deleted file mode 100644 (file)
index 6fcbd59..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-The ``readprofile`` method of :class:`tkinter.Tk` now reads the user's
-profile scripts using the encoding declared in the file, instead of the
-locale encoding.
diff --git a/Misc/NEWS.d/next/Library/2026-07-09-00-00-00.gh-issue-153406.vyMmB6.rst b/Misc/NEWS.d/next/Library/2026-07-09-00-00-00.gh-issue-153406.vyMmB6.rst
deleted file mode 100644 (file)
index c095757..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-:func:`email.utils.parsedate_to_datetime` now raises :exc:`ValueError`
-instead of :exc:`OverflowError` when the parsed year or timezone offset is
-out of range, matching its documented behavior.
diff --git a/Misc/NEWS.d/next/Library/2026-07-09-14-00-00.gh-issue-153417.Bw7Rq2.rst b/Misc/NEWS.d/next/Library/2026-07-09-14-00-00.gh-issue-153417.Bw7Rq2.rst
deleted file mode 100644 (file)
index ebc36fa..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Error messages from :meth:`imaplib.IMAP4.select` and :meth:`imaplib.IMAP4.uid`
-no longer raise :exc:`BytesWarning` under :option:`!-bb`
-when the mailbox or command argument is :class:`bytes`.
diff --git a/Misc/NEWS.d/next/Library/2026-07-09-15-18-23.gh-issue-151292.f4NQSW.rst b/Misc/NEWS.d/next/Library/2026-07-09-15-18-23.gh-issue-151292.f4NQSW.rst
deleted file mode 100644 (file)
index 4165893..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Store the sample count in :mod:`profiling.sampling` binary format, as a
-64-bit integer, widening from previously used 32-bit integer. This breaks
-the existing recordings. Long or thread-heavy profiling sessions will no
-longer fail because of :exc:`OverflowError`. Patch by Maurycy
-Pawłowski-Wieroński.
diff --git a/Misc/NEWS.d/next/Library/2026-07-12-00-00-00.gh-issue-85943.8f906e.rst b/Misc/NEWS.d/next/Library/2026-07-12-00-00-00.gh-issue-85943.8f906e.rst
deleted file mode 100644 (file)
index 0a93bf2..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix :mod:`struct` functions raising :exc:`BytesWarning` under the ``-bb``
-command line option when a :class:`str` format is used after an equal
-:class:`bytes` format (or vice versa).  The internal format cache no longer
-mixes :class:`str` and :class:`bytes` keys.
diff --git a/Misc/NEWS.d/next/Library/2026-07-13-10-27-08.gh-issue-153658.A6o4n5.rst b/Misc/NEWS.d/next/Library/2026-07-13-10-27-08.gh-issue-153658.A6o4n5.rst
deleted file mode 100644 (file)
index 06385bb..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix :meth:`sqlite3.Connection.iterdump` raising :exc:`sqlite3.OperationalError`
-when a table name contains a single quote. Patch by tonghuaroot.
diff --git a/Misc/NEWS.d/next/Library/2026-07-14-19-45-21.gh-issue-153695.UYdZJZ.rst b/Misc/NEWS.d/next/Library/2026-07-14-19-45-21.gh-issue-153695.UYdZJZ.rst
deleted file mode 100644 (file)
index 43d7fee..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Hashing a :class:`sqlite3.Row` that contains an unhashable value now raises
-:exc:`TypeError` instead of :exc:`SystemError`. Patch by tonghuaroot.
diff --git a/Misc/NEWS.d/next/Security/2026-01-16-11-58-19.gh-issue-143927.aviFeG.rst b/Misc/NEWS.d/next/Security/2026-01-16-11-58-19.gh-issue-143927.aviFeG.rst
deleted file mode 100644 (file)
index ca55499..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Normalize all line endings (CR, CRLF, and LF) to LF+TAB when writing
-multi-line configparser values.
diff --git a/Misc/NEWS.d/next/Security/2026-05-30-00-00-00.gh-issue-150743.httpdos.rst b/Misc/NEWS.d/next/Security/2026-05-30-00-00-00.gh-issue-150743.httpdos.rst
deleted file mode 100644 (file)
index abc07d9..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-:mod:`http.client` now limits the number of chunked-response trailer lines
-it will read to :attr:`~http.client.HTTPConnection.max_response_headers`
-(100 by default), and the number of interim (1xx) responses it will skip
-to 100.  A malicious or broken server could previously stream trailer
-lines or ``100 Continue`` responses forever, hanging the client even when
-a socket timeout was in use.
-Reported by ``@YLChen-007`` via GHSA-w4q2-g22w-6fr4.
diff --git a/Misc/NEWS.d/next/Security/2026-06-10-13-08-19.gh-issue-151558.mL74i2.rst b/Misc/NEWS.d/next/Security/2026-06-10-13-08-19.gh-issue-151558.mL74i2.rst
deleted file mode 100644 (file)
index 74459d5..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fixed an vulnerability in the :mod:`tarfile` ``data`` and ``tar`` extraction
-filters where crafted archives could create a symlink pointing outside the
-destination directory. This was a bypass of :cve:`2025-4330`.
diff --git a/Misc/NEWS.d/next/Security/2026-06-23-13-28-16.gh-issue-151981.xBHEcU.rst b/Misc/NEWS.d/next/Security/2026-06-23-13-28-16.gh-issue-151981.xBHEcU.rst
deleted file mode 100644 (file)
index 2123ab8..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-In :mod:`tarfile`, seeking a stream now stops when end of the stream is
-reached.
diff --git a/Misc/NEWS.d/next/Security/2026-06-23-14-19-30.gh-issue-151987.8mNIMf.rst b/Misc/NEWS.d/next/Security/2026-06-23-14-19-30.gh-issue-151987.8mNIMf.rst
deleted file mode 100644 (file)
index 9eea7b3..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-The :meth:`tarfile.TarFile.extract` method now applies the given filter when
-it extracts a link target from the archive as a fallback.
diff --git a/Misc/NEWS.d/next/Security/2026-06-25-20-44-20.gh-issue-152216.VxiK5y.rst b/Misc/NEWS.d/next/Security/2026-06-25-20-44-20.gh-issue-152216.VxiK5y.rst
deleted file mode 100644 (file)
index 2769048..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Update bundled `libexpat <https://libexpat.github.io/>`_ to version 2.8.2.
diff --git a/Misc/NEWS.d/next/Security/2026-07-04-17-00-00.gh-issue-153030.RovkP6.rst b/Misc/NEWS.d/next/Security/2026-07-04-17-00-00.gh-issue-153030.RovkP6.rst
deleted file mode 100644 (file)
index d1d6059..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fixed quadratic complexity in incremental parsing of long unterminated
-constructs (such as tags or comments) in :class:`html.parser.HTMLParser`,
-which could be exploited for a denial of service.
diff --git a/Misc/NEWS.d/next/Tests/2026-06-16-05-11-38.gh-issue-151096.Kq3Lp9.rst b/Misc/NEWS.d/next/Tests/2026-06-16-05-11-38.gh-issue-151096.Kq3Lp9.rst
deleted file mode 100644 (file)
index 3251c6f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix ``test_embed`` failing when CPython is configured with a split exec prefix
-(``--exec-prefix`` differing from ``--prefix``).
diff --git a/Misc/NEWS.d/next/Tests/2026-06-22-19-45-00.gh-issue-151626.K9pZ2x.rst b/Misc/NEWS.d/next/Tests/2026-06-22-19-45-00.gh-issue-151626.K9pZ2x.rst
deleted file mode 100644 (file)
index 9858415..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Fix several tests in ``test.test_inspect``, ``test.test_import``,
-``test.test_importlib``, ``test.test_py_compile`` and
-``test.test_compileall`` that failed when the test suite was run with
-:envvar:`PYTHONPYCACHEPREFIX` set.  These tests now neutralize the pycache
-prefix where they assume the default ``__pycache__`` bytecode layout.
diff --git a/Misc/NEWS.d/next/Windows/2026-04-21-16-07-11.gh-issue-140146.TAcUHA.rst b/Misc/NEWS.d/next/Windows/2026-04-21-16-07-11.gh-issue-140146.TAcUHA.rst
deleted file mode 100644 (file)
index 2d3e42c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Prevent :mod:`tkinter` from hanging on Windows if stdin is redirected to a pipe in an
-interactive session. This is helpful for testing interactive usage of
-tkinter from a script, for example as part of the cpython test suite.
diff --git a/Misc/NEWS.d/next/macOS/2026-07-17-23-20-27.gh-issue-152023.QAAgdj.rst b/Misc/NEWS.d/next/macOS/2026-07-17-23-20-27.gh-issue-152023.QAAgdj.rst
deleted file mode 100644 (file)
index afabb3d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Update macOS installer builds to SQLite 3.53.3. Enable median() and
-percentile() functions.
diff --git a/Misc/NEWS.d/next/macOS/2026-07-17-23-35-36.gh-issue-124111.dmM4lk.rst b/Misc/NEWS.d/next/macOS/2026-07-17-23-35-36.gh-issue-124111.dmM4lk.rst
deleted file mode 100644 (file)
index 48ab664..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Update macOS installer to use Tcl/Tk 9.0.4.
index 56f6a71ffb24db1c50360dc740115e3c508dc9d5..87c1bf2a5f7bac6821e806cb533e04a110eb696e 100644 (file)
@@ -1,4 +1,4 @@
-This is Python version 3.15.0 beta 3
+This is Python version 3.15.0 beta 4
 ====================================
 
 .. image:: https://github.com/python/cpython/actions/workflows/build.yml/badge.svg?branch=main&event=push