)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"76ac6e99b7d3ad3e70f7fa886a8aa5676310c7ad","unresolved":false,"context_lines":[{"line_number":7,"context_line":"package: read a specific Python version requirement file"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change makes pbr reads a specific requirement file tight to the"},{"line_number":10,"context_line":"major Python version has he\u0027s used."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I4b548e9830586f11b82539d334dd5cf4b0445a36"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUH%2F%2F38Q%3D","line":10,"updated":"2014-01-08 13:20:19.000000000","message":"You should directly mention \"requirements-py3.txt\" and \"test-requirements-py3.txt\" filenames.","commit_id":"b0c1e2781c28108c4e6cc862fc9437263d132a65"}],"pbr/packaging.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"a985a0ab0d1003a12746013452fdaf0fb9f79f57","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    files \u003d os.environ.get(\"PBR_REQUIREMENTS_FILES\")"},{"line_number":58,"context_line":"    if files:"},{"line_number":59,"context_line":"        return tuple(f.strip() for f in files.split(\u0027,\u0027))"},{"line_number":60,"context_line":"    return (list(map((\u0027-py\u0027 + str(sys.version_info[0])).join,"},{"line_number":61,"context_line":"                     map(os.path.splitext, REQUIREMENTS_FILES)))"},{"line_number":62,"context_line":"            + list(REQUIREMENTS_FILES))"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8vKA%3D","line":60,"updated":"2013-12-20 21:34:12.000000000","message":"This is a little tricky. Could you add a comment describing what it\u0027s doing, to make it easier to understand the next time I have to figure it out? :-)","commit_id":"0adefa57c673b9b76fd0ea7fe920608b9ce38a9e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4eab94415d61868071eb306803f91d46e7bcaf0d","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    files \u003d os.environ.get(\"PBR_REQUIREMENTS_FILES\")"},{"line_number":58,"context_line":"    if files:"},{"line_number":59,"context_line":"        return tuple(f.strip() for f in files.split(\u0027,\u0027))"},{"line_number":60,"context_line":"    return (list(map((\u0027-py\u0027 + str(sys.version_info[0])).join,"},{"line_number":61,"context_line":"                     map(os.path.splitext, REQUIREMENTS_FILES)))"},{"line_number":62,"context_line":"            + list(REQUIREMENTS_FILES))"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8vAQ%3D","line":60,"in_reply_to":"AAAATn%2F8vKA%3D","updated":"2013-12-20 22:07:36.000000000","message":"You got it bro.","commit_id":"0adefa57c673b9b76fd0ea7fe920608b9ce38a9e"}],"pbr/tests/test_setup.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"a985a0ab0d1003a12746013452fdaf0fb9f79f57","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        self.assertEqual([\u0027foobar\u0027, \u0027foobaz\u0027],"},{"line_number":353,"context_line":"                         packaging.parse_requirements([self.tmp_file]))"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def test_parse_requirements_python_version(self):"},{"line_number":356,"context_line":"        with open(\"requirements-py%d.txt\" % sys.version_info[0],"},{"line_number":357,"context_line":"                  \"w\") as fh:"},{"line_number":358,"context_line":"            fh.write(\"# this is a comment\\nfoobar\\n# and another one\\nfoobaz\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8vJ4%3D","line":355,"updated":"2013-12-20 21:34:12.000000000","message":"How about a test to show that requirements from the wrong python version are not being included, as well? For example, create a requirements-py1.txt with values that are not in the results of the parsed requirements.","commit_id":"0adefa57c673b9b76fd0ea7fe920608b9ce38a9e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4eab94415d61868071eb306803f91d46e7bcaf0d","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        self.assertEqual([\u0027foobar\u0027, \u0027foobaz\u0027],"},{"line_number":353,"context_line":"                         packaging.parse_requirements([self.tmp_file]))"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def test_parse_requirements_python_version(self):"},{"line_number":356,"context_line":"        with open(\"requirements-py%d.txt\" % sys.version_info[0],"},{"line_number":357,"context_line":"                  \"w\") as fh:"},{"line_number":358,"context_line":"            fh.write(\"# this is a comment\\nfoobar\\n# and another one\\nfoobaz\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8vAA%3D","line":355,"in_reply_to":"AAAATn%2F8vJ4%3D","updated":"2013-12-20 22:07:36.000000000","message":"Good idea.","commit_id":"0adefa57c673b9b76fd0ea7fe920608b9ce38a9e"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"a985a0ab0d1003a12746013452fdaf0fb9f79f57","unresolved":false,"context_lines":[{"line_number":353,"context_line":"                         packaging.parse_requirements([self.tmp_file]))"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def test_parse_requirements_python_version(self):"},{"line_number":356,"context_line":"        with open(\"requirements-py%d.txt\" % sys.version_info[0],"},{"line_number":357,"context_line":"                  \"w\") as fh:"},{"line_number":358,"context_line":"            fh.write(\"# this is a comment\\nfoobar\\n# and another one\\nfoobaz\")"},{"line_number":359,"context_line":"        self.assertEqual([\u0027foobar\u0027, \u0027foobaz\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8vJw%3D","line":356,"updated":"2013-12-20 21:34:12.000000000","message":"Is something going to clean up this file? Is it being created in a temporary directory to ensure it does not overwrite the contents in the source tree?","commit_id":"0adefa57c673b9b76fd0ea7fe920608b9ce38a9e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4eab94415d61868071eb306803f91d46e7bcaf0d","unresolved":false,"context_lines":[{"line_number":353,"context_line":"                         packaging.parse_requirements([self.tmp_file]))"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def test_parse_requirements_python_version(self):"},{"line_number":356,"context_line":"        with open(\"requirements-py%d.txt\" % sys.version_info[0],"},{"line_number":357,"context_line":"                  \"w\") as fh:"},{"line_number":358,"context_line":"            fh.write(\"# this is a comment\\nfoobar\\n# and another one\\nfoobaz\")"},{"line_number":359,"context_line":"        self.assertEqual([\u0027foobar\u0027, \u0027foobaz\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8u%2Bw%3D","line":356,"in_reply_to":"AAAATn%2F8vJw%3D","updated":"2013-12-20 22:07:36.000000000","message":"Yeah setUp from the base takes care of that already.","commit_id":"0adefa57c673b9b76fd0ea7fe920608b9ce38a9e"}]}
