Keeping up with Python: what makes upgrades hard, and what can we do about it
summary
cPython upgrades are hard because syntax and stdlib changes, C API breakages in compiled extensions, and third‑party API churn collide at monorepo scale, making small incompatibilities multiply; Meta reports CPU and memory wins after upgrades across 3,000 Python developers. Concrete remedies include writing and testing libCST code‑mods, running pyupgrade, enforcing warnings with PYTHONWARNINGS=once, avoiding underscored internals, offering LTS releases, regenerating Syon/C sources in builds, and using automation plus focused unit tests to catch regressions.
AI-written summary · about
chapters (10)
- 0:00Introduction to Python Upgrades
- 1:39The Monorepo Environment
- 2:55Why Python Upgrades are Hard
- 4:22Handling API and Dependency Changes
- 5:31The Importance of Warnings
- 7:07Automation and Codemods
- 9:34Best Practices for Code Hygiene
- 15:11Third-Party Package Management
- 20:31Conclusion and Q&A
- 21:02Deep Dive Q&A
related talks
43mIntroducing incompatible changes in Python
26mEvolve or Die: How I Stopped Avoiding and Starting Loving Python Upgrades
35mUpgrading Legacy Projects: Lessons Learned
19mThe Journey of Upgrading A Python Version: From a Debugger Perspective
26mPython 2 to 3: How to Upgrade and What Features to Start Using
32mHow (not) to upgrade a platform
43mPython 3: ten years later
41mEcosystem for Reliable Python Programming
