Hi, > How invasive would the port to python3 be?
I squashed all my commits into a single commit of my draft port and I pushed it at: https://github.com/haypo/nova/commit/bad54bc2b278c7c7cb7fa6cc73d03c70138bd89d As announced, changes are boring, just obvious Python2/Python3 issues: - strip L from long integer literals: 123L => 123 - replace dict.iteritems() with six.iteritems(dict) - replace list.sort(cmp_func) with list.sort(key=key_func) - replace "raise exc_info[0], exc_info[1], exc_info[2]" with six.reraise(*exc_info) - moved functions / modules * get http.client, urllib.request and other stdlib modules from six.moves since they moved between Python 2 and Python 3 * get itertools.izip/zip_longest from six.moves * replace unichr() with six.unichr() - replace filter(func, data) with [item for item in data if func(item)] - replace unicode() with six.text_type - replace (int, long) with six.integer_types - replace file() with open() - replace StringIO() with six.StringIO() These changes are not enough to port nova to Python 3. But they are required to be able to find next Python 3 bugs. Reminder: Python 2 compatibility is kept! There is not reason right now to drop Python 2 support, it would be a pain to upgrade! > Would it be easier to have a python3 migration sprint and rip the band aid > off instead of dragging it out and having partial python3 support for a whole > cycle? Do you mean a physical meeting? Or focus on Python 3 during a short period (review/merge all Python 3 patches)? A single week may not be enough to fix all Python 3 issues. I prefer to submit changes smoothly during the Liberty cycle. > In general what is the least painful way to add python3 support for a very > large python project? Send patches and make incremental changes, as any other change made in OpenStack. Victor __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev