)]}'
{".gitignore":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"a1af470e2a0a237f9b413cdcfa3f2dc4d28a3383","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"# Docs"},{"line_number":32,"context_line":".DS_Store"},{"line_number":33,"context_line":"api-ref/"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"# Files created by releasenotes build"},{"line_number":36,"context_line":"releasenotes/build"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"fa7ab95a_5565b81b","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":8},"updated":"2016-08-29 15:45:38.000000000","message":"If you put it in like this, any new files in api-ref/source will be ignored as well - probably not what we want.","commit_id":"9df999a654007c703f4a8867ec6b8ef7a894617a"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"edb3576b44b322ea27f1e4e2ead2e875f3d5cb56","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"# Docs"},{"line_number":32,"context_line":".DS_Store"},{"line_number":33,"context_line":"api-ref/"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"# Files created by releasenotes build"},{"line_number":36,"context_line":"releasenotes/build"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"fa7ab95a_34602c01","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":8},"in_reply_to":"fa7ab95a_2cdaa617","updated":"2016-08-29 18:09:14.000000000","message":"Done","commit_id":"9df999a654007c703f4a8867ec6b8ef7a894617a"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"942298f3456f9c222cb0818d26a11acfd814dca8","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"# Docs"},{"line_number":32,"context_line":".DS_Store"},{"line_number":33,"context_line":"api-ref/"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"# Files created by releasenotes build"},{"line_number":36,"context_line":"releasenotes/build"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"fa7ab95a_2cdaa617","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":8},"in_reply_to":"fa7ab95a_5565b81b","updated":"2016-08-29 17:14:37.000000000","message":"Will fix","commit_id":"9df999a654007c703f4a8867ec6b8ef7a894617a"}],"tools/tox2_wrapper.bash":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"188ccd181b48bb95636e7a2611c953035caa1f39","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# a wrapper on ostestr for python2 jobs"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"python setup.py testr \"$@\""},{"line_number":6,"context_line":""}],"source_content_type":"text/x-sh","patch_set":1,"id":"fa7ab95a_7519dcd6","line":5,"updated":"2016-08-29 15:43:00.000000000","message":"fwiw, you can just use ostestr here too. That way subunit-trace (http://git.openstack.org/cgit/openstack/os-testr/tree/os_testr/subunit_trace.py) will be used for both py2 and py3","commit_id":"9df999a654007c703f4a8867ec6b8ef7a894617a"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"942298f3456f9c222cb0818d26a11acfd814dca8","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# a wrapper on ostestr for python2 jobs"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"python setup.py testr \"$@\""},{"line_number":6,"context_line":""}],"source_content_type":"text/x-sh","patch_set":1,"id":"fa7ab95a_ace5d6dc","line":5,"in_reply_to":"fa7ab95a_7519dcd6","updated":"2016-08-29 17:14:37.000000000","message":"I\u0027m trying to fix one thing, the way these jobs were put together in tox.ini\n\nI\u0027d like to make changes small and independent if possible. Happy to change that too, but independent of this if possible.","commit_id":"9df999a654007c703f4a8867ec6b8ef7a894617a"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"edb3576b44b322ea27f1e4e2ead2e875f3d5cb56","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# a wrapper on ostestr for python2 jobs"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"python setup.py testr \"$@\""},{"line_number":6,"context_line":""}],"source_content_type":"text/x-sh","patch_set":1,"id":"fa7ab95a_147088db","line":5,"in_reply_to":"fa7ab95a_ace5d6dc","updated":"2016-08-29 18:09:14.000000000","message":"Done","commit_id":"9df999a654007c703f4a8867ec6b8ef7a894617a"}],"tools/tox3_wrapper.bash":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"188ccd181b48bb95636e7a2611c953035caa1f39","unresolved":false,"context_lines":[{"line_number":3,"context_line":"# a wrapper on ostestr for python3 jobs"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"if [ \"$#\" -eq \"0\" ]; then"},{"line_number":6,"context_line":"    ostestr --blacklist_file\u003dblacklist-py3.txt --serial"},{"line_number":7,"context_line":"else"},{"line_number":8,"context_line":"    ostestr \"$@\""},{"line_number":9,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":1,"id":"fa7ab95a_d5dd48e1","line":6,"updated":"2016-08-29 15:43:00.000000000","message":"Is there a reason you need to run tests on py3 serially?","commit_id":"9df999a654007c703f4a8867ec6b8ef7a894617a"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"942298f3456f9c222cb0818d26a11acfd814dca8","unresolved":false,"context_lines":[{"line_number":3,"context_line":"# a wrapper on ostestr for python3 jobs"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"if [ \"$#\" -eq \"0\" ]; then"},{"line_number":6,"context_line":"    ostestr --blacklist_file\u003dblacklist-py3.txt --serial"},{"line_number":7,"context_line":"else"},{"line_number":8,"context_line":"    ostestr \"$@\""},{"line_number":9,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":1,"id":"fa7ab95a_8c8f3229","line":6,"in_reply_to":"fa7ab95a_d5dd48e1","updated":"2016-08-29 17:14:37.000000000","message":"because there are sporadic issues and failures if they are not. For example, when multiple tests attempt to do something which causes the sqllite db to lock up.","commit_id":"9df999a654007c703f4a8867ec6b8ef7a894617a"}],"tox.ini":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"761aa990d87e21df78a81f1ae4b59051e20771b9","unresolved":false,"context_lines":[{"line_number":27,"context_line":"             xargs -0 -n 1 msgfmt --check-format -o /dev/null\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"[testenv:py34]"},{"line_number":30,"context_line":"commands \u003d rm -f .testrepository/times.dbm"},{"line_number":31,"context_line":"           ostestr --blacklist_file\u003dblacklist-py3.txt --serial"},{"line_number":32,"context_line":"whitelist_externals \u003d rm"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-properties","patch_set":4,"id":"fa7ab95a_ae64e0b8","side":"PARENT","line":30,"range":{"start_line":30,"start_character":11,"end_line":30,"end_character":42},"updated":"2016-08-29 20:36:11.000000000","message":"I notice that deleting the times.dbm file has been removed.  Is this not an issue anymore? (it was put in place to allow running py27 then py34 without having to delete the file manually).","commit_id":"e02e1616e253d14a096a2240ec67faf9c514cab9"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"5a60e1519abc0e018820501c26c5e459a49f667d","unresolved":false,"context_lines":[{"line_number":27,"context_line":"             xargs -0 -n 1 msgfmt --check-format -o /dev/null\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"[testenv:py34]"},{"line_number":30,"context_line":"commands \u003d rm -f .testrepository/times.dbm"},{"line_number":31,"context_line":"           ostestr --blacklist_file\u003dblacklist-py3.txt --serial"},{"line_number":32,"context_line":"whitelist_externals \u003d rm"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-properties","patch_set":4,"id":"fa7ab95a_ffd3f4d2","side":"PARENT","line":30,"range":{"start_line":30,"start_character":11,"end_line":30,"end_character":42},"in_reply_to":"fa7ab95a_ae64e0b8","updated":"2016-08-29 21:31:49.000000000","message":"it has just been moved into the testenv commands so it will happen for all test envs not just py34","commit_id":"e02e1616e253d14a096a2240ec67faf9c514cab9"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"43d0b183e32f2b25d3d60f0f1603edd60d53ec11","unresolved":false,"context_lines":[{"line_number":38,"context_line":"filename\u003d*.py,trove-*"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"[testenv:py27]"},{"line_number":41,"context_line":"commands \u003d rm -f ./trove_test.sqlite"},{"line_number":42,"context_line":"           ostestr --slowest --serial"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"[testenv:py34]"}],"source_content_type":"text/x-properties","patch_set":4,"id":"fa7ab95a_c8611f3b","line":41,"range":{"start_line":41,"start_character":11,"end_line":41,"end_character":36},"updated":"2016-08-29 19:17:46.000000000","message":"So this is out of scope for this patch, but I think we can make the unit tests handle this automatically so we don\u0027t have to do this out of band in the tox.ini in the future. (using a fixture or something similar)","commit_id":"22f1b68a59ec9e4160e68b7478b51977ed5b63b8"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"29cdc337428cac194f943bf0b5eceb0c21ee3b35","unresolved":false,"context_lines":[{"line_number":70,"context_line":"commands \u003d"},{"line_number":71,"context_line":"     {[testenv]commands}"},{"line_number":72,"context_line":"     coverage erase"},{"line_number":73,"context_line":"     {[py27base]commands}"},{"line_number":74,"context_line":"     coverage run -a run_tests.py"},{"line_number":75,"context_line":"     coverage html"},{"line_number":76,"context_line":"     coverage xml"}],"source_content_type":"text/x-properties","patch_set":5,"id":"fa7ab95a_90c9f25b","line":73,"range":{"start_line":73,"start_character":1,"end_line":73,"end_character":25},"updated":"2016-08-30 00:26:00.000000000","message":"is this correct?","commit_id":"1d90a9c58967d9542ca4ac1afa120baa3549d7eb"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"26051bbd015f7361cb1d0cd1c8a65ff8141c805b","unresolved":false,"context_lines":[{"line_number":70,"context_line":"commands \u003d"},{"line_number":71,"context_line":"     {[testenv]commands}"},{"line_number":72,"context_line":"     coverage erase"},{"line_number":73,"context_line":"     {[py27base]commands}"},{"line_number":74,"context_line":"     coverage run -a run_tests.py"},{"line_number":75,"context_line":"     coverage html"},{"line_number":76,"context_line":"     coverage xml"}],"source_content_type":"text/x-properties","patch_set":5,"id":"fa7ab95a_267ef769","line":73,"range":{"start_line":73,"start_character":1,"end_line":73,"end_character":25},"in_reply_to":"fa7ab95a_4cea4775","updated":"2016-08-30 16:32:18.000000000","message":"but I\u0027ve reverted this and we can look into it later.","commit_id":"1d90a9c58967d9542ca4ac1afa120baa3549d7eb"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"d2b8c561919b3eccca8bf15834b431762d7fd020","unresolved":false,"context_lines":[{"line_number":70,"context_line":"commands \u003d"},{"line_number":71,"context_line":"     {[testenv]commands}"},{"line_number":72,"context_line":"     coverage erase"},{"line_number":73,"context_line":"     {[py27base]commands}"},{"line_number":74,"context_line":"     coverage run -a run_tests.py"},{"line_number":75,"context_line":"     coverage html"},{"line_number":76,"context_line":"     coverage xml"}],"source_content_type":"text/x-properties","patch_set":5,"id":"fa7ab95a_63c2b186","line":73,"range":{"start_line":73,"start_character":1,"end_line":73,"end_character":25},"in_reply_to":"fa7ab95a_4cea4775","updated":"2016-08-30 16:23:31.000000000","message":"they are equivalent. it generates coverage results.","commit_id":"1d90a9c58967d9542ca4ac1afa120baa3549d7eb"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"0d7c4fc81cb4bb4a527af7722d70203ddfb5fe26","unresolved":false,"context_lines":[{"line_number":70,"context_line":"commands \u003d"},{"line_number":71,"context_line":"     {[testenv]commands}"},{"line_number":72,"context_line":"     coverage erase"},{"line_number":73,"context_line":"     {[py27base]commands}"},{"line_number":74,"context_line":"     coverage run -a run_tests.py"},{"line_number":75,"context_line":"     coverage html"},{"line_number":76,"context_line":"     coverage xml"}],"source_content_type":"text/x-properties","patch_set":5,"id":"fa7ab95a_4cea4775","line":73,"range":{"start_line":73,"start_character":1,"end_line":73,"end_character":25},"in_reply_to":"fa7ab95a_90c9f25b","updated":"2016-08-30 15:02:25.000000000","message":"The py27base command is \u0027ostestr --slowest --serial\u0027 and you\u0027re replacing \u0027python setup.py testr --coverage\u0027 with it.  I haven\u0027t run any tests, but I suspect they\u0027re not equal.","commit_id":"1d90a9c58967d9542ca4ac1afa120baa3549d7eb"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"e8420e6b49f1bd95896119fc20549b724219defd","unresolved":false,"context_lines":[{"line_number":59,"context_line":"[testenv:apiexamples]"},{"line_number":60,"context_line":"commands \u003d {envpython} generate_examples.py"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"[testenv:unittests]"},{"line_number":63,"context_line":"commands \u003d {envpython} run_tests.py"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"[testenv:debug]"},{"line_number":66,"context_line":"commands \u003d oslo_debug_helper {posargs}"}],"source_content_type":"text/x-properties","patch_set":6,"id":"fa7ab95a_4ce967b6","line":63,"range":{"start_line":62,"start_character":9,"end_line":63,"end_character":35},"updated":"2016-08-30 15:02:43.000000000","message":"Aren\u0027t these the \u0027fake\u0027 tests?  Calling them unittests might confuse people ...","commit_id":"25f87c0737aa74a1a1280c92093593744b9cc9cf"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"4c0ed47411508aee0d297aeac0107ffe59e0cb3a","unresolved":false,"context_lines":[{"line_number":59,"context_line":"[testenv:apiexamples]"},{"line_number":60,"context_line":"commands \u003d {envpython} generate_examples.py"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"[testenv:unittests]"},{"line_number":63,"context_line":"commands \u003d {envpython} run_tests.py"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"[testenv:debug]"},{"line_number":66,"context_line":"commands \u003d oslo_debug_helper {posargs}"}],"source_content_type":"text/x-properties","patch_set":6,"id":"fa7ab95a_46a69bae","line":63,"range":{"start_line":62,"start_character":9,"end_line":63,"end_character":35},"in_reply_to":"fa7ab95a_2328a932","updated":"2016-08-30 16:41:39.000000000","message":"I thought these are the fake mode *integration* tests ...","commit_id":"25f87c0737aa74a1a1280c92093593744b9cc9cf"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"255090c2158be04d22a5c1e3dd84480c4ce08a90","unresolved":false,"context_lines":[{"line_number":59,"context_line":"[testenv:apiexamples]"},{"line_number":60,"context_line":"commands \u003d {envpython} generate_examples.py"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"[testenv:unittests]"},{"line_number":63,"context_line":"commands \u003d {envpython} run_tests.py"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"[testenv:debug]"},{"line_number":66,"context_line":"commands \u003d oslo_debug_helper {posargs}"}],"source_content_type":"text/x-properties","patch_set":6,"id":"fa7ab95a_2328a932","line":63,"range":{"start_line":62,"start_character":9,"end_line":63,"end_character":35},"in_reply_to":"fa7ab95a_4ce967b6","updated":"2016-08-30 16:23:04.000000000","message":"they are fake mode unit tests. faketests seems to be a troveism so I said unittests. Who would it confuse and what would result?","commit_id":"25f87c0737aa74a1a1280c92093593744b9cc9cf"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"289f3e04439c66a6bdb7d0c68a0746b861468495","unresolved":false,"context_lines":[{"line_number":58,"context_line":"commands \u003d"},{"line_number":59,"context_line":"     {[testenv]commands}"},{"line_number":60,"context_line":"     coverage erase"},{"line_number":61,"context_line":"     python setup.py testr --coverage"},{"line_number":62,"context_line":"     coverage run -a run_tests.py"},{"line_number":63,"context_line":"     coverage html"},{"line_number":64,"context_line":"     coverage xml"}],"source_content_type":"text/x-properties","patch_set":9,"id":"fa7ab95a_7d4889cc","line":61,"range":{"start_line":61,"start_character":5,"end_line":61,"end_character":37},"updated":"2016-08-30 18:50:14.000000000","message":"I could only get the coverage to run if I added \u0027--no-parallel\u0027 to the end of this command.  That said, it seems to have been broken before (since this run is virtually untouched).","commit_id":"b5547bfaa32f9afccbff39ee3948f14526796d4f"}]}
