)]}'
{"id":"openstack%2Foslo.versionedobjects~992230","triplet_id":"openstack%2Foslo.versionedobjects~master~Idc9efc09870b057cc82bea5e8451a186e978feca","project":"openstack/oslo.versionedobjects","branch":"master","topic":"typing","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":"2026-06-09 22:02:39.000000000","reason":"\u003cGERRIT_ACCOUNT_15334\u003e replied on the change","reason_account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}}},"hashtags":[],"change_id":"Idc9efc09870b057cc82bea5e8451a186e978feca","subject":"tests: Add mypy plugin integration tests","status":"MERGED","created":"2026-06-08 12:38:53.000000000","updated":"2026-06-10 18:21:18.000000000","submitted":"2026-06-10 18:19:30.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":88,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"992230-typing","meta_rev_id":"4b597f680ad0a8fc26a4827af07817eb81e644d4","_number":992230,"virtual_id_number":992230,"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-06-10 18:19:30.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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":2,"date":"2026-06-09 22:02:39.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":1,"date":"2026-06-09 22:02:39.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"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},"Backport-Candidate":{"all":[{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do Not Backport","-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport","+2":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-08 14:57:36.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"}],"messages":[{"id":"f594d07ba0784756b8fad1cebce3011e86854a19","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-06-08 12:38:53.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"820d5f09a1257bf3955889754ba1884d141fdef3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-06-08 13:05:42.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.","accounts_in_message":[],"_revision_number":2},{"id":"e847a0d3e0ff683b64ca95468b907efad888c886","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-08 14:57:36.000000000","message":"Patch Set 2: Verified-1\n\n(29 comments)\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/256ccceb454b411b8179d799635c31eb\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/e1f34f46a4db423b8890b65f3db332ca : SUCCESS in 4m 29s\n- requirements-check https://zuul.opendev.org/t/openstack/build/d7079284868b4758bf4174fb4787300f : SUCCESS in 2m 48s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/c61f3e0d371241e9a9cd0b04f4edf5a9 : SUCCESS in 1h 47m 08s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/269042ccac334accb193062e68295eaf : SUCCESS in 4m 13s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/7bad07f6362e46afb32515fcadd601e2 : SUCCESS in 3m 10s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/cb45bd38873a468f956cef7464d7d823 : SUCCESS in 3m 50s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/d909b856f68e47e4bcd528e8c6af6c33 : SUCCESS in 4m 58s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f8eddbab66484ef3937f50b2fc3778c7 : SUCCESS in 3m 47s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/d2c774b0c2fc46fa93b49931f7525014 : SUCCESS in 5m 35s\n- oslo.versionedobjects-src-grenade-multinode https://zuul.opendev.org/t/openstack/build/a8c8fefdc85c45ee9da8094976b098cc : SUCCESS in 39m 28s (non-voting)\n- oslo.versionedobjects-nova-tox-py313 https://zuul.opendev.org/t/openstack/build/2ab3930f4da045549d319796f43873f7 : FAILURE in 16m 14s\n- oslo.versionedobjects-ironic-tox-py313 https://zuul.opendev.org/t/openstack/build/b70a58d196164b43a778c1581dac298a : SUCCESS in 7m 45s","accounts_in_message":[],"_revision_number":2},{"id":"73e0d033d280bfab91cdc2762c41821e9b69e91a","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-06-09 22:02:39.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"3c14f26b299d4deab21f097a876364dbfa91ea84","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-10 00:01:32.000000000","message":"Patch Set 2: Verified+1\n\n(29 comments)\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/cff05c2eaeb14a57be8af8760ea12841\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/fb9ba498f3c441a982eb833f09bc5478 : SUCCESS in 1m 50s\n- requirements-check https://zuul.opendev.org/t/openstack/build/816f317e662e4fd6890b3b5b606761fe : SUCCESS in 2m 08s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/e8db8228ff9548bfb662238d41a64809 : SUCCESS in 1h 53m 20s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7fa9e92f45d048a1a2fda1c89a138db6 : SUCCESS in 5m 47s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/2013b0a1c1cc4bd39fc8bc1df2dc142b : SUCCESS in 3m 35s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/da99962a450442e7b5e32a4bc94e7593 : SUCCESS in 4m 09s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/716e048386164e41b6d995d2db6e13e7 : SUCCESS in 7m 55s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8bf2da2908fb41f18b662aa8473ca654 : SUCCESS in 2m 38s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/cf7e39aab33c4f1fae496d3aea72e0a3 : SUCCESS in 3m 24s\n- oslo.versionedobjects-src-grenade-multinode https://zuul.opendev.org/t/openstack/build/9a07b9cae7fc4829a5ca163aa8bb3c16 : SUCCESS in 44m 38s (non-voting)\n- oslo.versionedobjects-nova-tox-py313 https://zuul.opendev.org/t/openstack/build/33024484ba6b4050ae04d18796c4c6e2 : SUCCESS in 12m 20s\n- oslo.versionedobjects-ironic-tox-py313 https://zuul.opendev.org/t/openstack/build/b55c69b76dda49728678199b9509f591 : SUCCESS in 8m 01s","accounts_in_message":[],"_revision_number":2},{"id":"5310b769d3c1d435a1c54bab8e053bd1a0aed8ce","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-10 16:25:04.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"d90c4a51d36602d02c11ccabb3d681d5474e5ce9","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-10 18:19:30.000000000","message":"Patch Set 2: Verified+2\n\n(29 comments)\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9ec9354cdfb34b19afba6b13ba710967\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/48fa7f3a17664c7195f5112149bc5142 : SUCCESS in 3m 37s\n- requirements-check https://zuul.opendev.org/t/openstack/build/fea5e90cee2e4b1b85094d293aa96da8 : SUCCESS in 2m 16s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/fad9b33f891047ffb61d171d957c03dd : SUCCESS in 1h 47m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1e32fb7faa4b477e9dbae703149390e5 : SUCCESS in 2m 38s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/2e9a7125324b4b59ab93cd5a81f3faf6 : SUCCESS in 3m 25s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/75e3671249274d59b4279bb969f8052c : SUCCESS in 4m 09s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/62cb1da166264a6692dca4b4b4d5528d : SUCCESS in 2m 19s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/af805c4809fa4569a7f1e8b652f02bfb : SUCCESS in 5m 50s\n- oslo.versionedobjects-nova-tox-py313 https://zuul.opendev.org/t/openstack/build/e9084073c38841208080a750709d81c5 : SUCCESS in 13m 53s\n- oslo.versionedobjects-ironic-tox-py313 https://zuul.opendev.org/t/openstack/build/418b20d3f6a5406db383e9285e52e4c8 : SUCCESS in 8m 52s","accounts_in_message":[],"_revision_number":2},{"id":"86b8b28a935be71d3da4060a1c35b2e669b4fed6","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-10 18:19:30.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"4b597f680ad0a8fc26a4827af07817eb81e644d4","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-10 18:21:18.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0b710e8420e446128ddb7c197e43b587\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/628c600ecd3e4350bca0c5886f6952ea : SUCCESS in 42s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"e0b50d51b581ec70256063fa310559dab7765595","revisions":{"c607c863af5555cde8e20dc26a9817ffd7d4d0ad":{"kind":"REWORK","_number":1,"created":"2026-06-08 12:38:53.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/30/992230/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/30/992230/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/30/992230/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/30/992230/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/30/992230/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/30/992230/1"}}},"commit":{"parents":[{"commit":"330446af3367393f12f134b36a0da28985105188","subject":"mypy: Fix cross-module field inheritance for mixin classes","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/330446af3367393f12f134b36a0da28985105188"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-05-12 15:42:17.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-06-08 12:36:08.000000000","tz":60},"subject":"tests: Add mypy plugin integration tests","message":"tests: Add mypy plugin integration tests\n\nAdd integration tests that run mypy programmatically via mypy.api.run()\nagainst fixture files in a new test_data/ directory. Each fixture uses\nreveal_type() with inline annotation comments to surface inferred field\ntypes and the tests assert the resulting types match expected values.\n\n  reveal_type(obj.uuid)  # N: Revealed type is \"str\"\n\nThis mirrors the convention used by mypy\u0027s own test harness.\n\nChange-Id: Idc9efc09870b057cc82bea5e8451a186e978feca\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\nAssisted-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/c607c863af5555cde8e20dc26a9817ffd7d4d0ad"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/c607c863af5555cde8e20dc26a9817ffd7d4d0ad"}]},"branch":"refs/heads/master"},"e0b50d51b581ec70256063fa310559dab7765595":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-06-08 13:05:42.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/30/992230/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/30/992230/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/30/992230/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/30/992230/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/30/992230/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/30/992230/2"}}},"commit":{"parents":[{"commit":"04079914ab548d8f4208fc3e92b995d67d9206ec","subject":"Drop support for Python 3.10","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/04079914ab548d8f4208fc3e92b995d67d9206ec"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-05-12 15:42:17.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-06-08 13:04:27.000000000","tz":60},"subject":"tests: Add mypy plugin integration tests","message":"tests: Add mypy plugin integration tests\n\nAdd integration tests that run mypy programmatically via mypy.api.run()\nagainst fixture files in a new test_data/ directory. Each fixture uses\nreveal_type() with inline annotation comments to surface inferred field\ntypes and the tests assert the resulting types match expected values.\n\n  reveal_type(obj.uuid)  # N: Revealed type is \"str\"\n\nThis mirrors the convention used by mypy\u0027s own test harness.\n\nChange-Id: Idc9efc09870b057cc82bea5e8451a186e978feca\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\nAssisted-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/e0b50d51b581ec70256063fa310559dab7765595"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/e0b50d51b581ec70256063fa310559dab7765595"}]},"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},{"label":"Backport-Candidate","status":"MAY"}]}],"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":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Backport-Candidate","description":"Backport candidate status","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"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":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"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":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
