)]}'
{"id":"openstack%2Fkeystoneauth~949010","triplet_id":"openstack%2Fkeystoneauth~master~Icc773b5fed07b0675a6ab91ff9fdcbcee36c41e6","project":"openstack/keystoneauth","branch":"master","topic":"drop-python39","attention_set":{},"removed_from_attention_set":{"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2025-05-30 20:56:11.000000000","reason":"Change was submitted"},"14250":{"account":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"last_update":"2025-05-30 20:56:11.000000000","reason":"Change was submitted"},"27900":{"account":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"last_update":"2025-05-30 19:11:16.000000000","reason":"\u003cGERRIT_ACCOUNT_27900\u003e replied on the change","reason_account":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}}},"hashtags":[],"change_id":"Icc773b5fed07b0675a6ab91ff9fdcbcee36c41e6","subject":"Bump Python version used for linters to 3.10","status":"MERGED","created":"2025-05-07 11:28:28.000000000","updated":"2025-05-30 20:57:24.000000000","submitted":"2025-05-30 20:56:11.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"949010-drop-python39","meta_rev_id":"e6ce776bac4a2aae7299463b67ff04039412f13b","_number":949010,"virtual_id_number":949010,"owner":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},{"value":0,"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-05-30 20:56:10.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"all":[{"value":0,"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},{"value":2,"date":"2025-05-30 19:11:16.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"all":[{"value":0,"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},{"value":1,"date":"2025-05-30 19:11:16.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-05-07 12:30:42.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2025-05-19 07:05:37.000000000","updated_by":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"reviewer":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"state":"REVIEWER"},{"updated":"2025-05-30 14:06:16.000000000","updated_by":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"reviewer":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"state":"REVIEWER"}],"messages":[{"id":"8195ed4f1daf5a3feabdafa706cf8ea8cba78a5f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2025-05-07 11:28:28.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"2b2df3b34c0c238bac193aad948f24eaa7a64236","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2025-05-07 11:33:45.000000000","message":"Patch Set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"240457b82fef655edbba78ce660eba4e86bcd66f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-05-07 12:30:42.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/588857721f71455faa715729f6f7322a\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/00cae2c646f646cf9eff5d83e7663268 : FAILURE in 55m 52s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7884e4fb431140d0b94e43e454e18c0c : SUCCESS in 2m 25s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/8a01114b668d429c9bdd141372fdbe92 : SUCCESS in 3m 03s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/3d796fe296224e1d8cf87bbd74e7d9c4 : SUCCESS in 4m 39s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a1195854e5eb40649622b984673d4fd8 : SUCCESS in 10m 42s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/8c2587d75b664ab398d8dab6188b69e0 : SUCCESS in 54m 06s\n- osc-tox-py39-tips https://zuul.opendev.org/t/openstack/build/6f0c672f83384bccaf67ac380de37041 : FAILURE in 2m 09s\n- osc-tox-py312-tips https://zuul.opendev.org/t/openstack/build/94882670164145c4b89a13d1566f39a9 : SUCCESS in 5m 37s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2657635489d64bde96b2c1ce8732ba42 : SUCCESS in 7m 58s","accounts_in_message":[],"_revision_number":2},{"id":"b248638f3eadacd123e106f9e1c2ab12b4604a0c","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2025-05-12 15:51:42.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"1d8527163bf0ee83c39f15cc327d8f076d199915","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2025-05-12 15:52:18.000000000","message":"Topic typing removed","accounts_in_message":[],"_revision_number":2},{"id":"5b24820c3c1c8c7c98b541749bceddabed5aea94","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2025-05-12 15:52:19.000000000","message":"Topic set to drop-python39","accounts_in_message":[],"_revision_number":2},{"id":"d2582954f67d919708c55c5db2ba3c4f55f68376","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-05-12 17:36:38.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0bd5d41730f5422ebeb5930708e61f67\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/0c768ed121fa413691ec8bc96bde81b8 : SUCCESS in 1h 33m 31s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ba39f3474efb4f2ebcdf6b9d66bfdeb2 : SUCCESS in 3m 22s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/ad47eefa41b1422b8871c4682c17249d : SUCCESS in 3m 28s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/5ba253c7e5714dcf8f4088264ec0db89 : SUCCESS in 7m 30s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/3c0820359ec741d2b8f8f7c9709d10a2 : SUCCESS in 13m 20s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/4c982bb201ab42b1bd26e160e17e97df : SUCCESS in 57m 50s\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/9708a54280d34ace95a7ee500b6b69ca : SUCCESS in 5m 07s\n- osc-tox-py313-tips https://zuul.opendev.org/t/openstack/build/7033f5ac7e1c427385ba53f47b42dbbb : SUCCESS in 6m 54s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/515f37045dd54b579fd1df8ea3e6530b : SUCCESS in 7m 51s","accounts_in_message":[],"_revision_number":2},{"id":"0f3f0a12cf19520b111454490dcc6320f11c0b1f","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2025-05-19 07:05:37.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"47c8c73b76e9d9989a525ffbeafa68d0ec8b0bd0","author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"date":"2025-05-30 14:06:16.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"fc64d4e42f0cf101d240faf30db31905c16420b2","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-05-30 16:56:51.000000000","message":"Patch Set 2: Verified-2\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.\nWarning:\n  Error merging gerrit/openstack/keystoneauth for 949010,2","accounts_in_message":[],"_revision_number":2},{"id":"71d92c465bd208a451877640b832b728bdcaf384","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2025-05-30 17:23:39.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-2\n* Workflow+1\n","accounts_in_message":[],"_revision_number":3},{"id":"7f710de952ae98ddd31d9e46dc9be3ae08489b8e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-05-30 18:51:15.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4b2d218a3282486b830426a1def059f9\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/bfce81e4e948412d8b65700dfad60f3d : SUCCESS in 1h 27m 07s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/03d874266f334a44962b7b203b6e99a1 : SUCCESS in 3m 24s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/75e1f3180e134b6da0ae60adacb43a90 : SUCCESS in 2m 33s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/5dd49bd7d1dd4f378712b629da22f7a1 : SUCCESS in 8m 04s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/f0b3ae69ba7849398bac602aef9dd836 : SUCCESS in 10m 55s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/a0c568e123b9406390b3b669dacc2d99 : SUCCESS in 54m 34s\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/45507eafe31240909da15faa1556bc5a : SUCCESS in 6m 12s\n- osc-tox-py313-tips https://zuul.opendev.org/t/openstack/build/149fa6c0032649ca85cae15e6dece9cd : SUCCESS in 9m 19s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d3bde811680c427b811734d728159f6e : SUCCESS in 8m 03s","accounts_in_message":[],"_revision_number":3},{"id":"86142fb87ddf6be14d4de0a4900110b1f16803e5","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2025-05-30 19:11:16.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"b7bad88e8f54f9a5a39f9d32b37c9f5b02d4bcae","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-05-30 19:12:14.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"65b10cb81a0b70bbfd448a95ce833e9c36ba441f","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-05-30 20:56:10.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/afcc0afedb2940a69a14be71c09adf2c\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/8aaaecc476f444dab8a9678c953fa40d : SUCCESS in 1h 41m 23s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d0a8ea302af64ed8b657007c683d211e : SUCCESS in 3m 16s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/85755b491f464b0ba40f721963fba444 : SUCCESS in 6m 01s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/5532753d1a3e49b2bf0622c3fd887494 : SUCCESS in 8m 25s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/3f8305a6a9f342db9a6caed1a6382eda : SUCCESS in 48m 24s\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/31b666c00f7c4c98a36e6cef52c711d0 : SUCCESS in 7m 37s\n- osc-tox-py313-tips https://zuul.opendev.org/t/openstack/build/858a7068ac7142baa587ea4b5bf0d1ef : SUCCESS in 8m 00s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/69fcc073482a47cd9ed9fb7932bb36e4 : SUCCESS in 7m 49s","accounts_in_message":[],"_revision_number":3},{"id":"96fa11861a4e4bf3b2c79b1141bc6b8d5d005dcf","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-05-30 20:56:11.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":3},{"id":"e6ce776bac4a2aae7299463b67ff04039412f13b","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-05-30 20:57:24.000000000","message":"Patch Set 3:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/485e187a414a4e5c9dca02dee654626a\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f95ee80f99da49d497577d5dfd6f4c7a : SUCCESS in 43s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"13ab55fdfdb770dd11de05ed068b9c2dfc319a97","revisions":{"9669127101e73d162309c0b56161f0bffb3b82e7":{"kind":"REWORK","_number":1,"created":"2025-05-07 11:28:28.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/10/949010/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/10/949010/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/10/949010/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/10/949010/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/10/949010/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/10/949010/1"}}},"commit":{"parents":[{"commit":"ec28703dc304a50ef09671595104fc82ec81666d","subject":"Bump Python version used for linters to 3.9","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/ec28703dc304a50ef09671595104fc82ec81666d"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-05-07 11:27:22.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-05-07 11:27:22.000000000","tz":60},"subject":"Bump minimum Python version used for linters","message":"Bump minimum Python version used for linters\n\nThis looks very large, but the only manual change is in pyproject.toml:\nthe rest is entirely ruff converting our use of e.g. \u0027typing.Union[X,\nY]\u0027 to \u0027X | Y\u0027, as added by PEP-604 [1].\n\n[1] https://peps.python.org/pep-0604/\n\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\nChange-Id: Icc773b5fed07b0675a6ab91ff9fdcbcee36c41e6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/9669127101e73d162309c0b56161f0bffb3b82e7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/9669127101e73d162309c0b56161f0bffb3b82e7"}]},"branch":"refs/heads/master"},"caec49ca76f289e9135e76e5b18a01376ee22b7e":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2025-05-07 11:33:45.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/10/949010/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/10/949010/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/10/949010/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/10/949010/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/10/949010/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/10/949010/2"}}},"commit":{"parents":[{"commit":"ec28703dc304a50ef09671595104fc82ec81666d","subject":"Bump Python version used for linters to 3.9","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/ec28703dc304a50ef09671595104fc82ec81666d"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-05-07 11:27:22.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-05-07 11:33:45.000000000","tz":0},"subject":"Bump Python version used for linters to 3.10","message":"Bump Python version used for linters to 3.10\n\nThis looks very large, but the only manual change is in pyproject.toml:\nthe rest is entirely ruff converting our use of e.g. \u0027typing.Union[X,\nY]\u0027 to \u0027X | Y\u0027, as added by PEP-604 [1].\n\n[1] https://peps.python.org/pep-0604/\n\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\nChange-Id: Icc773b5fed07b0675a6ab91ff9fdcbcee36c41e6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/caec49ca76f289e9135e76e5b18a01376ee22b7e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/caec49ca76f289e9135e76e5b18a01376ee22b7e"}]},"branch":"refs/heads/master","description":"Edit commit message"},"13ab55fdfdb770dd11de05ed068b9c2dfc319a97":{"kind":"REWORK","_number":3,"created":"2025-05-30 17:23:39.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/10/949010/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/10/949010/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/10/949010/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/10/949010/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/10/949010/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/10/949010/3"}}},"commit":{"parents":[{"commit":"ce9aa03138d468cfbb44ee8c6407e7dcda3ffb7d","subject":"Merge \"Bump Python version used for linters to 3.9\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/ce9aa03138d468cfbb44ee8c6407e7dcda3ffb7d"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-05-07 11:27:22.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-05-30 17:23:30.000000000","tz":60},"subject":"Bump Python version used for linters to 3.10","message":"Bump Python version used for linters to 3.10\n\nThis looks very large, but the only manual change is in pyproject.toml:\nthe rest is entirely ruff converting our use of e.g. \u0027typing.Union[X,\nY]\u0027 to \u0027X | Y\u0027, as added by PEP-604 [1].\n\n[1] https://peps.python.org/pep-0604/\n\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\nChange-Id: Icc773b5fed07b0675a6ab91ff9fdcbcee36c41e6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/13ab55fdfdb770dd11de05ed068b9c2dfc319a97"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/13ab55fdfdb770dd11de05ed068b9c2dfc319a97"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
