)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":31737,"name":"Hirotaka Wakabayashi","email":"hiwkby@yahoo.com","username":"hiwkby"},"change_message_id":"19b74f41a578537f838b7a0c45df058322efd9a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"cc0d7e53_f55f4c40","updated":"2025-12-14 23:13:09.000000000","message":"Hello mongoose404,\n\nThank you for the patch! I appreciate your contribution. Could you please also add a unit test for this patch? It would help ensure everything works as expected. You can find more information on testing here: https://docs.openstack.org/trove/latest/contributor/testing.html\n\nThank you!","commit_id":"849fad64115b5b8da5b5bc1e5beb6c24d0fcdfb2"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"mangust404@gmail.com","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"30ea8c03a644a08c97419c4a12e9617d9fbf5ec6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3c4b2cdc_893a1d87","in_reply_to":"cc0d7e53_f55f4c40","updated":"2025-12-15 04:35:21.000000000","message":"Hello, Hirotaka! Yes, sure, here\u0027s the updated patchset.\n\nBesides of KeyValueCodec serialize/deserialize tests I also added configuration params validation test and noticed that validation for float values is also wasn\u0027t working as expected. Fixed.","commit_id":"849fad64115b5b8da5b5bc1e5beb6c24d0fcdfb2"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"ef4d1eebd48abd8e0b8bf6ffa222a19e8a907ed6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e0cffc78_c4218a4f","updated":"2026-01-06 14:09:25.000000000","message":"LGTM\n\n@wchy1001@gmail.com wait your 😊","commit_id":"77c372f6d87461d57f6768157a61a6d5a2248520"},{"author":{"_account_id":31737,"name":"Hirotaka Wakabayashi","email":"hiwkby@yahoo.com","username":"hiwkby"},"change_message_id":"e08246fc148026e020b762cdda31dd3fbb65f345","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e311ab56_cadfb4aa","updated":"2025-12-15 09:25:59.000000000","message":"LGTM 😊 Thanks for the patch!\n```\ntrove.tests.unittests.common.test_stream_codecs.TestStreamCodecs.test_serialize_deserialize_base64codec           0.001\ntrove.tests.unittests.common.test_stream_codecs.TestStreamCodecs.test_serialize_deserialize_keyvaluecodec         0.001\ntrove.tests.unittests.common.test_stream_codecs.TestStreamCodecs.test_serialize_keyvaluecodec_with_value_quoting  0.001\n```","commit_id":"77c372f6d87461d57f6768157a61a6d5a2248520"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"38a4806161198f7ed487f9953ffe99bc8a0f49e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"86c602c2_afc31813","updated":"2026-01-08 13:19:29.000000000","message":"LGTM","commit_id":"b166dc52f8fbc406bad93665eac649f67cb1ce72"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"2fc738a371461c1fdea4462d2ff1ad2cc1adbe10","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"85de8e8c_1254afed","updated":"2026-01-09 08:02:26.000000000","message":"recheck","commit_id":"5a44f6390967cd8f60ae2ba96ee4ca7e5fc1b282"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"d6eb4c3f8b0305432f289d176166b5c2243b5a52","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c6e1eec1_a6923974","updated":"2026-01-09 11:16:42.000000000","message":"wait good bild :)","commit_id":"cfdee480c5750681c8e69db6de5024835f97334a"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"mangust404@gmail.com","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"e9f3c9faa339988f0cfe290c599c940307d4fb75","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d97a1d5c_237dccca","in_reply_to":"c6e1eec1_a6923974","updated":"2026-01-09 13:38:03.000000000","message":"I can see there is still a broken identation, trove/tests/unittests/common/test_stream_codecs.py:43","commit_id":"cfdee480c5750681c8e69db6de5024835f97334a"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"ce9871f1998d42c44e91b694f9b38631d39d68a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"da62ea95_2f60c682","in_reply_to":"d97a1d5c_237dccca","updated":"2026-01-09 16:14:10.000000000","message":"Yes, now sorted.","commit_id":"cfdee480c5750681c8e69db6de5024835f97334a"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"ce9871f1998d42c44e91b694f9b38631d39d68a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"dea3af95_e8e374a6","updated":"2026-01-09 16:14:10.000000000","message":"@wchy1001@gmail.com hello, please merge again.","commit_id":"ece29cea9dbae80f2b809663a6cd379ec2383344"}],"trove/tests/unittests/common/test_stream_codecs.py":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"9cd6a7f3380d6f0b2b2b932627f0ba23d38ad420","unresolved":true,"context_lines":[{"line_number":39,"context_line":"        for datum in data:"},{"line_number":40,"context_line":"            serialized_data \u003d codec.serialize(datum)"},{"line_number":41,"context_line":"            deserialized_data \u003d codec.deserialize(serialized_data)"},{"line_number":42,"context_line":"            self. assertEqual(datum, deserialized_data,"},{"line_number":43,"context_line":"                              \"Serialize/Deserialize failed\")"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def test_serialize_deserialize_keyvaluecodec(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"f8760a58_fcfae806","line":42,"range":{"start_line":42,"start_character":17,"end_line":42,"end_character":18},"updated":"2026-01-07 13:39:51.000000000","message":"could you help to remove this space?","commit_id":"77c372f6d87461d57f6768157a61a6d5a2248520"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"6defe58951ebac80a584eff21490886d09e24506","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        for datum in data:"},{"line_number":40,"context_line":"            serialized_data \u003d codec.serialize(datum)"},{"line_number":41,"context_line":"            deserialized_data \u003d codec.deserialize(serialized_data)"},{"line_number":42,"context_line":"            self. assertEqual(datum, deserialized_data,"},{"line_number":43,"context_line":"                              \"Serialize/Deserialize failed\")"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def test_serialize_deserialize_keyvaluecodec(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"79cdf92e_0bfc8e5a","line":42,"range":{"start_line":42,"start_character":17,"end_line":42,"end_character":18},"in_reply_to":"f8760a58_fcfae806","updated":"2026-01-08 13:11:51.000000000","message":"Done","commit_id":"77c372f6d87461d57f6768157a61a6d5a2248520"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"9cd6a7f3380d6f0b2b2b932627f0ba23d38ad420","unresolved":true,"context_lines":[{"line_number":56,"context_line":"        # expected behavior"},{"line_number":57,"context_line":"        deserialized_data[\u0027int\u0027] \u003d int(deserialized_data[\u0027int\u0027])"},{"line_number":58,"context_line":"        deserialized_data[\u0027float\u0027] \u003d float(deserialized_data[\u0027float\u0027])"},{"line_number":59,"context_line":"        self. assertEqual(data, deserialized_data)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def test_serialize_keyvaluecodec_with_value_quoting(self):"},{"line_number":62,"context_line":"        data \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"5bc81acf_95a10807","line":59,"range":{"start_line":59,"start_character":13,"end_line":59,"end_character":14},"updated":"2026-01-07 13:39:51.000000000","message":"ditto","commit_id":"77c372f6d87461d57f6768157a61a6d5a2248520"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"6defe58951ebac80a584eff21490886d09e24506","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        # expected behavior"},{"line_number":57,"context_line":"        deserialized_data[\u0027int\u0027] \u003d int(deserialized_data[\u0027int\u0027])"},{"line_number":58,"context_line":"        deserialized_data[\u0027float\u0027] \u003d float(deserialized_data[\u0027float\u0027])"},{"line_number":59,"context_line":"        self. assertEqual(data, deserialized_data)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def test_serialize_keyvaluecodec_with_value_quoting(self):"},{"line_number":62,"context_line":"        data \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"70a566f9_ab978643","line":59,"range":{"start_line":59,"start_character":13,"end_line":59,"end_character":14},"in_reply_to":"5bc81acf_95a10807","updated":"2026-01-08 13:11:51.000000000","message":"Done","commit_id":"77c372f6d87461d57f6768157a61a6d5a2248520"}]}
