)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"0a0b29ff495fb96253cf8b45044b9ce2411a672e","unresolved":true,"context_lines":[{"line_number":25,"context_line":"v2 API implementation using OpenStack SDK remains unaffected."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Closes-Bug: #2146351"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Assisted-By: Claude Sonnet 4.5"},{"line_number":30,"context_line":"Signed-off-by: Ronelle Landy \u003crlandy@redhat.com\u003e"},{"line_number":31,"context_line":"Change-Id: I7833ed40a04a510846a542ab4f846e702a95b984"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bd08f21b_0157e455","line":28,"updated":"2026-07-02 21:39:01.000000000","message":"Just a FYI -- I have proposed a openstacksdk-functional-devstack-cyborg job that you could rebase on or Depends-On if you wanted to run it on this change:\n\nhttps://review.opendev.org/c/openstack/python-cyborgclient/+/995877","commit_id":"c5cdd9929694214a285996bf975a1d94ad162dcf"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"4e708c474f5ff8469900d1d44b5a1669e6051a9e","unresolved":false,"context_lines":[{"line_number":25,"context_line":"v2 API implementation using OpenStack SDK remains unaffected."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Closes-Bug: #2146351"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Assisted-By: Claude Sonnet 4.5"},{"line_number":30,"context_line":"Signed-off-by: Ronelle Landy \u003crlandy@redhat.com\u003e"},{"line_number":31,"context_line":"Change-Id: I7833ed40a04a510846a542ab4f846e702a95b984"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5dd0d06a_31612730","line":28,"in_reply_to":"bd08f21b_0157e455","updated":"2026-07-03 08:10:49.000000000","message":"Thank you - rebased","commit_id":"c5cdd9929694214a285996bf975a1d94ad162dcf"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"ecefa075b940e1662cc13fe9d6bd585aab259a32","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"96dd89a0_06138352","updated":"2026-07-03 14:13:10.000000000","message":"Almost there,\n\nWe can drop `cyborgclient/tests/unit/common/` whole directory as only https://github.com/openstack/python-cyborgclient/blob/master/cyborgclient/tests/unit/common/__init__.py is left.\n\nand this also https://github.com/openstack/python-cyborgclient/blob/master/cyborgclient/version.py in favor of https://github.com/openstack/python-cyborgclient/blob/master/cyborgclient/__init__.py#L15","commit_id":"a90946539ca76973aadcbb50c93271d11690373e"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"248c4bef80ce5fba49ee87c4110a301f3fcaa63c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"fe7dc430_439adf1c","in_reply_to":"7ac2423d_68ceeb9d","updated":"2026-07-06 03:59:57.000000000","message":"Just delete cyborgclient/version.py file.","commit_id":"a90946539ca76973aadcbb50c93271d11690373e"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"7fbbb50403702181c3f94598a1aea991a650d827","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"7ac2423d_68ceeb9d","in_reply_to":"96dd89a0_06138352","updated":"2026-07-05 16:04:01.000000000","message":"First delete - done\nSecond - just delete or change some reference?","commit_id":"a90946539ca76973aadcbb50c93271d11690373e"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"a28c5ab3e1b220add5afbcae5b98c22f64c30059","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3c2284b7_72bd9870","in_reply_to":"fe7dc430_439adf1c","updated":"2026-07-06 05:27:46.000000000","message":"Done","commit_id":"a90946539ca76973aadcbb50c93271d11690373e"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"91d821b28370fdf6e6199a1f47d0e53457008f8b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"acee8351_db1cb273","updated":"2026-07-06 07:27:39.000000000","message":"I think we can rebase it from master and merge it as it is.","commit_id":"e3353ace1cfd7c519e15b368869db733f3132571"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2abb89ba8a6a39aba00a898824374a607d044f61","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"41ab27dc_93ef5496","updated":"2026-07-06 12:13:53.000000000","message":"actully ill just approve https://review.opendev.org/c/openstack/python-cyborgclient/+/989556","commit_id":"27ec4f48d3623e73fd9e8764a4df22e8e89127fe"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c799768c83a1cc025e51f15e0109856ef8b37b8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"3dc81c6a_248a2203","updated":"2026-07-06 12:08:37.000000000","message":"some minor nits but i think we could merge this if other agree.\n\nthe remaining nits could be done in a followup but if you respin im happy to re review quickly.\n\ni think we can get this landed today or tomorrow","commit_id":"27ec4f48d3623e73fd9e8764a4df22e8e89127fe"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a131a1a0b0f0865129844042245bedf4a75e0d38","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"7c1d9774_fe5f4999","in_reply_to":"3dc81c6a_248a2203","updated":"2026-07-06 12:15:41.000000000","message":"+1 do a followup!","commit_id":"27ec4f48d3623e73fd9e8764a4df22e8e89127fe"}],"README.rst":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"16bb6c3b5c570e1aa6090b148b57df7b2bafbc32","unresolved":false,"context_lines":[{"line_number":29,"context_line":"The project is hosted on `Launchpad`_, where bugs can be filed. The code is"},{"line_number":30,"context_line":"hosted on `OpenStack`_. Patches must be submitted using `Gerrit`_."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":".. _OpenStack: https://git.openstack.org/cgit/openstack/python-cyborgclient"},{"line_number":33,"context_line":".. _Launchpad: https://launchpad.net/python-cyborgclient"},{"line_number":34,"context_line":".. _Gerrit: https://docs.openstack.org/infra/manual/developers.html#development-workflow"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"031e43e0_a7ead805","line":32,"updated":"2026-07-03 09:16:17.000000000","message":"README still references stale git.openstack.org URLs (lines 32, 55) which redirect to opendev.org, and retains the outdated \u0027fork of python-cloudservers / Rackspace API\u0027 boilerplate (lines 36-40).\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: Since this patch already modernizes the README\u0027s CLI and Python API sections, updating the stale project links and removing the irrelevant Rackspace fork boilerplate would complete the documentation refresh and improve professionalism.\n\n**Recommendation**:\nReplace git.openstack.org/cgit/... URLs with https://opendev.org/openstack/python-cyborgclient. Consider removing or condensing the Rackspace/python-cloudservers fork paragraph since it no longer reflects the project identity.","commit_id":"10badd2da1ee3059646edb3d52b84c36761d7788"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"0521268b68cdd9a9affd5cc3986d6b3072799158","unresolved":false,"context_lines":[{"line_number":29,"context_line":"The project is hosted on `Launchpad`_, where bugs can be filed. The code is"},{"line_number":30,"context_line":"hosted on `OpenStack`_. Patches must be submitted using `Gerrit`_."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":".. _OpenStack: https://git.openstack.org/cgit/openstack/python-cyborgclient"},{"line_number":33,"context_line":".. _Launchpad: https://launchpad.net/python-cyborgclient"},{"line_number":34,"context_line":".. _Gerrit: https://docs.openstack.org/infra/manual/developers.html#development-workflow"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"2bafb31a_912087c7","line":32,"in_reply_to":"031e43e0_a7ead805","updated":"2026-07-03 11:52:05.000000000","message":"Doing the replace","commit_id":"10badd2da1ee3059646edb3d52b84c36761d7788"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"16bb6c3b5c570e1aa6090b148b57df7b2bafbc32","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    ...     username\u003d\u0027openstack\u0027,"},{"line_number":103,"context_line":"    ...     password\u003d\u0027yadayada\u0027"},{"line_number":104,"context_line":"    ... )"},{"line_number":105,"context_line":"    \u003e\u003e\u003e conn.accelerator.devices()"},{"line_number":106,"context_line":"    [...]"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"See release notes and more at `\u003chttps://docs.openstack.org/python-cyborgclient/latest/\u003e`_."}],"source_content_type":"text/x-rst","patch_set":5,"id":"2759de8e_ab5e586f","line":105,"updated":"2026-07-03 09:16:17.000000000","message":"README Python API example uses conn.accelerator.devices() which may not match the current openstacksdk accelerator proxy method signature.\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: If the SDK proxy method name has changed or devices() requires arguments, users copy-pasting this example will get an AttributeError or unexpected result, undermining confidence in the documented quick-start.\n\n**Suggestion**:\nVerify conn.accelerator.devices() against the installed openstacksdk version and confirm it returns an iterable. Consider wrapping in a list() call or documenting the return type. Cross-reference with openstacksdk accelerator proxy tests.","commit_id":"10badd2da1ee3059646edb3d52b84c36761d7788"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"062b3aba3b8b7469ae90023b3f49d0dce3744daf","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    ...     username\u003d\u0027openstack\u0027,"},{"line_number":103,"context_line":"    ...     password\u003d\u0027yadayada\u0027"},{"line_number":104,"context_line":"    ... )"},{"line_number":105,"context_line":"    \u003e\u003e\u003e conn.accelerator.devices()"},{"line_number":106,"context_line":"    [...]"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"See release notes and more at `\u003chttps://docs.openstack.org/python-cyborgclient/latest/\u003e`_."}],"source_content_type":"text/x-rst","patch_set":5,"id":"9c1c8a0b_4179a4cd","line":105,"in_reply_to":"0fa7ed64_e10b4e9a","updated":"2026-07-03 12:17:25.000000000","message":"Done","commit_id":"10badd2da1ee3059646edb3d52b84c36761d7788"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"052ba992313bda3e4b08b6a20d0d65a008365127","unresolved":true,"context_lines":[{"line_number":102,"context_line":"    ...     username\u003d\u0027openstack\u0027,"},{"line_number":103,"context_line":"    ...     password\u003d\u0027yadayada\u0027"},{"line_number":104,"context_line":"    ... )"},{"line_number":105,"context_line":"    \u003e\u003e\u003e conn.accelerator.devices()"},{"line_number":106,"context_line":"    [...]"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"See release notes and more at `\u003chttps://docs.openstack.org/python-cyborgclient/latest/\u003e`_."}],"source_content_type":"text/x-rst","patch_set":5,"id":"0fa7ed64_e10b4e9a","line":105,"in_reply_to":"2759de8e_ab5e586f","updated":"2026-07-03 09:59:30.000000000","message":"Fixing example","commit_id":"10badd2da1ee3059646edb3d52b84c36761d7788"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"062b3aba3b8b7469ae90023b3f49d0dce3744daf","unresolved":true,"context_lines":[{"line_number":15,"context_line":"    :target: https://pypi.python.org/pypi/python-cyborgclient/"},{"line_number":16,"context_line":"    :alt: Latest Version"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"python-cyborgclient is a python bindings to the OpenStack Cyborg API. There\u0027s"},{"line_number":19,"context_line":"a Python API (the ``cyborgclient`` module), and a command-line interface"},{"line_number":20,"context_line":"via the OpenStack client plugin. The client implements the OpenStack Cyborg v2 API."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"See the `OpenStack CLI Reference`_ for information on how to use the OpenStack"}],"source_content_type":"text/x-rst","patch_set":7,"id":"4312bd61_d82ec1bf","line":19,"range":{"start_line":18,"start_character":70,"end_line":19,"end_character":43},"updated":"2026-07-03 12:17:25.000000000","message":"i would perhapse remove this","commit_id":"f46df92399d984299f1ff51abce926f30a838b4d"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"7fbbb50403702181c3f94598a1aea991a650d827","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    :target: https://pypi.python.org/pypi/python-cyborgclient/"},{"line_number":16,"context_line":"    :alt: Latest Version"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"python-cyborgclient is a python bindings to the OpenStack Cyborg API. There\u0027s"},{"line_number":19,"context_line":"a Python API (the ``cyborgclient`` module), and a command-line interface"},{"line_number":20,"context_line":"via the OpenStack client plugin. The client implements the OpenStack Cyborg v2 API."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"See the `OpenStack CLI Reference`_ for information on how to use the OpenStack"}],"source_content_type":"text/x-rst","patch_set":7,"id":"4bd51044_66d326a8","line":19,"range":{"start_line":18,"start_character":70,"end_line":19,"end_character":43},"in_reply_to":"4312bd61_d82ec1bf","updated":"2026-07-05 16:04:01.000000000","message":"Done","commit_id":"f46df92399d984299f1ff51abce926f30a838b4d"}],"cyborgclient/common/httpclient.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c799768c83a1cc025e51f15e0109856ef8b37b8c","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from http import client as http_client"},{"line_number":28,"context_line":"from keystoneauth1 import adapter"},{"line_number":29,"context_line":"from oslo_utils import importutils"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from cyborgclient import exceptions"}],"source_content_type":"text/x-python","patch_set":11,"id":"fdfdfacd_622afde2","side":"PARENT","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":34},"updated":"2026-07-06 12:08:37.000000000","message":"so oslo.utils had been used here before.\n\ni belive teim is correct i do not see it used anywhere else now","commit_id":"745e927b8aa15096fd663a3a95b4b2f6faa7d9e4"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"95cec548c858d5dd3948a88289df90d0bc6c0daa","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from http import client as http_client"},{"line_number":28,"context_line":"from keystoneauth1 import adapter"},{"line_number":29,"context_line":"from oslo_utils import importutils"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from cyborgclient import exceptions"}],"source_content_type":"text/x-python","patch_set":11,"id":"958e10a9_57b7fc2e","side":"PARENT","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":34},"in_reply_to":"fdfdfacd_622afde2","updated":"2026-07-06 12:49:05.000000000","message":"Done","commit_id":"745e927b8aa15096fd663a3a95b4b2f6faa7d9e4"}],"cyborgclient/exceptions.py":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"58b3ab19340e4dcff720673a16eb0b05913b5717","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    status_code \u003d 0"},{"line_number":36,"context_line":"    message \u003d _(\"HTTP Error\")"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def __init__(self, message\u003dNone, details\u003dNone,"},{"line_number":39,"context_line":"                 response\u003dNone, request_id\u003dNone,"},{"line_number":40,"context_line":"                 url\u003dNone, method\u003dNone, status_code\u003dNone):"},{"line_number":41,"context_line":"        self.status_code \u003d status_code or self.status_code"}],"source_content_type":"text/x-python","patch_set":11,"id":"53719a3d_623f88b0","line":38,"updated":"2026-07-06 08:03:55.000000000","message":"HttpError.__init__ still accepts details, response, request_id, url, method, and status_code parameters designed for the now-deleted from_response() factory. The only surviving caller, NotAcceptable, passes just message\u003d.\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: Removing the dead parameters shrinks the exception surface to what the v2 OSC code actually uses, completing the dead-code removal this patch set out to do.\n\n**Recommendation**:\nSimplify __init__ to accept only message (and optionally status_code), or drop the now-unused keyword arguments since from_response() and _code_map are gone.","commit_id":"27ec4f48d3623e73fd9e8764a4df22e8e89127fe"}],"cyborgclient/tests/unit/utils.py":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"dbf72c693a778bfa0e3a73bd42c8b4de22ac5f80","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import testtools"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class BaseTestCase(testtools.TestCase):"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(BaseTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ef881c77_3dadf343","line":19,"updated":"2026-07-02 12:11:21.000000000","message":"tests/unit/utils.py retains only BaseTestCase after removing all v1-era helpers; the module is now very thin and could be consolidated.\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: Reducing a single-class shim module would simplify the test tree; BaseTestCase could move into tests/unit/base.py which already defines a TestCase class, consolidating test base classes.\n\n**Recommendation**:\nMove BaseTestCase into tests/unit/base.py and update the one consumer (tests/unit/common/test_utils.py) to import from there, then delete the now-empty utils.py. Alternatively leave as-is if you prefer to keep the import path stable.","commit_id":"c5cdd9929694214a285996bf975a1d94ad162dcf"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"16bb6c3b5c570e1aa6090b148b57df7b2bafbc32","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import testtools"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class BaseTestCase(testtools.TestCase):"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(BaseTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"98ea7add_0a970c4f","line":19,"updated":"2026-07-03 09:16:17.000000000","message":"The utils.py test helper retains only BaseTestCase while a separate cyborgclient/tests/base.py already provides an equivalent TestCase with richer fixtures (timeout, stdout/stderr capture, temp dirs).\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Two overlapping base test classes now exist: BaseTestCase (utils.py, only FakeLogger) and TestCase (tests/base.py, with timeout/stdout/stderr capture/temp dirs). Fragmentation leads to inconsistent test isolation and confuses contributors about which base to use.\n\n**Suggestion**:\nConsider consolidating: either move BaseTestCase\u0027s FakeLogger into the existing tests/base.py TestCase, or migrate test_utils.py to use tests/base.py and remove the now-thin utils.py wrapper entirely.","commit_id":"10badd2da1ee3059646edb3d52b84c36761d7788"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"0521268b68cdd9a9affd5cc3986d6b3072799158","unresolved":true,"context_lines":[{"line_number":16,"context_line":"import testtools"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class BaseTestCase(testtools.TestCase):"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(BaseTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"67a92f71_3b5d1d99","line":19,"in_reply_to":"98ea7add_0a970c4f","updated":"2026-07-03 11:52:05.000000000","message":"Would go with the second option ... migrate cyborgclient/tests/unit/common/test_utils.py to use tests/base.py and remove this file completely. Is that correct?","commit_id":"10badd2da1ee3059646edb3d52b84c36761d7788"}],"releasenotes/notes/drop-v1-api-and-fix-ssl-7a8f4b2c9d3e1f05.yaml":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"16bb6c3b5c570e1aa6090b148b57df7b2bafbc32","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The deprecated v1 API implementation has been removed from"},{"line_number":5,"context_line":"    python-cyborgclient. This includes the native ``cyborg`` CLI shell,"},{"line_number":6,"context_line":"    the v1 client library (``cyborgclient.v1``), and the v1 OSC plugin"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9f1375c6_d4e98269","line":3,"updated":"2026-07-03 09:16:17.000000000","message":"The release note upgrade section does not mention the removal of the \u0027cyborg\u0027 console_scripts entry point as a distinct breaking change for script callers.\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: Users who call \u0027cyborg\u0027 directly in scripts or CI automation will not find it after upgrade. Explicitly calling out the removed console script makes the upgrade path clearer and reduces support burden.\n\n**Recommendation**:\nAdd a sentence to the upgrade note such as: \u0027The standalone ``cyborg`` console script has been removed. Users should use ``openstack accelerator`` commands provided by the v2 OSC plugin instead.\u0027","commit_id":"10badd2da1ee3059646edb3d52b84c36761d7788"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"062b3aba3b8b7469ae90023b3f49d0dce3744daf","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"0cd4c20e_9dda48b3","line":20,"updated":"2026-07-03 12:17:25.000000000","message":"an add a formal deprecation of the python api bidnign telling folkd to use the sdk instead","commit_id":"f46df92399d984299f1ff51abce926f30a838b4d"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"7fbbb50403702181c3f94598a1aea991a650d827","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"0ebdc2c9_76c85e0d","line":20,"in_reply_to":"0cd4c20e_9dda48b3","updated":"2026-07-05 16:04:01.000000000","message":"Done","commit_id":"f46df92399d984299f1ff51abce926f30a838b4d"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"54dd52439e90a3545edee9af47d1cc92e2cf155a","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"deprecations:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    The native Python API bindings in python-cyborgclient are now deprecated."},{"line_number":16,"context_line":"    Users should migrate to the OpenStack SDK for programmatic access to the"},{"line_number":17,"context_line":"    Cyborg API. The OpenStack SDK provides a modern, well-maintained interface"},{"line_number":18,"context_line":"    for interacting with Cyborg and other OpenStack services. See"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"2229c92f_16a7ac0b","line":15,"updated":"2026-07-03 14:10:26.000000000","message":"The release note lists the Python API removal under \u0027deprecations\u0027, but the v1 bindings are removed in this very patch, not deprecated. No \u0027class Client\u0027 bindings remain. Calling a removed feature \u0027deprecated\u0027 is misleading for upgraders.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: Users reading the release notes during an upgrade will be told the Python API bindings are \u0027deprecated\u0027 and should migrate, when in fact those bindings no longer exist after this release. This misrepresents the nature of the change and could lead to confusion about what is still supported.\n\n**Suggestion**:\nMove this content into the existing \u0027upgrade\u0027 section (framed as a removal) rather than \u0027deprecations\u0027, or reword to clarify that the native Python API bindings have been removed and programmatic access is now exclusively via the OpenStack SDK. A \u0027deprecations\u0027 section should only be used for features that still exist but are slated for future removal.","commit_id":"a90946539ca76973aadcbb50c93271d11690373e"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"58b3ab19340e4dcff720673a16eb0b05913b5717","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"deprecations:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    The native Python API bindings in python-cyborgclient are now deprecated."},{"line_number":16,"context_line":"    Users should migrate to the OpenStack SDK for programmatic access to the"},{"line_number":17,"context_line":"    Cyborg API. The OpenStack SDK provides a modern, well-maintained interface"},{"line_number":18,"context_line":"    for interacting with Cyborg and other OpenStack services. See"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"c0423e70_0cfcbabe","line":15,"updated":"2026-07-06 08:03:55.000000000","message":"The deprecations section states the native Python API bindings \u0027are now deprecated\u0027, but this same patch removes those bindings entirely. There is nothing left to deprecate in this release.\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: Users reading release notes will not be confused by a deprecation notice for code that no longer exists, and the migration guidance will land in the correct section.\n\n**Recommendation**:\nReframe the deprecations entry as part of the upgrade/removal section, or reword it to state the bindings have been removed in favour of the OpenStack SDK.","commit_id":"27ec4f48d3623e73fd9e8764a4df22e8e89127fe"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"95cec548c858d5dd3948a88289df90d0bc6c0daa","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"deprecations:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    The native Python API bindings in python-cyborgclient are now deprecated."},{"line_number":16,"context_line":"    Users should migrate to the OpenStack SDK for programmatic access to the"},{"line_number":17,"context_line":"    Cyborg API. The OpenStack SDK provides a modern, well-maintained interface"},{"line_number":18,"context_line":"    for interacting with Cyborg and other OpenStack services. See"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"e37d9439_9222e678","line":15,"in_reply_to":"0888af18_37bb7538","updated":"2026-07-06 12:49:05.000000000","message":"Done","commit_id":"27ec4f48d3623e73fd9e8764a4df22e8e89127fe"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c799768c83a1cc025e51f15e0109856ef8b37b8c","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"deprecations:"},{"line_number":14,"context_line":"  - |"},{"line_number":15,"context_line":"    The native Python API bindings in python-cyborgclient are now deprecated."},{"line_number":16,"context_line":"    Users should migrate to the OpenStack SDK for programmatic access to the"},{"line_number":17,"context_line":"    Cyborg API. The OpenStack SDK provides a modern, well-maintained interface"},{"line_number":18,"context_line":"    for interacting with Cyborg and other OpenStack services. See"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"0888af18_37bb7538","line":15,"in_reply_to":"c0423e70_0cfcbabe","updated":"2026-07-06 12:08:37.000000000","message":"so this is refeing to the deprecation of the v2 api binding\nthe patch removed v1","commit_id":"27ec4f48d3623e73fd9e8764a4df22e8e89127fe"}],"requirements.txt":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"ecefa075b940e1662cc13fe9d6bd585aab259a32","unresolved":true,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"oslo.i18n\u003e\u003d3.15.3 # Apache-2.0"},{"line_number":7,"context_line":"oslo.serialization!\u003d2.19.1,\u003e\u003d2.18.0 # Apache-2.0"},{"line_number":8,"context_line":"oslo.utils\u003e\u003d3.33.0 # Apache-2.0"},{"line_number":9,"context_line":"osc-lib\u003e\u003d1.14.0 # Apache-2.0"},{"line_number":10,"context_line":"openstacksdk\u003e\u003d0.46.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":8,"id":"851d1677_c8fefc55","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":31},"updated":"2026-07-03 14:13:10.000000000","message":"we can drop this one also, not longer used,","commit_id":"a90946539ca76973aadcbb50c93271d11690373e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c799768c83a1cc025e51f15e0109856ef8b37b8c","unresolved":true,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"oslo.i18n\u003e\u003d3.15.3 # Apache-2.0"},{"line_number":7,"context_line":"oslo.serialization!\u003d2.19.1,\u003e\u003d2.18.0 # Apache-2.0"},{"line_number":8,"context_line":"oslo.utils\u003e\u003d3.33.0 # Apache-2.0"},{"line_number":9,"context_line":"osc-lib\u003e\u003d1.14.0 # Apache-2.0"},{"line_number":10,"context_line":"openstacksdk\u003e\u003d0.46.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":8,"id":"fa3dc96d_a4e4c1d0","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":31},"in_reply_to":"28189411_eb7fea1a","updated":"2026-07-06 12:08:37.000000000","message":"looking at https://opendev.org/openstack/python-cyborgclient/src/commit/27ec4f48d3623e73fd9e8764a4df22e8e89127fe\n\nteim is correct i do not see any remaing usage of oslo.utils so we shoudl remvoe that as well.","commit_id":"a90946539ca76973aadcbb50c93271d11690373e"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"7fbbb50403702181c3f94598a1aea991a650d827","unresolved":true,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"oslo.i18n\u003e\u003d3.15.3 # Apache-2.0"},{"line_number":7,"context_line":"oslo.serialization!\u003d2.19.1,\u003e\u003d2.18.0 # Apache-2.0"},{"line_number":8,"context_line":"oslo.utils\u003e\u003d3.33.0 # Apache-2.0"},{"line_number":9,"context_line":"osc-lib\u003e\u003d1.14.0 # Apache-2.0"},{"line_number":10,"context_line":"openstacksdk\u003e\u003d0.46.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":8,"id":"28189411_eb7fea1a","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":31},"in_reply_to":"851d1677_c8fefc55","updated":"2026-07-05 16:04:01.000000000","message":"What about the rest of the oslo requirements?","commit_id":"a90946539ca76973aadcbb50c93271d11690373e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0b594302cdc914e1edb73d967a1ca942a746167a","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"oslo.i18n\u003e\u003d3.15.3 # Apache-2.0"},{"line_number":7,"context_line":"oslo.serialization!\u003d2.19.1,\u003e\u003d2.18.0 # Apache-2.0"},{"line_number":8,"context_line":"oslo.utils\u003e\u003d3.33.0 # Apache-2.0"},{"line_number":9,"context_line":"osc-lib\u003e\u003d1.14.0 # Apache-2.0"},{"line_number":10,"context_line":"openstacksdk\u003e\u003d0.46.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":8,"id":"715ba607_1620d622","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":31},"in_reply_to":"fa3dc96d_a4e4c1d0","updated":"2026-07-06 12:47:03.000000000","message":"Done","commit_id":"a90946539ca76973aadcbb50c93271d11690373e"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"95cec548c858d5dd3948a88289df90d0bc6c0daa","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"oslo.i18n\u003e\u003d3.15.3 # Apache-2.0"},{"line_number":7,"context_line":"oslo.serialization!\u003d2.19.1,\u003e\u003d2.18.0 # Apache-2.0"},{"line_number":8,"context_line":"oslo.utils\u003e\u003d3.33.0 # Apache-2.0"},{"line_number":9,"context_line":"osc-lib\u003e\u003d1.14.0 # Apache-2.0"},{"line_number":10,"context_line":"openstacksdk\u003e\u003d0.46.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":8,"id":"9baa8729_f42ed206","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":31},"in_reply_to":"fa3dc96d_a4e4c1d0","updated":"2026-07-06 12:49:05.000000000","message":"Done","commit_id":"a90946539ca76973aadcbb50c93271d11690373e"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"58b3ab19340e4dcff720673a16eb0b05913b5717","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"oslo.i18n\u003e\u003d3.15.3 # Apache-2.0"},{"line_number":7,"context_line":"oslo.serialization!\u003d2.19.1,\u003e\u003d2.18.0 # Apache-2.0"},{"line_number":8,"context_line":"oslo.utils\u003e\u003d3.33.0 # Apache-2.0"},{"line_number":9,"context_line":"osc-lib\u003e\u003d1.14.0 # Apache-2.0"},{"line_number":10,"context_line":"openstacksdk\u003e\u003d0.46.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":11,"id":"dde531f9_71a771ef","line":8,"updated":"2026-07-06 08:03:55.000000000","message":"oslo.utils\u003e\u003d3.33.0 remains listed but is no longer imported by any surviving code. It was only used by the now-deleted httpclient.py, cliutils.py, v1/client.py, and shell.py.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: A direct requirement that nothing imports is misleading about the package\u0027s real dependencies and is the same kind of stale entry this cleanup already removed for keystoneauth1, requests, PrettyTable, and decorator.\n\n**Suggestion**:\nDrop oslo.utils from requirements.txt. It remains available transitively via openstacksdk and osc-lib if any indirect need arises.","commit_id":"27ec4f48d3623e73fd9e8764a4df22e8e89127fe"}],"setup.cfg":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"062b3aba3b8b7469ae90023b3f49d0dce3744daf","unresolved":true,"context_lines":[{"line_number":6,"context_line":"author \u003d OpenStack"},{"line_number":7,"context_line":"author_email \u003d openstack-discuss@lists.openstack.org"},{"line_number":8,"context_line":"home_page \u003d https://docs.openstack.org/python-cyborgclient/latest/"},{"line_number":9,"context_line":"python_requires \u003d \u003e\u003d3.8"},{"line_number":10,"context_line":"classifier \u003d"},{"line_number":11,"context_line":"    Environment :: OpenStack"},{"line_number":12,"context_line":"    Intended Audience :: Information Technology"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"37c8417c_bce48480","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":23},"updated":"2026-07-03 12:17:25.000000000","message":"in a followup patch there is some other cleanup i would liek to do\n\nour min verions shoudl be 3.11 perhaps 3.10 if we want to suprot a slghtly older baseline for the client but the officlly min versoin is 3.11","commit_id":"c5cdd9929694214a285996bf975a1d94ad162dcf"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c799768c83a1cc025e51f15e0109856ef8b37b8c","unresolved":true,"context_lines":[{"line_number":6,"context_line":"author \u003d OpenStack"},{"line_number":7,"context_line":"author_email \u003d openstack-discuss@lists.openstack.org"},{"line_number":8,"context_line":"home_page \u003d https://docs.openstack.org/python-cyborgclient/latest/"},{"line_number":9,"context_line":"python_requires \u003d \u003e\u003d3.8"},{"line_number":10,"context_line":"classifier \u003d"},{"line_number":11,"context_line":"    Environment :: OpenStack"},{"line_number":12,"context_line":"    Intended Audience :: Information Technology"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"079dede8_0a158691","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":23},"in_reply_to":"37c8417c_bce48480","updated":"2026-07-06 12:08:37.000000000","message":"so since you updated the classifies it would be good to also bump this ot 3.11","commit_id":"c5cdd9929694214a285996bf975a1d94ad162dcf"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"dbf72c693a778bfa0e3a73bd42c8b4de22ac5f80","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    cyborgclient"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"[entry_points]"},{"line_number":30,"context_line":"openstack.cli.extension \u003d"},{"line_number":31,"context_line":"    accelerator \u003d cyborgclient.osc.plugin"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"openstack.accelerator.v2 \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"37b35086_52d97669","line":30,"updated":"2026-07-02 12:11:21.000000000","message":"This patch removes a public API (v1) and the native cyborg CLI entry point but adds no reno release note under releasenotes/notes/.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: Consumers reading release notes will not be warned that the v1 API and the standalone cyborg console script were removed, which is a breaking change for any remaining v1 users.\n\n**Suggestion**:\nAdd a releasenotes/notes/*.yaml note using reno with an \u0027upgrade\u0027 or \u0027critical\u0027 section documenting the v1 API removal and the dropped cyborg console_scripts entry point.","commit_id":"c5cdd9929694214a285996bf975a1d94ad162dcf"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"dbf72c693a778bfa0e3a73bd42c8b4de22ac5f80","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    cyborgclient"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"[entry_points]"},{"line_number":30,"context_line":"openstack.cli.extension \u003d"},{"line_number":31,"context_line":"    accelerator \u003d cyborgclient.osc.plugin"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"openstack.accelerator.v2 \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"0eb7e06d_8ef782f7","line":30,"updated":"2026-07-02 12:11:21.000000000","message":"setup.cfg removed the v1 entry points and the cyborg console_scripts entry, but README.rst was not updated and still documents the deleted v1 API quick-start.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: README.rst lines 80 and 85 instruct users to set OS_ACCELERATOR_API_VERSION\u003d1 and line 105 shows \u0027from cyborgclient.v1 import client\u0027, which now raises ImportError since cyborgclient/v1/ was deleted by this patch.\n\n**Suggestion**:\nUpdate README.rst in this patch: change API-version examples to 2.x and replace the v1 Python API quick-start with the v2/OpenStack SDK usage, or remove the stale Python API section.","commit_id":"c5cdd9929694214a285996bf975a1d94ad162dcf"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"16bb6c3b5c570e1aa6090b148b57df7b2bafbc32","unresolved":false,"context_lines":[{"line_number":6,"context_line":"author \u003d OpenStack"},{"line_number":7,"context_line":"author_email \u003d openstack-discuss@lists.openstack.org"},{"line_number":8,"context_line":"home_page \u003d https://docs.openstack.org/python-cyborgclient/latest/"},{"line_number":9,"context_line":"python_requires \u003d \u003e\u003d3.8"},{"line_number":10,"context_line":"classifier \u003d"},{"line_number":11,"context_line":"    Environment :: OpenStack"},{"line_number":12,"context_line":"    Intended Audience :: Information Technology"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"1f87e4b6_ba5f177e","line":9,"updated":"2026-07-03 09:16:17.000000000","message":"setup.cfg python_requires and classifiers do not list Python 3.12 or 3.13 despite this patch being specifically a Python 3.12+ compatibility fix.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: Without 3.12/3.13 classifiers, automated tooling (e.g. pip classification, PyPI metadata, downstream CI matrices) will not advertise or gate on the very Python versions this patch fixes. Users on 3.12+ may assume the package is unsupported.\n\n**Suggestion**:\nAdd \u0027Programming Language :: Python :: 3.12\u0027 and \u0027Programming Language :: Python :: 3.13\u0027 to the classifier list in setup.cfg, and consider bumping python_requires to \u003e\u003d3.9 since 3.8 is EOL.","commit_id":"10badd2da1ee3059646edb3d52b84c36761d7788"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"16bb6c3b5c570e1aa6090b148b57df7b2bafbc32","unresolved":false,"context_lines":[{"line_number":26,"context_line":"packages \u003d"},{"line_number":27,"context_line":"    cyborgclient"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"[entry_points]"},{"line_number":30,"context_line":"openstack.cli.extension \u003d"},{"line_number":31,"context_line":"    accelerator \u003d cyborgclient.osc.plugin"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"e6aca1a4_c9b7bb0f","line":29,"updated":"2026-07-03 09:16:17.000000000","message":"The console_scripts section was removed from setup.cfg, leaving the [entry_points] section with only openstack.cli.extension and openstack.accelerator.v2 subsections.\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: No functional issue, but a brief inline comment in setup.cfg noting that the native CLI was intentionally removed (referencing the release note) would help future maintainers understand the entry point structure at a glance.\n\n**Recommendation**:\nConsider adding a comment above [entry_points] such as \u0027# Native cyborg CLI removed; use openstack accelerator commands via OSC plugin\u0027 for historical context.","commit_id":"10badd2da1ee3059646edb3d52b84c36761d7788"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"062b3aba3b8b7469ae90023b3f49d0dce3744daf","unresolved":true,"context_lines":[{"line_number":17,"context_line":"    Programming Language :: Python :: Implementation :: CPython"},{"line_number":18,"context_line":"    Programming Language :: Python :: 3 :: Only"},{"line_number":19,"context_line":"    Programming Language :: Python :: 3"},{"line_number":20,"context_line":"    Programming Language :: Python :: 3.8"},{"line_number":21,"context_line":"    Programming Language :: Python :: 3.9"},{"line_number":22,"context_line":"    Programming Language :: Python :: 3.10"},{"line_number":23,"context_line":"    Programming Language :: Python :: 3.11"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"[files]"},{"line_number":26,"context_line":"packages \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":7,"id":"4edaa8d8_7c6b8897","line":23,"range":{"start_line":20,"start_character":0,"end_line":23,"end_character":42},"updated":"2026-07-03 12:17:25.000000000","message":"and this should be \n\n3.11-3.14\n\nseperatly we shoudl be moving all of this information into pyprojects.toml but that shoudl be its own commit","commit_id":"f46df92399d984299f1ff51abce926f30a838b4d"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"7fbbb50403702181c3f94598a1aea991a650d827","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    Programming Language :: Python :: Implementation :: CPython"},{"line_number":18,"context_line":"    Programming Language :: Python :: 3 :: Only"},{"line_number":19,"context_line":"    Programming Language :: Python :: 3"},{"line_number":20,"context_line":"    Programming Language :: Python :: 3.8"},{"line_number":21,"context_line":"    Programming Language :: Python :: 3.9"},{"line_number":22,"context_line":"    Programming Language :: Python :: 3.10"},{"line_number":23,"context_line":"    Programming Language :: Python :: 3.11"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"[files]"},{"line_number":26,"context_line":"packages \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":7,"id":"bd5b110d_02fa3d7f","line":23,"range":{"start_line":20,"start_character":0,"end_line":23,"end_character":42},"in_reply_to":"4edaa8d8_7c6b8897","updated":"2026-07-05 16:04:01.000000000","message":"Done","commit_id":"f46df92399d984299f1ff51abce926f30a838b4d"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"54dd52439e90a3545edee9af47d1cc92e2cf155a","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    Programming Language :: Python :: Implementation :: CPython"},{"line_number":18,"context_line":"    Programming Language :: Python :: 3 :: Only"},{"line_number":19,"context_line":"    Programming Language :: Python :: 3"},{"line_number":20,"context_line":"    Programming Language :: Python :: 3.11"},{"line_number":21,"context_line":"    Programming Language :: Python :: 3.12"},{"line_number":22,"context_line":"    Programming Language :: Python :: 3.13"},{"line_number":23,"context_line":"    Programming Language :: Python :: 3.14"}],"source_content_type":"text/x-ttcn-cfg","patch_set":8,"id":"a7b76690_0b33d0ad","line":20,"updated":"2026-07-03 14:10:26.000000000","message":"setup.cfg drops the 3.8, 3.9, and 3.10 classifiers and adds 3.12, 3.13, and 3.14, but leaves \u0027python_requires \u003d \u003e\u003d3.8\u0027 unchanged. The supported-version metadata is now internally inconsistent: the classifiers advertise 3.11+ only while the install constraint still permits 3.8.\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: Aligning python_requires with the declared classifiers avoids installing the package on Python versions (3.8-3.10) that are no longer tested or officially supported, and keeps packaging metadata self-consistent.\n\n**Recommendation**:\nEither update python_requires to \u0027\u003e\u003d3.11\u0027 to match the new classifier set, or, if 3.8-3.10 are still intended to be supported, restore their classifiers. Given the Python 3.12+ compatibility focus and the dropped classifiers, raising python_requires to \u0027\u003e\u003d3.11\u0027 is the consistent choice.","commit_id":"a90946539ca76973aadcbb50c93271d11690373e"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"58b3ab19340e4dcff720673a16eb0b05913b5717","unresolved":false,"context_lines":[{"line_number":6,"context_line":"author \u003d OpenStack"},{"line_number":7,"context_line":"author_email \u003d openstack-discuss@lists.openstack.org"},{"line_number":8,"context_line":"home_page \u003d https://docs.openstack.org/python-cyborgclient/latest/"},{"line_number":9,"context_line":"python_requires \u003d \u003e\u003d3.8"},{"line_number":10,"context_line":"classifier \u003d"},{"line_number":11,"context_line":"    Environment :: OpenStack"},{"line_number":12,"context_line":"    Intended Audience :: Information Technology"}],"source_content_type":"text/x-ttcn-cfg","patch_set":11,"id":"cf41c1ff_8b2143e9","line":9,"updated":"2026-07-06 08:03:55.000000000","message":"python_requires is set to \u003e\u003d3.8 but the classifiers in this same file now only list Python 3.11, 3.12, 3.13, and 3.14. The 3.8/3.9/3.10 classifiers were dropped in this patch, but python_requires was not updated to match.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: pip will still install python-cyborgclient on Python 3.8-3.10, versions the project no longer claims to support or test, which can cause import or runtime failures on those interpreters.\n\n**Suggestion**:\nUpdate python_requires to \u003e\u003d3.11 so pip enforces the same minimum version advertised by the classifiers.","commit_id":"27ec4f48d3623e73fd9e8764a4df22e8e89127fe"}],"test-requirements.txt":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"ecefa075b940e1662cc13fe9d6bd585aab259a32","unresolved":true,"context_lines":[{"line_number":9,"context_line":"oslotest\u003e\u003d3.2.0 # Apache-2.0"},{"line_number":10,"context_line":"stestr\u003e\u003d2.2.0 # Apache-2.0"},{"line_number":11,"context_line":"testtools\u003e\u003d2.4.0 # MIT"},{"line_number":12,"context_line":"requests-mock\u003e\u003d0.6.0  # Apache-2.0"}],"source_content_type":"text/plain","patch_set":8,"id":"ae4063ec_a6bbb26b","side":"PARENT","line":12,"range":{"start_line":12,"start_character":1,"end_line":12,"end_character":34},"updated":"2026-07-03 14:13:10.000000000","message":"My bad, this one is needed for mkaing sure test passes.","commit_id":"2c4bead58436a65afd97c0e8ef41668e166310e4"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"7fbbb50403702181c3f94598a1aea991a650d827","unresolved":false,"context_lines":[{"line_number":9,"context_line":"oslotest\u003e\u003d3.2.0 # Apache-2.0"},{"line_number":10,"context_line":"stestr\u003e\u003d2.2.0 # Apache-2.0"},{"line_number":11,"context_line":"testtools\u003e\u003d2.4.0 # MIT"},{"line_number":12,"context_line":"requests-mock\u003e\u003d0.6.0  # Apache-2.0"}],"source_content_type":"text/plain","patch_set":8,"id":"3d0e7d34_c19bf369","side":"PARENT","line":12,"range":{"start_line":12,"start_character":1,"end_line":12,"end_character":34},"in_reply_to":"ae4063ec_a6bbb26b","updated":"2026-07-05 16:04:01.000000000","message":"Done","commit_id":"2c4bead58436a65afd97c0e8ef41668e166310e4"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"7fbbb50403702181c3f94598a1aea991a650d827","unresolved":false,"context_lines":[{"line_number":9,"context_line":"oslotest\u003e\u003d3.2.0 # Apache-2.0"},{"line_number":10,"context_line":"stestr\u003e\u003d2.2.0 # Apache-2.0"},{"line_number":11,"context_line":"testtools\u003e\u003d2.4.0 # MIT"},{"line_number":12,"context_line":"requests-mock\u003e\u003d0.6.0  # Apache-2.0"}],"source_content_type":"text/plain","patch_set":8,"id":"6ba1a0b9_f573de0b","side":"PARENT","line":12,"range":{"start_line":12,"start_character":1,"end_line":12,"end_character":34},"in_reply_to":"ae4063ec_a6bbb26b","updated":"2026-07-05 16:04:01.000000000","message":"Done","commit_id":"2c4bead58436a65afd97c0e8ef41668e166310e4"}]}
