)]}'
{"doc/source/contributor/contributing.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0fae52dc520ec14b3ba09e68aac59d05839a3b3","unresolved":false,"context_lines":[{"line_number":151,"context_line":"See :doc:`/contributor/index` for an overview of Placement and how the various"},{"line_number":152,"context_line":"pieces fit together."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"* Divide your change into a series of commits that each encapsulate a single"},{"line_number":155,"context_line":"  unit of functionality but still results in a working service. Smaller changes"},{"line_number":156,"context_line":"  are easier to review."},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_a0ae292b","line":154,"range":{"start_line":154,"start_character":46,"end_line":154,"end_character":67},"updated":"2019-03-27 22:01:12.000000000","message":"the singular/plural ness of this sentence reads awkward to me. How about \"each of which encapsulates\"?","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"928951ee84de32a135092606f26f5e16d2c9eddf","unresolved":false,"context_lines":[{"line_number":151,"context_line":"See :doc:`/contributor/index` for an overview of Placement and how the various"},{"line_number":152,"context_line":"pieces fit together."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"* Divide your change into a series of commits that each encapsulate a single"},{"line_number":155,"context_line":"  unit of functionality but still results in a working service. Smaller changes"},{"line_number":156,"context_line":"  are easier to review."},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_f3bc04bc","line":154,"range":{"start_line":154,"start_character":46,"end_line":154,"end_character":67},"in_reply_to":"5fc1f717_a0ae292b","updated":"2019-03-28 11:20:49.000000000","message":"ya, better","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1f06c00de20700176b38bc715749f9fd2f8569be","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"* Run ``tox`` before submitting your code to gerrit_. This will run unit and"},{"line_number":169,"context_line":"  functional tests in both Python 2 and Python 3, and pep8 style checks."},{"line_number":170,"context_line":"  Placement tests, including functional, are fast, so this should not be too"},{"line_number":171,"context_line":"  much of a hardship. By running the tests locally you avoid wasting scarce"},{"line_number":172,"context_line":"  resources in the CI system."},{"line_number":173,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_286f7728","line":170,"range":{"start_line":170,"start_character":19,"end_line":170,"end_character":39},"updated":"2019-03-28 10:40:18.000000000","message":"Does functional test requires a running devstack? That could be a bit heavier to build than env for the rest of the tests.","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"928951ee84de32a135092606f26f5e16d2c9eddf","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"* Run ``tox`` before submitting your code to gerrit_. This will run unit and"},{"line_number":169,"context_line":"  functional tests in both Python 2 and Python 3, and pep8 style checks."},{"line_number":170,"context_line":"  Placement tests, including functional, are fast, so this should not be too"},{"line_number":171,"context_line":"  much of a hardship. By running the tests locally you avoid wasting scarce"},{"line_number":172,"context_line":"  resources in the CI system."},{"line_number":173,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_d3b9c8cb","line":170,"range":{"start_line":170,"start_character":19,"end_line":170,"end_character":39},"in_reply_to":"5fc1f717_286f7728","updated":"2019-03-28 11:20:49.000000000","message":"placement functional tests don\u0027t use devstack, the only check/gate jobs in placement that use devstack are tempest and grenade: the _integration_ tests. A test that claims be functional but uses devstack isn\u0027t really functional, it\u0027s integration.","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9f7c07c6f47c2b4ab706001da073e0f1af5256fc","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"* Run ``tox`` before submitting your code to gerrit_. This will run unit and"},{"line_number":169,"context_line":"  functional tests in both Python 2 and Python 3, and pep8 style checks."},{"line_number":170,"context_line":"  Placement tests, including functional, are fast, so this should not be too"},{"line_number":171,"context_line":"  much of a hardship. By running the tests locally you avoid wasting scarce"},{"line_number":172,"context_line":"  resources in the CI system."},{"line_number":173,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_a5962def","line":170,"range":{"start_line":170,"start_character":19,"end_line":170,"end_character":39},"in_reply_to":"5fc1f717_d3b9c8cb","updated":"2019-03-28 13:56:36.000000000","message":"Thanks I mixed up thing with osc-placement, I guess.","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1f06c00de20700176b38bc715749f9fd2f8569be","unresolved":false,"context_lines":[{"line_number":171,"context_line":"  much of a hardship. By running the tests locally you avoid wasting scarce"},{"line_number":172,"context_line":"  resources in the CI system."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Keep the tests fast. Avoid sleeps, network connections, and external"},{"line_number":175,"context_line":"  processes."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* Keep Placement fast. There is a ``placement-perfload`` job that runs with"},{"line_number":178,"context_line":"  every patch. Within that is a log file, ``/logs/placement-perf.txt[.gz]``"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_28dd37dc","line":175,"range":{"start_line":174,"start_character":23,"end_line":175,"end_character":12},"updated":"2019-03-28 10:40:18.000000000","message":"I think it would be more useful to give suggestion what to use/do instead:\n\n* Use notification instead of polling if possible\n* Instead of a long sleep, create a loop with short sleeps that poll for the expected state and returns when reached.\n* do not try to unit test network interactions and inter process communication in unit test. Stub them. Test these interactions in the functional test instead.","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"928951ee84de32a135092606f26f5e16d2c9eddf","unresolved":false,"context_lines":[{"line_number":171,"context_line":"  much of a hardship. By running the tests locally you avoid wasting scarce"},{"line_number":172,"context_line":"  resources in the CI system."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Keep the tests fast. Avoid sleeps, network connections, and external"},{"line_number":175,"context_line":"  processes."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* Keep Placement fast. There is a ``placement-perfload`` job that runs with"},{"line_number":178,"context_line":"  every patch. Within that is a log file, ``/logs/placement-perf.txt[.gz]``"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_73cd745b","line":175,"range":{"start_line":174,"start_character":23,"end_line":175,"end_character":12},"in_reply_to":"5fc1f717_28dd37dc","updated":"2019-03-28 11:20:49.000000000","message":"I\u0027m talking here about avoiding sleeps, network connections and external processes in the tests themselves (including functional), not the code being tested.\n\nPart of the reason, now, that the placement tests are fast is because gabbi+wsgi-intercept means that the api tests are all happening in one process, over  fake network process, but doing really http.\n\nIn general I didn\u0027t want to get too prescriptive in these lists. Instead I wanted people to know what they should be striving for and not be surprised if a reviewer said \"you\u0027ve made the tests slower, that\u0027s not good\".","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5fcbd4bdd0d61d2057b10ad9c8be275f6c1ba895","unresolved":false,"context_lines":[{"line_number":171,"context_line":"  much of a hardship. By running the tests locally you avoid wasting scarce"},{"line_number":172,"context_line":"  resources in the CI system."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Keep the tests fast. Avoid sleeps, network connections, and external"},{"line_number":175,"context_line":"  processes."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* Keep Placement fast. There is a ``placement-perfload`` job that runs with"},{"line_number":178,"context_line":"  every patch. Within that is a log file, ``/logs/placement-perf.txt[.gz]``"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_c5d7b922","line":175,"range":{"start_line":174,"start_character":23,"end_line":175,"end_character":12},"in_reply_to":"5fc1f717_73cd745b","updated":"2019-03-28 13:45:32.000000000","message":"Oh, see I read it as [\"make sure you mock x if you\u0027re running code that uses x\" for x in (sleep, network connection, external process)].\n\n(I wrote a patch in nova [1] as a way to enforce this for sleep - perhaps we want to port that into placement?)\n\n[1] https://review.openstack.org/643763","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0fae52dc520ec14b3ba09e68aac59d05839a3b3","unresolved":false,"context_lines":[{"line_number":177,"context_line":"* Keep Placement fast. There is a ``placement-perfload`` job that runs with"},{"line_number":178,"context_line":"  every patch. Within that is a log file, ``/logs/placement-perf.txt[.gz]``"},{"line_number":179,"context_line":"  that gives rough timing information for a common operation. We want those"},{"line_number":180,"context_line":"  those numbers to stay small."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"* We follow the code formatting guidelines of PEP-8. Check your code with ``tox"},{"line_number":183,"context_line":"  -epep8`` (for all files) or ``tox -efast8`` (for just the files you changed)."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_2068f9f2","line":180,"range":{"start_line":180,"start_character":2,"end_line":180,"end_character":7},"updated":"2019-03-27 22:01:12.000000000","message":"strike","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"928951ee84de32a135092606f26f5e16d2c9eddf","unresolved":false,"context_lines":[{"line_number":177,"context_line":"* Keep Placement fast. There is a ``placement-perfload`` job that runs with"},{"line_number":178,"context_line":"  every patch. Within that is a log file, ``/logs/placement-perf.txt[.gz]``"},{"line_number":179,"context_line":"  that gives rough timing information for a common operation. We want those"},{"line_number":180,"context_line":"  those numbers to stay small."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"* We follow the code formatting guidelines of PEP-8. Check your code with ``tox"},{"line_number":183,"context_line":"  -epep8`` (for all files) or ``tox -efast8`` (for just the files you changed)."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_33d36c03","line":180,"range":{"start_line":180,"start_character":2,"end_line":180,"end_character":7},"in_reply_to":"5fc1f717_2068f9f2","updated":"2019-03-28 11:20:49.000000000","message":"✔","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0fae52dc520ec14b3ba09e68aac59d05839a3b3","unresolved":false,"context_lines":[{"line_number":179,"context_line":"  that gives rough timing information for a common operation. We want those"},{"line_number":180,"context_line":"  those numbers to stay small."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"* We follow the code formatting guidelines of PEP-8. Check your code with ``tox"},{"line_number":183,"context_line":"  -epep8`` (for all files) or ``tox -efast8`` (for just the files you changed)."},{"line_number":184,"context_line":"  You will not always agree with the advice provided. Follow it."},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_407e65af","line":182,"range":{"start_line":182,"start_character":46,"end_line":182,"end_character":51},"updated":"2019-03-27 22:01:12.000000000","message":"link? https://www.python.org/dev/peps/pep-0008/","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"928951ee84de32a135092606f26f5e16d2c9eddf","unresolved":false,"context_lines":[{"line_number":179,"context_line":"  that gives rough timing information for a common operation. We want those"},{"line_number":180,"context_line":"  those numbers to stay small."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"* We follow the code formatting guidelines of PEP-8. Check your code with ``tox"},{"line_number":183,"context_line":"  -epep8`` (for all files) or ``tox -efast8`` (for just the files you changed)."},{"line_number":184,"context_line":"  You will not always agree with the advice provided. Follow it."},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_53fb9877","line":182,"range":{"start_line":182,"start_character":46,"end_line":182,"end_character":51},"in_reply_to":"5fc1f717_407e65af","updated":"2019-03-28 11:20:49.000000000","message":"sure, why not. I guess I was think that if people have made it this far they\u0027ve heard and seen it before, but perhaps not.","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0fae52dc520ec14b3ba09e68aac59d05839a3b3","unresolved":false,"context_lines":[{"line_number":183,"context_line":"  -epep8`` (for all files) or ``tox -efast8`` (for just the files you changed)."},{"line_number":184,"context_line":"  You will not always agree with the advice provided. Follow it."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"* Where possible avoid using the visual indent style. Using it can make future"},{"line_number":187,"context_line":"  changes unnecessarily difficult. This guideline is not enforced by pep8 and"},{"line_number":188,"context_line":"  has been used throughout the code in the past. There\u0027s no need to fix old"},{"line_number":189,"context_line":"  use."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_8061ad07","line":186,"range":{"start_line":186,"start_character":33,"end_line":186,"end_character":52},"updated":"2019-03-27 22:01:12.000000000","message":"Definitely need a link or an example here. Lots of people (like me) don\u0027t know what this means otherwise.","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1f06c00de20700176b38bc715749f9fd2f8569be","unresolved":false,"context_lines":[{"line_number":183,"context_line":"  -epep8`` (for all files) or ``tox -efast8`` (for just the files you changed)."},{"line_number":184,"context_line":"  You will not always agree with the advice provided. Follow it."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"* Where possible avoid using the visual indent style. Using it can make future"},{"line_number":187,"context_line":"  changes unnecessarily difficult. This guideline is not enforced by pep8 and"},{"line_number":188,"context_line":"  has been used throughout the code in the past. There\u0027s no need to fix old"},{"line_number":189,"context_line":"  use."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_88e78bac","line":186,"range":{"start_line":186,"start_character":33,"end_line":186,"end_character":52},"in_reply_to":"5fc1f717_8061ad07","updated":"2019-03-28 10:40:18.000000000","message":"Me neither","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"928951ee84de32a135092606f26f5e16d2c9eddf","unresolved":false,"context_lines":[{"line_number":183,"context_line":"  -epep8`` (for all files) or ``tox -efast8`` (for just the files you changed)."},{"line_number":184,"context_line":"  You will not always agree with the advice provided. Follow it."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"* Where possible avoid using the visual indent style. Using it can make future"},{"line_number":187,"context_line":"  changes unnecessarily difficult. This guideline is not enforced by pep8 and"},{"line_number":188,"context_line":"  has been used throughout the code in the past. There\u0027s no need to fix old"},{"line_number":189,"context_line":"  use."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_d32c6803","line":186,"range":{"start_line":186,"start_character":33,"end_line":186,"end_character":52},"in_reply_to":"5fc1f717_8061ad07","updated":"2019-03-28 11:20:49.000000000","message":"ya, will do","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0fae52dc520ec14b3ba09e68aac59d05839a3b3","unresolved":false,"context_lines":[{"line_number":189,"context_line":"  use."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"* Changes associated with stories and tasks in StoryBoard_ should include"},{"line_number":192,"context_line":"  ``Story`` and ``Task`` identifiers as described in :ref:`triage` above."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"New Features"},{"line_number":195,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_60528137","line":192,"updated":"2019-03-27 22:01:12.000000000","message":"in the commit message","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"928951ee84de32a135092606f26f5e16d2c9eddf","unresolved":false,"context_lines":[{"line_number":189,"context_line":"  use."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"* Changes associated with stories and tasks in StoryBoard_ should include"},{"line_number":192,"context_line":"  ``Story`` and ``Task`` identifiers as described in :ref:`triage` above."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"New Features"},{"line_number":195,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_f32f24f3","line":192,"in_reply_to":"5fc1f717_60528137","updated":"2019-03-28 11:20:49.000000000","message":"✔","commit_id":"ba1683b98381f7f159964f7c3682d224685fca27"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5fcbd4bdd0d61d2057b10ad9c8be275f6c1ba895","unresolved":false,"context_lines":[{"line_number":199,"context_line":"  .. code-block:: python"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    return_value \u003d self.some_method("},{"line_number":202,"context_line":"        arg1, arg1, arg3, arg4)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"* Changes associated with stories and tasks in StoryBoard_ should include"},{"line_number":205,"context_line":"  ``Story`` and ``Task`` identifiers in the commit message, as described in"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_c5a579b6","line":202,"updated":"2019-03-28 13:45:32.000000000","message":"++","commit_id":"cc959d53de7d91616f2ee9fad5003d2c51bd9186"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9f7c07c6f47c2b4ab706001da073e0f1af5256fc","unresolved":false,"context_lines":[{"line_number":199,"context_line":"  .. code-block:: python"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    return_value \u003d self.some_method("},{"line_number":202,"context_line":"        arg1, arg1, arg3, arg4)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"* Changes associated with stories and tasks in StoryBoard_ should include"},{"line_number":205,"context_line":"  ``Story`` and ``Task`` identifiers in the commit message, as described in"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_a5bf0d5f","line":202,"in_reply_to":"5fc1f717_c5a579b6","updated":"2019-03-28 13:56:36.000000000","message":"++ now I know the name of this","commit_id":"cc959d53de7d91616f2ee9fad5003d2c51bd9186"}]}
