)]}'
{"id":"openstack%2Fosc-lib~949870","triplet_id":"openstack%2Fosc-lib~master~I7fa445b8142d614928b0147098c878a58fe74c60","project":"openstack/osc-lib","branch":"master","topic":"bug/2107339","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-15 13:41:07.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I7fa445b8142d614928b0147098c878a58fe74c60","subject":"Use Python 3.8-style type hints","status":"MERGED","created":"2025-05-15 10:31:26.000000000","updated":"2025-05-15 13:41:50.000000000","submitted":"2025-05-15 13:41:07.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"949870-bug/2107339","meta_rev_id":"db19ff6f6dbb565a60937660519eabb553f20984","_number":949870,"virtual_id_number":949870,"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":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-05-15 13:41:07.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":2,"date":"2025-05-15 12:34:56.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":1,"date":"2025-05-15 12:34:56.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":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-15 11:47:50.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-15 12:34:56.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"}],"messages":[{"id":"93a7e06817f8fc2f6635d7eba7601a3f57ce8746","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2025-05-15 10:31:26.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"523c99201fb7b6ddd565e2e2d2aa40b0e9137a20","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-05-15 11:47:50.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/cac4d8a5e39245ff9c1196bafbbec70b\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1a46feddbe46420a87db3a15a14cdd3d : SUCCESS in 3m 38s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/5a99548eda214f089bfd71619e453b0f : SUCCESS in 1m 43s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/f30aa9de3e90424ea0a8c621ef3c5c1b : SUCCESS in 3m 09s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/9421788168354595893fb7b85fea3d7f : SUCCESS in 7m 13s (non-voting)\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/39721a9e304b4fc39773ea97afdefbe4 : SUCCESS in 4m 28s\n- osc-tox-py313-tips https://zuul.opendev.org/t/openstack/build/4f6b7ee0d81a49d9a2d8940382fbf0a7 : SUCCESS in 9m 46s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/499fedebfb0347e6964a5fbb2ff16d4e : SUCCESS in 3m 31s\n- osc-functional-devstack https://zuul.opendev.org/t/openstack/build/ad1399fe03ef4adcb6ec37a86698451a : SUCCESS in 1h 09m 12s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/be8578782c9340a2b0bfe9237c618e1e : SUCCESS in 1h 10m 00s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"197f533e94237e43db2d7f82c4199ea4fd349a8f","author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"date":"2025-05-15 12:34:56.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"512119b23e914d0b45024a720bb4ff167b6f0c89","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-05-15 12:35:20.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"d397ea08f480cb152152dfd0b974ad730b9d816a","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-05-15 13:41:07.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c650b00c2cb040a3b9b0f09dcf690dbb\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/eeee51e71a4e402d9e772140a5cc3ce4 : SUCCESS in 3m 11s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/b48a5df5f7cd4b31b0ae8896745eb1e2 : SUCCESS in 2m 59s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/dac8bac4762e402bb794ba1b84ba937e : SUCCESS in 2m 13s\n- osc-tox-py310-tips https://zuul.opendev.org/t/openstack/build/aee596e985364fd8a7f7715bcd1b49c9 : SUCCESS in 2m 23s\n- osc-tox-py313-tips https://zuul.opendev.org/t/openstack/build/08cd433183ad4f03824eefb7d914d6ed : SUCCESS in 7m 01s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2e5c58b12c104e2d8cc58195fef3ff92 : SUCCESS in 4m 12s\n- osc-functional-devstack https://zuul.opendev.org/t/openstack/build/d2855c9bb9f14e779b83626c614ce339 : SUCCESS in 1h 05m 42s","accounts_in_message":[],"_revision_number":1},{"id":"602d4e04c3ccfc1b96169e2620e95f8cf427e36f","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-05-15 13:41:07.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"db19ff6f6dbb565a60937660519eabb553f20984","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-05-15 13:41:50.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c31043533b314ad491a128deb371fa39\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/29cab9886d9b4222ba467dcdde4f1612 : SUCCESS in 35s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"81151cde1974bd949d08f05d373df7e624ee13bc","revisions":{"81151cde1974bd949d08f05d373df7e624ee13bc":{"kind":"REWORK","_number":1,"created":"2025-05-15 10:31:26.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/70/949870/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/osc-lib","ref":"refs/changes/70/949870/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/osc-lib refs/changes/70/949870/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/osc-lib refs/changes/70/949870/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/osc-lib refs/changes/70/949870/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/osc-lib refs/changes/70/949870/1"}}},"commit":{"parents":[{"commit":"d4d9f8adaef3f6f65eff1b2bd769a8a2640c1055","subject":"Temporarily undrop support for Python 3.8, 3.9","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-lib/commit/d4d9f8adaef3f6f65eff1b2bd769a8a2640c1055"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-05-15 10:05:22.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-05-15 10:30:50.000000000","tz":60},"subject":"Use Python 3.8-style type hints","message":"Use Python 3.8-style type hints\n\nMost collections types are not subscriptable until 3.9, thus we update\nthe following.\n\n  list -\u003e ty.List\n  dict -\u003e ty.Dict\n  tuple -\u003e ty.Dict\n  frozenset -\u003e ty.FrozenSet\n  collections.abc.Callable -\u003e ty.Callable\n  collections.abc.Iterable -\u003e ty.Callable\n  collections.abc.Mapping -\u003e ty.Mapping\n  collections.abc.MutableMapping -\u003e ty.MutableMapping\n  collections.abc.Sequence -\u003e ty.Sequence\n\nWe also remove type parameters from the following, since the versions of\nthe libraries that provide these hints only support Python 3.9.\n\n  cliff.columns.FormattableColumn\n  keystoneauth1.loading.identity.BaseIdentityLoader\n\nFinally, we set the Python version used for linters to Python 3.8 to\ncorrectly highlight these issues.\n\nChange-Id: I7fa445b8142d614928b0147098c878a58fe74c60\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-lib/commit/81151cde1974bd949d08f05d373df7e624ee13bc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-lib/commit/81151cde1974bd949d08f05d373df7e624ee13bc"}]},"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":{}}}]}
