)]}'
{".zuul.yaml":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9f060bdba7275141eb6db7fe1308cb9391203c64","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- project:"},{"line_number":2,"context_line":"    templates:"},{"line_number":3,"context_line":"      - check-requirements"},{"line_number":4,"context_line":"      - openstack-python-jobs-ceilometer"},{"line_number":5,"context_line":"      - openstack-python3-train-jobs-ceilometer"},{"line_number":6,"context_line":"      - periodic-stable-jobs-ceilometer"},{"line_number":7,"context_line":"      - openstack-lower-constraints-jobs-ceilometer"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_fb574100","line":4,"range":{"start_line":4,"start_character":8,"end_line":4,"end_character":40},"updated":"2019-10-28 14:23:16.000000000","message":"remove this (it tests py2)","commit_id":"03eb30d6dde323265a0b4b8d448e76135f4c5560"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9f060bdba7275141eb6db7fe1308cb9391203c64","unresolved":false,"context_lines":[{"line_number":2,"context_line":"    templates:"},{"line_number":3,"context_line":"      - check-requirements"},{"line_number":4,"context_line":"      - openstack-python-jobs-ceilometer"},{"line_number":5,"context_line":"      - openstack-python3-train-jobs-ceilometer"},{"line_number":6,"context_line":"      - periodic-stable-jobs-ceilometer"},{"line_number":7,"context_line":"      - openstack-lower-constraints-jobs-ceilometer"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_5b31b5ec","line":5,"range":{"start_line":5,"start_character":26,"end_line":5,"end_character":31},"updated":"2019-10-28 14:23:16.000000000","message":"Also switch this to ussuri (you have to do that, or add pep8 jobs explicitly, because openstack-python3-train-jobs-ceilometer doesn\u0027t have them).","commit_id":"03eb30d6dde323265a0b4b8d448e76135f4c5560"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"06ce669d7d7cc8e5e85e663afeadc3af7cf16996","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- project:"},{"line_number":2,"context_line":"    templates:"},{"line_number":3,"context_line":"      - check-requirements"},{"line_number":4,"context_line":"      - openstack-python3-ussuri-jobs-ceilometer"},{"line_number":5,"context_line":"      - periodic-stable-jobs-ceilometer"},{"line_number":6,"context_line":"      - openstack-lower-constraints-jobs-ceilometer"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"ff570b3c_9d175ca4","line":4,"range":{"start_line":4,"start_character":26,"end_line":4,"end_character":32},"updated":"2020-05-13 10:21:57.000000000","message":"This could probably go to victoria now.","commit_id":"555d328d4a45d919439767ac968324cc894098e2"}],"tox.ini":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9f060bdba7275141eb6db7fe1308cb9391203c64","unresolved":false,"context_lines":[{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"skipsdist \u003d True"},{"line_number":4,"context_line":"envlist \u003d py36,py37,pep8"},{"line_number":5,"context_line":"# Automatic envs (pyXX) will use the python version appropriate to that"},{"line_number":6,"context_line":"# env and ignore basepython inherited from [testenv]. That\u0027s what we"},{"line_number":7,"context_line":"# want, and we don\u0027t need to be warned about it."},{"line_number":8,"context_line":"ignore_basepython_conflict \u003d True"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"[testenv]"},{"line_number":11,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":1,"id":"3fa7e38b_2031280c","line":8,"range":{"start_line":5,"start_character":0,"end_line":8,"end_character":33},"updated":"2019-10-28 14:23:16.000000000","message":"I think this can go away now too.","commit_id":"03eb30d6dde323265a0b4b8d448e76135f4c5560"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9f060bdba7275141eb6db7fe1308cb9391203c64","unresolved":false,"context_lines":[{"line_number":30,"context_line":"commands \u003d"},{"line_number":31,"context_line":"  find . -type f -name \"*.pyc\" -delete"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[testenv:py27]"},{"line_number":34,"context_line":"commands \u003d"},{"line_number":35,"context_line":"  {[testenv]commands}"},{"line_number":36,"context_line":"  stestr run {posargs}"},{"line_number":37,"context_line":"  stestr slowest"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"[testenv:py36]"},{"line_number":40,"context_line":"commands \u003d"}],"source_content_type":"text/x-properties","patch_set":1,"id":"3fa7e38b_e041d064","line":37,"range":{"start_line":33,"start_character":0,"end_line":37,"end_character":16},"updated":"2019-10-28 14:23:16.000000000","message":"x","commit_id":"03eb30d6dde323265a0b4b8d448e76135f4c5560"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9f060bdba7275141eb6db7fe1308cb9391203c64","unresolved":false,"context_lines":[{"line_number":88,"context_line":"import_exceptions \u003d ceilometer.openstack.common.gettextutils"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"[testenv:lower-constraints]"},{"line_number":91,"context_line":"basepython \u003d python3"},{"line_number":92,"context_line":"deps \u003d"},{"line_number":93,"context_line":"  -c{toxinidir}/lower-constraints.txt"},{"line_number":94,"context_line":"  -r{toxinidir}/test-requirements.txt"}],"source_content_type":"text/x-properties","patch_set":1,"id":"3fa7e38b_003c2cdf","line":91,"range":{"start_line":91,"start_character":0,"end_line":91,"end_character":20},"updated":"2019-10-28 14:23:16.000000000","message":"I think this is redundant.","commit_id":"03eb30d6dde323265a0b4b8d448e76135f4c5560"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ada3e4b1414b1a3adaaab66dace94cf9e14e0fbe","unresolved":false,"context_lines":[{"line_number":2,"context_line":"minversion \u003d 3.1.1"},{"line_number":3,"context_line":"skipsdist \u003d True"},{"line_number":4,"context_line":"envlist \u003d py36,py37,pep8"},{"line_number":5,"context_line":"# Automatic envs (pyXX) will use the python version appropriate to that"},{"line_number":6,"context_line":"# env and ignore basepython inherited from [testenv]. That\u0027s what we"},{"line_number":7,"context_line":"# want, and we don\u0027t need to be warned about it."},{"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":2,"id":"3fa7e38b_c2aa6ed0","line":7,"range":{"start_line":5,"start_character":0,"end_line":7,"end_character":48},"updated":"2019-10-30 18:35:32.000000000","message":"If I had been right about this, you should remove this comment...\n\n...but I was wrong. You still need ignore_basepython_conflict \u003d True here, because it triggers even for e.g. py36 vs py37.\n\nSorry about that :(","commit_id":"2fa2a3973d7740ae56d4eed0b970f5d9fbd0fd87"}]}
