)]}'
{"pbr/packaging.py":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"9dcf8e253063d3ab942569ca68d45d74272e16dd","unresolved":false,"context_lines":[{"line_number":477,"context_line":"            domains.add(self.domain)"},{"line_number":478,"context_line":"            for d in domains:"},{"line_number":479,"context_line":"                self.domain \u003d d"},{"line_number":480,"context_line":"                babel.compile_catalog.run(self)"},{"line_number":481,"context_line":"except ImportError:"},{"line_number":482,"context_line":"    _have_babel \u003d False"},{"line_number":483,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_279ba419","line":480,"updated":"2016-01-25 23:05:28.000000000","message":"This seems like something worth doing in babel itself. Is there a bug open that upstream have rejected?","commit_id":"2d1b35c65c1bf36f132536fa576c4ef68f631abb"},{"author":{"_account_id":19173,"name":"Sven Anderson","email":"sven@redhat.com","username":"ansiwen"},"change_message_id":"33d38672b0e84c9e16b0b16f247a883fa932e120","unresolved":false,"context_lines":[{"line_number":477,"context_line":"            domains.add(self.domain)"},{"line_number":478,"context_line":"            for d in domains:"},{"line_number":479,"context_line":"                self.domain \u003d d"},{"line_number":480,"context_line":"                babel.compile_catalog.run(self)"},{"line_number":481,"context_line":"except ImportError:"},{"line_number":482,"context_line":"    _have_babel \u003d False"},{"line_number":483,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_9b73a415","line":480,"in_reply_to":"9a68dd71_279ba419","updated":"2016-01-26 19:16:39.000000000","message":"I think this is something very openstack specific. I\u0027m not aware of any other python project that separates the translations into several pot files. Originally I wanted to do this change even in nova, but there is some likelihood, that other components will adapt this as well (or may even have already)","commit_id":"2d1b35c65c1bf36f132536fa576c4ef68f631abb"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f8fc7fa6729c786331527bc724a2c3eeb5804951","unresolved":false,"context_lines":[{"line_number":475,"context_line":"            if self.domain.startswith(\u0027_AUTO_\u0027):"},{"line_number":476,"context_line":"                # automatically discover all domains by looking for .pot files."},{"line_number":477,"context_line":"                pot_files \u003d glob.glob(os.path.join(self.directory, \u0027*.pot\u0027))"},{"line_number":478,"context_line":"                domains \u003d [s[len(self.directory) + 1:-4] for s in pot_files]"},{"line_number":479,"context_line":"            else:"},{"line_number":480,"context_line":"                # domain is always set (default: \u0027messages\u0027). we add support"},{"line_number":481,"context_line":"                # for configuring several domains here."}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_9a38f6ef","line":478,"range":{"start_line":478,"start_character":27,"end_line":478,"end_character":57},"updated":"2016-01-30 17:56:10.000000000","message":"consider using\n\n  os.path.splitext(os.path.basename(s))","commit_id":"e7fd1910e93607e7cffa8edb43c432184660e2da"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f8fc7fa6729c786331527bc724a2c3eeb5804951","unresolved":false,"context_lines":[{"line_number":482,"context_line":"                domains \u003d self.domain.split()"},{"line_number":483,"context_line":"            for d in domains:"},{"line_number":484,"context_line":"                self.domain \u003d d"},{"line_number":485,"context_line":"                babel.compile_catalog.run(self)"},{"line_number":486,"context_line":"except ImportError:"},{"line_number":487,"context_line":"    _have_babel \u003d False"},{"line_number":488,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_35ef93ea","line":485,"range":{"start_line":485,"start_character":16,"end_line":485,"end_character":41},"updated":"2016-01-30 17:56:10.000000000","message":"why not super(LocalCompileCatalog, self).run()?","commit_id":"e7fd1910e93607e7cffa8edb43c432184660e2da"},{"author":{"_account_id":19173,"name":"Sven Anderson","email":"sven@redhat.com","username":"ansiwen"},"change_message_id":"c5ddc51352ac9d3c75236e9240a45f526b1b9538","unresolved":false,"context_lines":[{"line_number":482,"context_line":"                domains \u003d self.domain.split()"},{"line_number":483,"context_line":"            for d in domains:"},{"line_number":484,"context_line":"                self.domain \u003d d"},{"line_number":485,"context_line":"                babel.compile_catalog.run(self)"},{"line_number":486,"context_line":"except ImportError:"},{"line_number":487,"context_line":"    _have_babel \u003d False"},{"line_number":488,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_9a138f0d","line":485,"range":{"start_line":485,"start_character":16,"end_line":485,"end_character":41},"in_reply_to":"7a5de9d1_35ef93ea","updated":"2016-02-09 16:08:29.000000000","message":"It\u0027s not possible (probably not a new style class).","commit_id":"e7fd1910e93607e7cffa8edb43c432184660e2da"}],"pbr/tests/test_commands.py":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"9dcf8e253063d3ab942569ca68d45d74272e16dd","unresolved":false,"context_lines":[{"line_number":39,"context_line":"# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"import glob"},{"line_number":42,"context_line":"import os"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"from testtools import content"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_a7a1d495","line":42,"updated":"2016-01-25 23:05:28.000000000","message":"you\u0027re using os.path, so the import needs to be os.path. (At least in the past, import os didn\u0027t imply importing os.path.)","commit_id":"2d1b35c65c1bf36f132536fa576c4ef68f631abb"},{"author":{"_account_id":19173,"name":"Sven Anderson","email":"sven@redhat.com","username":"ansiwen"},"change_message_id":"33d38672b0e84c9e16b0b16f247a883fa932e120","unresolved":false,"context_lines":[{"line_number":39,"context_line":"# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"import glob"},{"line_number":42,"context_line":"import os"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"from testtools import content"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_5b4e8c97","line":42,"in_reply_to":"9a68dd71_a7a1d495","updated":"2016-01-26 19:16:39.000000000","message":"Done","commit_id":"2d1b35c65c1bf36f132536fa576c4ef68f631abb"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"9dcf8e253063d3ab942569ca68d45d74272e16dd","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        self.assertIn(\u0027Compiling all catalogs\u0027, stdout)"},{"line_number":77,"context_line":"        self.assertEqual(return_code, 0)"},{"line_number":78,"context_line":"        mo_file_pattern \u003d os.path.join(\u0027locale\u0027, \u0027*\u0027, \u0027LC_MESSAGES\u0027, \u0027*.mo\u0027)"},{"line_number":79,"context_line":"        self.assertEqual(len(glob.glob(mo_file_pattern)), 4)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_271884d2","line":79,"updated":"2016-01-25 23:05:28.000000000","message":"self.expectThat(glob.glob(mo_file_pattern), HasLength(4))\n\nwill give much more useful errors.","commit_id":"2d1b35c65c1bf36f132536fa576c4ef68f631abb"},{"author":{"_account_id":19173,"name":"Sven Anderson","email":"sven@redhat.com","username":"ansiwen"},"change_message_id":"33d38672b0e84c9e16b0b16f247a883fa932e120","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        self.assertIn(\u0027Compiling all catalogs\u0027, stdout)"},{"line_number":77,"context_line":"        self.assertEqual(return_code, 0)"},{"line_number":78,"context_line":"        mo_file_pattern \u003d os.path.join(\u0027locale\u0027, \u0027*\u0027, \u0027LC_MESSAGES\u0027, \u0027*.mo\u0027)"},{"line_number":79,"context_line":"        self.assertEqual(len(glob.glob(mo_file_pattern)), 4)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a68dd71_16a9cbdf","line":79,"in_reply_to":"9a68dd71_271884d2","updated":"2016-01-26 19:16:39.000000000","message":"Done","commit_id":"2d1b35c65c1bf36f132536fa576c4ef68f631abb"}],"pbr/tests/testpackage/setup.cfg":[{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"3607216144f8a85aae54aca9a441bd7c23c490d0","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"[compile_catalog]"},{"line_number":63,"context_line":"directory \u003d locale"},{"line_number":64,"context_line":"domain \u003d foo"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"9a68dd71_e1e58e08","line":64,"updated":"2016-01-25 15:43:27.000000000","message":"Cool. Makes sense. Thanks!","commit_id":"2d1b35c65c1bf36f132536fa576c4ef68f631abb"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"0f58297dcac33e65229e3f51393280e6ee402b75","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"[compile_catalog]"},{"line_number":63,"context_line":"directory \u003d locale"},{"line_number":64,"context_line":"domain \u003d foo"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"9a68dd71_1f1fdc08","line":64,"updated":"2016-01-25 15:02:14.000000000","message":"Curious why one would need to set a domain here if we\u0027re going to look for all .pot files in the dir.","commit_id":"2d1b35c65c1bf36f132536fa576c4ef68f631abb"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"9dcf8e253063d3ab942569ca68d45d74272e16dd","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"[compile_catalog]"},{"line_number":63,"context_line":"directory \u003d locale"},{"line_number":64,"context_line":"domain \u003d foo"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"9a68dd71_c78088f9","line":64,"in_reply_to":"9a68dd71_1e111d04","updated":"2016-01-25 23:05:28.000000000","message":"So, let me check I understand:\n - domain is going to be optional\n - domain will union in with discovered pot files?\n\nThat implies we need to test the following positive cases:\n - pot files with no domain set\n - domain set to the same as a discovered file\n - domain set to a value that wasn\u0027t discovered but which can compile\n\nAFAICT your patch doesn\u0027t have this coverage?","commit_id":"2d1b35c65c1bf36f132536fa576c4ef68f631abb"},{"author":{"_account_id":19173,"name":"Sven Anderson","email":"sven@redhat.com","username":"ansiwen"},"change_message_id":"ded340ca1535d293baf55160628d2af02a6a483b","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"[compile_catalog]"},{"line_number":63,"context_line":"directory \u003d locale"},{"line_number":64,"context_line":"domain \u003d foo"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"9a68dd71_1e111d04","line":64,"in_reply_to":"9a68dd71_1f1fdc08","updated":"2016-01-25 15:27:46.000000000","message":"This is a standard attribute for the compile_catalog config, so I think it should work even in this case for backwards compatibility. Also imagine someone sets a domain here which has no .pot file for whatever reason, then it still works, because the code adds it to the list of domains. Just to be on the safe side.","commit_id":"2d1b35c65c1bf36f132536fa576c4ef68f631abb"},{"author":{"_account_id":19173,"name":"Sven Anderson","email":"sven@redhat.com","username":"ansiwen"},"change_message_id":"33d38672b0e84c9e16b0b16f247a883fa932e120","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"[compile_catalog]"},{"line_number":63,"context_line":"directory \u003d locale"},{"line_number":64,"context_line":"domain \u003d foo"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"9a68dd71_6f35c0f5","line":64,"in_reply_to":"9a68dd71_c78088f9","updated":"2016-01-26 19:16:39.000000000","message":"Agreed, and while at it, I realized, that it\u0027s probably better to keep the behaviour identical if domain is set to a single value. See new patch.","commit_id":"2d1b35c65c1bf36f132536fa576c4ef68f631abb"}]}
