)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"c2668f809e90aa5e228e0793d974470ede701a4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"22d886d7_3ce72099","updated":"2026-09-10 07:42:04.000000000","message":"see https://review.opendev.org/c/openstack/rally-openstack/+/1004950/comments/2d79eab4_47bc7fa6","commit_id":"0e63aecc267d5a03d4ae41f0d61fe9a660eb8390"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"fd0927c08b361d955225b457484ee92daa83b8e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3402db72_e4419a1b","updated":"2026-09-16 07:53:59.000000000","message":"Thanks for your work","commit_id":"3fec09d5875862c1aa7b08a19d5958e552bef3d6"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"15a6965ee8a9ee725a3ebe5e48c92aa7b95dc5ba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4e957aa5_a636de24","updated":"2026-10-09 15:00:51.000000000","message":"ok, py310 is EOL now, please fix ruff configuration and let\u0027s proceed with it","commit_id":"3fec09d5875862c1aa7b08a19d5958e552bef3d6"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"ecf57f806e4f8477c9523b34f6d33c21372e1a32","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d46f1260_4d911be1","updated":"2026-10-10 12:31:02.000000000","message":"recheck","commit_id":"bdc4affda1c0611e55722318161dbf3764412c8f"}],"pyproject.toml":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"fd0927c08b361d955225b457484ee92daa83b8e8","unresolved":true,"context_lines":[{"line_number":266,"context_line":""},{"line_number":267,"context_line":"[tool.ruff]"},{"line_number":268,"context_line":"line-length \u003d 79"},{"line_number":269,"context_line":"target-version \u003d \"py310\""},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"[tool.ruff.lint]"},{"line_number":272,"context_line":"# Ruff owns pycodestyle (E/W) and pyflakes (F); flake8 runs the remaining"}],"source_content_type":"text/x-toml","patch_set":2,"id":"b21b6e42_f8d98d55","line":269,"updated":"2026-09-16 07:53:59.000000000","message":"this also needs to be updated. probably, it worth writting a simple unittest that checks that everything is synced (min version of project with mypy, ruff configs, maybe even tox config, idk)","commit_id":"3fec09d5875862c1aa7b08a19d5958e552bef3d6"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5dcd97b7cef34779dd86571a3a4ab217e124fdb3","unresolved":false,"context_lines":[{"line_number":266,"context_line":""},{"line_number":267,"context_line":"[tool.ruff]"},{"line_number":268,"context_line":"line-length \u003d 79"},{"line_number":269,"context_line":"target-version \u003d \"py310\""},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"[tool.ruff.lint]"},{"line_number":272,"context_line":"# Ruff owns pycodestyle (E/W) and pyflakes (F); flake8 runs the remaining"}],"source_content_type":"text/x-toml","patch_set":2,"id":"af27e84e_031deb8f","line":269,"in_reply_to":"b21b6e42_f8d98d55","updated":"2026-10-09 16:12:25.000000000","message":"Done. I\u0027m not aware of any good tools for that validation. Maybe some validations can be added to ruff, but I can\u0027t be committed to it atm :-(","commit_id":"3fec09d5875862c1aa7b08a19d5958e552bef3d6"}]}
