)]}'
{".zuul.yaml":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"013f8eb06d784d1043eddd20801c44108a1e6632","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    irrelevant-files: *dsvm-irrelevant-files"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"- job:"},{"line_number":44,"context_line":"    name: nova-tox-functional"},{"line_number":45,"context_line":"    parent: openstack-tox"},{"line_number":46,"context_line":"    description: |"},{"line_number":47,"context_line":"      Run tox-based functional tests for the OpenStack Nova project with Nova"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_9c716047","line":44,"updated":"2019-10-10 16:52:17.000000000","message":"Consider continuing to call this -py36","commit_id":"c63d5adb90ea8fcd38debb2ff4866516970bb47b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"650f192284ce0fbf190519856521fae8e3cda210","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    irrelevant-files: *dsvm-irrelevant-files"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"- job:"},{"line_number":44,"context_line":"    name: nova-tox-functional"},{"line_number":45,"context_line":"    parent: openstack-tox"},{"line_number":46,"context_line":"    description: |"},{"line_number":47,"context_line":"      Run tox-based functional tests for the OpenStack Nova project with Nova"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_ed89af74","line":44,"in_reply_to":"3fa7e38b_9c716047","updated":"2019-10-12 05:09:03.000000000","message":"Thought about that (was just going to remove this). However, it\u0027s not necessarily true since this uses the system Python.","commit_id":"c63d5adb90ea8fcd38debb2ff4866516970bb47b"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"013f8eb06d784d1043eddd20801c44108a1e6632","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        # Disable SSH validation in tests to save time."},{"line_number":158,"context_line":"        TEMPEST_RUN_VALIDATION: false"},{"line_number":159,"context_line":"        # We only support Python3"},{"line_number":160,"context_line":"        USE_PYTHON3: True"},{"line_number":161,"context_line":"      devstack_services:"},{"line_number":162,"context_line":"        # Disable non-essential services that we don\u0027t need for this job."},{"line_number":163,"context_line":"        c-bak: false"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_1c9b3066","line":160,"range":{"start_line":160,"start_character":8,"end_line":160,"end_character":25},"updated":"2019-10-10 16:52:17.000000000","message":"Can we now put this in the parent instead?","commit_id":"c63d5adb90ea8fcd38debb2ff4866516970bb47b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f209cd3dc894546ef4bbaec5320629ccfd3ee8fc","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        # Disable SSH validation in tests to save time."},{"line_number":158,"context_line":"        TEMPEST_RUN_VALIDATION: false"},{"line_number":159,"context_line":"        # We only support Python3"},{"line_number":160,"context_line":"        USE_PYTHON3: True"},{"line_number":161,"context_line":"      devstack_services:"},{"line_number":162,"context_line":"        # Disable non-essential services that we don\u0027t need for this job."},{"line_number":163,"context_line":"        c-bak: false"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_57950132","line":160,"range":{"start_line":160,"start_character":8,"end_line":160,"end_character":25},"in_reply_to":"3fa7e38b_1c9b3066","updated":"2019-10-10 17:44:57.000000000","message":"Yes, we should:\n\nhttps://review.opendev.org/#/c/649097/","commit_id":"c63d5adb90ea8fcd38debb2ff4866516970bb47b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"650f192284ce0fbf190519856521fae8e3cda210","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        # Disable SSH validation in tests to save time."},{"line_number":158,"context_line":"        TEMPEST_RUN_VALIDATION: false"},{"line_number":159,"context_line":"        # We only support Python3"},{"line_number":160,"context_line":"        USE_PYTHON3: True"},{"line_number":161,"context_line":"      devstack_services:"},{"line_number":162,"context_line":"        # Disable non-essential services that we don\u0027t need for this job."},{"line_number":163,"context_line":"        c-bak: false"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_cd9b93c6","line":160,"range":{"start_line":160,"start_character":8,"end_line":160,"end_character":25},"in_reply_to":"3fa7e38b_57950132","updated":"2019-10-12 05:09:03.000000000","message":"Done","commit_id":"c63d5adb90ea8fcd38debb2ff4866516970bb47b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5e4061be3b390e272168a8f73ef14d5af9c3f980","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"- job:"},{"line_number":44,"context_line":"    name: nova-tox-functional-py36"},{"line_number":45,"context_line":"    parent: openstack-tox"},{"line_number":46,"context_line":"    nodeset: ubuntu-bionic"},{"line_number":47,"context_line":"    description: |"},{"line_number":48,"context_line":"      Run tox-based functional tests for the OpenStack Nova project"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_b04c5842","line":45,"range":{"start_line":45,"start_character":12,"end_line":45,"end_character":25},"updated":"2019-10-14 12:05:43.000000000","message":"we should proably just use openstack-tox-functional-py36\nhttps://github.com/openstack/openstack-zuul-jobs/blob/master/zuul.d/jobs.yaml#L315-L326\nas the parent","commit_id":"c2de0b6345a161b0215f808ba5ceff5f7e82e6ad"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ddc22ed16ce86d62b70e78dcd333c7a6f2a18dda","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"- job:"},{"line_number":44,"context_line":"    name: nova-tox-functional-py36"},{"line_number":45,"context_line":"    parent: openstack-tox"},{"line_number":46,"context_line":"    nodeset: ubuntu-bionic"},{"line_number":47,"context_line":"    description: |"},{"line_number":48,"context_line":"      Run tox-based functional tests for the OpenStack Nova project"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_8bdd71de","line":45,"range":{"start_line":45,"start_character":12,"end_line":45,"end_character":25},"in_reply_to":"3fa7e38b_b04c5842","updated":"2019-10-14 15:16:29.000000000","message":"That\u0027s a good idea, but I think it should be done separately since it\u0027s not _really_ related to this","commit_id":"c2de0b6345a161b0215f808ba5ceff5f7e82e6ad"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5e4061be3b390e272168a8f73ef14d5af9c3f980","unresolved":false,"context_lines":[{"line_number":43,"context_line":"- job:"},{"line_number":44,"context_line":"    name: nova-tox-functional-py36"},{"line_number":45,"context_line":"    parent: openstack-tox"},{"line_number":46,"context_line":"    nodeset: ubuntu-bionic"},{"line_number":47,"context_line":"    description: |"},{"line_number":48,"context_line":"      Run tox-based functional tests for the OpenStack Nova project"},{"line_number":49,"context_line":"      under cPython version 3.6 with Nova specific irrelevant-files list."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_f03e5089","line":46,"range":{"start_line":46,"start_character":4,"end_line":46,"end_character":26},"updated":"2019-10-14 12:05:43.000000000","message":"we can certenly do that but i think that should already be the default nodeset based on \nhttps://github.com/openstack/openstack-zuul-jobs/blob/master/zuul.d/jobs.yaml#L61-L97\nwe have branch specific defulats but for master we shoudl be defaulting to bionic.","commit_id":"c2de0b6345a161b0215f808ba5ceff5f7e82e6ad"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ddc22ed16ce86d62b70e78dcd333c7a6f2a18dda","unresolved":false,"context_lines":[{"line_number":43,"context_line":"- job:"},{"line_number":44,"context_line":"    name: nova-tox-functional-py36"},{"line_number":45,"context_line":"    parent: openstack-tox"},{"line_number":46,"context_line":"    nodeset: ubuntu-bionic"},{"line_number":47,"context_line":"    description: |"},{"line_number":48,"context_line":"      Run tox-based functional tests for the OpenStack Nova project"},{"line_number":49,"context_line":"      under cPython version 3.6 with Nova specific irrelevant-files list."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_0bebc177","line":46,"range":{"start_line":46,"start_character":4,"end_line":46,"end_character":26},"in_reply_to":"3fa7e38b_f03e5089","updated":"2019-10-14 15:16:29.000000000","message":"Again, this makes sense but it\u0027s an unrelated change that I think should really be done separately. There\u0027s already going to be enough issues here, I suspect","commit_id":"c2de0b6345a161b0215f808ba5ceff5f7e82e6ad"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5e4061be3b390e272168a8f73ef14d5af9c3f980","unresolved":false,"context_lines":[{"line_number":65,"context_line":"      # explicitly stating the work dir makes this job reusable by other"},{"line_number":66,"context_line":"      # projects"},{"line_number":67,"context_line":"      zuul_work_dir: src/opendev.org/openstack/nova"},{"line_number":68,"context_line":"      tox_envlist: functional-py36"},{"line_number":69,"context_line":"      tox_install_siblings: true"},{"line_number":70,"context_line":"      bindep_profile: test py36"},{"line_number":71,"context_line":"    timeout: 3600"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_904d9c3c","line":68,"range":{"start_line":68,"start_character":4,"end_line":68,"end_character":34},"updated":"2019-10-14 12:05:43.000000000","message":"if we use openstack-tox-functional-py36\nthen we dont need this","commit_id":"c2de0b6345a161b0215f808ba5ceff5f7e82e6ad"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"8b2b6c30e70e5c701b03fe5ef894255082c47047","unresolved":false,"context_lines":[{"line_number":161,"context_line":"              resize: false"},{"line_number":162,"context_line":"              cold_migration: false"},{"line_number":163,"context_line":"      devstack_localrc:"},{"line_number":164,"context_line":"        USE_PYTHON3: True"},{"line_number":165,"context_line":"        NOVA_BACKEND: LVM"},{"line_number":166,"context_line":"        # Do not waste time clearing volumes."},{"line_number":167,"context_line":"        LVM_VOLUME_CLEAR: none"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3fa7e38b_125a0982","side":"PARENT","line":164,"updated":"2019-10-14 19:05:24.000000000","message":"I would not remove this to start. That way you can merge this change without waiting for devstack to update.","commit_id":"62d80fbb1a2ede9b9d095cdb4e289bc1475a2e3f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"cc2e77dff72b8cb72ab9536c502e23f747db9f10","unresolved":false,"context_lines":[{"line_number":161,"context_line":"              resize: false"},{"line_number":162,"context_line":"              cold_migration: false"},{"line_number":163,"context_line":"      devstack_localrc:"},{"line_number":164,"context_line":"        USE_PYTHON3: True"},{"line_number":165,"context_line":"        NOVA_BACKEND: LVM"},{"line_number":166,"context_line":"        # Do not waste time clearing volumes."},{"line_number":167,"context_line":"        LVM_VOLUME_CLEAR: none"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3fa7e38b_a396423d","side":"PARENT","line":164,"in_reply_to":"3fa7e38b_125a0982","updated":"2019-11-14 15:58:29.000000000","message":"We\u0027re blocked by third-party CI at the moment so I don\u0027t think the DevStack patch is a huge blocker. If we\u0027re still here in a few weeks though we can reassess","commit_id":"62d80fbb1a2ede9b9d095cdb4e289bc1475a2e3f"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"8b2b6c30e70e5c701b03fe5ef894255082c47047","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        # the tls-proxy service to be enabled. Added in Queens."},{"line_number":229,"context_line":"        NOVA_CONSOLE_PROXY_COMPUTE_TLS: True"},{"line_number":230,"context_line":"        # Added in Stein."},{"line_number":231,"context_line":"        USE_PYTHON3: True"},{"line_number":232,"context_line":"        # Added in Stein."},{"line_number":233,"context_line":"        ENABLE_VOLUME_MULTIATTACH: True"},{"line_number":234,"context_line":"      devstack_services:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3fa7e38b_b248d5b2","side":"PARENT","line":231,"updated":"2019-10-14 19:05:24.000000000","message":"I would not remove this to start. That way you can merge this change without waiting for devstack to update.","commit_id":"62d80fbb1a2ede9b9d095cdb4e289bc1475a2e3f"},{"author":{"_account_id":22165,"name":"caoyuan","email":"cao.yingjunz@gmail.com","username":"caoyuan"},"change_message_id":"b06b441d512a297671f6965661b6fcec139a3c29","unresolved":false,"context_lines":[{"line_number":360,"context_line":"      - integrated-gate-compute"},{"line_number":361,"context_line":"      - openstack-cover-jobs"},{"line_number":362,"context_line":"      - openstack-lower-constraints-jobs"},{"line_number":363,"context_line":"      - openstack-python-jobs"},{"line_number":364,"context_line":"      - openstack-python3-train-jobs"},{"line_number":365,"context_line":"      - periodic-stable-jobs"},{"line_number":366,"context_line":"      - publish-openstack-docs-pti"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3fa7e38b_b443de6b","side":"PARENT","line":363,"range":{"start_line":363,"start_character":8,"end_line":363,"end_character":29},"updated":"2019-10-15 02:25:59.000000000","message":"remove this, remove pep8,  it should be solved","commit_id":"62d80fbb1a2ede9b9d095cdb4e289bc1475a2e3f"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4f5628b5385459d7144f9a46b600bd934fd4c682","unresolved":false,"context_lines":[{"line_number":333,"context_line":"      - integrated-gate-compute"},{"line_number":334,"context_line":"      - openstack-cover-jobs"},{"line_number":335,"context_line":"      - openstack-lower-constraints-jobs"},{"line_number":336,"context_line":"      - openstack-python3-ussuri-jobs"},{"line_number":337,"context_line":"      - periodic-stable-jobs"},{"line_number":338,"context_line":"      - publish-openstack-docs-pti"},{"line_number":339,"context_line":"      - release-notes-jobs-python3"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3fa7e38b_a67ab484","line":336,"range":{"start_line":336,"start_character":8,"end_line":336,"end_character":37},"updated":"2019-10-16 18:21:08.000000000","message":"Unfortunately, it doesn\u0027t contain pep8 job :(","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"abc9b5b3e00a943c9eea52aa94b871593a5b541e","unresolved":false,"context_lines":[{"line_number":333,"context_line":"      - integrated-gate-compute"},{"line_number":334,"context_line":"      - openstack-cover-jobs"},{"line_number":335,"context_line":"      - openstack-lower-constraints-jobs"},{"line_number":336,"context_line":"      - openstack-python3-ussuri-jobs"},{"line_number":337,"context_line":"      - periodic-stable-jobs"},{"line_number":338,"context_line":"      - publish-openstack-docs-pti"},{"line_number":339,"context_line":"      - release-notes-jobs-python3"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3fa7e38b_4de9fc17","line":336,"range":{"start_line":336,"start_character":8,"end_line":336,"end_character":37},"in_reply_to":"3fa7e38b_26700472","updated":"2019-10-28 15:02:07.000000000","message":"well that is now merged so i guess this can proceed.\n\nim in two minds if it should contain the pep8 job by the way but i guess it makes sense to do to keep things simple.","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"deb6b4a1acd68d7b6b47b2fce83292229e7b578d","unresolved":false,"context_lines":[{"line_number":333,"context_line":"      - integrated-gate-compute"},{"line_number":334,"context_line":"      - openstack-cover-jobs"},{"line_number":335,"context_line":"      - openstack-lower-constraints-jobs"},{"line_number":336,"context_line":"      - openstack-python3-ussuri-jobs"},{"line_number":337,"context_line":"      - periodic-stable-jobs"},{"line_number":338,"context_line":"      - publish-openstack-docs-pti"},{"line_number":339,"context_line":"      - release-notes-jobs-python3"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3fa7e38b_26700472","line":336,"range":{"start_line":336,"start_character":8,"end_line":336,"end_character":37},"in_reply_to":"3fa7e38b_a67ab484","updated":"2019-10-16 18:29:20.000000000","message":"I proposed a patch [1] to fix it.\n\n[1] https://review.opendev.org/#/c/688997/","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"36415c003d9d7e6410bf3e17c9b1609aef29a8e3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# See https://docs.openstack.org/infra/manual/drivers.html#naming-with-zuul-v3"},{"line_number":2,"context_line":"# for job naming conventions."},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# TODO(stephenfin): Remove \u0027USE_PYTHON3\u0027 once [1] or similar merges"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# [1] https://review.opendev.org/#/c/649097/"},{"line_number":7,"context_line":"#"},{"line_number":8,"context_line":"- job:"},{"line_number":9,"context_line":"    name: nova-dsvm-multinode-base"},{"line_number":10,"context_line":"    parent: legacy-dsvm-base-multinode"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_dd828f52","line":7,"range":{"start_line":4,"start_character":1,"end_line":7,"end_character":1},"updated":"2019-11-15 16:23:58.000000000","message":"we dont actually have too although we can.\nif it was removed form devstack at some point i would not break anything just an fyi.","commit_id":"f16272389d1b3f8ef65de9be40637423f9c692d3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a1ed0448a6776e209ef8ffb851f1ab9d2e8fbbe8","unresolved":false,"context_lines":[{"line_number":259,"context_line":"      - openstack/oslo.versionedobjects"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"- job:"},{"line_number":262,"context_line":"    name: nova-grenade-multinode"},{"line_number":263,"context_line":"    parent: nova-dsvm-multinode-base"},{"line_number":264,"context_line":"    description: |"},{"line_number":265,"context_line":"      Multi-node grenade job which runs gate/live_migration/hooks tests."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"3fa7e38b_8fe84fdf","line":262,"updated":"2019-11-18 14:02:37.000000000","message":"This isn\u0027t using python3.","commit_id":"14872caae1a51c7015dd7c509d0173df2e943ed4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6154c26aab9b3109af2238f434eb325eecdfc94f","unresolved":false,"context_lines":[{"line_number":259,"context_line":"      - openstack/oslo.versionedobjects"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"- job:"},{"line_number":262,"context_line":"    name: nova-grenade-multinode"},{"line_number":263,"context_line":"    parent: nova-dsvm-multinode-base"},{"line_number":264,"context_line":"    description: |"},{"line_number":265,"context_line":"      Multi-node grenade job which runs gate/live_migration/hooks tests."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"3fa7e38b_afa18b97","line":262,"in_reply_to":"3fa7e38b_8fe84fdf","updated":"2019-11-18 14:04:36.000000000","message":"Oh derp yeah it is, it\u0027s just not in the name:\n\nhttps://review.opendev.org/#/c/692374/\n\nCan we modify the description to mention it runs with python3?","commit_id":"14872caae1a51c7015dd7c509d0173df2e943ed4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6154c26aab9b3109af2238f434eb325eecdfc94f","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        - devstack-plugin-ceph-tempest-py3:"},{"line_number":369,"context_line":"            voting: false"},{"line_number":370,"context_line":"            irrelevant-files: *dsvm-irrelevant-files"},{"line_number":371,"context_line":"        - neutron-grenade-multinode:"},{"line_number":372,"context_line":"            irrelevant-files: *dsvm-irrelevant-files"},{"line_number":373,"context_line":"        - neutron-tempest-linuxbridge:"},{"line_number":374,"context_line":"            irrelevant-files:"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"3fa7e38b_cf79672f","line":371,"updated":"2019-11-18 14:04:36.000000000","message":"Is there a py3 variant of this job yet?","commit_id":"14872caae1a51c7015dd7c509d0173df2e943ed4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bd1be167ebeac2fcc00de2f69248738ecb6e756a","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        - devstack-plugin-ceph-tempest-py3:"},{"line_number":369,"context_line":"            voting: false"},{"line_number":370,"context_line":"            irrelevant-files: *dsvm-irrelevant-files"},{"line_number":371,"context_line":"        - neutron-grenade-multinode:"},{"line_number":372,"context_line":"            irrelevant-files: *dsvm-irrelevant-files"},{"line_number":373,"context_line":"        - neutron-tempest-linuxbridge:"},{"line_number":374,"context_line":"            irrelevant-files:"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"3fa7e38b_4f501733","line":371,"in_reply_to":"3fa7e38b_cf79672f","updated":"2019-11-18 14:32:44.000000000","message":"It\u0027s already running py3:\n\nhttps://github.com/openstack/neutron/blob/master/playbooks/legacy/neutron-grenade-multinode/run.yaml#L34","commit_id":"14872caae1a51c7015dd7c509d0173df2e943ed4"}],"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f209cd3dc894546ef4bbaec5320629ccfd3ee8fc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Stop testing Python 2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It\u0027s Ussuri. Time to party. We don\u0027t attempt any cleanup but simply stop"},{"line_number":10,"context_line":"testing with Python 3 and indicate that we only support Python 3 via"},{"line_number":11,"context_line":"\u0027setup.cfg\u0027. This should free up a significant amount of resources from"},{"line_number":12,"context_line":"the gate and let us start using Python 3 idioms in our code. Win-win."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_97713947","line":9,"updated":"2019-10-10 17:44:57.000000000","message":"You should link to https://governance.openstack.org/tc/resolutions/20180529-python2-deprecation-timeline.html#python2-deprecation-timeline somehow.","commit_id":"c63d5adb90ea8fcd38debb2ff4866516970bb47b"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"013f8eb06d784d1043eddd20801c44108a1e6632","unresolved":false,"context_lines":[{"line_number":7,"context_line":"WIP: Stop testing Python 2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It\u0027s Ussuri. Time to party. We don\u0027t attempt any cleanup but simply stop"},{"line_number":10,"context_line":"testing with Python 3 and indicate that we only support Python 3 via"},{"line_number":11,"context_line":"\u0027setup.cfg\u0027. This should free up a significant amount of resources from"},{"line_number":12,"context_line":"the gate and let us start using Python 3 idioms in our code. Win-win."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_1c86d014","line":10,"range":{"start_line":10,"start_character":20,"end_line":10,"end_character":21},"updated":"2019-10-10 16:52:17.000000000","message":"2","commit_id":"c63d5adb90ea8fcd38debb2ff4866516970bb47b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5fe4e21d2ed56eb4d1ac676893495d64aa8e6166","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[1] https://governance.openstack.org/tc/resolutions/20180529-python2-deprecation-timeline.html#python2-deprecation-timeline"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"[2] At some point we should remove the \u0027functional\u0027 testenv entirely and"},{"line_number":23,"context_line":"rely on the versioned ones. This means more typing but seems like a"},{"line_number":24,"context_line":"better idea (reproducibility FTW!) than running with whatever python3"},{"line_number":25,"context_line":"happens to point to on a local machine."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: Ie1a0cbd82a617dbcc15729647218ac3e9cd0e5a9"},{"line_number":28,"context_line":"Signed-off-by: Stephen Finucane \u003csfinucan@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_a3e971e3","line":25,"range":{"start_line":22,"start_character":0,"end_line":25,"end_character":39},"updated":"2019-10-14 15:46:32.000000000","message":"i actually  think that is the opposite direction we shoudl be going in. we do not pin exact version of each of the dependencies. so we will not get any more repoducablity \nby uising functional-py37 as the enviornment will change if a package updates. doing that and we will reduce the usablity of our defaults for no benefit.\n\nfor example i had to addtionaly install py37 on my laptop to be able to run tox without passing -e because the default requrie py37 expecitly where as ideally since that is not our minium version we shoudl use a generic functional evn as the default to allow any python3 ot be used by default.\n\nsimilarly i think we would be better served by having a generic unit or py3 env for the unit tests if we wanted to improve usability of our defaults.","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"8b2b6c30e70e5c701b03fe5ef894255082c47047","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[1] https://governance.openstack.org/tc/resolutions/20180529-python2-deprecation-timeline.html#python2-deprecation-timeline"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"[2] At some point we should remove the \u0027functional\u0027 testenv entirely and"},{"line_number":23,"context_line":"rely on the versioned ones. This means more typing but seems like a"},{"line_number":24,"context_line":"better idea (reproducibility FTW!) than running with whatever python3"},{"line_number":25,"context_line":"happens to point to on a local machine."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: Ie1a0cbd82a617dbcc15729647218ac3e9cd0e5a9"},{"line_number":28,"context_line":"Signed-off-by: Stephen Finucane \u003csfinucan@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_b26f7526","line":25,"range":{"start_line":22,"start_character":0,"end_line":25,"end_character":39},"in_reply_to":"3fa7e38b_a3e971e3","updated":"2019-10-14 19:05:24.000000000","message":"I\u0027ve left suggestions in the tox.ini for making the generic functional target usable with the default python3 on the host.","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"}],"playbooks/legacy/nova-grenade-multinode/run.yaml":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"370aca6aa89e1707b98f87cfc333cc1876ec4902","unresolved":false,"context_lines":[{"line_number":29,"context_line":"          set -x"},{"line_number":30,"context_line":"          export PROJECTS\u003d\"openstack/grenade $PROJECTS\""},{"line_number":31,"context_line":"          export PYTHONUNBUFFERED\u003dtrue"},{"line_number":32,"context_line":"          export DEVSTACK_GATE_USE_PYTHON3\u003d1"},{"line_number":33,"context_line":"          export DEVSTACK_GATE_CONFIGDRIVE\u003d0"},{"line_number":34,"context_line":"          export DEVSTACK_GATE_NEUTRON\u003d1"},{"line_number":35,"context_line":"          export DEVSTACK_GATE_TEMPEST_NOTESTS\u003d1"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3fa7e38b_63513936","line":32,"updated":"2019-10-14 19:31:48.000000000","message":"nit: i realize devstack-gate only checks this variable is not \"\", but codesearch showed all other occurrences used \u0027True\u0027 and not 1","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fa38906f780bcd6b6d246d76b20f000b24616dd9","unresolved":false,"context_lines":[{"line_number":29,"context_line":"          set -x"},{"line_number":30,"context_line":"          export PROJECTS\u003d\"openstack/grenade $PROJECTS\""},{"line_number":31,"context_line":"          export PYTHONUNBUFFERED\u003dtrue"},{"line_number":32,"context_line":"          export DEVSTACK_GATE_USE_PYTHON3\u003d1"},{"line_number":33,"context_line":"          export DEVSTACK_GATE_CONFIGDRIVE\u003d0"},{"line_number":34,"context_line":"          export DEVSTACK_GATE_NEUTRON\u003d1"},{"line_number":35,"context_line":"          export DEVSTACK_GATE_TEMPEST_NOTESTS\u003d1"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3fa7e38b_cdfa96bb","line":32,"in_reply_to":"3fa7e38b_63513936","updated":"2019-10-14 19:40:35.000000000","message":"devstack uses trueorfalse\nhttps://github.com/openstack/devstack/blob/7840b6e291b5e28ba96ce871b5e01d66c14d9201/stackrc#L130\n\nwhich will acept a bunch of semi boolean values\nincludeing 1 as an alias to true\n\nhttps://github.com/openstack/devstack/blob/master/functions-common#L138-L168 \n\nso while 1 woudl normally mean false in bash as 0 is the succes code for a command in this case its fine.\n\nbue in anycase we should alos make it a goal to replce this job with https://review.opendev.org/#/c/548936/\nthe second that merges so this becomes a non issue","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"cc2e77dff72b8cb72ab9536c502e23f747db9f10","unresolved":false,"context_lines":[{"line_number":29,"context_line":"          set -x"},{"line_number":30,"context_line":"          export PROJECTS\u003d\"openstack/grenade $PROJECTS\""},{"line_number":31,"context_line":"          export PYTHONUNBUFFERED\u003dtrue"},{"line_number":32,"context_line":"          export DEVSTACK_GATE_USE_PYTHON3\u003d1"},{"line_number":33,"context_line":"          export DEVSTACK_GATE_CONFIGDRIVE\u003d0"},{"line_number":34,"context_line":"          export DEVSTACK_GATE_NEUTRON\u003d1"},{"line_number":35,"context_line":"          export DEVSTACK_GATE_TEMPEST_NOTESTS\u003d1"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3fa7e38b_a35722ca","line":32,"in_reply_to":"3fa7e38b_cdfa96bb","updated":"2019-11-14 15:58:29.000000000","message":"I chose 1 simply because the other \u0027DEVSTACK_*\u0027 variables here were using that format. I\u0027d personally prefer to be locally consistent if possible, but I can change if it really annoys you or anyone :)","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"abc9b5b3e00a943c9eea52aa94b871593a5b541e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"          set -x"},{"line_number":30,"context_line":"          export PROJECTS\u003d\"openstack/grenade $PROJECTS\""},{"line_number":31,"context_line":"          export PYTHONUNBUFFERED\u003dtrue"},{"line_number":32,"context_line":"          export USE_PYTHON3\u003dTrue"},{"line_number":33,"context_line":"          export DEVSTACK_GATE_USE_PYTHON3\u003d1"},{"line_number":34,"context_line":"          export DEVSTACK_GATE_CONFIGDRIVE\u003d0"},{"line_number":35,"context_line":"          export DEVSTACK_GATE_NEUTRON\u003d1"},{"line_number":36,"context_line":"          export DEVSTACK_GATE_TEMPEST_NOTESTS\u003d1"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3fa7e38b_8de2942f","line":33,"range":{"start_line":32,"start_character":10,"end_line":33,"end_character":44},"updated":"2019-10-28 15:02:07.000000000","message":"this should be redundant since USE_PYTHON3 is what the devstack gate version sets but it wont hurt","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"51d1976d42c5b8a34d4168c8ed9bf179f645ee3c","unresolved":false,"context_lines":[{"line_number":29,"context_line":"          set -x"},{"line_number":30,"context_line":"          export PROJECTS\u003d\"openstack/grenade $PROJECTS\""},{"line_number":31,"context_line":"          export PYTHONUNBUFFERED\u003dtrue"},{"line_number":32,"context_line":"          export USE_PYTHON3\u003dTrue"},{"line_number":33,"context_line":"          export DEVSTACK_GATE_USE_PYTHON3\u003d1"},{"line_number":34,"context_line":"          export DEVSTACK_GATE_CONFIGDRIVE\u003d0"},{"line_number":35,"context_line":"          export DEVSTACK_GATE_NEUTRON\u003d1"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_c9089128","line":32,"range":{"start_line":32,"start_character":10,"end_line":32,"end_character":33},"updated":"2019-11-15 22:05:30.000000000","message":"seems like this should have been in the prior patch if it was necessary","commit_id":"f16272389d1b3f8ef65de9be40637423f9c692d3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8591ec2b757aa8ccc71a2bd27042125b1aba0bf","unresolved":false,"context_lines":[{"line_number":29,"context_line":"          set -x"},{"line_number":30,"context_line":"          export PROJECTS\u003d\"openstack/grenade $PROJECTS\""},{"line_number":31,"context_line":"          export PYTHONUNBUFFERED\u003dtrue"},{"line_number":32,"context_line":"          export USE_PYTHON3\u003dTrue"},{"line_number":33,"context_line":"          export DEVSTACK_GATE_USE_PYTHON3\u003d1"},{"line_number":34,"context_line":"          export DEVSTACK_GATE_CONFIGDRIVE\u003d0"},{"line_number":35,"context_line":"          export DEVSTACK_GATE_NEUTRON\u003d1"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_c6f5d484","line":32,"range":{"start_line":32,"start_character":10,"end_line":32,"end_character":33},"in_reply_to":"3fa7e38b_c9089128","updated":"2019-11-18 10:32:29.000000000","message":"Done","commit_id":"f16272389d1b3f8ef65de9be40637423f9c692d3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"51d1976d42c5b8a34d4168c8ed9bf179f645ee3c","unresolved":false,"context_lines":[{"line_number":30,"context_line":"          export PROJECTS\u003d\"openstack/grenade $PROJECTS\""},{"line_number":31,"context_line":"          export PYTHONUNBUFFERED\u003dtrue"},{"line_number":32,"context_line":"          export USE_PYTHON3\u003dTrue"},{"line_number":33,"context_line":"          export DEVSTACK_GATE_USE_PYTHON3\u003d1"},{"line_number":34,"context_line":"          export DEVSTACK_GATE_CONFIGDRIVE\u003d0"},{"line_number":35,"context_line":"          export DEVSTACK_GATE_NEUTRON\u003d1"},{"line_number":36,"context_line":"          export DEVSTACK_GATE_TEMPEST_NOTESTS\u003d1"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_4914a141","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":44},"updated":"2019-11-15 22:05:30.000000000","message":"and this is now redundant with L38 (added in the previous patch)","commit_id":"f16272389d1b3f8ef65de9be40637423f9c692d3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8591ec2b757aa8ccc71a2bd27042125b1aba0bf","unresolved":false,"context_lines":[{"line_number":30,"context_line":"          export PROJECTS\u003d\"openstack/grenade $PROJECTS\""},{"line_number":31,"context_line":"          export PYTHONUNBUFFERED\u003dtrue"},{"line_number":32,"context_line":"          export USE_PYTHON3\u003dTrue"},{"line_number":33,"context_line":"          export DEVSTACK_GATE_USE_PYTHON3\u003d1"},{"line_number":34,"context_line":"          export DEVSTACK_GATE_CONFIGDRIVE\u003d0"},{"line_number":35,"context_line":"          export DEVSTACK_GATE_NEUTRON\u003d1"},{"line_number":36,"context_line":"          export DEVSTACK_GATE_TEMPEST_NOTESTS\u003d1"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_86eb5ca2","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":44},"in_reply_to":"3fa7e38b_4914a141","updated":"2019-11-18 10:32:29.000000000","message":"Done","commit_id":"f16272389d1b3f8ef65de9be40637423f9c692d3"}],"playbooks/legacy/nova-live-migration/run.yaml":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"51d1976d42c5b8a34d4168c8ed9bf179f645ee3c","unresolved":false,"context_lines":[{"line_number":32,"context_line":"          cat \u003c\u003c \u0027EOF\u0027 \u003e\u003e\"/tmp/dg-local.conf\""},{"line_number":33,"context_line":"          [[local|localrc]]"},{"line_number":34,"context_line":"          FORCE_CONFIG_DRIVE\u003dTrue"},{"line_number":35,"context_line":"          USE_PYTHON3\u003dTrue"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"          EOF"},{"line_number":38,"context_line":"        executable: /bin/bash"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_c92171a0","line":35,"updated":"2019-11-15 22:05:30.000000000","message":"ditto","commit_id":"f16272389d1b3f8ef65de9be40637423f9c692d3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8591ec2b757aa8ccc71a2bd27042125b1aba0bf","unresolved":false,"context_lines":[{"line_number":32,"context_line":"          cat \u003c\u003c \u0027EOF\u0027 \u003e\u003e\"/tmp/dg-local.conf\""},{"line_number":33,"context_line":"          [[local|localrc]]"},{"line_number":34,"context_line":"          FORCE_CONFIG_DRIVE\u003dTrue"},{"line_number":35,"context_line":"          USE_PYTHON3\u003dTrue"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"          EOF"},{"line_number":38,"context_line":"        executable: /bin/bash"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_461804d2","line":35,"in_reply_to":"3fa7e38b_c92171a0","updated":"2019-11-18 10:32:29.000000000","message":"Done","commit_id":"f16272389d1b3f8ef65de9be40637423f9c692d3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"51d1976d42c5b8a34d4168c8ed9bf179f645ee3c","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        cmd: |"},{"line_number":44,"context_line":"          set -e"},{"line_number":45,"context_line":"          set -x"},{"line_number":46,"context_line":"          export PYTHONUNBUFFERED\u003dtrue"},{"line_number":47,"context_line":"          export USE_PYTHON3\u003dTrue"},{"line_number":48,"context_line":"          export DEVSTACK_GATE_USE_PYTHON3\u003d1"},{"line_number":49,"context_line":"          export DEVSTACK_GATE_CONFIGDRIVE\u003d0"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_092c6997","line":46,"updated":"2019-11-15 22:05:30.000000000","message":"ditto","commit_id":"f16272389d1b3f8ef65de9be40637423f9c692d3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8591ec2b757aa8ccc71a2bd27042125b1aba0bf","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        cmd: |"},{"line_number":44,"context_line":"          set -e"},{"line_number":45,"context_line":"          set -x"},{"line_number":46,"context_line":"          export PYTHONUNBUFFERED\u003dtrue"},{"line_number":47,"context_line":"          export USE_PYTHON3\u003dTrue"},{"line_number":48,"context_line":"          export DEVSTACK_GATE_USE_PYTHON3\u003d1"},{"line_number":49,"context_line":"          export DEVSTACK_GATE_CONFIGDRIVE\u003d0"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_86403ca4","line":46,"in_reply_to":"3fa7e38b_092c6997","updated":"2019-11-18 10:32:29.000000000","message":"Done","commit_id":"f16272389d1b3f8ef65de9be40637423f9c692d3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"51d1976d42c5b8a34d4168c8ed9bf179f645ee3c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"          set -x"},{"line_number":46,"context_line":"          export PYTHONUNBUFFERED\u003dtrue"},{"line_number":47,"context_line":"          export USE_PYTHON3\u003dTrue"},{"line_number":48,"context_line":"          export DEVSTACK_GATE_USE_PYTHON3\u003d1"},{"line_number":49,"context_line":"          export DEVSTACK_GATE_CONFIGDRIVE\u003d0"},{"line_number":50,"context_line":"          export DEVSTACK_GATE_TEMPEST\u003d1"},{"line_number":51,"context_line":"          export DEVSTACK_GATE_TEMPEST_NOTESTS\u003d1"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_8937f9e3","line":48,"updated":"2019-11-15 22:05:30.000000000","message":"ditto","commit_id":"f16272389d1b3f8ef65de9be40637423f9c692d3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8591ec2b757aa8ccc71a2bd27042125b1aba0bf","unresolved":false,"context_lines":[{"line_number":45,"context_line":"          set -x"},{"line_number":46,"context_line":"          export PYTHONUNBUFFERED\u003dtrue"},{"line_number":47,"context_line":"          export USE_PYTHON3\u003dTrue"},{"line_number":48,"context_line":"          export DEVSTACK_GATE_USE_PYTHON3\u003d1"},{"line_number":49,"context_line":"          export DEVSTACK_GATE_CONFIGDRIVE\u003d0"},{"line_number":50,"context_line":"          export DEVSTACK_GATE_TEMPEST\u003d1"},{"line_number":51,"context_line":"          export DEVSTACK_GATE_TEMPEST_NOTESTS\u003d1"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"3fa7e38b_261388ba","line":48,"in_reply_to":"3fa7e38b_8937f9e3","updated":"2019-11-18 10:32:29.000000000","message":"Done","commit_id":"f16272389d1b3f8ef65de9be40637423f9c692d3"}],"setup.cfg":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"013f8eb06d784d1043eddd20801c44108a1e6632","unresolved":false,"context_lines":[{"line_number":6,"context_line":"author \u003d OpenStack"},{"line_number":7,"context_line":"author-email \u003d openstack-discuss@lists.openstack.org"},{"line_number":8,"context_line":"home-page \u003d https://docs.openstack.org/nova/latest/"},{"line_number":9,"context_line":"python-requires \u003d \u003e\u003d3.6"},{"line_number":10,"context_line":"classifier \u003d"},{"line_number":11,"context_line":"    Environment :: OpenStack"},{"line_number":12,"context_line":"    Intended Audience :: Information Technology"}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"3fa7e38b_bca3fc9d","line":9,"updated":"2019-10-10 16:52:17.000000000","message":"can you point to a ref for this key?","commit_id":"c63d5adb90ea8fcd38debb2ff4866516970bb47b"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"8b2b6c30e70e5c701b03fe5ef894255082c47047","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    Programming Language :: Python :: 3"},{"line_number":18,"context_line":"    Programming Language :: Python :: 3.6"},{"line_number":19,"context_line":"    Programming Language :: Python :: 3.7"},{"line_number":20,"context_line":"    Programming Language :: Python :: 3 :: Only"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"[extras]"},{"line_number":23,"context_line":"osprofiler \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":6,"id":"3fa7e38b_f2240d0f","line":20,"updated":"2019-10-14 19:05:24.000000000","message":"While in here you may want to add\n\n  Programming Language :: Python :: Implementation :: CPython","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"cc2e77dff72b8cb72ab9536c502e23f747db9f10","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    Programming Language :: Python :: 3"},{"line_number":18,"context_line":"    Programming Language :: Python :: 3.6"},{"line_number":19,"context_line":"    Programming Language :: Python :: 3.7"},{"line_number":20,"context_line":"    Programming Language :: Python :: 3 :: Only"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"[extras]"},{"line_number":23,"context_line":"osprofiler \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":6,"id":"3fa7e38b_6375aa63","line":20,"in_reply_to":"3fa7e38b_ad439a3e","updated":"2019-11-14 15:58:29.000000000","message":"Done","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fa38906f780bcd6b6d246d76b20f000b24616dd9","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    Programming Language :: Python :: 3"},{"line_number":18,"context_line":"    Programming Language :: Python :: 3.6"},{"line_number":19,"context_line":"    Programming Language :: Python :: 3.7"},{"line_number":20,"context_line":"    Programming Language :: Python :: 3 :: Only"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"[extras]"},{"line_number":23,"context_line":"osprofiler \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":6,"id":"3fa7e38b_ad439a3e","line":20,"in_reply_to":"3fa7e38b_f2240d0f","updated":"2019-10-14 19:40:35.000000000","message":"thats a fair point. i hope eventuallly we will be able to use\npypy but the last time i tried eventlet made it unhappy.","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"e3bc11a0562c5e8944f7d751f4f21d03bd403bda","unresolved":false,"context_lines":[{"line_number":6,"context_line":"author \u003d OpenStack"},{"line_number":7,"context_line":"author-email \u003d openstack-discuss@lists.openstack.org"},{"line_number":8,"context_line":"home-page \u003d https://docs.openstack.org/nova/latest/"},{"line_number":9,"context_line":"python-requires \u003d \u003e\u003d3.6"},{"line_number":10,"context_line":"classifier \u003d"},{"line_number":11,"context_line":"    Environment :: OpenStack"},{"line_number":12,"context_line":"    Intended Audience :: Information Technology"}],"source_content_type":"text/x-ttcn-cfg","patch_set":12,"id":"3fa7e38b_5c8e882e","line":9,"updated":"2019-11-19 02:10:46.000000000","message":"Don\u0027t you think we should have sorted out the devstack defaults for python3 before doing this?  I imagine this will break quite a few jobs that have not migrated to python3 (e.g. broke all the nodepool jobs)\n\nhttps://zuul.opendev.org/t/zuul/build/55d64aefd7ef493586c04fd7348214e1/log/job-output.txt#12454","commit_id":"14872caae1a51c7015dd7c509d0173df2e943ed4"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"a882c32ccf20f763b7291b6e58fc2508d7cec69a","unresolved":false,"context_lines":[{"line_number":6,"context_line":"author \u003d OpenStack"},{"line_number":7,"context_line":"author-email \u003d openstack-discuss@lists.openstack.org"},{"line_number":8,"context_line":"home-page \u003d https://docs.openstack.org/nova/latest/"},{"line_number":9,"context_line":"python-requires \u003d \u003e\u003d3.6"},{"line_number":10,"context_line":"classifier \u003d"},{"line_number":11,"context_line":"    Environment :: OpenStack"},{"line_number":12,"context_line":"    Intended Audience :: Information Technology"}],"source_content_type":"text/x-ttcn-cfg","patch_set":12,"id":"3fa7e38b_0cad3be9","line":9,"in_reply_to":"3fa7e38b_5c8e882e","updated":"2019-11-19 13:54:33.000000000","message":"I confirm that this broke all other jobs - please wait until devstack switches to py3 for everyone else.","commit_id":"14872caae1a51c7015dd7c509d0173df2e943ed4"}],"tox.ini":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5e4061be3b390e272168a8f73ef14d5af9c3f980","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"envlist \u003d py37,functional-py37,pep8"},{"line_number":4,"context_line":"# Automatic envs (pyXX) will only use the python version appropriate to that"},{"line_number":5,"context_line":"# env and ignore basepython inherited from [testenv] if we set"},{"line_number":6,"context_line":"# ignore_basepython_conflict."}],"source_content_type":"text/x-properties","patch_set":5,"id":"3fa7e38b_f0f090ff","line":3,"range":{"start_line":3,"start_character":25,"end_line":3,"end_character":30},"updated":"2019-10-14 12:05:43.000000000","message":"we shoudl use the non version specific one so it will use your default python3 incase you dont have py37\n\ncentos/rhel 8 will have py 36 by defualt\nit would be nice if we had a generic \"unit\"\nor just py3 env that similar just used your defualt py3\nversion.\n\ni have added py37 support to my laptop but we shoudl not assume that most people will be running py37.\n\ni basicaly never use the default tox anymore because of the version assumtion even when i know i have installed all the interperters to make it work.","commit_id":"c2de0b6345a161b0215f808ba5ceff5f7e82e6ad"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"258fe054c8dc210dd10948bc898723ac9991eb2d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"envlist \u003d py37,functional-py37,pep8"},{"line_number":4,"context_line":"# Automatic envs (pyXX) will only use the python version appropriate to that"},{"line_number":5,"context_line":"# env and ignore basepython inherited from [testenv] if we set"},{"line_number":6,"context_line":"# ignore_basepython_conflict."}],"source_content_type":"text/x-properties","patch_set":5,"id":"3fa7e38b_4bcc5934","line":3,"range":{"start_line":3,"start_character":25,"end_line":3,"end_character":30},"in_reply_to":"3fa7e38b_f0f090ff","updated":"2019-10-14 13:45:40.000000000","message":"I called this out in the commit message specifically. This is only used if you call tox without \u0027-e ENV\u0027. Since we have py37 here, it makes sense to also use functional-py37. You can use (sort of) non-versioned unit tests as well - just run \u0027tox -e py3\u0027","commit_id":"c2de0b6345a161b0215f808ba5ceff5f7e82e6ad"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fa38906f780bcd6b6d246d76b20f000b24616dd9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"envlist \u003d py37,functional-py37,pep8"},{"line_number":4,"context_line":"# Automatic envs (pyXX) will only use the python version appropriate to that"},{"line_number":5,"context_line":"# env and ignore basepython inherited from [testenv] if we set"},{"line_number":6,"context_line":"# ignore_basepython_conflict."}],"source_content_type":"text/x-properties","patch_set":6,"id":"3fa7e38b_6d892273","line":3,"range":{"start_line":3,"start_character":0,"end_line":3,"end_character":35},"updated":"2019-10-14 19:40:35.000000000","message":"@clark this was the bit i was unhappy about.\n\nbefore we were using the generic functional env by defualt wich i think we shoudl keep.\n\nbut i also wish we had a \"unit\" or py3 env that did the same for unit tests.\n\nso that regradless of if i have py36 or py37 installed it would just work.\n\ni generaly run jsut a subset of test will developing and then when im about to push for the first time ill run all of them but i always end up running\n\n\"tox -e py27,py36,functional-py36,fast8\"\n\ninstead of this default set when i do that because only my laptop has py37 install my dev vms have the disto default which is almost alway py36 if its python 3\n\ncentos8 and ubunutu 18.04 both have 36 as there default python3 its relitvely easy to add py37 but its nice if our defults work for the majority of people which is why i dislike haveign versions in the defualt envlist.\n\ni still think its important for ci to use the versioned forms but the evnelist is for humans not ci.","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"8b2b6c30e70e5c701b03fe5ef894255082c47047","unresolved":false,"context_lines":[{"line_number":58,"context_line":"[testenv:functional]"},{"line_number":59,"context_line":"# NOTE(cdent): For a while, we shared functional virtualenvs with the unit"},{"line_number":60,"context_line":"# tests, to save some time. However, this conflicts with tox siblings in zuul,"},{"line_number":61,"context_line":"# and we need siblings to make testing against master of other projects work."},{"line_number":62,"context_line":"description \u003d"},{"line_number":63,"context_line":"  Run functional tests using python3."},{"line_number":64,"context_line":"# As nova functional tests import the PlacementFixture from the placement"}],"source_content_type":"text/x-properties","patch_set":6,"id":"3fa7e38b_d26eb12d","line":61,"updated":"2019-10-14 19:05:24.000000000","message":"Maybe set the basepython here to be python3, then the system can use your default python3 install.","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"cc2e77dff72b8cb72ab9536c502e23f747db9f10","unresolved":false,"context_lines":[{"line_number":58,"context_line":"[testenv:functional]"},{"line_number":59,"context_line":"# NOTE(cdent): For a while, we shared functional virtualenvs with the unit"},{"line_number":60,"context_line":"# tests, to save some time. However, this conflicts with tox siblings in zuul,"},{"line_number":61,"context_line":"# and we need siblings to make testing against master of other projects work."},{"line_number":62,"context_line":"description \u003d"},{"line_number":63,"context_line":"  Run functional tests using python3."},{"line_number":64,"context_line":"# As nova functional tests import the PlacementFixture from the placement"}],"source_content_type":"text/x-properties","patch_set":6,"id":"3fa7e38b_a33e4288","line":61,"in_reply_to":"3fa7e38b_0d6e6ec8","updated":"2019-11-14 15:58:29.000000000","message":"Yeah, what Sean said","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fa38906f780bcd6b6d246d76b20f000b24616dd9","unresolved":false,"context_lines":[{"line_number":58,"context_line":"[testenv:functional]"},{"line_number":59,"context_line":"# NOTE(cdent): For a while, we shared functional virtualenvs with the unit"},{"line_number":60,"context_line":"# tests, to save some time. However, this conflicts with tox siblings in zuul,"},{"line_number":61,"context_line":"# and we need siblings to make testing against master of other projects work."},{"line_number":62,"context_line":"description \u003d"},{"line_number":63,"context_line":"  Run functional tests using python3."},{"line_number":64,"context_line":"# As nova functional tests import the PlacementFixture from the placement"}],"source_content_type":"text/x-properties","patch_set":6,"id":"3fa7e38b_0d6e6ec8","line":61,"in_reply_to":"3fa7e38b_d26eb12d","updated":"2019-10-14 19:40:35.000000000","message":"that is already set in the base test enve on line 10\nso it will be inherited and used here.","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"8b2b6c30e70e5c701b03fe5ef894255082c47047","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"[testenv:functional-py36]"},{"line_number":89,"context_line":"description \u003d"},{"line_number":90,"context_line":"  Run functional tests using python3.6."},{"line_number":91,"context_line":"deps \u003d {[testenv:functional]deps}"},{"line_number":92,"context_line":"commands \u003d"},{"line_number":93,"context_line":"  {[testenv:functional]commands}"}],"source_content_type":"text/x-properties","patch_set":6,"id":"3fa7e38b_527ba1f3","line":90,"updated":"2019-10-14 19:05:24.000000000","message":"I don\u0027t think you should remove the basepython specifiers from this target and the one below since they are python version specific?","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fa38906f780bcd6b6d246d76b20f000b24616dd9","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"[testenv:functional-py36]"},{"line_number":89,"context_line":"description \u003d"},{"line_number":90,"context_line":"  Run functional tests using python3.6."},{"line_number":91,"context_line":"deps \u003d {[testenv:functional]deps}"},{"line_number":92,"context_line":"commands \u003d"},{"line_number":93,"context_line":"  {[testenv:functional]commands}"}],"source_content_type":"text/x-properties","patch_set":6,"id":"3fa7e38b_6dee0223","line":90,"in_reply_to":"3fa7e38b_527ba1f3","updated":"2019-10-14 19:40:35.000000000","message":"if you see the comment on lines 4-7 above\nignore_basepython_conflict \u003d True\nmake this do the right thing and makse basepython unnecessary.\n\nstephen implemented that in tox upstream and it will become the default in the futrue.\n\nwithout\nignore_basepython_conflict \u003d True\nyou would need to set base python.\n\nwe can see that this works here\nhttps://zuul.opendev.org/t/openstack/build/511781d8f6ae4d6ba3a90dfc09bea590/log/tox/py36-0.log\n\nand here\n\nhttps://zuul.opendev.org/t/openstack/build/ff0610dbf7344f8ab0bde28be8f7a6c2/log/tox/py37-0.log","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"cc2e77dff72b8cb72ab9536c502e23f747db9f10","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"[testenv:functional-py36]"},{"line_number":89,"context_line":"description \u003d"},{"line_number":90,"context_line":"  Run functional tests using python3.6."},{"line_number":91,"context_line":"deps \u003d {[testenv:functional]deps}"},{"line_number":92,"context_line":"commands \u003d"},{"line_number":93,"context_line":"  {[testenv:functional]commands}"}],"source_content_type":"text/x-properties","patch_set":6,"id":"3fa7e38b_8347861d","line":90,"in_reply_to":"3fa7e38b_6dee0223","updated":"2019-11-14 15:58:29.000000000","message":"Yeah, the p36 part of the environment is one of the implicit factors that tox provides which specify a basepython. As a result, we don\u0027t need to worry about that here","commit_id":"3f7d7df7891a0badd477fb43754e82bc522e4233"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"6ac640681c32373925263c328254ac41efadf27d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"envlist \u003d py37,functional,pep8"},{"line_number":4,"context_line":"# Automatic envs (pyXX) will only use the python version appropriate to that"},{"line_number":5,"context_line":"# env and ignore basepython inherited from [testenv] if we set"},{"line_number":6,"context_line":"# ignore_basepython_conflict."},{"line_number":7,"context_line":"ignore_basepython_conflict \u003d True"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":7,"id":"3fa7e38b_4036a405","line":7,"range":{"start_line":4,"start_character":0,"end_line":7,"end_character":33},"updated":"2019-10-28 13:59:16.000000000","message":"This is no longer needed, right?","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ff9c0fcbe62cf874d1d344095a1c4bf8f2502149","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"envlist \u003d py37,functional,pep8"},{"line_number":4,"context_line":"# Automatic envs (pyXX) will only use the python version appropriate to that"},{"line_number":5,"context_line":"# env and ignore basepython inherited from [testenv] if we set"},{"line_number":6,"context_line":"# ignore_basepython_conflict."},{"line_number":7,"context_line":"ignore_basepython_conflict \u003d True"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":7,"id":"3fa7e38b_6d0ab8d2","line":7,"range":{"start_line":4,"start_character":0,"end_line":7,"end_character":33},"in_reply_to":"3fa7e38b_2d2360a9","updated":"2019-10-28 15:04:53.000000000","message":"Oh, does `python3` (L10) expand to some explicit python3.X, so an automatic py3Y env would still trigger the warning?","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"36415c003d9d7e6410bf3e17c9b1609aef29a8e3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"envlist \u003d py37,functional,pep8"},{"line_number":4,"context_line":"# Automatic envs (pyXX) will only use the python version appropriate to that"},{"line_number":5,"context_line":"# env and ignore basepython inherited from [testenv] if we set"},{"line_number":6,"context_line":"# ignore_basepython_conflict."},{"line_number":7,"context_line":"ignore_basepython_conflict \u003d True"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":7,"id":"3fa7e38b_fd798b92","line":7,"range":{"start_line":4,"start_character":0,"end_line":7,"end_character":33},"in_reply_to":"3fa7e38b_3241450b","updated":"2019-11-15 16:23:58.000000000","message":"its not about the warning. if the waring is raised and you don\u0027t have this set then the py36 or py37 targets will both use your systems default python instead of 36 or 37 unless we increase the min version of tox.\n\nhttps://github.com/openstack/nova/commit/cc615d0957cf81ff05bbe377152edde538f6ac70","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"abc9b5b3e00a943c9eea52aa94b871593a5b541e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"envlist \u003d py37,functional,pep8"},{"line_number":4,"context_line":"# Automatic envs (pyXX) will only use the python version appropriate to that"},{"line_number":5,"context_line":"# env and ignore basepython inherited from [testenv] if we set"},{"line_number":6,"context_line":"# ignore_basepython_conflict."},{"line_number":7,"context_line":"ignore_basepython_conflict \u003d True"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":7,"id":"3fa7e38b_2d2360a9","line":7,"range":{"start_line":4,"start_character":0,"end_line":7,"end_character":33},"in_reply_to":"3fa7e38b_4036a405","updated":"2019-10-28 15:02:07.000000000","message":"no this is needed for testing specific python3 versions.\nwe have not raised the minium tox version to one that has this behavior by default","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ceff91ac263c29fc76b2d97cfd0103a1edb4f65a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"envlist \u003d py37,functional,pep8"},{"line_number":4,"context_line":"# Automatic envs (pyXX) will only use the python version appropriate to that"},{"line_number":5,"context_line":"# env and ignore basepython inherited from [testenv] if we set"},{"line_number":6,"context_line":"# ignore_basepython_conflict."},{"line_number":7,"context_line":"ignore_basepython_conflict \u003d True"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":7,"id":"3fa7e38b_3241450b","line":7,"range":{"start_line":4,"start_character":0,"end_line":7,"end_character":33},"in_reply_to":"3fa7e38b_6d0ab8d2","updated":"2019-10-31 13:33:23.000000000","message":"Yes. Saw this in a different project. Keep this chunk.","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c42ef5ed74b4d370c76d64372dbecbf6c7e81748","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"envlist \u003d py37,functional,pep8"},{"line_number":4,"context_line":"# Automatic envs (pyXX) will only use the python version appropriate to that"},{"line_number":5,"context_line":"# env and ignore basepython inherited from [testenv] if we set"},{"line_number":6,"context_line":"# ignore_basepython_conflict."},{"line_number":7,"context_line":"ignore_basepython_conflict \u003d True"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":7,"id":"3fa7e38b_e899cbcf","line":7,"range":{"start_line":4,"start_character":0,"end_line":7,"end_character":33},"in_reply_to":"3fa7e38b_7d203bb1","updated":"2019-11-15 17:10:52.000000000","message":"that is not quite the beviaor i was seeing before.\nwithout ignore_basepython_conflict \u003d True\ni was previously seeing the py37 jobs run with py36 and passing but using the wrong python\n\nthis behavior changes based on the tox version you run\n\nwith ignore_basepython_conflict \u003d True it will runt wiht the python XX form pyXX and if that is not aviable on the system it fails.\n\nskip_missing_interpreters might be nice but i woudl personly prefer to define a unit env and list that insted in the default envlist instead of py37 where unit woudl use your systems default python3\n\nso that if you just run tox it will run the unit test functionl tests and pep8 with whatever python 3 is availble\n\nrather then skip py37 env and run no unit test if you only have 3.6 or 3.8\n\nthe CI jobs should still use the versioned ones but for best user experince have it set up so that the test just work makes sense to me.","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"90be7fbc65cf956c948004b4599155b636df09ba","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"envlist \u003d py37,functional,pep8"},{"line_number":4,"context_line":"# Automatic envs (pyXX) will only use the python version appropriate to that"},{"line_number":5,"context_line":"# env and ignore basepython inherited from [testenv] if we set"},{"line_number":6,"context_line":"# ignore_basepython_conflict."},{"line_number":7,"context_line":"ignore_basepython_conflict \u003d True"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":7,"id":"3fa7e38b_7d203bb1","line":7,"range":{"start_line":4,"start_character":0,"end_line":7,"end_character":33},"in_reply_to":"3fa7e38b_7d84bbb1","updated":"2019-11-15 16:56:41.000000000","message":"In other projects, if the default py3x in envlist is py37, we\u0027ve made it a requirement that the development environment setup has python 3.7 installed. I would think you would want it to fail if someone ran \"tox -e py37\" and they didn\u0027t have 3.7 available.\n\nThe one change that I think may be useful is using \"skip_missing_interpreters\". In that case, if they just call \"tox\" with no arguments, they will get a clear message that unit tests were not run and know that they need to do some work to get things set up right.","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"001fbbc4c062fea4b7d80fd553263e37b3aefc61","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"envlist \u003d py37,functional,pep8"},{"line_number":4,"context_line":"# Automatic envs (pyXX) will only use the python version appropriate to that"},{"line_number":5,"context_line":"# env and ignore basepython inherited from [testenv] if we set"},{"line_number":6,"context_line":"# ignore_basepython_conflict."},{"line_number":7,"context_line":"ignore_basepython_conflict \u003d True"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":7,"id":"3fa7e38b_7d84bbb1","line":7,"range":{"start_line":4,"start_character":0,"end_line":7,"end_character":33},"in_reply_to":"3fa7e38b_ddb60fdd","updated":"2019-11-15 16:51:17.000000000","message":"I\u0027ll just tell you the behavior I observed.\n\nbasepython\u003dpython3 will point to a specific version on a given system, e.g. 3.6. And when you run e.g. the py37 auto env, it wants to use 3.7, which doesn\u0027t match. If you remove this line, that will actually fail.\n\n(I didn\u0027t agree with the way that logic was assembled originally, but was summarily overruled.)","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"215fef391a3858af8299e64ca42b04143497bb57","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"envlist \u003d py37,functional,pep8"},{"line_number":4,"context_line":"# Automatic envs (pyXX) will only use the python version appropriate to that"},{"line_number":5,"context_line":"# env and ignore basepython inherited from [testenv] if we set"},{"line_number":6,"context_line":"# ignore_basepython_conflict."},{"line_number":7,"context_line":"ignore_basepython_conflict \u003d True"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":7,"id":"3fa7e38b_e8d0eb55","line":7,"range":{"start_line":4,"start_character":0,"end_line":7,"end_character":33},"in_reply_to":"3fa7e38b_e899cbcf","updated":"2019-11-15 17:13:12.000000000","message":"by the way before i added this\n\nhttps://github.com/openstack/os-vif/commit/e0712563c14755b734f9e109b1b864b45e6c6514#diff-b91f3d5bd63fcd17221b267e851608e8\n\nthe os-vif py37 job was running with py36","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"73a7064e8f578723e3b6ea0879004ca51c36b8c1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"envlist \u003d py37,functional,pep8"},{"line_number":4,"context_line":"# Automatic envs (pyXX) will only use the python version appropriate to that"},{"line_number":5,"context_line":"# env and ignore basepython inherited from [testenv] if we set"},{"line_number":6,"context_line":"# ignore_basepython_conflict."},{"line_number":7,"context_line":"ignore_basepython_conflict \u003d True"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":7,"id":"3fa7e38b_ddb60fdd","line":7,"range":{"start_line":4,"start_character":0,"end_line":7,"end_character":33},"in_reply_to":"3fa7e38b_fd798b92","updated":"2019-11-15 16:39:29.000000000","message":"Not quite - it\u0027ll use whatever basepython is set to, which is still python3 here. We need to keep basepython because otherwise it\u0027ll use whatever \u0027python\u0027 points to, as you say, which is python2.7 on everything !\u003d arch.","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"abc9b5b3e00a943c9eea52aa94b871593a5b541e","unresolved":false,"context_lines":[{"line_number":82,"context_line":"  stestr --test-path\u003d./nova/tests/functional run {posargs}"},{"line_number":83,"context_line":"  stestr slowest"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"[testenv:functional-py36]"},{"line_number":86,"context_line":"description \u003d"},{"line_number":87,"context_line":"  Run functional tests using python3.6."},{"line_number":88,"context_line":"deps \u003d {[testenv:functional]deps}"},{"line_number":89,"context_line":"commands \u003d"},{"line_number":90,"context_line":"  {[testenv:functional]commands}"}],"source_content_type":"text/x-properties","patch_set":7,"id":"3fa7e38b_6d7b988b","line":87,"range":{"start_line":85,"start_character":0,"end_line":87,"end_character":39},"updated":"2019-10-28 15:02:07.000000000","message":"neat i though this only worked for literal py36 rather then any env that ended in pyXX\ngood to know","commit_id":"8ba692077bb91f28f4712a49ba4c970c81a1a8d8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a1ed0448a6776e209ef8ffb851f1ab9d2e8fbbe8","unresolved":false,"context_lines":[{"line_number":153,"context_line":"# to install (test-)requirements.txt for docs."},{"line_number":154,"context_line":"deps \u003d"},{"line_number":155,"context_line":"  -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}"},{"line_number":156,"context_line":"  -r{toxinidir}/doc/requirements.txt"},{"line_number":157,"context_line":"commands \u003d"},{"line_number":158,"context_line":"  rm -rf doc/build/html doc/build/doctrees"},{"line_number":159,"context_line":"  # Check that all JSON files don\u0027t have \\r\\n in line."}],"source_content_type":"text/x-properties","patch_set":12,"id":"3fa7e38b_0fabff87","line":156,"updated":"2019-11-18 14:02:37.000000000","message":"How about this?\n\nhttps://github.com/openstack/nova/blob/master/doc/requirements.txt#L4","commit_id":"14872caae1a51c7015dd7c509d0173df2e943ed4"}]}
