How We Migrated 3.8 Million Lines of Python 2 Without Interrupting Deve...
summary
Yelp migrates 3.8 million lines from Python 2 to 3 with no development stoppage by using concrete steps: parseability (two weeks), importability (two months), functional parity (about a year), and rollout (two months). The process uses python modernize and a pre-commit hooks pipeline, runs a parallel Python 3 virtualenv, converts caches from pickle to json, and granularly flips live traffic per URL prefix via a reverse proxy, yielding ~15–20% speed and ~26% memory improvements.
AI-written summary · about
chapters (16)
- 0:00Intro
- 1:58Flow of a request
- 3:23Architecture of yelp-main
- 4:49More yelp-main stats
- 6:23100 tests
- 7:12Motivation and requirements
- 8:26Phases and timeline
- 9:25Tracking work
- 10:57python-modernize
- 13:32Interlude about tooling
- 14:32Parsability
- 15:10Importability
- 21:15Functional parity: sort
- 22:42Rollout
- 24:17Outcomes
- 26:05The Future
related talks
26mPython 2 is dead! Drag your old code into the modern age
24mJourney to migrate python2 projects to 3
45mWriting Python 2/3 compatible code
45m"It will be easy" - The Trials of Updating a Product from Python 2 to 3
43mPython 3: ten years later
44mHow to Build a Plan to Migrate to Python 3
02h 38mMigration from Python 2 to 3
31mFighting the Good Fight: Python 3 in your organization
