)]}'
{"specs/enable-python-3-int-func-tests.rst":[{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"db1dae0ff1535dc5bf92ab0a4be0024ddc46b30f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The 2.x series of the C Python interpreter on which OpenStack releases"},{"line_number":6,"context_line":"through Kilo are built is reaching its the end of the extended support"},{"line_number":7,"context_line":"period, defined by the upstream developers. This spec describes"},{"line_number":8,"context_line":"motivation for porting fully to Python 3 and some of the work we will"},{"line_number":9,"context_line":"need to enable testing applications as they move to Python 3."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3acd31a7_0d11d4ac","line":6,"updated":"2015-04-30 01:01:50.000000000","message":"reaching its end of extended support period\n\nOr \n\nreaching the end of its extended support period","commit_id":"f2107987bcd212acc161a89058c37af4b481dc77"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"db1dae0ff1535dc5bf92ab0a4be0024ddc46b30f","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The 2.x series of the C Python interpreter on which OpenStack releases"},{"line_number":6,"context_line":"through Kilo are built is reaching its the end of the extended support"},{"line_number":7,"context_line":"period, defined by the upstream developers. This spec describes"},{"line_number":8,"context_line":"motivation for porting fully to Python 3 and some of the work we will"},{"line_number":9,"context_line":"need to enable testing applications as they move to Python 3."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3acd31a7_ed545855","line":7,"updated":"2015-04-30 01:01:50.000000000","message":"remove \"defined by the upstream developers\".","commit_id":"f2107987bcd212acc161a89058c37af4b481dc77"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"db1dae0ff1535dc5bf92ab0a4be0024ddc46b30f","unresolved":false,"context_lines":[{"line_number":6,"context_line":"through Kilo are built is reaching its the end of the extended support"},{"line_number":7,"context_line":"period, defined by the upstream developers. This spec describes"},{"line_number":8,"context_line":"motivation for porting fully to Python 3 and some of the work we will"},{"line_number":9,"context_line":"need to enable testing applications as they move to Python 3."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Problem description"},{"line_number":12,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3acd31a7_0dd674c5","line":9,"updated":"2015-04-30 01:01:50.000000000","message":"works we need to do for enabling\n\nOr\n\nworks are needed to enable","commit_id":"f2107987bcd212acc161a89058c37af4b481dc77"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"db1dae0ff1535dc5bf92ab0a4be0024ddc46b30f","unresolved":false,"context_lines":[{"line_number":17,"context_line":"its end-of-life for support from its developers."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Just as we expect our users to update to new versions of OpenStack in"},{"line_number":20,"context_line":"order to continue to receive support, the python-dev team expects"},{"line_number":21,"context_line":"users of the language to update to reasonably modern and supported"},{"line_number":22,"context_line":"versions of the interpreter in order to receive bug and security"},{"line_number":23,"context_line":"fixes. When Python 3 was introduced, the support period for Python 2"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3acd31a7_8df96450","line":20,"updated":"2015-04-30 01:01:50.000000000","message":"continue receiving","commit_id":"f2107987bcd212acc161a89058c37af4b481dc77"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"106d632efca177a1599222ea48fb6de5c5d63486","unresolved":false,"context_lines":[{"line_number":62,"context_line":"   * Use the version declared to be supported by the project through"},{"line_number":63,"context_line":"     its trove classifiers."},{"line_number":64,"context_line":"   * Allowing apps to be installed with the right version of the"},{"line_number":65,"context_line":"     interpreter indepdently of other apps means we can port one app"},{"line_number":66,"context_line":"     at a time."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"#. Port each application to 3.4 and stop testing it under 2.7."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5afe65bd_f3caa519","line":65,"updated":"2015-06-03 13:34:00.000000000","message":"independently","commit_id":"f2107987bcd212acc161a89058c37af4b481dc77"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"4d7dd28c8d7285f140dc7cbdfc98cf7cccc9094b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"     interpreter indepdently of other apps means we can port one app"},{"line_number":66,"context_line":"     at a time."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"#. Port each application to 3.4 and stop testing it under 2.7."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"   * There is no need to test an application under both versions,"},{"line_number":71,"context_line":"     since they only need to be deployed under one version at a time."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3acd31a7_f6f8514b","line":68,"updated":"2015-05-04 10:51:50.000000000","message":"How long are we going to support 2.7? \n\nMy concern is that we shouldn\u0027t drop 2.7 tests until all the defcore projects have been ported. For instance, if we manage to port Glance to 3.4 and then break 2.7, deployers won\u0027t be able to install it along with other non-3.4 compatible projects. Are we going to force this deployers to use virtualenvs ? or am I missing something from your proposal?","commit_id":"f2107987bcd212acc161a89058c37af4b481dc77"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"9f879182a0dd5ce16c74d2c866fd0cac61062300","unresolved":false,"context_lines":[{"line_number":65,"context_line":"     interpreter indepdently of other apps means we can port one app"},{"line_number":66,"context_line":"     at a time."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"#. Port each application to 3.4 and stop testing it under 2.7."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"   * There is no need to test an application under both versions,"},{"line_number":71,"context_line":"     since they only need to be deployed under one version at a time."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3acd31a7_88056e7b","line":68,"in_reply_to":"3acd31a7_e8c62248","updated":"2015-05-04 18:29:06.000000000","message":"The idea is that the distros would include both python 2 and 3, and some apps would run on one and some on the other. Apparently CentOS doesn\u0027t have a Python 3, though, so I\u0027m not sure if that\u0027s actually feasible -- I need to look into that more, because I was under the impression that all of the distros included a python 3 now.","commit_id":"f2107987bcd212acc161a89058c37af4b481dc77"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"841dd544af1407e6743f72d8a501d03e3bc70c91","unresolved":false,"context_lines":[{"line_number":65,"context_line":"     interpreter indepdently of other apps means we can port one app"},{"line_number":66,"context_line":"     at a time."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"#. Port each application to 3.4 and stop testing it under 2.7."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"   * There is no need to test an application under both versions,"},{"line_number":71,"context_line":"     since they only need to be deployed under one version at a time."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3acd31a7_e8c62248","line":68,"in_reply_to":"3acd31a7_f6f8514b","updated":"2015-05-04 18:27:35.000000000","message":"Having a global cut-over day is exactly what I\u0027m trying to avoid. We\u0027re never going to get all of the projects done at the same time, so we need to be able to stage the transition.","commit_id":"f2107987bcd212acc161a89058c37af4b481dc77"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"106d632efca177a1599222ea48fb6de5c5d63486","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"#. Port each application to 3.4 and stop testing it under 2.7."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"   * There is no need to test an application under both versions,"},{"line_number":71,"context_line":"     since they only need to be deployed under one version at a time."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"#. Remove use of six in an app after it has moved to 3.x."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5afe65bd_0e2754b7","line":70,"updated":"2015-06-03 13:34:00.000000000","message":"You mean integration/functional tests, or all tests ? I still think it is valuable to run unit tests on both py2 and py3 (for the same reason we run py3 unit tests currently)","commit_id":"f2107987bcd212acc161a89058c37af4b481dc77"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"9f62608dd86de542c7ac857fa5c8282ecb40bdc6","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"#. Port each application to 3.4 and stop testing it under 2.7."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"   * There is no need to test an application under both versions,"},{"line_number":71,"context_line":"     since they only need to be deployed under one version at a time."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"#. Remove use of six in an app after it has moved to 3.x."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3afb71cf_1eebc114","line":70,"in_reply_to":"5afe65bd_0e2754b7","updated":"2015-06-09 18:24:08.000000000","message":"I\u0027m dropping this assertion and leaving it up to the application teams.","commit_id":"f2107987bcd212acc161a89058c37af4b481dc77"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"db1dae0ff1535dc5bf92ab0a4be0024ddc46b30f","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"   * We will need to continue to use six in the libraries until all"},{"line_number":76,"context_line":"     apps have moved to Python 3, but there is no reason to do that"},{"line_number":77,"context_line":"     for the applications once they move to Python 2."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":".. note::"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3acd31a7_2d3b70ed","line":77,"updated":"2015-04-30 01:01:50.000000000","message":"I suppose you mean \"Python 3\"","commit_id":"f2107987bcd212acc161a89058c37af4b481dc77"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"841dd544af1407e6743f72d8a501d03e3bc70c91","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"   * We will need to continue to use six in the libraries until all"},{"line_number":76,"context_line":"     apps have moved to Python 3, but there is no reason to do that"},{"line_number":77,"context_line":"     for the applications once they move to Python 2."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":".. note::"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3acd31a7_a8c02a2b","line":77,"in_reply_to":"3acd31a7_2d3b70ed","updated":"2015-05-04 18:27:35.000000000","message":"Yes, thanks.","commit_id":"f2107987bcd212acc161a89058c37af4b481dc77"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"055c2f255ee9797c3b46fc734c949806afd768a9","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- 3.0 - 3.2 are no longer actively supported"},{"line_number":93,"context_line":"- 3.3 is not available on all distros"},{"line_number":94,"context_line":"- **3.4 is available on all distros**"},{"line_number":95,"context_line":"- 3.5 is in alpha and so is not ready for us to use, yet"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Functional Tests for Libraries"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_c1563629","line":94,"updated":"2015-06-01 11:53:07.000000000","message":"Even if thats not quite true, it seems the best bet right now.","commit_id":"f2107987bcd212acc161a89058c37af4b481dc77"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"9f62608dd86de542c7ac857fa5c8282ecb40bdc6","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- 3.0 - 3.2 are no longer actively supported"},{"line_number":93,"context_line":"- 3.3 is not available on all distros"},{"line_number":94,"context_line":"- **3.4 is available on all distros**"},{"line_number":95,"context_line":"- 3.5 is in alpha and so is not ready for us to use, yet"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Functional Tests for Libraries"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3afb71cf_5e6a5982","line":94,"in_reply_to":"7a016987_c1563629","updated":"2015-06-09 18:24:08.000000000","message":"At the time I wrote that originally I thought it was true. I modified the wording.","commit_id":"f2107987bcd212acc161a89058c37af4b481dc77"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"3e3ce031cca9d8f26d973e51f2863b4e806bee91","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"   This may be as simple as::"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"       python setup.py --classifiers | grep \u0027Language\u0027 | cut -f5 -d: | grep \u0027\\.\u0027"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"3. When installing libraries from source using the ``LIBS_FROM_GIT``"},{"line_number":178,"context_line":"   feature of devstack, ensure that the libraries are installed for"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_e99b8616","line":175,"updated":"2015-06-09 23:52:46.000000000","message":"I think this means \u0027on the devstack node, install servers into just one Python version based on the setup metadata\u0027 ?\n\nI don\u0027t really follow this - each project isn\u0027t going to atomically switch is it? Like, are we going deprecate 2.7 when Nova works *at all* on 3.4? If we\u0027re following our users, we should make 3.4 work, then let them upgrade as their infra is ready for it, which implies co-existing support for 2.7 and 3.4 for some time.\n\nBut, as each server might be ready when others aren\u0027t, we do need to be able to fall back to 2.7 gracefully for servers that don\u0027t support 3 yet. So - I like the means of detecting three, but I think the policy should be something like:\n\n - 2.x run: install using 2.x\n - 3.x run: install using 3.x if supported otherwise 2.x.\n\nThis may be what you mean of course, but if so it wasn\u0027t clear in the context of the work item, at least to me.","commit_id":"9c458712494c04f788b062762183ef0232c04448"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"deb4f504190bc86414268d82eddebdb704a10b5f","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"   This may be as simple as::"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"       python setup.py --classifiers | grep \u0027Language\u0027 | cut -f5 -d: | grep \u0027\\.\u0027"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"3. When installing libraries from source using the ``LIBS_FROM_GIT``"},{"line_number":178,"context_line":"   feature of devstack, ensure that the libraries are installed for"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_d1b976cd","line":175,"in_reply_to":"3afb71cf_e99b8616","updated":"2015-06-10 12:24:50.000000000","message":"I\u0027m not being clear here, but the patch to devstack listed below works the way you describe. Each project is checked, and the right version of python is used for that project when python 3 testing is enabled.","commit_id":"9c458712494c04f788b062762183ef0232c04448"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"3e3ce031cca9d8f26d973e51f2863b4e806bee91","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"3. When installing libraries from source using the ``LIBS_FROM_GIT``"},{"line_number":178,"context_line":"   feature of devstack, ensure that the libraries are installed for"},{"line_number":179,"context_line":"   both Python 2 and Python 3."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"4. Begin porting applications to Python 3."},{"line_number":182,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_64121b59","line":179,"updated":"2015-06-09 23:52:46.000000000","message":"I don\u0027t know if this is needed, since the constraints work means we have to know the [local path] to the git checkout of the library anyway (otherwise the constraint will just force the library back to the last tested from the web). Does no harm I suppose and decouples this from the constraints work.","commit_id":"9c458712494c04f788b062762183ef0232c04448"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"deb4f504190bc86414268d82eddebdb704a10b5f","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"3. When installing libraries from source using the ``LIBS_FROM_GIT``"},{"line_number":178,"context_line":"   feature of devstack, ensure that the libraries are installed for"},{"line_number":179,"context_line":"   both Python 2 and Python 3."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"4. Begin porting applications to Python 3."},{"line_number":182,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_31c9ea59","line":179,"in_reply_to":"3afb71cf_64121b59","updated":"2015-06-10 12:24:50.000000000","message":"I think you\u0027re saying we may get this for free with the constraints work?","commit_id":"9c458712494c04f788b062762183ef0232c04448"}]}
