<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 9, 2015 at 9:25 AM, Victor Stinner <span dir="ltr"><<a href="mailto:vstinner@redhat.com" target="_blank">vstinner@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi,<br>
<br>
During the last OpenStack Summit at Paris, we discussed how we can port OpenStack to Python 3, because eventlet was not compatible with Python 3. There are multiple approaches: port eventlet to Python 3, replace eventlet with asyncio, replace eventlet with threads, etc. We decided to not take a decision and instead investigate all options.<br>
<br>
I fixed 4 issues with monkey-patching in Python 3 (importlib, os.open(), threading.RLock, threading.Thread). Good news: the just released eventlet 0.17.3 includes these fixes and it is now fully compatible with Python 3! For example, the Oslo Messaging test suite now pass with this eventlet version! Currently, eventlet is disabled in Oslo Messaging on Python 3 (eventlet tests are skipped).<br>
<br>
I just sent a patch for requirements and Oslo Messaging to bump to eventlet 0.17.3, but it will have to wait until everyone has master as Liberty.<br>
<br>
<a href="https://review.openstack.org/#/c/172132/" target="_blank">https://review.openstack.org/#/c/172132/</a><br>
<a href="https://review.openstack.org/#/c/172135/" target="_blank">https://review.openstack.org/#/c/172135/</a><br>
<br>
It becomes possible to port more projects depending on eventlet to Python 3! </blockquote><div><br></div><div>Awesome!</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Liberty cycle will be a good opportunity to port more OpenStack components to Python 3. Most OpenStack clients and Common Libraries are *already* Python 3 compatible, see the wiki page:<br>
<br>
<a href="https://wiki.openstack.org/wiki/Python3" target="_blank">https://wiki.openstack.org/wiki/Python3</a></blockquote><div><br></div><div><a href="https://wiki.openstack.org/wiki/Python3#Dependencies">https://wiki.openstack.org/wiki/Python3#Dependencies</a> appears to be fairly out of date. For example hacking works under python34 as does oslo messaging as per this email etc.<br></div><div> </div><div>Also what is the status of all the dependencies in <a href="https://github.com/openstack/nova/blob/master/requirements.tx">https://github.com/openstack/nova/blob/master/requirements.tx</a>t and more generally <a href="https://github.com/openstack/requirements/blob/master/global-requirements.txt">https://github.com/openstack/requirements/blob/master/global-requirements.txt</a></div><div><br></div><div>It would be nice to get a better sense of what the remaining libraries to port over are before the summit so we can start planning how to do the python34 migration.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
<br>
--<br>
<br>
To replace eventlet, I wrote a spec to replace it with asyncio:<br>
<br>
<a href="https://review.openstack.org/#/c/153298/" target="_blank">https://review.openstack.org/#/c/153298/</a><br>
<br>
Joshua Harlow wrote a spec to replace eventlet with threads:<br>
<br>
<a href="https://review.openstack.org/#/c/156711/" target="_blank">https://review.openstack.org/#/c/156711/</a><br>
<br>
But then he wrote a single spec "Replace eventlet + monkey-patching with ??" which covers threads and asyncio:<br>
<br>
<a href="https://review.openstack.org/#/c/164035/" target="_blank">https://review.openstack.org/#/c/164035/</a><br>
<br>
Victor<br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div><br></div></div>