)]}'
{".zuul.yaml":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"e0172c1c8e96027cbca8db5d5137cd013d3f5dbd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- project:"},{"line_number":2,"context_line":"    templates:"},{"line_number":3,"context_line":"      - openstack-lower-constraints-jobs"},{"line_number":4,"context_line":"      - openstack-python-jobs"},{"line_number":5,"context_line":"      - openstack-python36-jobs"},{"line_number":6,"context_line":"      - openstack-python37-jobs"},{"line_number":7,"context_line":"      - publish-openstack-docs-pti"},{"line_number":8,"context_line":"      - periodic-stable-jobs"},{"line_number":9,"context_line":"      - check-requirements"},{"line_number":10,"context_line":"      - integrated-gate"},{"line_number":11,"context_line":"      - integrated-gate-py3"},{"line_number":12,"context_line":"      - release-notes-jobs-python3"},{"line_number":13,"context_line":"    check:"},{"line_number":14,"context_line":"      jobs:"},{"line_number":15,"context_line":"        - cinder-tempest-dsvm-lvm-lio-barbican"},{"line_number":16,"context_line":"        - cinder-tox-bandit-baseline:"},{"line_number":17,"context_line":"            voting: false"},{"line_number":18,"context_line":"        - openstack-tox-functional-py36:"},{"line_number":19,"context_line":"            irrelevant-files: \u0026functional-irrelevant-files"},{"line_number":20,"context_line":"              - ^.*\\.rst$"},{"line_number":21,"context_line":"              - ^api-ref/.*$"},{"line_number":22,"context_line":"              - ^cinder/hacking/.*$"},{"line_number":23,"context_line":"              - ^cinder/locale/.*$"},{"line_number":24,"context_line":"              - ^cinder/tests/unit.*$"},{"line_number":25,"context_line":"              - ^contrib/block-box.*$"},{"line_number":26,"context_line":"              - ^doc/.*$"},{"line_number":27,"context_line":"              - ^releasenotes/.*$"},{"line_number":28,"context_line":"              - ^.zuul\\.yaml$"},{"line_number":29,"context_line":"        - openstack-tox-functional-py37:"},{"line_number":30,"context_line":"            irrelevant-files: *functional-irrelevant-files"},{"line_number":31,"context_line":"        - cinder-rally-task:"},{"line_number":32,"context_line":"            voting: false"},{"line_number":33,"context_line":"        - openstack-tox-pylint:"},{"line_number":34,"context_line":"            voting: false"},{"line_number":35,"context_line":"            timeout: 5400"},{"line_number":36,"context_line":"            irrelevant-files: *functional-irrelevant-files"},{"line_number":37,"context_line":"        - devstack-plugin-ceph-tempest:"},{"line_number":38,"context_line":"            voting: false"},{"line_number":39,"context_line":"            irrelevant-files: \u0026gate-irrelevant-files"},{"line_number":40,"context_line":"              - ^(test-|)requirements.txt$"},{"line_number":41,"context_line":"              - ^lower-constraints.txt$"},{"line_number":42,"context_line":"              - ^.*\\.rst$"},{"line_number":43,"context_line":"              - ^api-ref/.*$"},{"line_number":44,"context_line":"              - ^cinder/cmd/status\\.py$"},{"line_number":45,"context_line":"              - ^cinder/hacking/.*$"},{"line_number":46,"context_line":"              - ^cinder/locale/.*$"},{"line_number":47,"context_line":"              - ^cinder/tests/functional.*$"},{"line_number":48,"context_line":"              - ^cinder/tests/unit.*$"},{"line_number":49,"context_line":"              - ^contrib/block-box.*$"},{"line_number":50,"context_line":"              - ^doc/.*$"},{"line_number":51,"context_line":"              - ^releasenotes/.*$"},{"line_number":52,"context_line":"              - ^setup.cfg$"},{"line_number":53,"context_line":"              - ^tools/.*$"},{"line_number":54,"context_line":"              - ^tox.ini$"},{"line_number":55,"context_line":"              - ^.zuul\\.yaml$"},{"line_number":56,"context_line":"        - openstack-tox-functional:"},{"line_number":57,"context_line":"            voting: false"},{"line_number":58,"context_line":"            irrelevant-files: *functional-irrelevant-files"},{"line_number":59,"context_line":"        - legacy-grenade-dsvm-cinder-mn-sub-volbak:"},{"line_number":60,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":61,"context_line":"        - legacy-tempest-dsvm-lvm-multibackend:"},{"line_number":62,"context_line":"            voting: false"},{"line_number":63,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":64,"context_line":"        - legacy-tempest-dsvm-full-devstack-plugin-nfs:"},{"line_number":65,"context_line":"            voting: false"},{"line_number":66,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":67,"context_line":"        - neutron-grenade:"},{"line_number":68,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":69,"context_line":"        - tempest-slow-py3:"},{"line_number":70,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":71,"context_line":"        - tempest-full:"},{"line_number":72,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":73,"context_line":"        - tempest-full-py3:"},{"line_number":74,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":75,"context_line":"        - grenade-py3:"},{"line_number":76,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":77,"context_line":"    gate:"},{"line_number":78,"context_line":"      jobs:"},{"line_number":79,"context_line":"        - legacy-grenade-dsvm-cinder-mn-sub-volbak:"},{"line_number":80,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":81,"context_line":"        - neutron-grenade:"},{"line_number":82,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":83,"context_line":"        - tempest-full:"},{"line_number":84,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":85,"context_line":"        - tempest-full-py3:"},{"line_number":86,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":87,"context_line":"        - grenade-py3:"},{"line_number":88,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":89,"context_line":"    experimental:"},{"line_number":90,"context_line":"      jobs:"},{"line_number":91,"context_line":"        - tempest-cinder-v2-api:"},{"line_number":92,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":93,"context_line":"        - legacy-tempest-dsvm-full-sheepdog-src-os-brick:"},{"line_number":94,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":95,"context_line":"        - legacy-tempest-dsvm-zeromq-multibackend:"},{"line_number":96,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":97,"context_line":"        - legacy-tempest-dsvm-multibackend-matrix:"},{"line_number":98,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":99,"context_line":"        - legacy-grenade-dsvm-cinder-mn-sub-volschbak:"},{"line_number":100,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":101,"context_line":"        - legacy-grenade-dsvm-cinder-mn-sub-bak:"},{"line_number":102,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":103,"context_line":"        - devstack-plugin-ceph-tempest-py3:"},{"line_number":104,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":105,"context_line":"        - tempest-pg-full:"},{"line_number":106,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":107,"context_line":"        - tempest-full-py3-opensuse150:"},{"line_number":108,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":109,"context_line":"        - legacy-tempest-dsvm-full-sheepdog:"},{"line_number":110,"context_line":"            irrelevant-files: *gate-irrelevant-files"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"- job:"},{"line_number":113,"context_line":"    # Previously named legacy-tempest-dsvm-full-lio"},{"line_number":114,"context_line":"    name: cinder-tempest-dsvm-lvm-lio-barbican"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"ffb9cba7_4084990c","line":111,"range":{"start_line":1,"start_character":2,"end_line":111,"end_character":0},"updated":"2019-04-25 04:59:41.000000000","message":"Job openstack-tox-functional-py37 not defined","commit_id":"f93d54f105972827658a4c6aa721107b7eb2e72f"}],"setup.cfg":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0d5e6a3a8590d2c3d15c20b58c518e31155c961a","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    Programming Language :: Python :: 2.7"},{"line_number":18,"context_line":"    Programming Language :: Python :: 3"},{"line_number":19,"context_line":"    Programming Language :: Python :: 3.6"},{"line_number":20,"context_line":"    Programming Language :: Python :: 3.7"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"[global]"},{"line_number":23,"context_line":"setup-hooks \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"dfbec78f_03926ff7","line":20,"updated":"2019-05-03 23:13:49.000000000","message":"I think it\u0027s premature to assert this classifier until the py37 tests are passing and voting.","commit_id":"0fe30cad884d80d9774a161c5199f3469678f076"}],"tox.ini":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f0a313d22e0e92093c8e2ec3f6bcccdfda3012f5","unresolved":false,"context_lines":[{"line_number":2,"context_line":"minversion \u003d 2.5"},{"line_number":3,"context_line":"skipsdist \u003d True"},{"line_number":4,"context_line":"skip_missing_interpreters \u003d true"},{"line_number":5,"context_line":"envlist \u003d py37,py36,py27,compliance,pep8"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[testenv]"},{"line_number":8,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"}],"source_content_type":"text/x-properties","patch_set":4,"id":"ffb9cba7_f4f30c09","line":5,"range":{"start_line":5,"start_character":10,"end_line":5,"end_character":19},"updated":"2019-04-25 13:26:05.000000000","message":"Choose one or the other. We shouldn\u0027t expect someone to have to run both by default.","commit_id":"d91e0297e57355bd7530c6c4bb95bd937064b38e"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9032e550812cd67b5fae8908454f89a60eceb08c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"minversion \u003d 2.5"},{"line_number":3,"context_line":"skipsdist \u003d True"},{"line_number":4,"context_line":"skip_missing_interpreters \u003d true"},{"line_number":5,"context_line":"envlist \u003d py37,py36,py27,compliance,pep8"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[testenv]"},{"line_number":8,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"}],"source_content_type":"text/x-properties","patch_set":4,"id":"ffb9cba7_424ed66f","line":5,"range":{"start_line":5,"start_character":10,"end_line":5,"end_character":19},"in_reply_to":"ffb9cba7_17d582b9","updated":"2019-04-25 14:40:24.000000000","message":"Done","commit_id":"d91e0297e57355bd7530c6c4bb95bd937064b38e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ee10a416f69afdd4661efb907f39f6103ba4305f","unresolved":false,"context_lines":[{"line_number":2,"context_line":"minversion \u003d 2.5"},{"line_number":3,"context_line":"skipsdist \u003d True"},{"line_number":4,"context_line":"skip_missing_interpreters \u003d true"},{"line_number":5,"context_line":"envlist \u003d py37,py36,py27,compliance,pep8"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[testenv]"},{"line_number":8,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"}],"source_content_type":"text/x-properties","patch_set":4,"id":"ffb9cba7_17d582b9","line":5,"range":{"start_line":5,"start_character":10,"end_line":5,"end_character":19},"in_reply_to":"ffb9cba7_3785265b","updated":"2019-04-25 14:27:03.000000000","message":"py36 is still the primary target for Train, so I think we can just stick with that for now. We can switch to py37 as the default once that becomes the target. We should not require both to be run locally.","commit_id":"d91e0297e57355bd7530c6c4bb95bd937064b38e"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"0c97077abc9786a39844624f92a0e4260164b58c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"minversion \u003d 2.5"},{"line_number":3,"context_line":"skipsdist \u003d True"},{"line_number":4,"context_line":"skip_missing_interpreters \u003d true"},{"line_number":5,"context_line":"envlist \u003d py37,py36,py27,compliance,pep8"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[testenv]"},{"line_number":8,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"}],"source_content_type":"text/x-properties","patch_set":4,"id":"ffb9cba7_3785265b","line":5,"range":{"start_line":5,"start_character":10,"end_line":5,"end_character":19},"in_reply_to":"ffb9cba7_f4f30c09","updated":"2019-04-25 14:13:42.000000000","message":"i had the same thought but to keep consistency with gate, i kept both.\npy37 seems like favorable choice to go forward.","commit_id":"d91e0297e57355bd7530c6c4bb95bd937064b38e"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"0f6cc51b808c56100b7b865e0f8efd09aa91bc9b","unresolved":false,"context_lines":[{"line_number":2,"context_line":"minversion \u003d 2.5"},{"line_number":3,"context_line":"skipsdist \u003d True"},{"line_number":4,"context_line":"skip_missing_interpreters \u003d true"},{"line_number":5,"context_line":"envlist \u003d py36,py27,compliance,pep8"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[testenv]"},{"line_number":8,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"}],"source_content_type":"text/x-properties","patch_set":5,"id":"dfbec78f_2351b3d9","line":5,"updated":"2019-05-03 22:33:29.000000000","message":"Do we need to add py37 here?","commit_id":"0fe30cad884d80d9774a161c5199f3469678f076"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3f232b680a956dfca00ad8ca5eb5e8b31a8d0a9f","unresolved":false,"context_lines":[{"line_number":2,"context_line":"minversion \u003d 2.5"},{"line_number":3,"context_line":"skipsdist \u003d True"},{"line_number":4,"context_line":"skip_missing_interpreters \u003d true"},{"line_number":5,"context_line":"envlist \u003d py36,py27,compliance,pep8"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[testenv]"},{"line_number":8,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"}],"source_content_type":"text/x-properties","patch_set":5,"id":"dfbec78f_e364fbbb","line":5,"in_reply_to":"dfbec78f_2351b3d9","updated":"2019-05-03 22:34:33.000000000","message":"No, we don\u0027t want to force local tox runs to have to have every conceivable runtime.","commit_id":"0fe30cad884d80d9774a161c5199f3469678f076"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c5be1bc0ba06e9b67fd7323948faf4a6ea6ae8e4","unresolved":false,"context_lines":[{"line_number":2,"context_line":"minversion \u003d 2.5"},{"line_number":3,"context_line":"skipsdist \u003d True"},{"line_number":4,"context_line":"skip_missing_interpreters \u003d true"},{"line_number":5,"context_line":"envlist \u003d py36,py27,compliance,pep8"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[testenv]"},{"line_number":8,"context_line":"setenv \u003d VIRTUAL_ENV\u003d{envdir}"}],"source_content_type":"text/x-properties","patch_set":5,"id":"dfbec78f_4321474d","line":5,"in_reply_to":"dfbec78f_e364fbbb","updated":"2019-05-03 22:38:47.000000000","message":"It makes sense, thanks!","commit_id":"0fe30cad884d80d9774a161c5199f3469678f076"}]}
