Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Updates the repository’s declared Python version to 3.14.4 across configuration and documentation.
Changes:
- Bump
.python-versionfrom 3.14.3 to 3.14.4 - Update Python version references in
python/README.mdandSECURITY.md
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| python/README.md | Updates the documented Python version in the environment section |
| SECURITY.md | Updates the security baseline table entry for Python exercises |
| .python-version | Updates the pinned Python interpreter version |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
0. Summary of Changes
Release date: April 7, 2026
Scope: ~337 bugfixes, build improvements, and documentation changes
1. Security
xml.parsers.expatwhen converting deeply nested XML content models withElementDeclHandlerhttp.cookies.Morsel.update()andBaseCookie.js_output()SourcelessFileLoaderusesio.open_codewhen opening.pycfileswsgiref.handlersto prevent HTTP header injectionwebbrowser.open()2. Core and Builtins
2-1. Crash / Memory Safety Fixes
__get__forMETH_METHODdescriptors with invalid second argumentSystemErrorwhen__classdict__or__conditional_annotations__is in a class-scope inlined comprehension (OSS-Fuzz)os.pathconfwhen called with-1SystemErrorin parser when encoding cookie decodes to carriage returnsstr.maketransdict is concurrently modifiedNULLpointer arithmeticPyInitfunction raises an exception from a subinterpreterSimpleNamespace.__replace__()on non-namespace instancesrepr()for lists and tuples containingNULLs2-2. Free-Threaded Build Improvements
_PyInterpreterFrame.visitedwhen copying frames so incremental GC doesn't read uninitialized bytessys.internandPyObject_SetAttrby avoiding interpreter-wide lockclassmethodandstaticmethodcallsbytearray.resizethread-safe using critical sections__class__on newly created objectslist.__sizeof__importlibwhere a thread could receive a stale module reference2-3. Other Core Fixes
_remote_debuggingmoduleSyntaxErrorwhen re-initializingsocketwhen audit hooks raise exceptionsPyUnicodeWriter_WriteASCIIby adding zero-length check_Py_atomic_load_uint16(C11 atomics backend)strandfloatopcodespython --help-envandpython --help-xoptionsoutputstructseq.__replace__()and reference leaks in error scenariosctypesand modules loading Python shared librarydict.clearwith embedded values and re-entrant mutation__dict__if overwritten at runtime__repr__forExceptionGroupis not affected by subsequent mutation of original sequence\N{name}escape syntax now supports CJK ideographs and Hangul syllables with case-insensitive names3. Library
3-1. Regression Fix
multiprocessingforkserver would fail withBrokenPipeErrorwhen parent has very largesys.argv3-2. Crash Fixes
itertools.groupbywhen grouper iterator is concurrently mutatedsslcrash when SNI callback uses garbage-collected SSL objectsqlite3crash whencreate_collationfails withSQLITE_BUSY; fixMemoryErrorvsSystemErrorin context callback allocationstructcallingrepr()or__sizeof__()on uninitializedStructobjecthmacandhashlibwhen C extension module initialization failsxml.parsers.expat.ExternalEntityParserCreateon allocation failuresslwhenSSL_new()returnsNULLsocket.sendmsg()from re-entrant ancillary data mutationitertools.groupbyfrom re-entrant__eq__during key comparison_interpchannels.list_allafter closing a channelzoneinfo.ZoneInfocrash when internal class-level cache is inconsistentsqlite3assertion failure in blob subscript with empty slices3-3. Security-Related Library Fixes
zoneinfo(OSS-Fuzz)ensurepipno longer looks forpip-*.whlin the current directory3-4. Free-Threaded Build Library Fixes
io.IncrementalNewlineDecodercollections.dequecopy atomicasyncio.all_tasksfunctools.partialsafer with keywords3-5. Other Notable Library Fixes
annotationlib.get_annotationshanging on circular__wrapped__chainsstruct.pack('f', float)to usePyFloat_Pack4and raiseOverflowErrorzoneinfocrashes when deleting_weak_cachefrom a subclassencodings.search_functioncache (OSS-Fuzz)-Xoptions now propagated to child processes spawned bymultiprocessingFORWARDREFannotation formatstructformat string parsing (OSS-Fuzz)collections.defaultdict.__repr__when self-referencingInvalidStateErrorwhen cancellingasynciosubprocessesvenvpreserving incorrect SELinux context forActivate.ps1hashlibandhmacstructformat stringsatexit.register()unicodedata.decompositionfor Hangul charactersargparse.ArgumentParserto be pickleabletempfilewhen directory is non-writablemultiprocessing.freeze_support()no longer sets default start method as side effectrepr()onfunctools.partialsafer during concurrent attribute replacementensurepipto 26.0.1_remote_debuggingschedulerandsetpgroupto beNoneinos.posix_spawn; raiseTypeErrorinstead ofSystemErrorssl.SSLContextreference leaksctypes.CDLLto honor thehandleparameter on POSIXZoneInfocreation andclear_cache()asyncio.StreamWriter.start_tlsdata loss when upgrading to TLS mid-streamTarInfotype fromAREGTYPEtoDIRTYPEwhen parsing GNU long name headersAttributeErrorsuggestions for classes with custom__dir__multiprocessingandasyncioon Windowsunicodedata4. Documentation
argparsedocumentation fortype=boolwith demonstration of surprising behavior-Xoption descriptions in thepython(1)man pagewave.Wave_writegetter methods5. Build
-fprofile-update=atomicwith GCC PGO to prevent.gcdacorruption6. Windows
psapi.dlluntil used byctypes.util.dllist7. macOS
osascriptwith absolute path inwebbrowserandturtledemo8. C API
PyUnicodeWriter_WriteReprnow supportsNULLargumentobject.hfor-masm=intelcompatibilityPyUnstable_Code_SetExtra,PyUnstable_Code_GetExtra, andPyUnstable_Eval_RequestCodeExtraIndexthread-safe on free-threaded builds9. Tests
MemoryProtectionTestwhen compiled with older expat but tests run with newerSource: Python 3.14.4 Release · Full Changelog