)]}'
{"oslosphinx/support_matrix.css":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"d0941a6e0d566786b56c47dd5ac3061b3eff7fc8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7aa08908_b83c7dc0","updated":"2016-06-15 17:18:44.000000000","message":"This file probably needs to go down into the theme directory somewhere. There are other CSS files in oslosphinx/theme/openstack/static/ for example.","commit_id":"7c91bf8d5d1a05f6da8cc95838023216ee8d7b20"}],"oslosphinx/support_matrix.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"d0941a6e0d566786b56c47dd5ac3061b3eff7fc8","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"It is used via a single directive in the .rst file"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"  .. support_matrix::"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_f8b44536","line":18,"updated":"2016-06-15 17:18:44.000000000","message":"This looks interesting, but we\u0027re going to need a lot more documentation. Maybe you could add some examples to the developer docs for oslosphinx?","commit_id":"7c91bf8d5d1a05f6da8cc95838023216ee8d7b20"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"a1a5d86e1e88962d78b605e7be6183e65557c21b","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self.implementations \u003d {}"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"class SupportMatrixImplementation(object):"},{"line_number":60,"context_line":"    STATUS_COMPLETE \u003d \"complete\""},{"line_number":61,"context_line":"    STATUS_PARTIAL \u003d \"partial\""},{"line_number":62,"context_line":"    STATUS_MISSING \u003d \"missing\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_dcc63299","line":59,"updated":"2016-06-23 17:04:59.000000000","message":"Should we hard-code valid values or let the input file describe them?","commit_id":"4b4fe27c52b13f4767ada364de811f4029aad481"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"d9348be624a48aeaa34b0bfc81a1996f1f4082ef","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self.implementations \u003d {}"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"class SupportMatrixImplementation(object):"},{"line_number":60,"context_line":"    STATUS_COMPLETE \u003d \"complete\""},{"line_number":61,"context_line":"    STATUS_PARTIAL \u003d \"partial\""},{"line_number":62,"context_line":"    STATUS_MISSING \u003d \"missing\""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a30ddce_292ced49","line":59,"in_reply_to":"3aaa91ec_dcc63299","updated":"2017-03-07 14:12:36.000000000","message":"Input file should provide them.\n\nsee https://github.com/openstack/designate/blob/master/doc/source/support-matrix.ini#L107 \n\nand \n\nhttps://github.com/openstack/designate/blob/master/doc/ext/support_matrix.py#L158-L174","commit_id":"4b4fe27c52b13f4767ada364de811f4029aad481"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"4d769f236adf70001d6ba309308e3fc2f8aa8972","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self.implementations \u003d {}"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"class SupportMatrixImplementation(object):"},{"line_number":60,"context_line":"    STATUS_COMPLETE \u003d \"complete\""},{"line_number":61,"context_line":"    STATUS_PARTIAL \u003d \"partial\""},{"line_number":62,"context_line":"    STATUS_MISSING \u003d \"missing\""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a30ddce_01ae0b2e","line":59,"in_reply_to":"9a30ddce_21dcef11","updated":"2017-03-07 21:14:48.000000000","message":"If we are unable to get a consistent list, we need to with a file input approach. Maybe we could have things like experimental as designate has, but others projects don\u0027t have to use them?","commit_id":"4b4fe27c52b13f4767ada364de811f4029aad481"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d748d1068b15cd7fb42dae1143c1cbfe246186a1","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self.implementations \u003d {}"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"class SupportMatrixImplementation(object):"},{"line_number":60,"context_line":"    STATUS_COMPLETE \u003d \"complete\""},{"line_number":61,"context_line":"    STATUS_PARTIAL \u003d \"partial\""},{"line_number":62,"context_line":"    STATUS_MISSING \u003d \"missing\""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a30ddce_21dcef11","line":59,"in_reply_to":"9a30ddce_292ced49","updated":"2017-03-07 21:10:38.000000000","message":"Just a would be nice, but being consistent on statuses as a user is going through each project would be nice.","commit_id":"4b4fe27c52b13f4767ada364de811f4029aad481"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"a1a5d86e1e88962d78b605e7be6183e65557c21b","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            if len(name) \u003d\u003d 1:"},{"line_number":140,"context_line":"                target \u003d SupportMatrixTarget(key,"},{"line_number":141,"context_line":"                                             title,"},{"line_number":142,"context_line":"                                             name[0])"},{"line_number":143,"context_line":"            elif len(name) \u003d\u003d 2:"},{"line_number":144,"context_line":"                target \u003d SupportMatrixTarget(key,"},{"line_number":145,"context_line":"                                             title,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_b9c9b85b","line":142,"updated":"2016-06-23 17:04:59.000000000","message":"This set of conditionals can be simplified to pass the parts of name as variable-lenth parameter list like\n\n  target \u003d SupportMatrixTarget(key, title, *name)\n\nand you can avoid checking len(name). If the number of parts of name needs to be validated, that can happen explicitly before creating the target.","commit_id":"4b4fe27c52b13f4767ada364de811f4029aad481"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"a1a5d86e1e88962d78b605e7be6183e65557c21b","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                                             name[1],"},{"line_number":153,"context_line":"                                             name[2])"},{"line_number":154,"context_line":"            else:"},{"line_number":155,"context_line":"                raise Exception(\"\u0027%s\u0027 field is malformed in \u0027[%s]\u0027 section\" %"},{"line_number":156,"context_line":"                                (item, \"DEFAULT\"))"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"            targets[key] \u003d target"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_19f1ec95","line":155,"updated":"2016-06-23 17:04:59.000000000","message":"Use ValueError instead of Exception here so the error is catchable and more descriptive.","commit_id":"4b4fe27c52b13f4767ada364de811f4029aad481"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"a1a5d86e1e88962d78b605e7be6183e65557c21b","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def _get_features(self, cfg, targets, plugintype):"},{"line_number":163,"context_line":"        # All sections except \u0027targets\u0027 describe some feature of"},{"line_number":164,"context_line":"        # the Nova hypervisor driver implementation"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        features \u003d []"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_d956445b","line":164,"updated":"2016-06-23 17:04:59.000000000","message":"This comment is nova-specific.","commit_id":"4b4fe27c52b13f4767ada364de811f4029aad481"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"a1a5d86e1e88962d78b605e7be6183e65557c21b","unresolved":false,"context_lines":[{"line_number":206,"context_line":"                                           cli)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"            # Now we\u0027ve got the basic feature details, we must process"},{"line_number":209,"context_line":"            # the hypervisor driver implementation for each feature"},{"line_number":210,"context_line":"            for item in cfg.options(section):"},{"line_number":211,"context_line":"                if not item.startswith(plugintype):"},{"line_number":212,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_5914149f","line":209,"updated":"2016-06-23 17:04:59.000000000","message":"This comment looks nova-specific.","commit_id":"4b4fe27c52b13f4767ada364de811f4029aad481"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"a1a5d86e1e88962d78b605e7be6183e65557c21b","unresolved":false,"context_lines":[{"line_number":213,"context_line":""},{"line_number":214,"context_line":"                key \u003d item[len(plugintype):]"},{"line_number":215,"context_line":"                if key not in targets:"},{"line_number":216,"context_line":"                    raise Exception("},{"line_number":217,"context_line":"                        \"networking- \u0027%s\u0027 in \u0027[%s]\u0027 not declared\" %"},{"line_number":218,"context_line":"                        (item, section))"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_790f5088","line":216,"updated":"2016-06-23 17:04:59.000000000","message":"This should use a more specific error class.","commit_id":"4b4fe27c52b13f4767ada364de811f4029aad481"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"a1a5d86e1e88962d78b605e7be6183e65557c21b","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                key \u003d item[len(plugintype):]"},{"line_number":215,"context_line":"                if key not in targets:"},{"line_number":216,"context_line":"                    raise Exception("},{"line_number":217,"context_line":"                        \"networking- \u0027%s\u0027 in \u0027[%s]\u0027 not declared\" %"},{"line_number":218,"context_line":"                        (item, section))"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"                status \u003d cfg.get(section, item)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_398028c0","line":217,"updated":"2016-06-23 17:04:59.000000000","message":"This error looks neutron-specific.","commit_id":"4b4fe27c52b13f4767ada364de811f4029aad481"}]}
