)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"7f79ce6f9c29c7c4a90761ac8b92fff5242eb404","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9969b9af_d828827a","updated":"2026-01-06 14:08:39.000000000","message":"@hiwkby@yahoo.com Hello Hirotaka, please review this MR.","commit_id":"c562bf9b37977989dacfd142748027299f3572dc"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"89f5d4c640468733683dd1d71f530ec8cacfd6bc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f4f1b552_5f6933f8","updated":"2026-01-19 13:55:32.000000000","message":"Hi, this is a bug fix. Please add a [release note](https://docs.openstack.org/trove/latest/contributor/release-notes.html).\n\nI’m also adding tests for this scenario now.","commit_id":"c562bf9b37977989dacfd142748027299f3572dc"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"f0a627b78405cd591c456b822a2664443a5edfc4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b1a1ae59_e165575c","updated":"2026-01-19 19:41:01.000000000","message":"recheck","commit_id":"971f3aeb572382146c3c59024e2891e9616dfd14"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"fd2e6b9a00f55b8e97d44424734c39009730649d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b07bc9c7_47fc38ec","updated":"2026-01-20 14:29:08.000000000","message":"I have added tests for the scenario now. Let\u0027s waiting for the testing result","commit_id":"d563d002165b5d19d2d41798c5da8c2ec5705d7d"}],"trove/extensions/common/models.py":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"89f5d4c640468733683dd1d71f530ec8cacfd6bc","unresolved":true,"context_lines":[{"line_number":141,"context_line":"                  {\u0027name\u0027: self.__class__.__name__, \u0027dict\u0027: self.__dict__})"},{"line_number":142,"context_line":"        return get_db_api().save(self)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def delete(self):"},{"line_number":145,"context_line":"        self.deleted_at \u003d timeutils.utcnow()"},{"line_number":146,"context_line":"        return get_db_api().save(self)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    @classmethod"},{"line_number":149,"context_line":"    def load(cls, context, instance_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1383f8fc_ce3c77dd","line":146,"range":{"start_line":144,"start_character":0,"end_line":146,"end_character":38},"updated":"2026-01-19 13:55:32.000000000","message":"Why not delete the record from the database directly, thus avoiding the need to introduce a new column \u0027deleted_at\u0027?","commit_id":"c562bf9b37977989dacfd142748027299f3572dc"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"mangust404@gmail.com","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"05ef10f9bfc1cc99c92cccdaaffa5e9578edd161","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                  {\u0027name\u0027: self.__class__.__name__, \u0027dict\u0027: self.__dict__})"},{"line_number":142,"context_line":"        return get_db_api().save(self)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def delete(self):"},{"line_number":145,"context_line":"        self.deleted_at \u003d timeutils.utcnow()"},{"line_number":146,"context_line":"        return get_db_api().save(self)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    @classmethod"},{"line_number":149,"context_line":"    def load(cls, context, instance_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"50715852_487c9976","line":146,"range":{"start_line":144,"start_character":0,"end_line":146,"end_character":38},"in_reply_to":"1383f8fc_ce3c77dd","updated":"2026-01-19 15:23:35.000000000","message":"Hello, Wu! Thank you for the review.\nYes, our first thought was to do it that way.\nBut in that case, root history functionality will break:\n`GET /v1.0/{project_id}/mgmt/instances/{instanceId}/root`\n\nI\u0027ve added release notes. Thank you for the hint, I\u0027m a novice here and may not understand very basic things. I will do it for the future commits from now 😊","commit_id":"c562bf9b37977989dacfd142748027299f3572dc"},{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"fd2e6b9a00f55b8e97d44424734c39009730649d","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                  {\u0027name\u0027: self.__class__.__name__, \u0027dict\u0027: self.__dict__})"},{"line_number":142,"context_line":"        return get_db_api().save(self)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def delete(self):"},{"line_number":145,"context_line":"        self.deleted_at \u003d timeutils.utcnow()"},{"line_number":146,"context_line":"        return get_db_api().save(self)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    @classmethod"},{"line_number":149,"context_line":"    def load(cls, context, instance_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"f64bfa59_37efd6c7","line":146,"range":{"start_line":144,"start_character":0,"end_line":146,"end_character":38},"in_reply_to":"50715852_487c9976","updated":"2026-01-20 14:29:08.000000000","message":"LGTM, I didn\u0027t consider this specific case you mentioned.","commit_id":"c562bf9b37977989dacfd142748027299f3572dc"}]}
