“It’s probably not going to be a fun project — in fact, it might be really annoying and tedious — but you’ll learn a lot and will get to interact with every part of our codebase.”
That’s how our CTO, Steve, asked for a volunteer to lead the internal migration from Python 2 to Python 3. Annoying work, but important because Python 2 won’t be maintained after the year 2019. I was brand new as a software engineer at YipitData, and it seemed like a good way to get to know a bunch of parts of our codebase, so I volunteered to spearhead the effort.
After some experimentation, we settled on a game plan: for safety, we started with a hybrid approach, using straddling code to make all of our Python 2 repositories also compatible with Python 3. Eventually, we’d flip the switch and make everything Python 3-only.
When it was time to make these changes across all of our systems, I gave an internal talk about what had changed in Python 3, the biggest challenges, some gotchas, and tools to help with the conversion. Then I discussed what our plan was for implementing the migration, as we would need help from every repo owner to make it happen.
Enjoy the video!