Introducing incompatible changes in Python
summary
Covers how Python now introduces incompatible changes gradually: using deprecation warnings across at least two releases, migration instructions and automated tools, and reverting changes that break many projects. Discusses tools and practices for finding and notifying affected projects (code search) and mentions efforts toward a stable C-extension ABI such as the HPy project and testing on in-development Python versions (e.g., 3.12).
AI-written summary · about
chapters (26)
- 0:00Intro
- 0:33Victor STINNER
- 1:42Python 2 Unicode errors
- 2:39Python 2: bytes vs Unicode
- 3:21Python 3 uses Unicode
- 4:29Iterators and generators
- 6:08Python 3 uses generators
- 7:21Why incompatible changes?
- 8:14Python 3 D-Day
- 10:13Högertrafikomläggningen
- 11:29Underwear and socks
- 11:56Then comes the C API
- 14:03Update C extensions
- 15:16Python 3: six module
- 17:02Revert 3.10 changes
- 19:52PEP 387
- 22:58Smooth deprecation
- 24:27Code search
- 26:28Unmaintained projects
- 31:59pythoncapi-compat
- 33:58C API guidelines
- 35:15C API headers
- 35:45Fedora COPR
- 37:07What's new?
- 38:05Stable ABI
- 40:21Test next Python
related talks
34mKeeping up with Python: what makes upgrades hard, and what can we do about it
26mPython 2 to 3: How to Upgrade and What Features to Start Using
35mUpgrading Legacy Projects: Lessons Learned
31mIntroduce Syntax and History of Python from 2.4 to 3.6
44mHow to Build a Plan to Migrate to Python 3
45mWriting Python 2/3 compatible code
24mJourney to migrate python2 projects to 3
43mPython 3: ten years later
