)]}'
{"metropolis/cli/metroctl/format.go":[{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"e4330ce5933cbeeedcc7884376e79f21e65d164d","unresolved":true,"context_lines":[{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"\tswitch flags.format {"},{"line_number":43,"context_line":"\tcase \"plaintext\":"},{"line_number":44,"context_line":"\t\treturn \u0026encoder{"},{"line_number":45,"context_line":"\t\t\tout:       o,"},{"line_number":46,"context_line":"\t\t\tencNodeID: encPlaintextNodeID,"}],"source_content_type":"text/x-go","patch_set":4,"id":"4a58e1fc_7c374d5e","line":43,"range":{"start_line":43,"start_character":1,"end_line":43,"end_character":18},"updated":"2022-08-17 09:22:54.000000000","message":"I\u0027m not sure \u0027encoder\u0027 will adapt to other file formats (eg. json, yaml, protobuf, prototext, etc). I expected instead something table-oriented, where each encoder/output format can be called with a list of things, and then \u0027displays\u0027 these as per the format and output options (eg. verbosity for plaintext output).\n\nPerhaps for now this could be thus simplified to remove the encNodeID callback and the generalization across output formats and we\u0027ll revisit this later once we have more formats, but we don\u0027t spend time now building an abstraction that might not even work out?","commit_id":"5f731350e6780c3993e635a5563a1d832b68ef8b"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a5fbd140de661607810d5ac3d5de62fa2b3c0eba","unresolved":false,"context_lines":[{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"\tswitch flags.format {"},{"line_number":43,"context_line":"\tcase \"plaintext\":"},{"line_number":44,"context_line":"\t\treturn \u0026encoder{"},{"line_number":45,"context_line":"\t\t\tout:       o,"},{"line_number":46,"context_line":"\t\t\tencNodeID: encPlaintextNodeID,"}],"source_content_type":"text/x-go","patch_set":4,"id":"47575b23_8a729ba2","line":43,"range":{"start_line":43,"start_character":1,"end_line":43,"end_character":18},"in_reply_to":"112d2bc1_353e27d6","updated":"2022-08-24 12:45:07.000000000","message":"Done","commit_id":"5f731350e6780c3993e635a5563a1d832b68ef8b"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cd7f14d94d35152e81566e5779e62132d97b1246","unresolved":true,"context_lines":[{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"\tswitch flags.format {"},{"line_number":43,"context_line":"\tcase \"plaintext\":"},{"line_number":44,"context_line":"\t\treturn \u0026encoder{"},{"line_number":45,"context_line":"\t\t\tout:       o,"},{"line_number":46,"context_line":"\t\t\tencNodeID: encPlaintextNodeID,"}],"source_content_type":"text/x-go","patch_set":4,"id":"f7ad9aba_33f763e2","line":43,"range":{"start_line":43,"start_character":1,"end_line":43,"end_character":18},"in_reply_to":"4a58e1fc_7c374d5e","updated":"2022-08-18 14:16:06.000000000","message":"Regarding the first paragraph in general, and specifically JSON, I see your point, though this could be fixed by allowing the encoder to keep state, making it an interface. Isn\u0027t it better to do it this way?\n\nI introduced these callbacks to make this a streaming API due to the amount of data that could end up being handled there, even though this feature isn\u0027t (yet) fully integrated.","commit_id":"5f731350e6780c3993e635a5563a1d832b68ef8b"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b04d2893cd07d11044910841f73abc4512dea9a0","unresolved":true,"context_lines":[{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"\tswitch flags.format {"},{"line_number":43,"context_line":"\tcase \"plaintext\":"},{"line_number":44,"context_line":"\t\treturn \u0026encoder{"},{"line_number":45,"context_line":"\t\t\tout:       o,"},{"line_number":46,"context_line":"\t\t\tencNodeID: encPlaintextNodeID,"}],"source_content_type":"text/x-go","patch_set":4,"id":"bc13f9d8_f43893e8","line":43,"range":{"start_line":43,"start_character":1,"end_line":43,"end_character":18},"in_reply_to":"a3edee56_f2a636ad","updated":"2022-08-22 13:41:45.000000000","message":"Rewrite how and why?","commit_id":"5f731350e6780c3993e635a5563a1d832b68ef8b"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"221e80d13ec372d6a257dabf7c8fd4e6a4e0efef","unresolved":true,"context_lines":[{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"\tswitch flags.format {"},{"line_number":43,"context_line":"\tcase \"plaintext\":"},{"line_number":44,"context_line":"\t\treturn \u0026encoder{"},{"line_number":45,"context_line":"\t\t\tout:       o,"},{"line_number":46,"context_line":"\t\t\tencNodeID: encPlaintextNodeID,"}],"source_content_type":"text/x-go","patch_set":4,"id":"e15b98d6_7382f734","line":43,"range":{"start_line":43,"start_character":1,"end_line":43,"end_character":18},"in_reply_to":"bc13f9d8_f43893e8","updated":"2022-08-22 13:47:32.000000000","message":"All the concerns you\u0027ve highlighted could still be handled this way.","commit_id":"5f731350e6780c3993e635a5563a1d832b68ef8b"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cab37d52cde5048981faa1eba99fa1adbc279e43","unresolved":true,"context_lines":[{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"\tswitch flags.format {"},{"line_number":43,"context_line":"\tcase \"plaintext\":"},{"line_number":44,"context_line":"\t\treturn \u0026encoder{"},{"line_number":45,"context_line":"\t\t\tout:       o,"},{"line_number":46,"context_line":"\t\t\tencNodeID: encPlaintextNodeID,"}],"source_content_type":"text/x-go","patch_set":4,"id":"112d2bc1_353e27d6","line":43,"range":{"start_line":43,"start_character":1,"end_line":43,"end_character":18},"in_reply_to":"e15b98d6_7382f734","updated":"2022-08-22 14:11:47.000000000","message":"The API as is, I think just won\u0027t work. I don\u0027t think there\u0027s a reason to prove why, as that would require to basically implement eg. JSON functionality right away (and thus find the rough edges of this).\n\nI\u0027d just like as little code/functionality as possible around this until we\u0027re ready to implement this for real. But again, that\u0027s just an opinion.","commit_id":"5f731350e6780c3993e635a5563a1d832b68ef8b"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"d1ccbd223bbf5ea7b4bfd010d96f9f9df4898bc8","unresolved":false,"context_lines":[{"line_number":40,"context_line":"\t}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"\tswitch flags.format {"},{"line_number":43,"context_line":"\tcase \"plaintext\":"},{"line_number":44,"context_line":"\t\treturn \u0026encoder{"},{"line_number":45,"context_line":"\t\t\tout:       o,"},{"line_number":46,"context_line":"\t\t\tencNodeID: encPlaintextNodeID,"}],"source_content_type":"text/x-go","patch_set":4,"id":"a3edee56_f2a636ad","line":43,"range":{"start_line":43,"start_character":1,"end_line":43,"end_character":18},"in_reply_to":"f7ad9aba_33f763e2","updated":"2022-08-22 13:36:37.000000000","message":"As you wish. I\u0027m pretty sure we\u0027ll have to rewrite this anyway.","commit_id":"5f731350e6780c3993e635a5563a1d832b68ef8b"}],"metropolis/cli/metroctl/list.go":[{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"e4330ce5933cbeeedcc7884376e79f21e65d164d","unresolved":true,"context_lines":[{"line_number":15,"context_line":"var listCmd \u003d \u0026cobra.Command{"},{"line_number":16,"context_line":"\tShort:   \"Lists cluster nodes.\","},{"line_number":17,"context_line":"\tUse:     \"list [node-id] [--filter] [--output] [--format]\","},{"line_number":18,"context_line":"\tExample: \"metroctl list --filter node.status.external_address\u003d\u003d\\\"10.8.0.2\\\"\","},{"line_number":19,"context_line":"\tRun:     doList,"},{"line_number":20,"context_line":"\tArgs:    cobra.ArbitraryArgs,"},{"line_number":21,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":4,"id":"095b7c2f_0bfb9f5e","line":18,"range":{"start_line":18,"start_character":11,"end_line":18,"end_character":24},"updated":"2022-08-17 09:22:54.000000000","message":"Wasn\u0027t this supposed to be `metroctl node list`?","commit_id":"5f731350e6780c3993e635a5563a1d832b68ef8b"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"cd7f14d94d35152e81566e5779e62132d97b1246","unresolved":true,"context_lines":[{"line_number":15,"context_line":"var listCmd \u003d \u0026cobra.Command{"},{"line_number":16,"context_line":"\tShort:   \"Lists cluster nodes.\","},{"line_number":17,"context_line":"\tUse:     \"list [node-id] [--filter] [--output] [--format]\","},{"line_number":18,"context_line":"\tExample: \"metroctl list --filter node.status.external_address\u003d\u003d\\\"10.8.0.2\\\"\","},{"line_number":19,"context_line":"\tRun:     doList,"},{"line_number":20,"context_line":"\tArgs:    cobra.ArbitraryArgs,"},{"line_number":21,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":4,"id":"cd23a50f_4572dab4","line":18,"range":{"start_line":18,"start_character":11,"end_line":18,"end_character":24},"in_reply_to":"095b7c2f_0bfb9f5e","updated":"2022-08-18 14:16:06.000000000","message":"You\u0027re right.","commit_id":"5f731350e6780c3993e635a5563a1d832b68ef8b"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a5fbd140de661607810d5ac3d5de62fa2b3c0eba","unresolved":false,"context_lines":[{"line_number":15,"context_line":"var listCmd \u003d \u0026cobra.Command{"},{"line_number":16,"context_line":"\tShort:   \"Lists cluster nodes.\","},{"line_number":17,"context_line":"\tUse:     \"list [node-id] [--filter] [--output] [--format]\","},{"line_number":18,"context_line":"\tExample: \"metroctl list --filter node.status.external_address\u003d\u003d\\\"10.8.0.2\\\"\","},{"line_number":19,"context_line":"\tRun:     doList,"},{"line_number":20,"context_line":"\tArgs:    cobra.ArbitraryArgs,"},{"line_number":21,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":4,"id":"f4b30dd3_e98b7c07","line":18,"range":{"start_line":18,"start_character":11,"end_line":18,"end_character":24},"in_reply_to":"cd23a50f_4572dab4","updated":"2022-08-24 12:45:07.000000000","message":"Done","commit_id":"5f731350e6780c3993e635a5563a1d832b68ef8b"}]}
