)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2212163aa15d0e7a7a7d4e6674653f6f220fe8a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"254a8bd8_ef6c8100","updated":"2024-10-03 21:49:01.000000000","message":"-1 so we stay consistent","commit_id":"ffadca68280ab225e80165143ff8063600360ec9"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"0015c1c58748ec0ded1f86349f2b20fa76f41a9a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1cff5ab7_56e007b6","updated":"2024-11-07 17:46:59.000000000","message":"This did not run cleanly on my Noble VM (once I installed mypy 1.13.0), but ran fine on Jammy.\n\nmypy: commands[0]\u003e mypy --config-file ./mypy.ini neutron\nneutron/db/migration/alembic_migrations/env.py:39: error: Unused \"type: ignore\"\ncomment  [unused-ignore]\n    neutron_config \u003d config.neutron_config  # type:ignore[attr-defined]\n    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nFound 1 error in 1 file (checked 1162 source files)","commit_id":"ffadca68280ab225e80165143ff8063600360ec9"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b00f24e4118a3243e9ea7ec28d49eb4c5e714bb8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2175382b_e3286bad","in_reply_to":"1cff5ab7_56e007b6","updated":"2024-11-07 18:38:26.000000000","message":"Could you please re-test with https://review.opendev.org/c/openstack/neutron/+/934284 since I suspect you ran a different mypy version from your host instead of tox env? Thanks.","commit_id":"ffadca68280ab225e80165143ff8063600360ec9"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"6560487c21e5193d34dfe5609ea3c4bc8c9b48c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"f3ec4da7_3d8ac526","updated":"2024-11-05 23:03:06.000000000","message":"\n\nI\u0027m squashing all mypy stuff into a single patch to speed up landing it, hopefully.","commit_id":"170c44c4c04092a3ba9b3b04d55c8c96ec12ee09"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8920c4cecfaf4ffec3ff7d7c05a604d09de92897","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"c68c8a82_80b600b5","updated":"2024-11-06 23:45:23.000000000","message":"@Brian if you don\u0027t mind, please check that this doesn\u0027t break mypy run on Noble for you (this patch reverts the skip on migration_cli module, after a fix). Thanks.","commit_id":"1099f68c7fc319b0384816da7a795bfb70f1edc3"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fdd6527345d7af58e73f1fd849a54a54e42cb537","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5df0aa01_d5bec620","updated":"2024-11-07 21:58:46.000000000","message":"Looks good, maybe this should be re-based on the other change, unless it merges quickly.","commit_id":"1099f68c7fc319b0384816da7a795bfb70f1edc3"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b25d9034bffd354af51ac4e4663b973baf2666d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"18fb896a_3d1f6403","updated":"2024-11-07 02:01:02.000000000","message":"recheck","commit_id":"1099f68c7fc319b0384816da7a795bfb70f1edc3"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"930809f7ff78c2be3f198fdbfb3f2a0a0a62dfb2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"536c0848_2d495fdd","updated":"2024-11-11 17:16:43.000000000","message":"recheck bug 2087862","commit_id":"3f29ba5cdfbd55bff6d7a40fe358b2a3f7e03088"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"062e2d41441d0020c054a852e16f5eaf570ee8f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"c46b7367_fe40989c","updated":"2024-11-11 22:54:10.000000000","message":"recheck mypy has nothing to do with ovs connectivity...","commit_id":"3f29ba5cdfbd55bff6d7a40fe358b2a3f7e03088"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/commands.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1036c7c61bfd4d5536f5b732e3cb936e56a45138","unresolved":true,"context_lines":[{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from abc import ABC"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_utils import timeutils"},{"line_number":18,"context_line":"from ovsdbapp.backend.ovs_idl import command"}],"source_content_type":"text/x-python","patch_set":2,"id":"575f1285_5f56391d","line":15,"range":{"start_line":15,"start_character":2,"end_line":15,"end_character":19},"updated":"2024-10-08 14:56:13.000000000","message":"We import the whole library, not a specific class only.","commit_id":"ffadca68280ab225e80165143ff8063600360ec9"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"48ffe989157b1bba8bd65afb361e0833c808bfaa","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from abc import ABC"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_utils import timeutils"},{"line_number":18,"context_line":"from ovsdbapp.backend.ovs_idl import command"}],"source_content_type":"text/x-python","patch_set":2,"id":"450372d2_3bf92c4c","line":15,"range":{"start_line":15,"start_character":2,"end_line":15,"end_character":19},"in_reply_to":"575f1285_5f56391d","updated":"2024-10-09 21:15:14.000000000","message":"Done","commit_id":"ffadca68280ab225e80165143ff8063600360ec9"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2212163aa15d0e7a7a7d4e6674653f6f220fe8a3","unresolved":true,"context_lines":[{"line_number":723,"context_line":"            raise RuntimeError(msg)"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"class UpdateObjectExtIdsCommand(command.BaseCommand, ABC):"},{"line_number":727,"context_line":"    table: str"},{"line_number":728,"context_line":"    field \u003d \u0027name\u0027"},{"line_number":729,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"e7e5d483_3e98f467","line":726,"range":{"start_line":726,"start_character":53,"end_line":726,"end_character":56},"updated":"2024-10-03 21:49:01.000000000","message":"So I\u0027m not an expert on class ABC, but in a previous change we started using (metaclass\u003dabc.ABCMeta), which I think does the same thing as that is how class ABC is defined. I guess I didn\u0027t add a check rule as it didn\u0027t catch this usage.","commit_id":"ffadca68280ab225e80165143ff8063600360ec9"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"48ffe989157b1bba8bd65afb361e0833c808bfaa","unresolved":false,"context_lines":[{"line_number":723,"context_line":"            raise RuntimeError(msg)"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"class UpdateObjectExtIdsCommand(command.BaseCommand, ABC):"},{"line_number":727,"context_line":"    table: str"},{"line_number":728,"context_line":"    field \u003d \u0027name\u0027"},{"line_number":729,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"012890bc_862b9b12","line":726,"range":{"start_line":726,"start_character":53,"end_line":726,"end_character":56},"in_reply_to":"db939e89_78e2e587","updated":"2024-10-09 21:15:14.000000000","message":"Done","commit_id":"ffadca68280ab225e80165143ff8063600360ec9"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"3b321a669891e6b08b0b723d4c60605fffc957fb","unresolved":true,"context_lines":[{"line_number":723,"context_line":"            raise RuntimeError(msg)"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"class UpdateObjectExtIdsCommand(command.BaseCommand, ABC):"},{"line_number":727,"context_line":"    table: str"},{"line_number":728,"context_line":"    field \u003d \u0027name\u0027"},{"line_number":729,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"db939e89_78e2e587","line":726,"range":{"start_line":726,"start_character":53,"end_line":726,"end_character":56},"in_reply_to":"e7e5d483_3e98f467","updated":"2024-10-04 23:20:30.000000000","message":"Yeah it\u0027s the same thing: https://docs.python.org/3/library/abc.html#abc.ABC and the docs upstream suggest slight preference to metaclass\u003d-less form. (saying it\u0027s less confusing)","commit_id":"ffadca68280ab225e80165143ff8063600360ec9"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovsdb_monitor.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fdd6527345d7af58e73f1fd849a54a54e42cb537","unresolved":true,"context_lines":[{"line_number":45,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class BaseEvent(row_event.RowEvent, abc.ABC):"},{"line_number":49,"context_line":"    table: str"},{"line_number":50,"context_line":"    events \u003d tuple()"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"fdd14cf2_0b9165a3","line":48,"updated":"2024-11-07 21:58:46.000000000","message":"nit: metaclass\u003dabc.ABCMeta","commit_id":"1099f68c7fc319b0384816da7a795bfb70f1edc3"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"03ac53ea8e2f7e59a91440f99345e061b23da4a7","unresolved":false,"context_lines":[{"line_number":45,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"class BaseEvent(row_event.RowEvent, abc.ABC):"},{"line_number":49,"context_line":"    table: str"},{"line_number":50,"context_line":"    events \u003d tuple()"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"c105bbf9_1b1d8d06","line":48,"in_reply_to":"fdd14cf2_0b9165a3","updated":"2024-11-07 22:01:13.000000000","message":"Done","commit_id":"1099f68c7fc319b0384816da7a795bfb70f1edc3"}],"tox.ini":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"0015c1c58748ec0ded1f86349f2b20fa76f41a9a","unresolved":true,"context_lines":[{"line_number":124,"context_line":"[testenv:mypy]"},{"line_number":125,"context_line":"deps \u003d"},{"line_number":126,"context_line":"  {[testenv]deps}"},{"line_number":127,"context_line":"commands \u003d mypy --config-file ./mypy.ini neutron"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"[testenv:releasenotes]"},{"line_number":130,"context_line":"description \u003d"}],"source_content_type":"text/x-properties","patch_set":9,"id":"862fc971_4402981e","line":127,"updated":"2024-11-07 17:46:59.000000000","message":"I had to explicitly allow mypy with this line here, similar to using bash in other sections:\n\nallowlist_externals \u003d mypy","commit_id":"1099f68c7fc319b0384816da7a795bfb70f1edc3"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fdd6527345d7af58e73f1fd849a54a54e42cb537","unresolved":false,"context_lines":[{"line_number":124,"context_line":"[testenv:mypy]"},{"line_number":125,"context_line":"deps \u003d"},{"line_number":126,"context_line":"  {[testenv]deps}"},{"line_number":127,"context_line":"commands \u003d mypy --config-file ./mypy.ini neutron"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"[testenv:releasenotes]"},{"line_number":130,"context_line":"description \u003d"}],"source_content_type":"text/x-properties","patch_set":9,"id":"d14df212_dcf518a7","line":127,"in_reply_to":"7a36c01b_a3c872f3","updated":"2024-11-07 21:58:46.000000000","message":"Re-basing on that change solved the problem.","commit_id":"1099f68c7fc319b0384816da7a795bfb70f1edc3"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b00f24e4118a3243e9ea7ec28d49eb4c5e714bb8","unresolved":true,"context_lines":[{"line_number":124,"context_line":"[testenv:mypy]"},{"line_number":125,"context_line":"deps \u003d"},{"line_number":126,"context_line":"  {[testenv]deps}"},{"line_number":127,"context_line":"commands \u003d mypy --config-file ./mypy.ini neutron"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"[testenv:releasenotes]"},{"line_number":130,"context_line":"description \u003d"}],"source_content_type":"text/x-properties","patch_set":9,"id":"7a36c01b_a3c872f3","line":127,"in_reply_to":"862fc971_4402981e","updated":"2024-11-07 18:38:26.000000000","message":"This is because mypy target is broken right now. https://review.opendev.org/c/openstack/neutron/+/934284","commit_id":"1099f68c7fc319b0384816da7a795bfb70f1edc3"}]}
