)]}'
{"tools/install_venv.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ca06bf5f275d17143cec1078d9e5adbb8b70c2cf","unresolved":false,"context_lines":[{"line_number":20,"context_line":"#    under the License."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"\"\"\""},{"line_number":23,"context_line":"Installation script for python-keystoneclient\u0027s development virtualenv"},{"line_number":24,"context_line":"\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B8Pk%3D","line":23,"updated":"2013-02-13 20:00:35.000000000","message":"might be easier to just say \"this component\u0027s\" rather than change the name for each.","commit_id":"d9c7a14313f35dcbe344e7b2e1d8262a8f274c69"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"fc80784eebc3dc28e8ecad63c85060568a859158","unresolved":false,"context_lines":[{"line_number":20,"context_line":"#    under the License."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"\"\"\""},{"line_number":23,"context_line":"Installation script for python-keystoneclient\u0027s development virtualenv"},{"line_number":24,"context_line":"\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B30E%3D","line":23,"in_reply_to":"AAAAM3%2F%2B6sk%3D","updated":"2013-02-15 21:19:53.000000000","message":"Dolph - that\u0027s what I meant. I should have been clearer.","commit_id":"d9c7a14313f35dcbe344e7b2e1d8262a8f274c69"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"3596ccfc3e99d2f8552eeff1e9609b2742be7d9d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"#    under the License."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"\"\"\""},{"line_number":23,"context_line":"Installation script for python-keystoneclient\u0027s development virtualenv"},{"line_number":24,"context_line":"\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B6sk%3D","line":23,"in_reply_to":"AAAAM3%2F%2B77E%3D","updated":"2013-02-14 15:47:20.000000000","message":"I assume he\u0027s referring to maintain effort moving forward. If it\u0027s going to be copy/pasted around, it should be written generically.","commit_id":"d9c7a14313f35dcbe344e7b2e1d8262a8f274c69"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"b9f5b4533c461e5a293c389f0dab42662a669a24","unresolved":false,"context_lines":[{"line_number":20,"context_line":"#    under the License."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"\"\"\""},{"line_number":23,"context_line":"Installation script for python-keystoneclient\u0027s development virtualenv"},{"line_number":24,"context_line":"\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B77E%3D","line":23,"in_reply_to":"AAAAM3%2F%2B8Pk%3D","updated":"2013-02-13 22:44:06.000000000","message":"It\u0027s not that much effort, especially since it was wrong here and needs to be corrected anyway. (and in most of the other projects too, lazy copy and paste) There isn\u0027t really a difference between changing it from nova to python-keystoneclient instead of changing it from nova to \u0027this component\u0027s\u0027.","commit_id":"d9c7a14313f35dcbe344e7b2e1d8262a8f274c69"}],"tools/install_venv_common.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ca06bf5f275d17143cec1078d9e5adbb8b70c2cf","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def die(self, message, *args):"},{"line_number":50,"context_line":"        print \u003e\u003e sys.stderr, message % args"},{"line_number":51,"context_line":"        sys.exit(1)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def check_python_version(self):"},{"line_number":54,"context_line":"        if sys.version_info \u003c (2, 6):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B8PA%3D","line":51,"updated":"2013-02-13 20:00:35.000000000","message":"consider raising an exception.","commit_id":"d9c7a14313f35dcbe344e7b2e1d8262a8f274c69"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"3596ccfc3e99d2f8552eeff1e9609b2742be7d9d","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def die(self, message, *args):"},{"line_number":50,"context_line":"        print \u003e\u003e sys.stderr, message % args"},{"line_number":51,"context_line":"        sys.exit(1)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def check_python_version(self):"},{"line_number":54,"context_line":"        if sys.version_info \u003c (2, 6):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B6sQ%3D","line":51,"in_reply_to":"AAAAM3%2F%2B8PA%3D","updated":"2013-02-14 15:47:20.000000000","message":"yeah, this can all be handled by:\n\n  raise SystemExit(message % args)\n\nand for bonus points, you don\u0027t need to import sys just to exit cleanly, although it\u0027s obviously already used here.","commit_id":"d9c7a14313f35dcbe344e7b2e1d8262a8f274c69"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ca06bf5f275d17143cec1078d9e5adbb8b70c2cf","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            print \u0027done.\u0027"},{"line_number":109,"context_line":"        else:"},{"line_number":110,"context_line":"            print \"venv already exists...\""},{"line_number":111,"context_line":"            pass"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def pip_install(self, *args):"},{"line_number":114,"context_line":"        self.run_command([\u0027tools/with_venv.sh\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B8PE%3D","line":111,"updated":"2013-02-13 20:00:35.000000000","message":"unnecessary pass statement.","commit_id":"d9c7a14313f35dcbe344e7b2e1d8262a8f274c69"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ca06bf5f275d17143cec1078d9e5adbb8b70c2cf","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        # First things first, make sure our venv has the latest pip and"},{"line_number":122,"context_line":"        # distribute."},{"line_number":123,"context_line":"        # NOTE: we keep pip at version 1.1 since the most recent version causes"},{"line_number":124,"context_line":"        # the .venv creation to fail. See:"},{"line_number":125,"context_line":"        # https://bugs.launchpad.net/nova/+bug/1047120"},{"line_number":126,"context_line":"        self.pip_install(\u0027pip\u003d\u003d1.1\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B8O4%3D","line":123,"updated":"2013-02-13 20:00:35.000000000","message":"should this be NOTE(mtrienish):?","commit_id":"d9c7a14313f35dcbe344e7b2e1d8262a8f274c69"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"b9f5b4533c461e5a293c389f0dab42662a669a24","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        # First things first, make sure our venv has the latest pip and"},{"line_number":122,"context_line":"        # distribute."},{"line_number":123,"context_line":"        # NOTE: we keep pip at version 1.1 since the most recent version causes"},{"line_number":124,"context_line":"        # the .venv creation to fail. See:"},{"line_number":125,"context_line":"        # https://bugs.launchpad.net/nova/+bug/1047120"},{"line_number":126,"context_line":"        self.pip_install(\u0027pip\u003d\u003d1.1\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B77w%3D","line":123,"in_reply_to":"AAAAM3%2F%2B8O4%3D","updated":"2013-02-13 22:44:06.000000000","message":"It\u0027s not my note, this was in most of the other projects install_venv.py script before I moved it into oslo.","commit_id":"d9c7a14313f35dcbe344e7b2e1d8262a8f274c69"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ca06bf5f275d17143cec1078d9e5adbb8b70c2cf","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        self.die(\u0027ERROR: virtualenv not found.\\n\\n%s development\u0027"},{"line_number":174,"context_line":"                 \u0027 requires virtualenv, please install it using your\u0027"},{"line_number":175,"context_line":"                 \u0027 favorite package management tool\u0027 % self.project)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def post_process(self):"},{"line_number":178,"context_line":"        \"\"\"Any distribution-specific post-processing gets done here."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B8Ow%3D","line":175,"updated":"2013-02-13 20:00:35.000000000","message":"change % to ,.","commit_id":"d9c7a14313f35dcbe344e7b2e1d8262a8f274c69"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ca06bf5f275d17143cec1078d9e5adbb8b70c2cf","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        \"\"\""},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        # Install \"patch\" program if it\u0027s not there"},{"line_number":225,"context_line":"        if not self.check_pkg(\u0027patch\u0027):"},{"line_number":226,"context_line":"            self.yum_install(\u0027patch\u0027)"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        # Apply the eventlet patch"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B8Ns%3D","line":225,"updated":"2013-02-13 20:00:35.000000000","message":"why using check_pkg and not check_cmd? (check_cmd seems safer because package name or contents could change, and the plan is to eventually run \u0027patch\u0027)","commit_id":"d9c7a14313f35dcbe344e7b2e1d8262a8f274c69"}]}
