This spec aims to bring Python 3.4 support to Heat.
Heat isn’t compatible with Python3.x. The blocker for Heat to migrate was eventlet and now that eventlet fully supports python3, it is possible for us to run Heat unit tests in a Python 3.4 environment. Once all the dependencies of Heat are all functionally Python3 compatible, we should be able to run integrationtests against Heat in a devstack environment.
The first step towards Python 3.4 compatibility for Heat would be to get the unit tests running successfully in a py34 environment. We need to add a new py34 environment in tox for this and start testing individual test files. To avoid regressing on old test files, we should add a separate file which will consist of all the test files that have already been verified in a Python3 environment.
All of these changes are not supposed to break existing unit tests nor change the functionality in any way. The existing gate tests should take care of this.
Current dependencies of Heat that are/were not compatible with Python 3.4:
requirements.txt - qpid-python: Used in install.sh. Can be removed. - PasteDeploy: Needs to be functionally tested. The tests pass on Python 3.4 and the classifiers were just added. - oslo.messaging: Some of the drivers/executors don’t work at the moment but are being worked on by Victor Stinner. - oslo.db: MySQL-python dialect isn’t compatible with Python 3.4. There’s a Python 3.4 port for MySQL-python however. - sqlalchemy-migrate: There’s PY34 tests running for every patch of sqlalchemy-migrate and the classifiers will be added for it.
test-requirements.txt - MySQL-python: ditto - oslo.db^. Can be removed. - mox: needs to be replaced by mox3 until we move to mock completely.