)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"a00f0bbb6bd81b87f046b88b4d3b58bc9817ce42","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2012-04-26 17:25:14 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add i18n context module and import function _ for each component to support multiple text domain."},{"line_number":8,"context_line":"Fix Bug 974810."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: I7e4899726df9e7e24b9b8154881972c3de6c2665"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAHX%2F%2F%2FJk%3D","line":8,"updated":"2012-05-07 20:49:10.000000000","message":"Your first line should be a short (ideally, \u003c50 characters) summary, followed by a blank line, followed by more details.","commit_id":"57b88e5535a5fddb34478ffd44225ff4d3ebcd47"}],"nova/api/ec2/__init__.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"a00f0bbb6bd81b87f046b88b4d3b58bc9817ce42","unresolved":false,"context_lines":[{"line_number":39,"context_line":"from nova.openstack.common import cfg"},{"line_number":40,"context_line":"from nova import utils"},{"line_number":41,"context_line":"from nova import wsgi"},{"line_number":42,"context_line":"from nova.i18ncontext import _"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F%2FJc%3D","line":42,"updated":"2012-05-07 20:49:10.000000000","message":"Imports should be in human-readable alphabetical order.  Additionally, we typically prefer importing modules, rather than objects such as _; obviously, an exception can be made here, but that will need to be documented in HACKING.rst and appropriate rules added to tools/hacking.py.","commit_id":"57b88e5535a5fddb34478ffd44225ff4d3ebcd47"}],"nova/i18ncontext.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"a00f0bbb6bd81b87f046b88b4d3b58bc9817ce42","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":16,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":17,"context_line":"#    under the License."},{"line_number":18,"context_line":"\"\"\"Nova i18n context"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This module will specify the globalization context for current component."},{"line_number":21,"context_line":"In order to support multiple text domains, the message function _ is"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F%2FJU%3D","line":18,"updated":"2012-05-07 20:49:10.000000000","message":"This line should end in a period…","commit_id":"57b88e5535a5fddb34478ffd44225ff4d3ebcd47"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"a00f0bbb6bd81b87f046b88b4d3b58bc9817ce42","unresolved":false,"context_lines":[{"line_number":20,"context_line":"This module will specify the globalization context for current component."},{"line_number":21,"context_line":"In order to support multiple text domains, the message function _ is"},{"line_number":22,"context_line":"redefined by using binding method to include correct domain to avoid"},{"line_number":23,"context_line":"gettext.install() method override previously installed domain."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"For those new modules in Nova that need to globalize strings, import this"},{"line_number":26,"context_line":"function."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F%2FJQ%3D","line":23,"updated":"2012-05-07 20:49:10.000000000","message":"Allow me to suggest the following re-wording:\n\n    This module will specify the globalization context for the current component.  In\n    order to support multiple text domains, the message function _() is redefined by\n    using a binding method to include the correct domain.  This avoids having the\n    gettext.install() method override the previously installed domain.","commit_id":"57b88e5535a5fddb34478ffd44225ff4d3ebcd47"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"a00f0bbb6bd81b87f046b88b4d3b58bc9817ce42","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"For those new modules in Nova that need to globalize strings, import this"},{"line_number":26,"context_line":"function."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"\"\"\""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"import gettext"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F%2FJM%3D","line":27,"updated":"2012-05-07 20:49:10.000000000","message":"This blank line before the closing triple-quote is unnecessary and should be removed.","commit_id":"57b88e5535a5fddb34478ffd44225ff4d3ebcd47"}],"nova/ipv6/rfc2462.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"61419d5ecf14034092d45a458d1115cbaaf9c9b8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\"RFC2462 style IPv6 address generation\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import netaddr"},{"line_number":23,"context_line":"from nova import i18ncontext"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"_ \u003d i18ncontext.dgettext"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAHX%2F%2F8MQ%3D","line":23,"updated":"2012-05-14 18:25:23.000000000","message":"This import needs to be separated from the netaddr import by a blank line.","commit_id":"827cbb3d519e9d36ff58e83d90d05a594715e00a"}],"plugins/xenserver/xenapi/etc/xapi.d/plugins/pluginlib_nova.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"a00f0bbb6bd81b87f046b88b4d3b58bc9817ce42","unresolved":false,"context_lines":[{"line_number":20,"context_line":"#"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import gettext"},{"line_number":23,"context_line":"from nova.i18ncontext import _"},{"line_number":24,"context_line":"import httplib"},{"line_number":25,"context_line":"import logging"},{"line_number":26,"context_line":"import logging.handlers"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F%2FJI%3D","line":23,"updated":"2012-05-07 20:49:10.000000000","message":"The nova tree will not be available in the context in which this file is used.  Nova is written against Python 2.6, but the Xenserver typically only has 2.4 installed; this is why the nova setup on Xen has nova installed in a vm, rather than directly on the Xen dom0.","commit_id":"57b88e5535a5fddb34478ffd44225ff4d3ebcd47"}],"run_tests.sh":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"719da434b992265ed5ed1c2fdd40d88ac7affc80","unresolved":false,"context_lines":[{"line_number":103,"context_line":"srcfiles+\u003d\" `find bin -type f ! -name \"nova.conf*\" ! -name \"*api-paste.ini*\"`\""},{"line_number":104,"context_line":"srcfiles+\u003d\" `find tools -type f -name \"*.py\"`\""},{"line_number":105,"context_line":"srcfiles+\u003d\" setup.py\""},{"line_number":106,"context_line":"excludefiles\u003d\"i18ncontext.py\""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"function run_pep8 {"},{"line_number":109,"context_line":"  echo \"Running PEP8 and HACKING compliance check...\""}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAHX%2F%2F%2BHw%3D","line":106,"updated":"2012-05-09 15:44:58.000000000","message":"Hmmm…I didn\u0027t see anything obvious in i18ncontext.py that would justify the need to exclude it from PEP8 checking.  Could you explain why this was needed?","commit_id":"91e2478f63cdfc9bd05a1930f2a6fe5b0310654c"}]}
