)]}'
{".zuul.yaml":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"30d5c8d90c88990cf529a5db654bb1a3aff31a2b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- job:"},{"line_number":2,"context_line":"    name: osc-tox-unit-tips"},{"line_number":3,"context_line":"    parent: openstack-tox"},{"line_number":4,"context_line":"    description: |"},{"line_number":5,"context_line":"      Run unit tests for OpenStackClient with master branch of important libs."},{"line_number":6,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3fa7e38b_06ef331d","line":3,"range":{"start_line":3,"start_character":12,"end_line":3,"end_character":25},"updated":"2019-11-21 14:40:26.000000000","message":"I would go check whether this runs py2 or py3, but zuul.o.o/jobs crashes my computer :(  Will wait for zuul results instead.\n\n[Later] Hm, actually, I think this job is unused (at least from within this project). There\u0027s a *template* of the same name defined on L156 which runs the py36-tips job below.\n\nAnyway, cleaning this up could be done in a separate patch.","commit_id":"26aac237e2b369a302153d0caa17a85c06c104b5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"30d5c8d90c88990cf529a5db654bb1a3aff31a2b","unresolved":false,"context_lines":[{"line_number":132,"context_line":"      - openstack/python-openstackclient"},{"line_number":133,"context_line":"    vars:"},{"line_number":134,"context_line":"      devstack_localrc:"},{"line_number":135,"context_line":"        USE_PYTHON3: true"},{"line_number":136,"context_line":"        LIBS_FROM_GIT: python-openstackclient,openstacksdk,osc-lib,os-client-config"},{"line_number":137,"context_line":"        # This is insufficient, but leaving it here as a reminder of what may"},{"line_number":138,"context_line":"        # someday be all we need to make this work"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3fa7e38b_c697db8f","line":135,"range":{"start_line":135,"start_character":8,"end_line":135,"end_character":25},"updated":"2019-11-21 14:40:26.000000000","message":"I *think* since [1] has merged, this is unnecessary.\n\n[1] https://review.opendev.org/#/c/649097/","commit_id":"26aac237e2b369a302153d0caa17a85c06c104b5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"30d5c8d90c88990cf529a5db654bb1a3aff31a2b","unresolved":false,"context_lines":[{"line_number":168,"context_line":"      - osc-tox-unit-tips"},{"line_number":169,"context_line":"      - openstack-cover-jobs"},{"line_number":170,"context_line":"      - openstack-lower-constraints-jobs"},{"line_number":171,"context_line":"      - openstack-python-jobs"},{"line_number":172,"context_line":"      - openstack-python3-train-jobs"},{"line_number":173,"context_line":"      - publish-openstack-docs-pti"},{"line_number":174,"context_line":"      - check-requirements"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3fa7e38b_e60d3735","line":171,"range":{"start_line":171,"start_character":8,"end_line":171,"end_character":29},"updated":"2019-11-21 14:40:26.000000000","message":"I think this can go away...","commit_id":"26aac237e2b369a302153d0caa17a85c06c104b5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c492c8ed0dc25ea3710e8f088225856d060f861f","unresolved":false,"context_lines":[{"line_number":168,"context_line":"      - osc-tox-unit-tips"},{"line_number":169,"context_line":"      - openstack-cover-jobs"},{"line_number":170,"context_line":"      - openstack-lower-constraints-jobs"},{"line_number":171,"context_line":"      - openstack-python-jobs"},{"line_number":172,"context_line":"      - openstack-python3-train-jobs"},{"line_number":173,"context_line":"      - publish-openstack-docs-pti"},{"line_number":174,"context_line":"      - check-requirements"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3fa7e38b_227c90b4","line":171,"range":{"start_line":171,"start_character":8,"end_line":171,"end_character":29},"in_reply_to":"3fa7e38b_e60d3735","updated":"2019-11-21 23:33:23.000000000","message":"Yes, it can, and would get rid of the py27 unit test job.","commit_id":"26aac237e2b369a302153d0caa17a85c06c104b5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"30d5c8d90c88990cf529a5db654bb1a3aff31a2b","unresolved":false,"context_lines":[{"line_number":169,"context_line":"      - openstack-cover-jobs"},{"line_number":170,"context_line":"      - openstack-lower-constraints-jobs"},{"line_number":171,"context_line":"      - openstack-python-jobs"},{"line_number":172,"context_line":"      - openstack-python3-train-jobs"},{"line_number":173,"context_line":"      - publish-openstack-docs-pti"},{"line_number":174,"context_line":"      - check-requirements"},{"line_number":175,"context_line":"      - release-notes-jobs-python3"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3fa7e38b_4628cb84","line":172,"range":{"start_line":172,"start_character":8,"end_line":172,"end_character":36},"updated":"2019-11-21 14:40:26.000000000","message":"...and this should change to ussuri...","commit_id":"26aac237e2b369a302153d0caa17a85c06c104b5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"30d5c8d90c88990cf529a5db654bb1a3aff31a2b","unresolved":false,"context_lines":[{"line_number":173,"context_line":"      - publish-openstack-docs-pti"},{"line_number":174,"context_line":"      - check-requirements"},{"line_number":175,"context_line":"      - release-notes-jobs-python3"},{"line_number":176,"context_line":"      - lib-forward-testing"},{"line_number":177,"context_line":"      - lib-forward-testing-python3"},{"line_number":178,"context_line":"    check:"},{"line_number":179,"context_line":"      jobs:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3fa7e38b_c63b5bce","line":176,"range":{"start_line":176,"start_character":8,"end_line":176,"end_character":27},"updated":"2019-11-21 14:40:26.000000000","message":"...and this should go away.","commit_id":"26aac237e2b369a302153d0caa17a85c06c104b5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cb9ee0d0c4a190413be0d9a52eff44b276e31164","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"- job:"},{"line_number":42,"context_line":"    name: osc-functional-devstack-base"},{"line_number":43,"context_line":"    parent: devstack-tox-functional"},{"line_number":44,"context_line":"    description: |"},{"line_number":45,"context_line":"      Base job for devstack-based functional tests"},{"line_number":46,"context_line":"    timeout: 9000"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_86c78a98","line":43,"range":{"start_line":43,"start_character":12,"end_line":43,"end_character":35},"updated":"2019-11-22 18:21:20.000000000","message":"I can\u0027t get to the logs for this, but it *should* now be using py3 by default...","commit_id":"3916e9bc47db9f2b96f35c83475d0e8c712a4c4f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cb9ee0d0c4a190413be0d9a52eff44b276e31164","unresolved":false,"context_lines":[{"line_number":132,"context_line":"      - openstack/python-openstackclient"},{"line_number":133,"context_line":"    vars:"},{"line_number":134,"context_line":"      devstack_localrc:"},{"line_number":135,"context_line":"        USE_PYTHON3: true"},{"line_number":136,"context_line":"        LIBS_FROM_GIT: python-openstackclient,openstacksdk,osc-lib,os-client-config"},{"line_number":137,"context_line":"        # This is insufficient, but leaving it here as a reminder of what may"},{"line_number":138,"context_line":"        # someday be all we need to make this work"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_46c5128d","line":135,"range":{"start_line":135,"start_character":8,"end_line":135,"end_character":25},"updated":"2019-11-22 18:21:20.000000000","message":"...which means we ought to be able to get rid of this.","commit_id":"3916e9bc47db9f2b96f35c83475d0e8c712a4c4f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cb9ee0d0c4a190413be0d9a52eff44b276e31164","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"- project:"},{"line_number":166,"context_line":"    templates:"},{"line_number":167,"context_line":"      - openstackclient-plugin-jobs"},{"line_number":168,"context_line":"      - osc-tox-unit-tips"},{"line_number":169,"context_line":"      - openstack-cover-jobs"},{"line_number":170,"context_line":"      - openstack-lower-constraints-jobs"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_e37bd0f0","line":167,"range":{"start_line":167,"start_character":8,"end_line":167,"end_character":35},"updated":"2019-11-22 18:21:20.000000000","message":"This (resulting in job openstackclient-check-plugins) is still running py2. That will need to be fixed in the openstack/openstackclient project where the template \u0026 job reside. So we should either propose that patch and make this one depend on it, or call it out as an exception in the commit message (\"Note that the openstackclient-check-plugins job will continue to run under py2 until ...\")\n\nIf it were voting I would insist on the former, but since it\u0027s not, meh.","commit_id":"3916e9bc47db9f2b96f35c83475d0e8c712a4c4f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"623952c1a87172f02b6c7d0b10e8646e08b2e724","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"- project:"},{"line_number":166,"context_line":"    templates:"},{"line_number":167,"context_line":"      - openstackclient-plugin-jobs"},{"line_number":168,"context_line":"      - osc-tox-unit-tips"},{"line_number":169,"context_line":"      - openstack-cover-jobs"},{"line_number":170,"context_line":"      - openstack-lower-constraints-jobs"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_ac80d2f8","line":167,"range":{"start_line":167,"start_character":8,"end_line":167,"end_character":35},"in_reply_to":"3fa7e38b_e37bd0f0","updated":"2019-12-04 21:48:53.000000000","message":"This is still an issue in PS5","commit_id":"3916e9bc47db9f2b96f35c83475d0e8c712a4c4f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cb9ee0d0c4a190413be0d9a52eff44b276e31164","unresolved":false,"context_lines":[{"line_number":168,"context_line":"      - osc-tox-unit-tips"},{"line_number":169,"context_line":"      - openstack-cover-jobs"},{"line_number":170,"context_line":"      - openstack-lower-constraints-jobs"},{"line_number":171,"context_line":"      - openstack-python-jobs"},{"line_number":172,"context_line":"      - openstack-python3-train-jobs"},{"line_number":173,"context_line":"      - publish-openstack-docs-pti"},{"line_number":174,"context_line":"      - check-requirements"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_631fe06f","line":171,"range":{"start_line":171,"start_character":8,"end_line":171,"end_character":29},"updated":"2019-11-22 18:21:20.000000000","message":"Still need to nix this...","commit_id":"3916e9bc47db9f2b96f35c83475d0e8c712a4c4f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cb9ee0d0c4a190413be0d9a52eff44b276e31164","unresolved":false,"context_lines":[{"line_number":169,"context_line":"      - openstack-cover-jobs"},{"line_number":170,"context_line":"      - openstack-lower-constraints-jobs"},{"line_number":171,"context_line":"      - openstack-python-jobs"},{"line_number":172,"context_line":"      - openstack-python3-train-jobs"},{"line_number":173,"context_line":"      - publish-openstack-docs-pti"},{"line_number":174,"context_line":"      - check-requirements"},{"line_number":175,"context_line":"      - release-notes-jobs-python3"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_232568bf","line":172,"range":{"start_line":172,"start_character":8,"end_line":172,"end_character":36},"updated":"2019-11-22 18:21:20.000000000","message":"...and change this to ussuri.\n\nThat should make pep8 run under py3 and get rid of the openstack-tox-py27 job.","commit_id":"3916e9bc47db9f2b96f35c83475d0e8c712a4c4f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cb9ee0d0c4a190413be0d9a52eff44b276e31164","unresolved":false,"context_lines":[{"line_number":173,"context_line":"      - publish-openstack-docs-pti"},{"line_number":174,"context_line":"      - check-requirements"},{"line_number":175,"context_line":"      - release-notes-jobs-python3"},{"line_number":176,"context_line":"      - lib-forward-testing"},{"line_number":177,"context_line":"      - lib-forward-testing-python3"},{"line_number":178,"context_line":"    check:"},{"line_number":179,"context_line":"      jobs:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_663b6ec7","line":176,"range":{"start_line":176,"start_character":8,"end_line":176,"end_character":27},"updated":"2019-11-22 18:21:20.000000000","message":"I\u0027m pretty sure this is where tempest-full is coming from, and the next line is getting us tempest-full-py3, so this one should go away.","commit_id":"3916e9bc47db9f2b96f35c83475d0e8c712a4c4f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"623952c1a87172f02b6c7d0b10e8646e08b2e724","unresolved":false,"context_lines":[{"line_number":132,"context_line":"      - openstack/python-openstackclient"},{"line_number":133,"context_line":"    vars:"},{"line_number":134,"context_line":"      devstack_localrc:"},{"line_number":135,"context_line":"        USE_PYTHON3: true"},{"line_number":136,"context_line":"        LIBS_FROM_GIT: python-openstackclient,openstacksdk,osc-lib,os-client-config"},{"line_number":137,"context_line":"        # This is insufficient, but leaving it here as a reminder of what may"},{"line_number":138,"context_line":"        # someday be all we need to make this work"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_ccff4e64","line":135,"range":{"start_line":135,"start_character":8,"end_line":135,"end_character":25},"updated":"2019-12-04 21:48:53.000000000","message":"this is redundant and should be removed.","commit_id":"454c87c6dd5f1b34fbc0d4f219de6f9c8565d767"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"623952c1a87172f02b6c7d0b10e8646e08b2e724","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"- project:"},{"line_number":166,"context_line":"    templates:"},{"line_number":167,"context_line":"      - openstackclient-plugin-jobs"},{"line_number":168,"context_line":"      - osc-tox-unit-tips"},{"line_number":169,"context_line":"      - openstack-cover-jobs"},{"line_number":170,"context_line":"      - openstack-lower-constraints-jobs"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_6cf65a93","line":167,"range":{"start_line":167,"start_character":8,"end_line":167,"end_character":35},"updated":"2019-12-04 21:48:53.000000000","message":"See PS4 comment here","commit_id":"454c87c6dd5f1b34fbc0d4f219de6f9c8565d767"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"fef0d5cefc968d1a4613617792913f835b407f66","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"- project:"},{"line_number":166,"context_line":"    templates:"},{"line_number":167,"context_line":"      - openstackclient-plugin-jobs"},{"line_number":168,"context_line":"      - osc-tox-unit-tips"},{"line_number":169,"context_line":"      - openstack-cover-jobs"},{"line_number":170,"context_line":"      - openstack-lower-constraints-jobs"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_ba8f872c","line":167,"range":{"start_line":167,"start_character":8,"end_line":167,"end_character":35},"in_reply_to":"3fa7e38b_6cf65a93","updated":"2019-12-06 11:10:44.000000000","message":"Sorry I\u0027m not sure to understand what I need to do for that.","commit_id":"454c87c6dd5f1b34fbc0d4f219de6f9c8565d767"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d12ef84173d64bbe41743e854453142916855f00","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"- project:"},{"line_number":166,"context_line":"    templates:"},{"line_number":167,"context_line":"      - openstackclient-plugin-jobs"},{"line_number":168,"context_line":"      - osc-tox-unit-tips"},{"line_number":169,"context_line":"      - openstack-cover-jobs"},{"line_number":170,"context_line":"      - openstack-lower-constraints-jobs"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_8db93417","line":167,"range":{"start_line":167,"start_character":8,"end_line":167,"end_character":35},"in_reply_to":"3fa7e38b_ba8f872c","updated":"2019-12-06 16:03:47.000000000","message":"Let\u0027s just call out in the commit message that this job is still running under py2, but that needs to be fixed in the python/openstackclient repo where that job is defined.","commit_id":"454c87c6dd5f1b34fbc0d4f219de6f9c8565d767"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"623952c1a87172f02b6c7d0b10e8646e08b2e724","unresolved":false,"context_lines":[{"line_number":168,"context_line":"      - osc-tox-unit-tips"},{"line_number":169,"context_line":"      - openstack-cover-jobs"},{"line_number":170,"context_line":"      - openstack-lower-constraints-jobs"},{"line_number":171,"context_line":"      - openstack-python-jobs"},{"line_number":172,"context_line":"      - openstack-python3-ussuri-jobs"},{"line_number":173,"context_line":"      - publish-openstack-docs-pti"},{"line_number":174,"context_line":"      - check-requirements"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_8cf15699","line":171,"range":{"start_line":171,"start_character":8,"end_line":171,"end_character":29},"updated":"2019-12-04 21:48:53.000000000","message":"This is still resulting in running py27 unit tests. Remove this line.","commit_id":"454c87c6dd5f1b34fbc0d4f219de6f9c8565d767"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"623952c1a87172f02b6c7d0b10e8646e08b2e724","unresolved":false,"context_lines":[{"line_number":176,"context_line":"      - lib-forward-testing-python3"},{"line_number":177,"context_line":"    check:"},{"line_number":178,"context_line":"      jobs:"},{"line_number":179,"context_line":"        - osc-functional-devstack"},{"line_number":180,"context_line":"        # - osc-functional-devstack-n-net:"},{"line_number":181,"context_line":"        #     voting: false"},{"line_number":182,"context_line":"        #     # The job testing nova-network no longer works before Pike, and"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_acfc5272","line":179,"range":{"start_line":179,"start_character":10,"end_line":179,"end_character":33},"updated":"2019-12-04 21:48:53.000000000","message":"confirmed this ran under py36 ✔","commit_id":"454c87c6dd5f1b34fbc0d4f219de6f9c8565d767"}],"tox.ini":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"fb536532fbe13821b7933f51bd1730c6d1d45735","unresolved":false,"context_lines":[{"line_number":24,"context_line":"  {toxinidir}/tools/fast8.sh"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"[testenv:pep8]"},{"line_number":27,"context_line":"basepython \u003d python3"},{"line_number":28,"context_line":"commands \u003d"},{"line_number":29,"context_line":"    flake8"},{"line_number":30,"context_line":"    bandit -r openstackclient -x tests -s B105,B106,B107,B401,B404,B603,B606,B607,B110,B605,B101"}],"source_content_type":"text/x-properties","patch_set":1,"id":"3fa7e38b_31ddca13","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":20},"updated":"2019-11-21 13:32:26.000000000","message":"We ought to move this up into [testenv], no?\n\n(And remove it from all the other envs below.)","commit_id":"3f76a34bc02305575f0e07ba2b1edda10b408c66"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"e51f85749415fd0e3080aaebba9252f1a9ed1275","unresolved":false,"context_lines":[{"line_number":3,"context_line":"envlist \u003d py37,pep8"},{"line_number":4,"context_line":"skipdist \u003d True"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[testenv]"},{"line_number":7,"context_line":"usedevelop \u003d True"},{"line_number":8,"context_line":"install_command \u003d pip install {opts} {packages}"},{"line_number":9,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"}],"source_content_type":"text/x-properties","patch_set":2,"id":"3fa7e38b_a3bc11b5","line":6,"range":{"start_line":6,"start_character":0,"end_line":6,"end_character":9},"updated":"2019-11-21 14:10:01.000000000","message":"I think you missed to move the `basepython \u003d python3` in this section, like Eric has suggested.","commit_id":"d65caeacfc10bb8c7f92c6c2cd417e0f6eb2dbab"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"30d5c8d90c88990cf529a5db654bb1a3aff31a2b","unresolved":false,"context_lines":[{"line_number":3,"context_line":"envlist \u003d py37,pep8"},{"line_number":4,"context_line":"skipdist \u003d True"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[testenv]"},{"line_number":7,"context_line":"usedevelop \u003d True"},{"line_number":8,"context_line":"install_command \u003d pip install {opts} {packages}"},{"line_number":9,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"}],"source_content_type":"text/x-properties","patch_set":2,"id":"3fa7e38b_a6641fb4","line":6,"range":{"start_line":6,"start_character":0,"end_line":6,"end_character":9},"in_reply_to":"3fa7e38b_a3bc11b5","updated":"2019-11-21 14:40:26.000000000","message":"Yeah, I\u0027m not sure whether that\u0027s necessary or not.\n\nI suspect what happens is dependent on where you happen to be running tox. So yeah, probably better to be explicit, if what we\u0027re trying to do is stop using py2.","commit_id":"d65caeacfc10bb8c7f92c6c2cd417e0f6eb2dbab"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c492c8ed0dc25ea3710e8f088225856d060f861f","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[testenv]"},{"line_number":7,"context_line":"usedevelop \u003d True"},{"line_number":8,"context_line":"install_command \u003d pip install {opts} {packages}"},{"line_number":9,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"},{"line_number":10,"context_line":"         OS_STDOUT_CAPTURE\u003d1"},{"line_number":11,"context_line":"         OS_STDERR_CAPTURE\u003d1"}],"source_content_type":"text/x-properties","patch_set":3,"id":"3fa7e38b_627608db","line":8,"updated":"2019-11-21 23:33:23.000000000","message":"You should move this here so it\u0027s inherited by all the blocks:\n\nbasepython \u003d python3","commit_id":"26aac237e2b369a302153d0caa17a85c06c104b5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"5921415cd8d10129eb1588a6605d9770d88614c0","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[testenv]"},{"line_number":7,"context_line":"usedevelop \u003d True"},{"line_number":8,"context_line":"install_command \u003d pip install {opts} {packages}"},{"line_number":9,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"},{"line_number":10,"context_line":"         OS_STDOUT_CAPTURE\u003d1"},{"line_number":11,"context_line":"         OS_STDERR_CAPTURE\u003d1"}],"source_content_type":"text/x-properties","patch_set":3,"id":"3fa7e38b_84c54990","line":8,"in_reply_to":"3fa7e38b_29ec7027","updated":"2019-11-22 14:09:07.000000000","message":"We just want to make sure the tox environment things run under uses python3, like the gate jobs will.","commit_id":"26aac237e2b369a302153d0caa17a85c06c104b5"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"1491c51631b2d8be4776e2aa86254592efa67701","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[testenv]"},{"line_number":7,"context_line":"usedevelop \u003d True"},{"line_number":8,"context_line":"install_command \u003d pip install {opts} {packages}"},{"line_number":9,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"},{"line_number":10,"context_line":"         OS_STDOUT_CAPTURE\u003d1"},{"line_number":11,"context_line":"         OS_STDERR_CAPTURE\u003d1"}],"source_content_type":"text/x-properties","patch_set":3,"id":"3fa7e38b_782554be","line":8,"in_reply_to":"3fa7e38b_627608db","updated":"2019-11-22 10:18:46.000000000","message":"My question is it really required to have it? We remove python 2 support, so for me it\u0027s useless","commit_id":"26aac237e2b369a302153d0caa17a85c06c104b5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"0a5eed836ddf329ba1e00eef670338f341abffac","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[testenv]"},{"line_number":7,"context_line":"usedevelop \u003d True"},{"line_number":8,"context_line":"install_command \u003d pip install {opts} {packages}"},{"line_number":9,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"},{"line_number":10,"context_line":"         OS_STDOUT_CAPTURE\u003d1"},{"line_number":11,"context_line":"         OS_STDERR_CAPTURE\u003d1"}],"source_content_type":"text/x-properties","patch_set":3,"id":"3fa7e38b_29ec7027","line":8,"in_reply_to":"3fa7e38b_782554be","updated":"2019-11-22 13:04:36.000000000","message":"It\u0027s not useless for me. My dev box (which is where I run tox, many many times per day) is bionic, and uses py2 by default when you say \"python\". So without this line, I\u0027m running those envs under py2.\n\nAnd I\u0027m not the only one.\n\nThe point of tox (one of them) is so I can vet changes locally before expending gate resources on them. So having py3 be explicit here is important IMHO.","commit_id":"26aac237e2b369a302153d0caa17a85c06c104b5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cb9ee0d0c4a190413be0d9a52eff44b276e31164","unresolved":false,"context_lines":[{"line_number":2,"context_line":"minversion \u003d 2.3"},{"line_number":3,"context_line":"envlist \u003d py37,pep8"},{"line_number":4,"context_line":"skipdist \u003d True"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[testenv]"},{"line_number":7,"context_line":"usedevelop \u003d True"},{"line_number":8,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3fa7e38b_e39750ea","line":5,"updated":"2019-11-22 18:21:20.000000000","message":"We should add ignore_basepython_conflict here, like [1]. But that\u0027s latent and can be done separately.\n\n[Later] Whoops, no, we have to do it now, it\u0027s resulting in skipping suites like pep8 [2] and docs [3] (I think that\u0027s the cause anyway).\n\n[1] https://opendev.org/openstack/nova/src/commit/a1b0c8b814dc00dd6f5ff0824139584c7e866838/tox.ini#L4-L7\n[2] https://zuul.opendev.org/t/openstack/build/b9e4c36e7c2b4c3b833b557705070779/log/job-output.txt#459-461\n[3] https://zuul.opendev.org/t/openstack/build/989ff67dbc24431b991b4608a91a6e5d/log/job-output.txt#461-463","commit_id":"3916e9bc47db9f2b96f35c83475d0e8c712a4c4f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"cb9ee0d0c4a190413be0d9a52eff44b276e31164","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[testenv]"},{"line_number":7,"context_line":"usedevelop \u003d True"},{"line_number":8,"context_line":"basepython \u003d python3"},{"line_number":9,"context_line":"install_command \u003d pip install {opts} {packages}"},{"line_number":10,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"},{"line_number":11,"context_line":"         OS_STDOUT_CAPTURE\u003d1"}],"source_content_type":"text/x-properties","patch_set":4,"id":"3fa7e38b_03c14c2f","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":20},"updated":"2019-11-22 18:21:20.000000000","message":"✔","commit_id":"3916e9bc47db9f2b96f35c83475d0e8c712a4c4f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"b4f4bb9e19a2e0c17fb3ecfd172032fd19298b80","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 2.3"},{"line_number":3,"context_line":"envlist \u003d py37,pep8"},{"line_number":4,"context_line":"skipdist \u003d True"},{"line_number":5,"context_line":"# Automatic envs (pyXX) will only use the python version appropriate to that"}],"source_content_type":"text/x-properties","patch_set":7,"id":"3fa7e38b_5665e31a","line":2,"range":{"start_line":2,"start_character":13,"end_line":2,"end_character":16},"updated":"2020-01-07 14:13:13.000000000","message":"nit: ignore_basepython_conflict was introduced in tox 3.1.0, so this needs to be updated.","commit_id":"924627678d9bb1e9cdf84b524fb69dd37f4345ec"}]}
