Python3 for Openstack/Marconi
21 May 2014So my project for the OPW is to help OpenStack with the support of Python3. In particular, the goal is to make the Marconi project Py3k compatible.
If you are just wondering, why someone could possibly need Py3k support in OpenStack you could read good post with motivation. Like it or not, but Python 3 exists and will exist and sooner or later will be dominant. Current state for Py3k support in Openstack is represented in the wiki/Python3. The overall summary is – ‘Work Is In Progress’, the clients for services are mostly ported, the services themselves are mostly not.
So why Marconi is good candidate to start with?
- Marconi is a new project and it is not good to create the technical debt from the beginning.
- with relatively small codebase – the task could be accomplished by one person in one internship.
- and the most important – nearly all dependencies already support Python3. One of the biggest issues for other Openstack services remains python-mysql driver, which fortunately isn’t a critical dependency for Marconi (MongoDB is the primary storage backend).
And, in the nutshell, project will include:
- actual changes to the source code.
- managing dependencies and dealing with requirements.txt. Although critical dependencies are ported, there are problems with python-memcached. Common way in Openstack now is to use two separate requirements.txt (requirements-py3.txt for Python3) to deal with incompatibilities of dependencies.
- work with tests. Tests are cool and important.
- changes to gate configuration (the ultimate goal, in the end of internship, make py33 gate voting).