3 ms·
I would say you're missing most of the relevant changes from 2->3. Initially, 2to3 was the expected way to have a codebase (so it would be a one-and-done change
by aragilar 3y ago
I would say you're missing most of the relevant changes from 2->3. Initially, 2to3 was the expected way to have a codebase (so it would be a one-and-done change, or 2to3 would becomes smart enough to make the required changes), but it was replaced by having a single codebase that could be run under both 2 and 3 using tools like six, and by "reverts" like adding back 'u""' and making bytes have more string-like features (plus numerous backports on PyPI for 2.7). I'd suggest the switch away from 2to3 to six (and further helpers on top like futurize) was what made the transition possible (in that if you could get the codebase to run properly on 2.7, six made the upgrade less painful, and then you could perform cleanups later on).
I wonder if/what the X/Wayland equivalent of six will be: XWayland lets existing X clients continue, but for things coupled to X servers, there doesn't seem to be anything yet.
- hawski 3y agoI added a mention of Six and Xwayland to my comment. I no longer can edit my comment, but I would also add: - 2017/2018 - Wayland 1.12: xdg-shell protocol becomes stable. An interoperability milestone in my opinion.