Currently the stack targets python version 2.7 exclusively. In the current timeline python 2.7 will no longer receive anything other than critical fixes and support for that will be ended in 2020. It will not be receiving any of the new features being added to python 3 (such as type hinting or matrix operators).
Python 3 is being adopted in the astronomy community and over the lifetime of the DM stack development it is assumed that python 3 will begin to dominate (there was even a recent discussion on the astropy mailing list where the idea of dropping support for 2.7 was actively discussed during the LTS cycle). We can not afford to defer the adoption of python 3 to the end of the development process. This RFC proposes that we start to modify the stack code such that it can run on python 3 and python 2.7. This is not a proposal to drop python 2.7 support.
Migrating to python 3 will be an incremental process rather than a big bang and will depend on external dependencies migrating. I advocate that we start the process of migrating before all dependencies are themselves ported. There is a gain in writing new code in a portable manner now rather than attempting to port it later.
If we accept the principle that striving for python 3 is a good goal then we can investigate using the future portability package (and associated futurize script) http://python-future.org/quickstart.html. We should also setup a single CI process to run with python3 that will initially break all the time but will also tell us the porting priorities.