The context I was speaking is projects who still want to support 2.x, which is what most projects want.
Obviously, if you don't care about supporting 2.x at all once the conversion is done, modifying the output and using the output as your reference source is fine.
> The context I was speaking is projects who still want to support 2.x
This is also what I was speaking about. And to reach that goal, you have generally 3 options:
1) write code that works with Python2 as well as Python3
2) maintain your code in Python2 and use 2to3 on release time
3) maintain your code in Python3 and use 3to2 on release time
Given you don't want to do 1) for whatever reason, my argument is that 3) seems to be the preferable solution. It allows you to use our loved Python3 right now, while still supporting Python2.
However, "in the wild" we see 2) way more often, and I don't understand why this is the case.
Because for many contributors, python 3 is not usable as there are so few packages available. And on the other hand, the improvements from python 2 -> 3 are really minor.
Indeed, this proposal is not the common way. But why is that so uncommon?
Why is using 3to2 not recommended? In how far do you limit yourself if you develop in Python3 and use 3to2 at release time?
Rather, I'd guess that developing in Python2 and using 2to3 is limiting, because that limits you to the language features of Python2.