This changelog captures the major changes and important notes across Python versions from 3.6 to 3.14.0, focusing on significant language features, performance improvements, and breaking changes.
- PEP 779: Free-threaded Python is officially supported - removes the Global Interpreter Lock (GIL) for true multi-threading
- PEP 750: Template string literals (t-strings) for custom string processing using f-string-like syntax
- PEP 649: Deferred evaluation of annotations - improves performance and semantics of type annotations
- PEP 734: Multiple interpreters in the standard library - enables better isolation between Python interpreters
- PEP 784: New
compression.zstdmodule providing Zstandard compression algorithm support - PEP 758:
exceptandexcept*expressions may now omit brackets for cleaner syntax - PEP 768: Zero-overhead external debugger interface for CPython
- Experimental JIT compiler included in official Windows and macOS binaries
- Improved error messages with better traceback information
- Built-in HMAC implementation with formally verified code from HACL* project
- UUID versions 6-8 support and 40% faster generation for versions 3-5
- Incremental garbage collection improvements
- Official Android binary releases now available
- Emscripten (WebAssembly) officially supported at tier 3
- PGP signatures discontinued for releases (use Sigstore instead)
- Experimental free-threaded mode - no-GIL builds available (predecessor to 3.14's official support)
- Improved interactive interpreter with better REPL experience
- iOS support as an officially supported platform
- PEP 594: Removed many deprecated modules from the standard library
- PEP 703: Scalable garbage collection improvements
- Significant interpreter optimizations
- Faster startup time
- Improved memory management
- PEP 695: Type parameter syntax - cleaner syntax for generic classes and functions
- PEP 701: Syntactic formalization of f-strings - allows nested f-strings and better error messages
- PEP 709: Comprehension inlining - improves performance of list/dict/set comprehensions
- PEP 688: Making the buffer protocol accessible in Python code
- 5% average performance improvement over 3.11
- Reduced memory usage for certain operations
- Better optimization of common patterns
- Specializing adaptive interpreter - up to 25% faster on average
- Faster function calls with optimized stack frames
- Faster startup time - interpreter starts quicker
- Improved error messages with precise error location indicators
- PEP 654: Exception groups and
except*syntax - PEP 673:
Selftype for typing - PEP 646: Variadic generics for typing
- Structural pattern matching (PEP 634/635/636) -
match/casestatements - PEP 604: Union types with
|operator (str | intinstead ofUnion[str, int]) - PEP 613:
TypeAliasfor explicit type alias declarations - Better error messages with more context
- Faster attribute access
- Optimized various built-in operations
- Dictionary union operators (PEP 584) (
|and|=) - String methods:
removeprefix()andremovesuffix() - Built-in generic types - can use
list[int]instead ofList[int]from typing - PEP 593:
Annotatedtype hints with metadata - PEP 615: IANA time zone database support via
zoneinfomodule - Annual release cycle adopted (changed from 18-month cycle)
- Improved parsing speed with new PEG parser
- Vectorcall protocol optimizations for built-ins
- Assignment expressions (PEP 572) (
:=) - "walrus operator" - Positional-only parameters (PEP 570) (
/) - Self-documenting f-strings (
f"{variable=}") (PEP 572) importlib.metadatafor accessing package metadata- Runtime audit hooks for security monitoring
- 20-50% speedup for many built-in methods
- Shared memory support in multiprocessing
- Optimized list creation (12% smaller on average)
- Dictionaries preserve insertion order - guaranteed by language spec
dataclasses- automatic class generation with type hintscontextvars- context variables for async programmingimportlib.resourcesfor accessing package resources__future__.annotations- deferred annotation evaluation
- Significant speed improvements across the board
- Faster method calls
- Optimized various built-in operations
- Formatted string literals (f-strings) -
f"Hello {name}" - Underscores in numeric literals -
1_000_000for readability - Variable annotations - type hints for variables (PEP 526)
- Asynchronous generators and comprehensions
- Secrets module added for secure random number generation
- Dict implementation rewritten for better performance and memory usage
- Faster function calls and method lookups
- Python 3.6: EOL June 2023
- Python 3.7: EOL June 2023
- Python 3.8: EOL October 2024
- Python 3.9: EOL October 2025
- Python 3.10: EOL October 2026
- Python 3.11: EOL October 2027
- Python 3.12: EOL October 2028
- Python 3.13: EOL October 2029
- Python 3.14: EOL October 2030
- 3.14: Major shift with free-threading support - may affect C extensions
- 3.13: Many deprecated modules removed - check for removed stdlib modules
- 3.12: Comprehension scoping changes may affect some code
- 3.11: Some typing changes and new syntax requirements
- 3.10: Pattern matching is a major new paradigm
- Always test thoroughly when upgrading between major versions
- Use tools like
python -Wdto catch deprecation warnings - Consider using
typingand type checkers for larger codebases - Take advantage of new features gradually rather than all at once
Last updated: October 2025