Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
927 commits
Select commit Hold shift + click to select a range
f58e582
[3.15] gh-153695: Fix sqlite3.Row.__hash__ with an unhashable value (…
miss-islington Jul 14, 2026
28c0653
[3.15] gh-153313: Run Emscripten PyRepl test in CI (GH-153701) (#153727)
miss-islington Jul 15, 2026
29cb75d
[3.15] Remove duplicate button_ok code in idlelib.textview (GH-153733…
miss-islington Jul 15, 2026
accfc34
[3.15] gh-153716: Harden ttk/tkinter GUI tests against display scalin…
miss-islington Jul 15, 2026
1268235
[3.15] gh-149816: Fix UAF in Modules/_pickle.c (GH-150024) (#153718)
nascheme Jul 15, 2026
29e733a
[3.15] gh-71086: Document negative offset support in struct.pack_into…
miss-islington Jul 15, 2026
22eff88
[3.15] gh-93417: Improve test_mimetypes (GH-150725) (GH-153748)
serhiy-storchaka Jul 15, 2026
5125584
[3.15] gh-150858: fix data race while changing `__qualname__` of a ty…
miss-islington Jul 15, 2026
25eb043
[3.15] gh-144774: Add critical section in `BaseException.__setstate__…
miss-islington Jul 15, 2026
04baaae
[3.15] gh-153550: Modernize the older prose sections of the tkinter d…
miss-islington Jul 15, 2026
fd4c7a8
[3.15] gh-153630: Add `str.remove{prefix,suffix}()` to the `str` meth…
miss-islington Jul 15, 2026
6d6f526
[3.15] gh-150411: fix `gc_generation.count` race in free-threading (G…
miss-islington Jul 16, 2026
9fcebd3
[3.15] gh-151644: Fix data race in sys.setdlopenflags/getdlopenflags …
miss-islington Jul 16, 2026
38c3f11
[3.15] gh-149162: Use _Py_LOCK_DONT_DETACH in intern_common (gh-14916…
miss-islington Jul 16, 2026
21ab8eb
[3.15] gh-85943: Fix BytesWarning in the struct format cache under -b…
miss-islington Jul 17, 2026
9f85842
[3.15] Shut down leaked executors in `test_interpreter_pool` (GH-1537…
miss-islington Jul 17, 2026
0be137d
[3.15] gh-153853: Fix parameter name of calendar.setfirstweekday() in…
miss-islington Jul 17, 2026
fefc0b4
[3.15] gh-151669: Normalize symlink targets in tarfile.TarFile.gettar…
miss-islington Jul 17, 2026
ec8cfec
[3.15] gh-152023: Update macOS installer builds to SQLite 3.53.3 (GH-…
miss-islington Jul 17, 2026
d87949b
[3.15] gh-124111: Update macOS installer to use Tcl/Tk 9.0.4. (GH-153…
miss-islington Jul 17, 2026
4d74b76
[3.15] gh-153872: Update macOS installer ReadMe files for 3.15. (GH-1…
miss-islington Jul 18, 2026
c642dc8
[3.15] gh-150583: Fix zstd compression level with digested ZstdDict (…
miss-islington Jul 18, 2026
0a6fa62
Python 3.15.0b4
hugovk Jul 18, 2026
841f1b9
[3.15] Add versionadded tag to wave module getformat functions (GH-15…
miss-islington Jul 18, 2026
5825c27
[3.15] gh-153899: Fix documented parameter names for `filecmp.cmpfile…
miss-islington Jul 18, 2026
9eeea8e
[3.15] Fix punctuation in `Doc/library/concurrent.interpreters.rst` (…
miss-islington Jul 18, 2026
6f74ce1
[3.15] gh-153808: Replace obsolete 'condition list' verbiage with 'ex…
miss-islington Jul 18, 2026
e145355
[3.15] Fix duplicated words in "What's new in Python 3.15" documentat…
miss-islington Jul 18, 2026
294e563
[3.15] Fix duplicated words in the 'Coroutines and tasks' documentati…
miss-islington Jul 18, 2026
b009722
[3.15] gh-153926: Fix documented parameter name for `calendar.calenda…
miss-islington Jul 18, 2026
72b9163
[3.15] gh-153934: Correct documented parameter in `calendar.weekheade…
miss-islington Jul 18, 2026
9e955d5
Post 3.15.0b4
hugovk Jul 18, 2026
e09f49e
[3.15] Test `calendar.February` deprecation (GH-153893) (#153919)
miss-islington Jul 18, 2026
b84d3cd
Merge branch '3.15' of https://github.com/python/cpython into 3.15
hugovk Jul 18, 2026
1c6670a
[3.15] gh-122102: Fix/improve docs of descriptor-related tools in `in…
miss-islington Jul 18, 2026
fd91971
[3.15] Docs: Fix typo in the pymanager command name (GH-153877) (GH-1…
miss-islington Jul 18, 2026
b6a140b
[3.15] gh-71896: Add a docs warning about trailing newlines ignored b…
miss-islington Jul 18, 2026
57a8629
[3.15] gh-141004: Document remaining `PyCF_*` compiler flag macros (G…
miss-islington Jul 18, 2026
f5c0906
[3.15] gh-141004: Document unstable executable kind macros from `pyfr…
miss-islington Jul 18, 2026
536d18b
[3.15] gh-153908: Fix data race in `itertools.count.__repr__` (GH-153…
miss-islington Jul 18, 2026
13e7aed
[3.15] gh-124111: Update Windows builds to Tcl/Tk 9.0.4 (GH-153990)
miss-islington Jul 18, 2026
0cb0723
[3.15] gh-153236: Propagate lazy submodule import errors (GH-153237) …
miss-islington Jul 18, 2026
0fb27f2
[3.15] Fix parameter name of `read_mime_types()` in `mimetypes` docs …
miss-islington Jul 18, 2026
e796691
[3.15] gh-150663: Document that PyErr_SetRaisedException accepts null…
miss-islington Jul 18, 2026
919f0a5
[3.15] Docs: point `uu` module users to the `"uu"` encoding (GH-15365…
miss-islington Jul 18, 2026
13b29a9
[3.15] Improve `getopt.getopt` and `getopt.gnu_getopt` test coverage …
miss-islington Jul 18, 2026
becc0f6
[3.15] Add vfspath TypeError test (GH-153987) (#154010)
miss-islington Jul 19, 2026
61aa141
[3.15] gh-153896: Deduplicate unhashable arguments in `typing.Literal…
miss-islington Jul 19, 2026
9ba9c56
[3.15] Fix typo "interruptability" in Logging Cookbook documentation …
miss-islington Jul 19, 2026
b51ecd8
[3.15] Add test coverage to check execution of GetoptError.__str__ (G…
miss-islington Jul 19, 2026
003764f
[3.15] Test that `ValueError` is raised when `vfsopen` is passed an i…
miss-islington Jul 19, 2026
3aa59f4
[3.15] fix typos in `abi3t-migration.rst` (GH-153918) (#154056)
miss-islington Jul 19, 2026
15335ae
[3.15] gh-154001: Avoid division by zero in binomialvariate (GH-15400…
miss-islington Jul 19, 2026
32cf04b
[3.15] gh-152769: fixup enabling of perf trampoline on musl (Alpine L…
jjhelmus Jul 19, 2026
5f2d0d2
[3.15] Docs: add frozendict to data types theme (GH-154063) (#154079)
miss-islington Jul 19, 2026
8177e47
[3.15] gh-149319: Make `asyncio` REPL respect `-I` and `-E` options (…
miss-islington Jul 19, 2026
aa3b972
[3.15] Improve colorsys coverage (GH-153982) (#154076)
miss-islington Jul 19, 2026
bc8af59
[3.15] Document getopt and gnu_getopt longopts argument as string (GH…
miss-islington Jul 19, 2026
9f7c44f
[3.15] Add test for explicit `cls` argument bypassing default JSON de…
miss-islington Jul 19, 2026
114aa8c
[3.15] gh-154053: Fix compilation of the ssl module against LibreSSL …
miss-islington Jul 19, 2026
46d7aa9
[3.15] gh-153864: Fix curses window.insch() for non-ASCII characters …
serhiy-storchaka Jul 19, 2026
7d1b64b
[3.15] gh-153862: Fix curses window.inch() for non-ASCII characters o…
serhiy-storchaka Jul 19, 2026
fd6bd15
[3.15] gh-153932: protect read of en_index during enumerate.reduce (G…
miss-islington Jul 19, 2026
fbac0fb
[3.15] gh-152798: update sys.thread_info.lock documentation to match …
miss-islington Jul 19, 2026
618f4ec
[3.15] improve json test coverage (GH-154123) (GH-154134)
miss-islington Jul 19, 2026
52e7302
[3.15] gh-139806: Mention pickle error changes in What's New in 3.14 …
miss-islington Jul 19, 2026
9bb83a1
[3.15] gh-154144: Fix false positive from the stdbool.h guard in _tes…
miss-islington Jul 19, 2026
9bb1271
[3.15] Fix typos in `Py_tp_base` macro documentation (GH-154150) (#15…
miss-islington Jul 19, 2026
b3ee190
[3.15] gh-151022: Fix remote debugging linetable reads (GH-151036) (#…
miss-islington Jul 19, 2026
2261368
[3.15] fix ResourceWarnings of test_kill_issue43884 in asyncio (GH-15…
miss-islington Jul 20, 2026
a706e80
[3.15] gh-119710: fix asyncio Process.wait() to finish on process exi…
miss-islington Jul 20, 2026
404a81d
[3.15] gh-154046: docs: fix dead link to codahale timing attacks arti…
miss-islington Jul 20, 2026
b7c3b52
[3.15] Fix grammatical typos in documentation (GH-154181) (#154190)
miss-islington Jul 20, 2026
3dd4fdc
[3.15] gh-154211: Skip C-stack exhaustion tests when the C stack is h…
miss-islington Jul 20, 2026
1df0ecd
[3.15] urllib: Add tests for HTTP errors to complete coverage (GH-154…
miss-islington Jul 20, 2026
346c7af
[3.15] gh-127049: fix race condition in asyncio signalling an unrelat…
miss-islington Jul 20, 2026
2e4a1fa
[3.15] gh-154176: Fix locale.strxfrm() crash on DragonFly BSD (GH-154…
miss-islington Jul 20, 2026
0dc3a04
[3.15] gh-154218: Fix test_posix_fallocate on file systems that do no…
miss-islington Jul 20, 2026
b05ed78
[3.15] gh-154226: Fix test_posix_pty_functions on Solaris (GH-154230)…
miss-islington Jul 20, 2026
2aee2fa
[3.15] gh-154225: Fix os.openpty() acquiring a controlling terminal o…
miss-islington Jul 20, 2026
4aae128
[3.15] gh-154227: Fix os.posix_openpt() on OpenBSD (GH-154228) (GH-15…
miss-islington Jul 20, 2026
7d485fe
[3.15] Fix typo in C API Type Object Structures documentation (GH-154…
miss-islington Jul 20, 2026
6a4a108
[3.15] Fix two typos in two stdlib docstrings (GH-153479) (#154252)
miss-islington Jul 20, 2026
1ad8381
[3.15] gh-154167: Fix test suite hang when SIGINT is ignored (GH-1541…
miss-islington Jul 20, 2026
707802f
[3.15] gh-154258: Fix mmap.resize() crash on NetBSD growing a shared …
miss-islington Jul 20, 2026
84e0673
[3.15] gh-99968: FAQ: dev versions end in `+dev` (GH-153262) (#154268)
miss-islington Jul 20, 2026
c6c1e9d
[3.15] gh-154260: Fix test_flush_parameters on DragonFly BSD (GH-1542…
miss-islington Jul 20, 2026
1be6770
[3.15] gh-125860: Skip separate-SCM_RIGHTS socket tests on NetBSD, Op…
miss-islington Jul 20, 2026
6747bcf
[3.15] gh-154240: Skip cmsg truncation socket tests on OpenBSD and Dr…
miss-islington Jul 20, 2026
9a52f94
[3.15] gh-154289: Fix test_socket.testGetServBy on DragonFly (GH-1542…
miss-islington Jul 20, 2026
387f7cd
[3.15] gh-154283: Make threading.get_native_id() unique across proces…
miss-islington Jul 20, 2026
4294605
[3.15] gh-154291: Fix socket.has_dualstack_ipv6() on DragonFly BSD (G…
miss-islington Jul 20, 2026
d1494f0
[3.15] gh-154275: Do not crash on deeply nested `__parameters__` in `…
miss-islington Jul 20, 2026
4eebb38
[3.15] gh-148665: Enable socket.shutdown function for emscripten (GH-…
miss-islington Jul 21, 2026
b7e0855
[3.15] gh-154307: Fix TemporaryDirectory cleanup on DragonFly BSD (GH…
miss-islington Jul 21, 2026
8ba1b04
[3.15] gh-154303: Skip test_sqlite3 CLI completion tests on OpenBSD (…
miss-islington Jul 21, 2026
c0129a0
[3.15] gh-103925: Fix csv.Sniffer for a quoted field ending a CRLF li…
miss-islington Jul 21, 2026
91839e5
[3.15] gh-154279: Skip readline completion tests that fail on DragonF…
miss-islington Jul 21, 2026
4f55c53
[3.15] gh-154325: Skip test_add_file_after_2107() if the file system …
miss-islington Jul 21, 2026
0fd1209
[3.15] gh-154326: Fix test_fsize_not_too_big() on Solaris (GH-154329)…
miss-islington Jul 21, 2026
0f49745
[3.15] gh-154308: Clear file flags in os_helper.rmtree() (GH-154310) …
miss-islington Jul 21, 2026
b3e046c
[3.15] gh-154275: Fix cleanup code in `_Py_make_parameters` (GH-15434…
miss-islington Jul 21, 2026
682610d
[3.15] gh-153881: Atomically load `dk_nentries` in `_PyObject_IsInsta…
miss-islington Jul 21, 2026
b8c7ff9
[3.15] gh-154352: Fix killing a worker process in regrtest on OpenBSD…
miss-islington Jul 21, 2026
e265465
[3.15] gh-154345: Fix test_posix_pty_functions() killing the worker o…
miss-islington Jul 21, 2026
098eb36
[3.15] gh-154379: Fix test_epoll on Solaris (GH-154380) (GH-154382)
miss-islington Jul 21, 2026
fe66754
[3.15] gh-154389: Do not use uuid_create() on OpenBSD (GH-154390) (GH…
miss-islington Jul 21, 2026
a111ea1
[3.15] gh-153741: Harden IDLE GUI tests for newer Tk and display scal…
miss-islington Jul 22, 2026
a5e2d74
[3.15] gh-154399: Fix venv activate.csh in a non-interactive shell (G…
miss-islington Jul 22, 2026
35560dc
[3.15] gh-154394: Skip test_tcsendbreak on OpenBSD (GH-154397) (GH-15…
serhiy-storchaka Jul 22, 2026
566d678
[3.15] gh-154416: Fix hanging test_tcflow on DragonFly BSD (GH-154417…
serhiy-storchaka Jul 22, 2026
034408f
[3.15] gh-154414: Skip test_tcsendbreak on DragonFly BSD (GH-154415) …
serhiy-storchaka Jul 22, 2026
d4e3529
[3.15] gh-154427: Check the access time in UtimeTests only if it is s…
miss-islington Jul 22, 2026
539bb54
[3.15] Test `object_hook` and pickleability of some JSON components (…
miss-islington Jul 22, 2026
f9ebe5e
[3.15] gh-154007: Improve test coverage for the `shlex` module (GH-15…
miss-islington Jul 22, 2026
731d94d
[3.15] gh-154441: Skip the scheduler tests if the API requires privil…
miss-islington Jul 22, 2026
074a365
[3.15] gh-154366: Fix test_asyncio.test_sendfile timing out on Dragon…
miss-islington Jul 22, 2026
314e753
[3.15] gh-154437: Fix test_getcwd_long_path on DragonFly BSD (GH-1544…
miss-islington Jul 22, 2026
e8206b6
[3.15] gh-154014: Initialize cold executor vm_data fields (GH-154142)…
miss-islington Jul 22, 2026
5f3b228
[3.15] gh-154272: Skip forkserver tests when the start method is unav…
miss-islington Jul 22, 2026
cd60bb7
[3.15] gh-153872: macOS: free-threading support is installed by defau…
miss-islington Jul 22, 2026
7676f95
[3.15] gh-154460: Do not use wcsftime() on OpenBSD (GH-154461) (GH-15…
miss-islington Jul 22, 2026
e9d9fd9
[3.15] gh-154431: Fix data race in `sys.audithook` (GH-154462) (#154477)
miss-islington Jul 22, 2026
b84c4cc
[3.15] gh-150076: Fix the documented signature of warnings.deprecated…
miss-islington Jul 22, 2026
df36cf1
[3.15] gh-154137: Fix handle leak in test_winapi (GH-154201) (#154202)
miss-islington Jul 22, 2026
f0728d3
[3.15] gh-154443: Fix test_makedev on DragonFly BSD (GH-154444) (GH-1…
miss-islington Jul 22, 2026
7dca47d
[3.15] gh-153291: Fix data race in readline.get_completer() and get_p…
miss-islington Jul 22, 2026
6bc3e6c
[3.15] gh-154272: Skip more forkserver tests if the start method is u…
serhiy-storchaka Jul 22, 2026
a47c03d
[3.15] gh-154502: Disable junk filling in the OpenBSD allocator in te…
miss-islington Jul 23, 2026
41d7b3c
[3.15] gh-151949: Fix Sphinx reference warnings in `Doc/library/lzma.…
miss-islington Jul 23, 2026
aed19a7
[3.15] gh-139445: Skip pyrepl tests if the terminal is not supported …
miss-islington Jul 23, 2026
5bf6a74
[3.15] gh-153761: Fix asyncio sock_accept() dropping a connection whe…
miss-islington Jul 24, 2026
a5d357c
[3.15] gh-154435: Fix os.posix_fadvise() and os.posix_fallocate() on …
miss-islington Jul 24, 2026
3915f1e
[3.15] gh-154582: Fix test_invalid_utf8_arg in non-UTF-8 multibyte lo…
miss-islington Jul 24, 2026
f921edf
[3.15] gh-146011: Fix use-after-free in `signaldict_repr` after delet…
miss-islington Jul 24, 2026
b6f24be
[3.15] gh-76595: Add tests for PyCapsule_Import() (GH-154588) (GH-154…
miss-islington Jul 24, 2026
71361f3
[3.15] gh-154551: Fix ctypes.util.find_library() in non-UTF-8 locales…
miss-islington Jul 24, 2026
99f6844
[3.15] gh-103847: fix some asyncio subprocess cancellation bugs (GH-1…
miss-islington Jul 24, 2026
370e670
[3.15] gh-153419: Fix several issues around bytearray __init__ (GH-15…
miss-islington Jul 24, 2026
efbe54a
[3.15] gh-154580: Fix python-gdb.py pretty-printing non-ASCII strings…
miss-islington Jul 24, 2026
fe08b70
[3.15] GH-142035: Fix wrapping of colorized argparse help text (GH-15…
miss-islington Jul 24, 2026
848f0ba
[3.15] gh-153570: Fix use-after-free in bytearray.take_bytes() with a…
miss-islington Jul 24, 2026
4245891
[3.15] gh-134745: Remove dead code in `thread_nt.h` left by gh-134747…
miss-islington Jul 24, 2026
1f53f91
[3.15] gh-118150: warn in doc about results asymmetry for difflib jun…
miss-islington Jul 24, 2026
3bf0883
[3.15] gh-150952: Fix incorrect sock_sendto docstring (GH-150953) (#1…
miss-islington Jul 25, 2026
f188bc3
[3.15] gh-151540: Use a selector event loop in the happy-eyeballs tes…
miss-islington Jul 25, 2026
b4d0b26
[3.15] gh-153133: Fix socket leak in error path of asyncio create_con…
miss-islington Jul 25, 2026
8f99c7a
[3.15] GH-153809: Untrack TaskObj from GC before calling unregister_t…
miss-islington Jul 25, 2026
c867740
[3.15] gh-120866: Document behavior change of asyncio.Server.wait_clo…
miss-islington Jul 25, 2026
2bdc27e
[3.15] gh-145030: Fix asyncio write pipe transport for named FIFOs on…
miss-islington Jul 25, 2026
cf2e825
[3.15] gh-152431: update StreamReader transport after StreamWriter.st…
miss-islington Jul 25, 2026
174ebdf
[3.15] gh-154493: Add the UCD license to `Doc/license.rst` (GH-154651…
miss-islington Jul 25, 2026
e1b80e6
[3.15] Add the free-threaded Windows build output dirs to `.gitignore…
miss-islington Jul 25, 2026
1667a6c
[3.15] Fix a stale link to the `math.integer.isqrt()` correctness pro…
miss-islington Jul 25, 2026
3a33ccd
[3.15] gh-154695: fix asyncio.Task eager_start=True with no explicit …
miss-islington Jul 26, 2026
5be0125
[3.15] gh-153862: Fix spurious color pair in curses window.inch() on …
serhiy-storchaka Jul 26, 2026
6e6884b
[3.15] gh-93251: Decode localized socket error messages from the loca…
miss-islington Jul 26, 2026
f4c210c
[3.15] gh-73458: Fix logging.config.listen() on a host without an IPv…
miss-islington Jul 26, 2026
df66175
[3.15] gh-151955: Allow more ParamSpec and TypeVarTuple bounds (GH-15…
miss-islington Jul 27, 2026
c6a9eff
[3.15] gh-140326: disable the relative import in asyncio REPL (GH-140…
miss-islington Jul 27, 2026
095a71d
[3.15] Update mypy to 2.3 (GH-154764) (#154766)
miss-islington Jul 27, 2026
6246342
[3.15] gh-154189: Fix use-after-free in `functools.partial_vectorcall…
miss-islington Jul 27, 2026
249a513
[3.15] gh-150208: Avoid double-quoting string values in sysconfigdata…
miss-islington Jul 27, 2026
44fca7e
[3.15] gh-154431: Revert "gh-154431: Fix data race in `sys.audithook`…
miss-islington Jul 27, 2026
5cc8361
[3.15] gh-154746: Update docstring for `collections.Counter` (GH-1547…
miss-islington Jul 28, 2026
383c7bd
[3.15] gh-154070: Build the curses module wide by capability, not by …
serhiy-storchaka Jul 28, 2026
c441fa2
[3.15] gh-152548: Add a test.support.isolation.runInSubprocess() deco…
miss-islington Jul 28, 2026
80e6fa8
[3.15] gh-154775: Don't accept duplicate plus sign when matching comp…
miss-islington Jul 28, 2026
3e670c3
[3.15] gh-142349: Clarify lazy import filters have positional-only pa…
miss-islington Jul 28, 2026
2e2dc91
[3.15] gh-154661: Reorganize difflib documentation (GH-154662) (#154805)
miss-islington Jul 28, 2026
430b2d5
[3.15] gh-154592: Fix test_peg_generator in non-UTF-8 locales with a …
miss-islington Jul 28, 2026
de106cc
[3.15] gh-154822: Fix racy assertion during finalization (GH-154824) …
miss-islington Jul 28, 2026
d83c65a
[3.15] gh-154821: fix data races on function attributes (GH-154826) (…
miss-islington Jul 28, 2026
1088266
[3.15] gh-154324: Fix os.sendfile() error reporting on illumos (GH-15…
miss-islington Jul 28, 2026
048b1f6
[3.15] gh-153531: fix thread safety of setting func.__doc__ and func.…
miss-islington Jul 29, 2026
23b2b40
[3.15] gh-122931: Allow stable abi3 API extensions to include a multi…
miss-islington Jul 29, 2026
02c08e6
[3.15] gh-152674: Avoid quadratic behavior in xml.etree.ElementPath i…
miss-islington Jul 29, 2026
c532841
[3.15] gh-132604: Track deprecation related to runtime-checkable prot…
miss-islington Jul 29, 2026
23bf108
[3.15] gh-62534: Document that three-argument type() does not call __…
miss-islington Jul 29, 2026
7bd27e6
[3.15] gh-131565: Implement ctypes.util.dllist() in the _ctypes exten…
miss-islington Jul 29, 2026
269638b
[3.15] gh-154709: Fix out-of-bounds access in dict reverse iterator (…
miss-islington Jul 29, 2026
dd2714d
[3.15] gh-154836: Fix Popen.wait() with very large timeouts on the pi…
miss-islington Jul 29, 2026
cfd8e2a
[3.15] Make `os.get_terminal_size` check `isatty` before calling `ioc…
miss-islington Jul 30, 2026
18e1144
[3.15] Minor fixes for Android (GH-154895) (#154905)
miss-islington Jul 30, 2026
928b61d
[3.15] gh-151941: Fix Sphinx reference warnings in `Doc/c-api/` (GH-1…
miss-islington Jul 30, 2026
f82903b
[3.15] gh-154587: Fix Windows buffer declaration in _cursesmodule (GH…
miss-islington Jul 30, 2026
c22cbf8
[3.15] GH-148468: Accept string-like proxy objects in colorized argpa…
miss-islington Jul 30, 2026
0791c2b
[3.15] CODEOWNERS: Remove everyone from `removed-ids.txt` (GH-154886)…
miss-islington Jul 30, 2026
608761b
[3.15] gh-135828: Disable syntax highlighting in Using Python on macO…
miss-islington Jul 30, 2026
aca93c8
[3.15] Update bytecode magic number for the 3.15 release candidate (G…
miss-islington Jul 30, 2026
852d804
[3.15] Some tidying for GitHub Actions (GH-154950) (#154961)
miss-islington Jul 30, 2026
485c624
[3.15] gh-94543: Improve tempfile.mkstemp documentation about cleanup…
miss-islington Jul 30, 2026
27372c2
[3.15] gh-153404: Silently ignore non-decimal digits in robots.txt Cr…
miss-islington Jul 31, 2026
b3bfeae
[3.15] gh-105812: Make use of the Sphinx `deco` role in documentation…
hugovk Jul 31, 2026
067554b
[3.15] gh-154936: Fix JSON control character error position (GH-15494…
miss-islington Jul 31, 2026
a19a086
[3.15] Improved test coverage for codeop.py. (GH-154100) (#154938)
miss-islington Jul 31, 2026
df1218e
[3.15] gh-80678: Document the preferred delimiters of csv.Sniffer (GH…
hugovk Jul 31, 2026
c19b4a6
[3.15] gh-154848: Enforce frame boundaries in the C unpickler (GH-154…
miss-islington Jul 31, 2026
418a0a9
[3.15] gh-133879: Copyedit "What's New in Python 3.15" (GH-154978) (#…
miss-islington Jul 31, 2026
965f1f9
[3.15] gh-151942: Fix all Sphinx nitpicks in the Python 2.6 What's Ne…
miss-islington Jul 31, 2026
8fb615e
[3.15] Update Android Gradle plugin to version 9.3.1 (GH-155012) (#15…
miss-islington Aug 1, 2026
74887c9
[3.15] gh-154892: Fix `PyLong_AsLong()` error checks in `_zoneinfo` (…
miss-islington Aug 1, 2026
341d9e7
[3.15] gh-79366: Fix a race condition when removing a logging handler…
miss-islington Aug 2, 2026
6ce19a8
[3.15] gh-155052: Fix docstring of decimal.Context.copy (GH-155062) (…
BHUVANSH855 Aug 2, 2026
a09a635
[3.15] gh-155013: Fix a reference to "partial object" in the `functoo…
miss-islington Aug 2, 2026
07e73c0
[3.15] gh-152384: pixi-packages: use `flags` to define variants (GH-1…
miss-islington Aug 2, 2026
847d099
[3.15] GH-138800: Fix variable substitution in python3.pc for Android…
miss-islington Aug 3, 2026
d52184b
[3.15] gh-109638: Fix exponential time in csv.Sniffer for doubled quo…
serhiy-storchaka Aug 3, 2026
476fb09
[3.15] gh-98820: Fix quadratic time in csv.Sniffer for quoted fields …
serhiy-storchaka Aug 3, 2026
9086d9b
[3.15] gh-154738: Propagate reparse-deferral setting to pyexpat subpa…
miss-islington Aug 3, 2026
e972f76
[3.15] Backport GH-148874: Make sure that mngr.__exit__() is always c…
markshannon Aug 3, 2026
b62b338
[3.15] gh-155063: Upgrade bundled pip to 26.2 (GH-155064) (#155137)
miss-islington Aug 3, 2026
5bc7459
[3.15] gh-135736: Fix interaction between TaskGroup and aclose() (GH-…
miss-islington Aug 3, 2026
d768d94
[3.15] gh-75279: Document that asyncio StreamWriter.drain() may not y…
miss-islington Aug 4, 2026
aee2911
[3.15] gh-145030: Fix asyncio write pipe transport for named FIFOs on…
miss-islington Aug 4, 2026
398dbef
[3.15] gh-154902: Type-check the SET_ADD operand (#155071)
deadlovelll Aug 4, 2026
37e98da
Python 3.15.0rc1
hugovk Aug 4, 2026
eea1a49
Post 3.15.0rc1
hugovk Aug 4, 2026
a7f3e56
[3.15] gh-153711: Add runtime guards for dup3 & pipe2 (GH-155174) (#1…
miss-islington Aug 5, 2026
b1dd489
[3.15] gh-155063: Upgrade bundled pip to 26.2.1 (GH-155196) (#155203)
miss-islington Aug 5, 2026
f20b504
[3.15] GH-155009: Preserve argparse prog for programmatic module-as-m…
miss-islington Aug 5, 2026
027444c
[3.15] gh-150693: Combine docs sections for external resources (GH-15…
miss-islington Aug 6, 2026
606df1b
[3.15] gh-151925: Clarify ast.DictComp.value for dict unpacking (GH-1…
miss-islington Aug 6, 2026
59976fa
[3.15] gh-155009: Fix argparse test on non-UTF-8 locales like Raspbia…
miss-islington Aug 7, 2026
86d5955
[3.15] gh-74366: Fix the documentation of "$" in PyArg_ParseTupleAndK…
miss-islington Aug 7, 2026
7972495
[3.15] gh-104091: Suggest TaskGroup for running background tasks in a…
miss-islington Aug 7, 2026
70df291
[3.15] gh-152105: Remove docs snippet that uses internal C API (GH-15…
miss-islington Aug 7, 2026
c56ce5a
[3.15] gh-154948: Fix `test_zipfile` failure when `SOURCE_DATE_EPOCH`…
StanFromIreland Aug 7, 2026
10c48a9
[3.15] gh-155352: Fix inconsistent error messages between parse_args …
miss-islington Aug 7, 2026
524561b
[3.15] gh-155339: Document the change of behaviour about parsing nega…
miss-islington Aug 8, 2026
6c406a4
[3.15] gh-155146: Do not depend on the exact number of allocations in…
miss-islington Aug 8, 2026
a8a3b24
[3.15] gh-151524: Make it clearer that `_PyInstrumentation_DISABLE` i…
miss-islington Aug 8, 2026
a1ab3b0
[3.15] gh-75876: Correct the memory use declared by some bigmem tests…
miss-islington Aug 8, 2026
be93a4a
[3.15] gh-110793: Add CI job that runs tests with an installed build …
miss-islington Aug 10, 2026
2396815
[3.15] gh-154086: Fix flamegraph thread sample counts (GH-154104) (#1…
miss-islington Aug 10, 2026
74da6fb
[3.15] gh-151365: Temporarily downgrade Git to prevent fatal error (G…
miss-islington Aug 11, 2026
1bcc1e4
[3.15] gh-154059: Fix Tachyon flame graph time units (GH-154036) (#15…
miss-islington Aug 12, 2026
0f175f3
[3.15] Docs: simplify `turtle` tutorial's star example code (GH-15523…
miss-islington Aug 12, 2026
d390759
[3.15] gh-155558: Update bundled Expat to 2.8.3 (GH-155560) (#155612)
miss-islington Aug 12, 2026
ad09d00
[3.15] gh-154568: Fix array unpickling of little-endian float16 (GH-1…
miss-islington Aug 12, 2026
0a787f2
[3.15] gh-155485: Skip `test_pyexpat.test_subparser_inherits_reparse_…
miss-islington Aug 12, 2026
5fc9651
[3.15] gh-110167: Document the increase of `test.support.LOOPBACK_TIM…
miss-islington Aug 12, 2026
52ab8e3
[3.15] gh-76303: Improve documentation of the -x command line option …
miss-islington Aug 12, 2026
33de482
[3.15] Fix description of -W message field in man page (GH-111371) (#…
miss-islington Aug 12, 2026
927e833
[3.15] gh-62917: Add tests for urllib.request.urlcleanup() (GH-155446…
miss-islington Aug 12, 2026
45130bf
[3.15] gh-155491: Fix subprocess test_encoding_warning() (GH-155492) …
miss-islington Aug 12, 2026
c91586b
[3.15] gh-102184: Test os.sync() only if the "walltime" resource is e…
miss-islington Aug 12, 2026
8b3dc69
[3.15] gh-155423: Make BaseFileTest.tearDown() in test_logging robust…
miss-islington Aug 12, 2026
ed38a08
[3.15] gh-151925: Fix minor issues in clarification introduced by gh-…
miss-islington Aug 12, 2026
d0c2194
[3.15] gh-155486: Allow non-compact integers in `TO_BOOL_INT` (GH-155…
marinelay Aug 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
root = true

[*.{py,c,cpp,h,js,rst,md,yml,yaml,gram}]
[*.{py,c,cpp,h,js,rst,md,yml,yaml,toml,gram}]
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space

[*.{py,c,cpp,h,gram}]
[*.{py,c,cpp,h,toml,gram}]
indent_size = 4

[*.rst]
Expand Down
33 changes: 14 additions & 19 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -156,28 +156,24 @@ Misc/libabigail.abignore @encukou
# ----------------------------------------------------------------------------

# Android
Android/ @mhsmith @freakboy3742
Platforms/Android/ @mhsmith @freakboy3742
Doc/using/android.rst @mhsmith @freakboy3742
Lib/_android_support.py @mhsmith @freakboy3742
Lib/test/test_android.py @mhsmith @freakboy3742

# iOS
Doc/using/ios.rst @freakboy3742
Lib/_ios_support.py @freakboy3742
Apple/ @freakboy3742
iOS/ @freakboy3742
Platforms/Apple/ @freakboy3742

# macOS
Mac/ @python/macos-team
Lib/_osx_support.py @python/macos-team
Lib/test/test__osx_support.py @python/macos-team

# WebAssembly
Tools/wasm/README.md @brettcannon @freakboy3742 @emmatyping

# WebAssembly (Emscripten)
Tools/wasm/config.site-wasm32-emscripten @freakboy3742 @emmatyping
Tools/wasm/emscripten @freakboy3742 @emmatyping
Platforms/emscripten @freakboy3742 @emmatyping
Tools/wasm/emscripten @freakboy3742 @emmatyping

# WebAssembly (WASI)
Platforms/WASI @brettcannon @emmatyping @savannahostrowski
Expand Down Expand Up @@ -340,7 +336,6 @@ Modules/_remote_debugging/ @pablogsal

# Sub-Interpreters
**/*crossinterp* @ericsnowcurrently
**/*interpreteridobject.* @ericsnowcurrently
Doc/library/concurrent.interpreters.rst @ericsnowcurrently
Lib/concurrent/futures/interpreter.py @ericsnowcurrently
Lib/concurrent/interpreters/ @ericsnowcurrently
Expand Down Expand Up @@ -574,9 +569,9 @@ Lib/shutil.py @giampaolo
Lib/test/test_shutil.py @giampaolo

# Site
Lib/site.py @FFY00
Lib/test/test_site.py @FFY00
Doc/library/site.rst @FFY00
Lib/site.py @FFY00 @warsaw
Lib/test/test_site.py @FFY00 @warsaw
Doc/library/site.rst @FFY00 @warsaw

# string.templatelib
Doc/library/string.templatelib.rst @lysnikolaou @AA-Turner
Expand All @@ -587,10 +582,10 @@ Lib/test/test_string/test_templatelib.py @lysnikolaou @AA-Turner
**/*sysconfig* @FFY00

# SQLite 3
Doc/library/sqlite3.rst @berkerpeksag @erlend-aasland
Lib/sqlite3/ @berkerpeksag @erlend-aasland
Lib/test/test_sqlite3/ @berkerpeksag @erlend-aasland
Modules/_sqlite/ @berkerpeksag @erlend-aasland
Doc/library/sqlite3.rst @erlend-aasland
Lib/sqlite3/ @erlend-aasland
Lib/test/test_sqlite3/ @erlend-aasland
Modules/_sqlite/ @erlend-aasland

# Subprocess
Lib/subprocess.py @gpshead
Expand Down Expand Up @@ -623,9 +618,6 @@ Modules/_typesmodule.c @AA-Turner
Lib/unittest/mock.py @cjw296
Lib/test/test_unittest/testmock/ @cjw296

# Urllib
**/*robotparser* @berkerpeksag

# Venv
**/*venv* @vsajip @FFY00

Expand Down Expand Up @@ -654,3 +646,6 @@ Modules/**/clinic/
Objects/**/clinic/
PC/**/clinic/
Python/**/clinic/

# Exclude HTML IDs list
Doc/tools/removed-ids.txt
7 changes: 7 additions & 0 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
config-variables: null

# Pending release of actionlint > 1.7.12 for ubuntu-26.04* support:
# https://github.com/rhysd/actionlint/pull/683
self-hosted-runner:
labels:
- ubuntu-26.04
- ubuntu-26.04-arm

paths:
.github/workflows/**/*.yml:
ignore:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/add-issue-header.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ permissions:

jobs:
add-header:
runs-on: ubuntu-latest
runs-on: ubuntu-slim
permissions:
issues: write
timeout-minutes: 5
Expand Down
122 changes: 83 additions & 39 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,58 @@ jobs:
if: fromJSON(needs.build-context.outputs.run-docs)
uses: ./.github/workflows/reusable-docs.yml

check-abi:
name: 'Check if the ABI has changed'
runs-on: ubuntu-22.04 # 24.04 causes spurious errors
needs: build-context
if: needs.build-context.outputs.run-tests == 'true'
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3.x'
- name: Install dependencies
run: |
sudo ./.github/workflows/posix-deps-apt.sh
sudo apt-get install -yq --no-install-recommends abigail-tools
- name: Build CPython
env:
CFLAGS: -g3 -O0
run: |
# Build Python with the libpython dynamic library
./configure --enable-shared
make -j4
- name: Check for changes in the ABI
id: check
run: |
if ! make check-abidump; then
echo "Generated ABI file is not up to date."
echo "Please add the release manager of this branch as a reviewer of this PR."
echo ""
echo "The up to date ABI file should be attached to this build as an artifact."
echo ""
echo "To learn more about this check: https://devguide.python.org/getting-started/setup-building/index.html#regenerate-the-abi-dump"
echo ""
exit 1
fi
- name: Generate updated ABI files
if: ${{ failure() && steps.check.conclusion == 'failure' }}
run: |
make regen-abidump
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
name: Publish updated ABI files
if: ${{ failure() && steps.check.conclusion == 'failure' }}
with:
name: abi-data
path: ./Doc/data/*.abi

check-autoconf-regen:
name: 'Check if Autoconf files are up to date'
# Don't use ubuntu-latest but a specific version to make the job
# reproducible: to get the same tools versions (autoconf, aclocal, ...)
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
container:
image: ghcr.io/python/autoconf:2025.01.02.12581854023
timeout-minutes: 60
Expand Down Expand Up @@ -96,7 +143,7 @@ jobs:
name: 'Check if generated files are up to date'
# Don't use ubuntu-latest but a specific version to make the job
# reproducible: to get the same tools versions (autoconf, aclocal, ...)
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
timeout-minutes: 60
needs: build-context
if: needs.build-context.outputs.run-tests == 'true'
Expand Down Expand Up @@ -206,16 +253,16 @@ jobs:
strategy:
fail-fast: false
matrix:
# macos-26 is Apple Silicon, macos-15-intel is Intel.
# macos-15-intel only runs tests against the GIL-enabled CPython.
# macos-26 is Apple Silicon, macos-26-intel is Intel.
# macos-26-intel only runs tests against the GIL-enabled CPython.
os:
- macos-26
- macos-15-intel
- macos-26-intel
free-threading:
- false
- true
exclude:
- os: macos-15-intel
- os: macos-26-intel
free-threading: true
uses: ./.github/workflows/reusable-macos.yml
with:
Expand All @@ -239,18 +286,18 @@ jobs:
- false
- true
os:
- ubuntu-24.04
- ubuntu-24.04-arm
- ubuntu-26.04
- ubuntu-26.04-arm
exclude:
# Do not test BOLT with free-threading, to conserve resources
- bolt: true
free-threading: true
# BOLT currently crashes during instrumentation on aarch64
- os: ubuntu-24.04-arm
- os: ubuntu-26.04-arm
bolt: true
include:
# Enable CPU-intensive tests on ARM (default build only)
- os: ubuntu-24.04-arm
- os: ubuntu-26.04-arm
bolt: false
free-threading: false
test-opts: '-u cpu'
Expand All @@ -261,6 +308,12 @@ jobs:
os: ${{ matrix.os }}
test-opts: ${{ matrix.test-opts || '' }}

build-ubuntu-installed:
name: 'Ubuntu (installed)'
needs: build-context
if: needs.build-context.outputs.run-ubuntu == 'true'
uses: ./.github/workflows/reusable-install.yml

build-ubuntu-ssltests:
name: 'Ubuntu SSL tests'
runs-on: ${{ matrix.os }}
Expand All @@ -270,22 +323,21 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
os: [ubuntu-26.04]
ssllib:
# See Tools/ssl/make_ssl_data.py for notes on adding a new version
## OpenSSL
# Keep 1.1.1w in our list despite it being upstream EOL and otherwise
# unsupported as it most resembles other 1.1.1-work-a-like ssl APIs
# supported by important vendors such as AWS-LC.
- { name: openssl, version: 1.1.1w }
- { name: openssl, version: 3.0.20 }
- { name: openssl, version: 3.3.7 }
- { name: openssl, version: 3.4.5 }
- { name: openssl, version: 3.5.6 }
- { name: openssl, version: 3.6.2 }
- { name: openssl, version: 4.0.0 }
- { name: openssl, version: 3.0.21 }
- { name: openssl, version: 3.4.6 }
- { name: openssl, version: 3.5.7 }
- { name: openssl, version: 3.6.3 }
- { name: openssl, version: 4.0.1 }
## AWS-LC
- { name: aws-lc, version: 1.72.1 }
- { name: aws-lc, version: 5.0.0 }
env:
SSLLIB_VER: ${{ matrix.ssllib.version }}
MULTISSL_DIR: ${{ github.workspace }}/multissl
Expand Down Expand Up @@ -347,7 +399,7 @@ jobs:
- arch: aarch64
runs-on: macos-26
- arch: x86_64
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04

runs-on: ${{ matrix.runs-on }}
steps:
Expand All @@ -362,23 +414,14 @@ jobs:
needs: build-context
if: needs.build-context.outputs.run-ios == 'true'
timeout-minutes: 60
runs-on: macos-14
runs-on: macos-26
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

# GitHub recommends explicitly selecting the desired Xcode version:
# https://github.com/actions/runner-images/issues/12541#issuecomment-3083850140
# This became a necessity as a result of
# https://github.com/actions/runner-images/issues/12541 and
# https://github.com/actions/runner-images/issues/12751.
- name: Select Xcode version
run: |
sudo xcode-select --switch /Applications/Xcode_15.4.app

- name: Build and test
run: python3 Platforms/Apple ci iOS --fast-ci --simulator 'iPhone SE (3rd generation),OS=17.5'
run: python3 Platforms/Apple ci iOS --fast-ci

build-emscripten:
name: 'Emscripten'
Expand All @@ -394,12 +437,12 @@ jobs:

test-hypothesis:
name: "Hypothesis tests on Ubuntu"
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
timeout-minutes: 60
needs: build-context
if: needs.build-context.outputs.run-ubuntu == 'true'
env:
OPENSSL_VER: 3.5.6
OPENSSL_VER: 3.5.7
PYTHONSTRICTEXTENSIONBUILD: 1
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand Down Expand Up @@ -505,9 +548,9 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
os: [ubuntu-26.04]
env:
OPENSSL_VER: 3.5.6
OPENSSL_VER: 3.5.7
PYTHONSTRICTEXTENSIONBUILD: 1
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
steps:
Expand All @@ -520,10 +563,6 @@ jobs:
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
- name: Install dependencies
run: sudo ./.github/workflows/posix-deps-apt.sh
- name: Set up GCC-10 for ASAN
uses: egor-tensin/setup-gcc@a2861a8b8538f49cf2850980acccf6b05a1b2ae4 # v2.0
with:
version: 10
- name: Configure OpenSSL env vars
run: |
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
Expand Down Expand Up @@ -573,7 +612,7 @@ jobs:

cross-build-linux:
name: Cross build Linux
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
timeout-minutes: 60
needs: build-context
if: needs.build-context.outputs.run-ubuntu == 'true'
Expand Down Expand Up @@ -602,6 +641,9 @@ jobs:
run: ./configure --prefix="$BUILD_DIR/cross-python" --with-build-python="$BUILD_DIR/host-python/bin/python3"
- name: Install cross Python
run: make -j8 install
- name: Display build info
run: |
"$BUILD_DIR/cross-python/bin/python3" -m test.pythoninfo
- name: Run test subset with host build
run: |
"$BUILD_DIR/cross-python/bin/python3" -m test test_sysconfig test_site test_embed
Expand Down Expand Up @@ -664,6 +706,7 @@ jobs:
- build-windows-msi
- build-macos
- build-ubuntu
- build-ubuntu-installed
- build-ubuntu-ssltests
- build-ios
- build-emscripten
Expand Down Expand Up @@ -714,6 +757,7 @@ jobs:
!fromJSON(needs.build-context.outputs.run-ubuntu)
&& '
build-ubuntu,
build-ubuntu-installed,
build-ubuntu-ssltests,
test-hypothesis,
build-asan,
Expand Down
Loading
Loading