)]}'
{"tox.ini":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed689a0b1b0881d13229751b972e8cf87726ca43","unresolved":false,"context_lines":[{"line_number":140,"context_line":"[testenv:docs]"},{"line_number":141,"context_line":"deps \u003d -r{toxinidir}/doc/requirements.txt"},{"line_number":142,"context_line":"commands \u003d"},{"line_number":143,"context_line":"  rm -rf doc/source/api doc/build api-guide/build api-ref/build placement-api-ref/build"},{"line_number":144,"context_line":"  # Check that all JSON files don\u0027t have \\r\\n in line."},{"line_number":145,"context_line":"  bash -c \"! find doc/ -type f -name *.json | xargs grep -U -n $\u0027\\r\u0027\""},{"line_number":146,"context_line":"  # Check that all included JSON files are valid JSON"}],"source_content_type":"text/x-properties","patch_set":5,"id":"bf659307_c284080f","side":"PARENT","line":143,"range":{"start_line":143,"start_character":9,"end_line":143,"end_character":23},"updated":"2018-03-28 12:03:24.000000000","message":"We can drop this since we no longer (did we ever?) generate (code) API documentation using pbr\u0027s autodoc feature","commit_id":"02214f55db1faedb4c9dedb661c4a1de35194353"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a861607135001cedbc46936dadce84ffdbf8113b","unresolved":false,"context_lines":[{"line_number":141,"context_line":"deps \u003d -r{toxinidir}/doc/requirements.txt"},{"line_number":142,"context_line":"commands \u003d"},{"line_number":143,"context_line":"  rm -rf doc/source/api doc/build api-guide/build api-ref/build placement-api-ref/build"},{"line_number":144,"context_line":"  # Check that all JSON files don\u0027t have \\r\\n in line."},{"line_number":145,"context_line":"  bash -c \"! find doc/ -type f -name *.json | xargs grep -U -n $\u0027\\r\u0027\""},{"line_number":146,"context_line":"  # Check that all included JSON files are valid JSON"},{"line_number":147,"context_line":"  bash -c \u0027! find doc/ -type f -name *.json | xargs -t -n1 python -m json.tool 2\u003e\u00261 \u003e /dev/null | grep -B1 -v ^python\u0027"},{"line_number":148,"context_line":"  # Build docs"},{"line_number":149,"context_line":"  sphinx-build -W -b html doc/source doc/build/html"},{"line_number":150,"context_line":"  sphinx-build -W -b html api-guide/source api-guide/build/html"}],"source_content_type":"text/x-properties","patch_set":5,"id":"bf659307_a2b48636","side":"PARENT","line":147,"range":{"start_line":144,"start_character":0,"end_line":147,"end_character":118},"updated":"2018-03-27 22:36:23.000000000","message":"What\u0027s the justification for removing these?","commit_id":"02214f55db1faedb4c9dedb661c4a1de35194353"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed689a0b1b0881d13229751b972e8cf87726ca43","unresolved":false,"context_lines":[{"line_number":141,"context_line":"deps \u003d -r{toxinidir}/doc/requirements.txt"},{"line_number":142,"context_line":"commands \u003d"},{"line_number":143,"context_line":"  rm -rf doc/source/api doc/build api-guide/build api-ref/build placement-api-ref/build"},{"line_number":144,"context_line":"  # Check that all JSON files don\u0027t have \\r\\n in line."},{"line_number":145,"context_line":"  bash -c \"! find doc/ -type f -name *.json | xargs grep -U -n $\u0027\\r\u0027\""},{"line_number":146,"context_line":"  # Check that all included JSON files are valid JSON"},{"line_number":147,"context_line":"  bash -c \u0027! find doc/ -type f -name *.json | xargs -t -n1 python -m json.tool 2\u003e\u00261 \u003e /dev/null | grep -B1 -v ^python\u0027"},{"line_number":148,"context_line":"  # Build docs"},{"line_number":149,"context_line":"  sphinx-build -W -b html doc/source doc/build/html"},{"line_number":150,"context_line":"  sphinx-build -W -b html api-guide/source api-guide/build/html"}],"source_content_type":"text/x-properties","patch_set":5,"id":"bf659307_82d05021","side":"PARENT","line":147,"range":{"start_line":144,"start_character":0,"end_line":147,"end_character":118},"in_reply_to":"bf659307_a2b48636","updated":"2018-03-28 12:03:24.000000000","message":"Whoops. That was a mistake","commit_id":"02214f55db1faedb4c9dedb661c4a1de35194353"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a861607135001cedbc46936dadce84ffdbf8113b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 2.1"},{"line_number":3,"context_line":"envlist \u003d py{27,35},functional,pep8,pip-missing-reqs"},{"line_number":4,"context_line":"skipsdist \u003d True"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[testenv]"}],"source_content_type":"text/x-properties","patch_set":5,"id":"bf659307_222636b9","line":3,"range":{"start_line":3,"start_character":13,"end_line":3,"end_character":18},"updated":"2018-03-27 22:36:23.000000000","message":"Are we not still subject to that bug where times.dbm gets corrupted if you run these in the wrong order [1]?\n\n[1] https://bugs.launchpad.net/testrepository/+bug/1229445","commit_id":"cc60b7b8d5a2bff63a25c094635690b233680c41"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed689a0b1b0881d13229751b972e8cf87726ca43","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 2.1"},{"line_number":3,"context_line":"envlist \u003d py{27,35},functional,pep8,pip-missing-reqs"},{"line_number":4,"context_line":"skipsdist \u003d True"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[testenv]"}],"source_content_type":"text/x-properties","patch_set":5,"id":"bf659307_22d70426","line":3,"range":{"start_line":3,"start_character":13,"end_line":3,"end_character":18},"in_reply_to":"bf659307_222636b9","updated":"2018-03-28 12:03:24.000000000","message":"Nope, we use stestr [1] now which resolves this\n\n[1] https://github.com/mtreinish/stestr/","commit_id":"cc60b7b8d5a2bff63a25c094635690b233680c41"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"372a1be8bdec205266562abc8ca0df5d9f916a1b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 2.1"},{"line_number":3,"context_line":"envlist \u003d py{27,35},functional,pep8,pip-missing-reqs"},{"line_number":4,"context_line":"skipsdist \u003d True"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[testenv]"}],"source_content_type":"text/x-properties","patch_set":5,"id":"bf659307_bdab3587","line":3,"range":{"start_line":3,"start_character":13,"end_line":3,"end_character":18},"in_reply_to":"bf659307_22d70426","updated":"2018-03-28 12:42:30.000000000","message":"Ah, sweet.","commit_id":"cc60b7b8d5a2bff63a25c094635690b233680c41"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a861607135001cedbc46936dadce84ffdbf8113b","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"[testenv:fast8]"},{"line_number":58,"context_line":"description \u003d"},{"line_number":59,"context_line":"  Run style checks on the changes made since HEAD~."},{"line_number":60,"context_line":"envdir \u003d {toxworkdir}/venv"},{"line_number":61,"context_line":"commands \u003d bash tools/flake8wrap.sh -HEAD"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-properties","patch_set":5,"id":"bf659307_4277aaa1","line":59,"range":{"start_line":59,"start_character":45,"end_line":59,"end_character":50},"updated":"2018-03-27 22:36:23.000000000","message":"HEAD~ is the same as HEAD~1, huh?  TIL.","commit_id":"cc60b7b8d5a2bff63a25c094635690b233680c41"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed689a0b1b0881d13229751b972e8cf87726ca43","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"[testenv:fast8]"},{"line_number":58,"context_line":"description \u003d"},{"line_number":59,"context_line":"  Run style checks on the changes made since HEAD~."},{"line_number":60,"context_line":"envdir \u003d {toxworkdir}/venv"},{"line_number":61,"context_line":"commands \u003d bash tools/flake8wrap.sh -HEAD"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-properties","patch_set":5,"id":"bf659307_c2dde842","line":59,"range":{"start_line":59,"start_character":45,"end_line":59,"end_character":50},"in_reply_to":"bf659307_4277aaa1","updated":"2018-03-28 12:03:24.000000000","message":"And HEAD^","commit_id":"cc60b7b8d5a2bff63a25c094635690b233680c41"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a861607135001cedbc46936dadce84ffdbf8113b","unresolved":false,"context_lines":[{"line_number":64,"context_line":"# TODO(melwitt): This can be removed when functional tests are gating with"},{"line_number":65,"context_line":"# python 3.x"},{"line_number":66,"context_line":"basepython \u003d python2.7"},{"line_number":67,"context_line":"envdir \u003d {toxworkdir}/py27"},{"line_number":68,"context_line":"commands \u003d"},{"line_number":69,"context_line":"  {[testenv]commands}"},{"line_number":70,"context_line":"# NOTE(cdent): The group_regex describes how stestr will group tests into the"}],"source_content_type":"text/x-properties","patch_set":5,"id":"bf659307_c26adab1","line":67,"range":{"start_line":67,"start_character":9,"end_line":67,"end_character":26},"updated":"2018-03-27 22:36:23.000000000","message":"Sorry, does this mean functional tests will now be run out of the py27 virtualenv (.tox/py27) rather than a separate `functional` env (.tox/functional)?","commit_id":"cc60b7b8d5a2bff63a25c094635690b233680c41"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"42f1b6dc2cab23503a280385cef73ce21f498580","unresolved":false,"context_lines":[{"line_number":64,"context_line":"# TODO(melwitt): This can be removed when functional tests are gating with"},{"line_number":65,"context_line":"# python 3.x"},{"line_number":66,"context_line":"basepython \u003d python2.7"},{"line_number":67,"context_line":"envdir \u003d {toxworkdir}/py27"},{"line_number":68,"context_line":"commands \u003d"},{"line_number":69,"context_line":"  {[testenv]commands}"},{"line_number":70,"context_line":"# NOTE(cdent): The group_regex describes how stestr will group tests into the"}],"source_content_type":"text/x-properties","patch_set":5,"id":"5f7c97a3_ca70aedd","line":67,"range":{"start_line":67,"start_character":9,"end_line":67,"end_character":26},"in_reply_to":"bf659307_8e5b9652","updated":"2018-06-07 15:38:30.000000000","message":"I agree this is a cool idea (and I\u0027m not sure why this wasn\u0027t done originally) but I do also think a heads up to the dev ML would be a friendly thing to do, just so people know.","commit_id":"cc60b7b8d5a2bff63a25c094635690b233680c41"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2df93c6e87fb1e29edc70fa84c81d9d11b3c58e2","unresolved":false,"context_lines":[{"line_number":64,"context_line":"# TODO(melwitt): This can be removed when functional tests are gating with"},{"line_number":65,"context_line":"# python 3.x"},{"line_number":66,"context_line":"basepython \u003d python2.7"},{"line_number":67,"context_line":"envdir \u003d {toxworkdir}/py27"},{"line_number":68,"context_line":"commands \u003d"},{"line_number":69,"context_line":"  {[testenv]commands}"},{"line_number":70,"context_line":"# NOTE(cdent): The group_regex describes how stestr will group tests into the"}],"source_content_type":"text/x-properties","patch_set":5,"id":"bf659307_f59b01c6","line":67,"range":{"start_line":67,"start_character":9,"end_line":67,"end_character":26},"in_reply_to":"bf659307_bd99f56e","updated":"2018-03-28 14:16:10.000000000","message":"You _could_ but it\u0027s bound to make things a lot more fragile for what it likely a very limited number of users. I\u0027d rather ask that folks either updated their scripts or that we didn\u0027t do this, if it\u0027s a really widespread practice.","commit_id":"cc60b7b8d5a2bff63a25c094635690b233680c41"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ed689a0b1b0881d13229751b972e8cf87726ca43","unresolved":false,"context_lines":[{"line_number":64,"context_line":"# TODO(melwitt): This can be removed when functional tests are gating with"},{"line_number":65,"context_line":"# python 3.x"},{"line_number":66,"context_line":"basepython \u003d python2.7"},{"line_number":67,"context_line":"envdir \u003d {toxworkdir}/py27"},{"line_number":68,"context_line":"commands \u003d"},{"line_number":69,"context_line":"  {[testenv]commands}"},{"line_number":70,"context_line":"# NOTE(cdent): The group_regex describes how stestr will group tests into the"}],"source_content_type":"text/x-properties","patch_set":5,"id":"bf659307_e2b90ce9","line":67,"range":{"start_line":67,"start_character":9,"end_line":67,"end_character":26},"in_reply_to":"bf659307_c26adab1","updated":"2018-03-28 12:03:24.000000000","message":"Correct. Given that there are no differences in requirements, this means you don\u0027t need to install dependencies twice. Should speed things up significantly (we have a lot of dependencies and they change quite often)","commit_id":"cc60b7b8d5a2bff63a25c094635690b233680c41"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"372a1be8bdec205266562abc8ca0df5d9f916a1b","unresolved":false,"context_lines":[{"line_number":64,"context_line":"# TODO(melwitt): This can be removed when functional tests are gating with"},{"line_number":65,"context_line":"# python 3.x"},{"line_number":66,"context_line":"basepython \u003d python2.7"},{"line_number":67,"context_line":"envdir \u003d {toxworkdir}/py27"},{"line_number":68,"context_line":"commands \u003d"},{"line_number":69,"context_line":"  {[testenv]commands}"},{"line_number":70,"context_line":"# NOTE(cdent): The group_regex describes how stestr will group tests into the"}],"source_content_type":"text/x-properties","patch_set":5,"id":"bf659307_bd99f56e","line":67,"range":{"start_line":67,"start_character":9,"end_line":67,"end_character":26},"in_reply_to":"bf659307_e2b90ce9","updated":"2018-03-28 12:42:30.000000000","message":"Well that\u0027s cool.  Means I\u0027m going to have to change my scripts, though.  Which is totally cool (and easy)...\n\n...but it got me wondering.  Not that you\u0027re likely to break anyone else who can\u0027t easily update *their* scripts, but would there be value in creating a symlink to .tox/functional after the env has been loaded?  (And similar for the others.)","commit_id":"cc60b7b8d5a2bff63a25c094635690b233680c41"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a5ec5d0983966e6206fa1c951d506974cfe09eb5","unresolved":false,"context_lines":[{"line_number":64,"context_line":"# TODO(melwitt): This can be removed when functional tests are gating with"},{"line_number":65,"context_line":"# python 3.x"},{"line_number":66,"context_line":"basepython \u003d python2.7"},{"line_number":67,"context_line":"envdir \u003d {toxworkdir}/py27"},{"line_number":68,"context_line":"commands \u003d"},{"line_number":69,"context_line":"  {[testenv]commands}"},{"line_number":70,"context_line":"# NOTE(cdent): The group_regex describes how stestr will group tests into the"}],"source_content_type":"text/x-properties","patch_set":5,"id":"bf659307_8e5b9652","line":67,"range":{"start_line":67,"start_character":9,"end_line":67,"end_character":26},"in_reply_to":"bf659307_f59b01c6","updated":"2018-03-28 16:00:57.000000000","message":"Suresure.  I guess we\u0027ll see if anyone screams.\n\nThough the consolidation of envs is a significant enough change that it probably warrants a quick note to the dev ML.","commit_id":"cc60b7b8d5a2bff63a25c094635690b233680c41"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"1b7184635c46e339ef08f2fc43db89684cd7f1d9","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"[testenv:py36]"},{"line_number":46,"context_line":"basepython \u003d python3.6"},{"line_number":47,"context_line":"commands \u003d {[testenv:py35]commands}"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"[testenv:pep8]"},{"line_number":50,"context_line":"description \u003d"}],"source_content_type":"text/x-properties","patch_set":7,"id":"5f7c97a3_ac764e6f","line":47,"range":{"start_line":47,"start_character":21,"end_line":47,"end_character":25},"updated":"2018-05-14 18:35:57.000000000","message":"Nice way at this time anyways, we will revert here again when removing py35.","commit_id":"abb5f1b86679564d6af5bda7491f60d20fcda2f4"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"1b7184635c46e339ef08f2fc43db89684cd7f1d9","unresolved":false,"context_lines":[{"line_number":92,"context_line":"basepython \u003d python3.5"},{"line_number":93,"context_line":"envdir \u003d {toxworkdir}/py35"},{"line_number":94,"context_line":"commands \u003d"},{"line_number":95,"context_line":"  {[testenv:functional]commands}"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"[testenv:api-samples]"},{"line_number":98,"context_line":"envdir \u003d {toxworkdir}/venv"}],"source_content_type":"text/x-properties","patch_set":7,"id":"5f7c97a3_cccdca85","line":95,"updated":"2018-05-14 18:35:57.000000000","message":"This change make `stestr slowest` run additionally on this job.\nBut the commit message doesn\u0027t explain it. Is that intentional?","commit_id":"abb5f1b86679564d6af5bda7491f60d20fcda2f4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"472cd91279bdf645871f4bafb54ed42b04f20c1a","unresolved":false,"context_lines":[{"line_number":92,"context_line":"basepython \u003d python3.5"},{"line_number":93,"context_line":"envdir \u003d {toxworkdir}/py35"},{"line_number":94,"context_line":"commands \u003d"},{"line_number":95,"context_line":"  {[testenv:functional]commands}"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"[testenv:api-samples]"},{"line_number":98,"context_line":"envdir \u003d {toxworkdir}/venv"}],"source_content_type":"text/x-properties","patch_set":7,"id":"5f7c97a3_a19ce769","line":95,"in_reply_to":"5f7c97a3_a00f1886","updated":"2018-05-16 14:52:10.000000000","message":"I don\u0027t think that applies anymore. I wasn\u0027t able to find any reference to pretty_tox3 in any of the infra repos.","commit_id":"abb5f1b86679564d6af5bda7491f60d20fcda2f4"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2556447d96f933afb02863898e3c7387b0750beb","unresolved":false,"context_lines":[{"line_number":92,"context_line":"basepython \u003d python3.5"},{"line_number":93,"context_line":"envdir \u003d {toxworkdir}/py35"},{"line_number":94,"context_line":"commands \u003d"},{"line_number":95,"context_line":"  {[testenv:functional]commands}"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"[testenv:api-samples]"},{"line_number":98,"context_line":"envdir \u003d {toxworkdir}/venv"}],"source_content_type":"text/x-properties","patch_set":7,"id":"5f7c97a3_a00f1886","line":95,"in_reply_to":"5f7c97a3_ba8192c5","updated":"2018-05-15 16:41:53.000000000","message":"After reading https://review.openstack.org/#/c/507657/ it seems intentional to exclude `stestr slowest` at py35.","commit_id":"abb5f1b86679564d6af5bda7491f60d20fcda2f4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fd90ff5c32390e5d38c625f5b979e9f42e56abc","unresolved":false,"context_lines":[{"line_number":92,"context_line":"basepython \u003d python3.5"},{"line_number":93,"context_line":"envdir \u003d {toxworkdir}/py35"},{"line_number":94,"context_line":"commands \u003d"},{"line_number":95,"context_line":"  {[testenv:functional]commands}"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"[testenv:api-samples]"},{"line_number":98,"context_line":"envdir \u003d {toxworkdir}/venv"}],"source_content_type":"text/x-properties","patch_set":7,"id":"5f7c97a3_ba8192c5","line":95,"in_reply_to":"5f7c97a3_cccdca85","updated":"2018-05-15 09:16:58.000000000","message":"It was not intentional, but I think it\u0027s a minimal change that probably doesn\u0027t warrant being called out in the release notes. These commands should probably be doing the same thing anyway, right?","commit_id":"abb5f1b86679564d6af5bda7491f60d20fcda2f4"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5237eec74e727bdbb6fdf736d4f5a33fa7e33307","unresolved":false,"context_lines":[{"line_number":54,"context_line":"description \u003d"},{"line_number":55,"context_line":"  Run style checks."},{"line_number":56,"context_line":"deps \u003d {[testenv]deps}"},{"line_number":57,"context_line":"envdir \u003d {toxworkdir}/venv"},{"line_number":58,"context_line":"commands \u003d"},{"line_number":59,"context_line":"  bash tools/flake8wrap.sh {posargs}"},{"line_number":60,"context_line":"  # Check that all JSON files don\u0027t have \\r\\n in line."}],"source_content_type":"text/x-properties","patch_set":9,"id":"5f7c97a3_59c28755","line":57,"updated":"2018-06-28 15:24:17.000000000","message":"Would another way to say this be\n\n envdir \u003d {[testenv:venv]envdir}\n\n?  That might actually be clearer to the reader, and would result in smaller diffs in future deltas.\n\nLikewise throughout.","commit_id":"14bd80131154a8345360f0aab02ba43afcc9055e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1c1ee1c124cf06eed127fa5765b42fcb69aed03b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"description \u003d"},{"line_number":55,"context_line":"  Run style checks."},{"line_number":56,"context_line":"deps \u003d {[testenv]deps}"},{"line_number":57,"context_line":"envdir \u003d {toxworkdir}/venv"},{"line_number":58,"context_line":"commands \u003d"},{"line_number":59,"context_line":"  bash tools/flake8wrap.sh {posargs}"},{"line_number":60,"context_line":"  # Check that all JSON files don\u0027t have \\r\\n in line."}],"source_content_type":"text/x-properties","patch_set":9,"id":"5f7c97a3_d99f7700","line":57,"in_reply_to":"5f7c97a3_59c28755","updated":"2018-06-28 15:26:58.000000000","message":"That...is not a bad idea. I\u0027ll try that now","commit_id":"14bd80131154a8345360f0aab02ba43afcc9055e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"70dbafda04e591e3fcea3af382af80dc074d6a19","unresolved":false,"context_lines":[{"line_number":54,"context_line":"description \u003d"},{"line_number":55,"context_line":"  Run style checks."},{"line_number":56,"context_line":"deps \u003d {[testenv]deps}"},{"line_number":57,"context_line":"envdir \u003d {toxworkdir}/venv"},{"line_number":58,"context_line":"commands \u003d"},{"line_number":59,"context_line":"  bash tools/flake8wrap.sh {posargs}"},{"line_number":60,"context_line":"  # Check that all JSON files don\u0027t have \\r\\n in line."}],"source_content_type":"text/x-properties","patch_set":9,"id":"5f7c97a3_1f15cf9b","line":57,"in_reply_to":"5f7c97a3_d99f7700","updated":"2018-06-28 16:34:16.000000000","message":"For posterity: this wasn\u0027t possible because apparently you can only reference explicitly-defined vars that way (and envdir is implicitly defined).  See http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2018-06-28.log.html#t2018-06-28T15:35:08","commit_id":"14bd80131154a8345360f0aab02ba43afcc9055e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5237eec74e727bdbb6fdf736d4f5a33fa7e33307","unresolved":false,"context_lines":[{"line_number":97,"context_line":"commands \u003d"},{"line_number":98,"context_line":"  {[testenv:functional]commands}"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"[testenv:api-samples]"},{"line_number":101,"context_line":"setenv \u003d"},{"line_number":102,"context_line":"  {[testenv]setenv}"},{"line_number":103,"context_line":"  GENERATE_SAMPLES\u003dTrue"}],"source_content_type":"text/x-properties","patch_set":9,"id":"5f7c97a3_79cc2362","line":100,"range":{"start_line":100,"start_character":0,"end_line":100,"end_character":21},"updated":"2018-06-28 15:24:17.000000000","message":"Why can\u0027t this one share venv?","commit_id":"14bd80131154a8345360f0aab02ba43afcc9055e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1c1ee1c124cf06eed127fa5765b42fcb69aed03b","unresolved":false,"context_lines":[{"line_number":97,"context_line":"commands \u003d"},{"line_number":98,"context_line":"  {[testenv:functional]commands}"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"[testenv:api-samples]"},{"line_number":101,"context_line":"setenv \u003d"},{"line_number":102,"context_line":"  {[testenv]setenv}"},{"line_number":103,"context_line":"  GENERATE_SAMPLES\u003dTrue"}],"source_content_type":"text/x-properties","patch_set":9,"id":"5f7c97a3_59f60760","line":100,"range":{"start_line":100,"start_character":0,"end_line":100,"end_character":21},"in_reply_to":"5f7c97a3_79cc2362","updated":"2018-06-28 15:26:58.000000000","message":"Because I missed it :)","commit_id":"14bd80131154a8345360f0aab02ba43afcc9055e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5237eec74e727bdbb6fdf736d4f5a33fa7e33307","unresolved":false,"context_lines":[{"line_number":122,"context_line":"commands \u003d"},{"line_number":123,"context_line":"  oslopolicy-sample-generator --config-file\u003detc/nova/placement-policy-generator.conf"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"[testenv:cover]"},{"line_number":126,"context_line":"# TODO(stephenfin): Remove the PYTHON hack below in favour of a [coverage]"},{"line_number":127,"context_line":"# section once we rely on coverage 4.3+"},{"line_number":128,"context_line":"#"}],"source_content_type":"text/x-properties","patch_set":9,"id":"5f7c97a3_59d36702","line":125,"range":{"start_line":125,"start_character":0,"end_line":125,"end_character":15},"updated":"2018-06-28 15:24:17.000000000","message":"Why can\u0027t this one share venv?","commit_id":"14bd80131154a8345360f0aab02ba43afcc9055e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1c1ee1c124cf06eed127fa5765b42fcb69aed03b","unresolved":false,"context_lines":[{"line_number":122,"context_line":"commands \u003d"},{"line_number":123,"context_line":"  oslopolicy-sample-generator --config-file\u003detc/nova/placement-policy-generator.conf"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"[testenv:cover]"},{"line_number":126,"context_line":"# TODO(stephenfin): Remove the PYTHON hack below in favour of a [coverage]"},{"line_number":127,"context_line":"# section once we rely on coverage 4.3+"},{"line_number":128,"context_line":"#"}],"source_content_type":"text/x-properties","patch_set":9,"id":"5f7c97a3_19964ff1","line":125,"range":{"start_line":125,"start_character":0,"end_line":125,"end_character":15},"in_reply_to":"5f7c97a3_59d36702","updated":"2018-06-28 15:26:58.000000000","message":"As above","commit_id":"14bd80131154a8345360f0aab02ba43afcc9055e"}]}
