)]}'
{"id":"openstack%2Foslo.versionedobjects~981494","triplet_id":"openstack%2Foslo.versionedobjects~master~I6007e67ec4f1365e06317fff386eff84016cfd0b","project":"openstack/oslo.versionedobjects","branch":"master","topic":"annotation-style-ovos","attention_set":{"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2026-03-20 18:03:28.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I6007e67ec4f1365e06317fff386eff84016cfd0b","subject":"Add support for dataclass style o.vos","status":"NEW","created":"2026-03-20 11:22:33.000000000","updated":"2026-04-18 00:32:30.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"3f98f03dc1e31ef68bc6ab5a6b5de031b2e17567","_number":981494,"virtual_id_number":981494,"owner":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-04-18 00:32: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":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_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":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_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"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_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-03-20 13:07:38.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":"adb26ff07eef89395d491dbe541da24e66a22240","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-03-20 11:22:33.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ea6800f2759b3ea801f0ecc6ede27d28e3b18ad6","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-03-20 12:48:56.000000000","message":"Patch Set 1: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"c833dafc22a56371c84f12ac98fad5c147ccba99","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-20 13:07:38.000000000","message":"Patch Set 1: Verified-1\n\n(4 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/90d56676e1bd431581705c40c87e50c0\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/8e3ec747a8e942ce859f4adf033358af : SUCCESS in 1h 37m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1b17168f648a43228f119797c262774d : FAILURE in 4m 29s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/e8e1a1807a6043fd96136cc7977180dd : SUCCESS in 4m 15s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b70b6634e028489fabd9908a6c15771b : SUCCESS in 2m 17s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/e73c581291bd4d288b580e5bc1501e4c : SUCCESS in 8m 49s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ea39977ac9c647a2b9c5b832f72f8a89 : SUCCESS in 3m 54s\n- oslo.versionedobjects-src-grenade-multinode https://zuul.opendev.org/t/openstack/build/1b908935e1b142148a9ebbe86eb3ae31 : SUCCESS in 1h 14m 01s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"db2ef29f398af2ec49001988ef361b87cdd386af","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-03-20 14:45:24.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"f469aad5171a20661c17d9eb51f5b8fda260f336","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-03-20 14:55:29.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.\n\nOutdated Votes:\n* Verified-1\n* Workflow-1\n","accounts_in_message":[],"_revision_number":2},{"id":"a206488603ed9ddf50e56193c1892f782aa40ba2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-20 18:03:28.000000000","message":"Patch Set 2: Verified-1\n\n(4 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/e64c99ae5a15445d84551b41b10d5325\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/2ef3a003cb9e4cddaf4d923500ca6c9e : SUCCESS in 1h 50m 45s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7c997b22fc51402089c4c31478bd7a1d : FAILURE in 4m 19s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/ceb39a01139f4485822732aae142ea22 : SUCCESS in 3m 24s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/6e16e7a28e134effbce036b4b11e1ce6 : SUCCESS in 4m 21s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/32fadf350f71437b89e07e01c622676b : SUCCESS in 5m 25s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b43d0f2269014b469158429f8ff75d46 : SUCCESS in 4m 20s\n- oslo.versionedobjects-src-grenade-multinode https://zuul.opendev.org/t/openstack/build/cc44d60932694b35b2c6f93679dd2957 : SUCCESS in 1h 14m 21s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"192dba3e67055a39d52025197db68f7d2ef6d530","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-03-23 17:20:45.000000000","message":"Uploaded patch set 3: Patch Set 2 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":3},{"id":"272064692f6b78882eb3e3056c0f4f132478f317","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-23 19:37:00.000000000","message":"Patch Set 3: Verified-1\n\n(5 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/eed95ec5150740e09e943a6042c0cffd\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/3c44aa98498e4ea1b42ee693df0ac98f : SUCCESS in 1h 55m 41s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d0fd3292a1f94227809074442b8e3590 : FAILURE in 5m 07s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/3e347c822ca14d9c836cdcedfd676a8a : FAILURE in 4m 10s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/1767a87e7b1c48c990d02fafeaaeaf3f : FAILURE in 5m 33s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/df18047bfc034642a15d84a3f847d967 : FAILURE in 6m 29s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f38f37f320964c7dba0abd0d40afc3e6 : SUCCESS in 3m 35s\n- oslo.versionedobjects-src-grenade-multinode https://zuul.opendev.org/t/openstack/build/211f785be784490fa3a9f795d53d4f60 : SUCCESS in 1h 03m 22s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"9b87b2e20977695a1771fa6a934d6816cd67e8bc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-03-24 12:15:28.000000000","message":"Uploaded patch set 4: Patch Set 3 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":4},{"id":"f8f52ee89b6a0b552353f8c47c050f7692665cb9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-24 13:50:15.000000000","message":"Patch Set 4: Verified-1\n\n(4 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/d303fced14704561b45d631dc3eaca28\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/00e38ca7f0124a62ae8d652c43b8f9ac : POST_FAILURE in 1h 29m 03s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9e7b79c1cde248cdaf6da84ef011463b : FAILURE in 4m 05s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/db1acd87b86a42fda337220a121279e4 : SUCCESS in 2m 45s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/342154da6ca84547bca754b16ffd2289 : POST_FAILURE in 4m 00s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/bfcacfb3ee0e41eaaaa30279febda0f3 : SUCCESS in 4m 29s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/694cf6236b454d1e90d60d5e41a03524 : SUCCESS in 4m 46s\n- oslo.versionedobjects-src-grenade-multinode https://zuul.opendev.org/t/openstack/build/e52f8ea325b349c68328f9c44a3baa94 : POST_FAILURE in 52m 16s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"19000576063cb6dda6d8ecbc276f9cb5736e1a6a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-03-25 10:36:11.000000000","message":"Uploaded patch set 5: Patch Set 4 was rebased.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":5},{"id":"8871841b664f36c48ff4c1368d67c3d49a0a1c28","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-25 12:14:59.000000000","message":"Patch Set 5: Verified-1\n\n(4 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/7d04a9d897164738bf94f91c8b958b28\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/6904f1404d4141aca733e73d5adffbf9 : SUCCESS in 1h 36m 06s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d1b84250e4f343d2a4320405ba5bd943 : FAILURE in 4m 27s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/c73137226e854f2ba2cef83632ae592d : SUCCESS in 4m 16s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0b9becae25f344b88fe8bb8edf480601 : SUCCESS in 3m 47s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/c328e4e3560247719304e9b807131a52 : SUCCESS in 4m 42s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fe69f6df610a4708b765804f3a8a6f7a : SUCCESS in 5m 04s\n- oslo.versionedobjects-src-grenade-multinode https://zuul.opendev.org/t/openstack/build/001b1bc0d3fc4648ac083c9a46f826a3 : SUCCESS in 1h 17m 00s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"9b966b16928eae9b64d3e787e3af174676266ee6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-14 09:56:36.000000000","message":"Uploaded patch set 6: Patch Set 5 was rebased.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"a18039ba0c570a0aa1f2de8c6013fdf8c171d105","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-14 11:00:22.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/768448703d8d4dc99a479ee3079b75c4\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/95463199b0644ca294ba2e0dcccc2257 : SUCCESS in 1h 00m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1c5d8ace60454160b9efe1d074b40569 : SUCCESS in 3m 07s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/9c037333c9434badbcfe9e306839d20e : SUCCESS in 2m 48s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/1011876ee2484afc82c223cf6d346b50 : SUCCESS in 3m 02s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7dca0f75478547979ff27a7a7ff45c74 : SUCCESS in 4m 18s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/937770b97af643bc961679763ba3e4b4 : SUCCESS in 3m 52s\n- oslo.versionedobjects-src-grenade-multinode https://zuul.opendev.org/t/openstack/build/bd6e492ebd034339af4f96421182d75a : SUCCESS in 45m 29s (non-voting)","accounts_in_message":[],"_revision_number":6},{"id":"0b2f26b5c1a0c673c355376ff8bb332f95e47f9e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-17 11:37:23.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":7},{"id":"3404e6690bd58c0308dcc09ff02b4929d6ffaa41","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-17 13:33:22.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8a648639c5ab48048bbc440aaf14611b\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/62391a489085474ca0e52e31ac8bcb23 : SUCCESS in 1h 49m 57s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/89e3de6789fc49da9ac1577068923fe2 : SUCCESS in 3m 31s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e6820466c4ce4d1ea7d017ec34bc67df : SUCCESS in 5m 07s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/39174988926340d19e5108d8e3bb10b3 : SUCCESS in 3m 09s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/3c9d89d245bf49d5ba0f0f0075869406 : SUCCESS in 3m 28s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0579bd2cad77417eb1e5c9091b4907c4 : SUCCESS in 3m 12s\n- oslo.versionedobjects-src-grenade-multinode https://zuul.opendev.org/t/openstack/build/4440ddc95f02427e9a1f633105ce8221 : SUCCESS in 1h 17m 30s (non-voting)","accounts_in_message":[],"_revision_number":7},{"id":"4b7ea37249cc0351df3b9ea9547ce35f37985aff","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-17 23:15:09.000000000","message":"Uploaded patch set 8.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":8},{"id":"3f98f03dc1e31ef68bc6ab5a6b5de031b2e17567","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-18 00:32:30.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9147c0e74dd048a5bb07188503cb9f38\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/b86a928657034d2791042445c9eba964 : SUCCESS in 1h 16m 24s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c18820f7a0074395a806ef21c67589dc : SUCCESS in 3m 45s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/dffd4e930ff34ebe8ada460a244d7471 : SUCCESS in 3m 30s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/dcdc64dcffd74760af36a6d9da88dc1f : SUCCESS in 3m 17s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a7921d1e1e5d42fd8e2d7fe6964d86a5 : SUCCESS in 4m 50s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a0668e88cf804e649ebe02cf6e1dd538 : SUCCESS in 3m 34s\n- oslo.versionedobjects-src-grenade-multinode https://zuul.opendev.org/t/openstack/build/c80e41f90f174fb08f287ba78015cfed : SUCCESS in 56m 40s (non-voting)","accounts_in_message":[],"_revision_number":8}],"current_revision_number":8,"current_revision":"8e0c41fb2aa559c1f122d7649dbfa2047a91263b","revisions":{"e9a1736c3313bb956c66fffa9902ab7f61157287":{"kind":"REWORK","_number":1,"created":"2026-03-20 11:22:33.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/94/981494/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/94/981494/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/1"}}},"commit":{"parents":[{"commit":"efd83890533df955c07e58ac13c67ff561996340","subject":"Add strict typing","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/efd83890533df955c07e58ac13c67ff561996340"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-04 21:22:46.000000000","tz":0},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-20 10:56:19.000000000","tz":60},"subject":"Add support for dataclass style o.vos","message":"Add support for dataclass style o.vos\n\nAdd support for dataclass-style o.vos, allowing us to rewrite the\nfollowing o.vo:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.1\u0027\n      fields \u003d {\n          \u0027foo\u0027: fields.Field(fields.Integer(), default\u003d1),\n          \u0027bar\u0027: fields.Field(fields.String()),\n      }\n\nas:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.6\u0027\n\n      foo: int \u003d fields.field(default\u003d1)\n      bar: str\n\nTo do this, we rely on heavily on annotations. There are a couple of\ngaps here, particularly around things like dict types but this is an\nimportant first step.\n\nChange-Id: I6007e67ec4f1365e06317fff386eff84016cfd0b\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/e9a1736c3313bb956c66fffa9902ab7f61157287"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/e9a1736c3313bb956c66fffa9902ab7f61157287"}]},"branch":"refs/heads/master"},"06861cb7891ae2231f7ceda3ab18388afda6596a":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-03-20 14:55:29.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/94/981494/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/94/981494/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/2"}}},"commit":{"parents":[{"commit":"1f5d393e4d2e8ba6f9827e5b612467b3c9a4e369","subject":"Add strict typing","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/1f5d393e4d2e8ba6f9827e5b612467b3c9a4e369"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-04 21:22:46.000000000","tz":0},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-20 14:55:24.000000000","tz":60},"subject":"Add support for dataclass style o.vos","message":"Add support for dataclass style o.vos\n\nAdd support for dataclass-style o.vos, allowing us to rewrite the\nfollowing o.vo:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.1\u0027\n      fields \u003d {\n          \u0027foo\u0027: fields.Field(fields.Integer(), default\u003d1),\n          \u0027bar\u0027: fields.Field(fields.String()),\n      }\n\nas:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.6\u0027\n\n      foo: int \u003d fields.field(default\u003d1)\n      bar: str\n\nTo do this, we rely on heavily on annotations. There are a couple of\ngaps here, particularly around things like dict types but this is an\nimportant first step.\n\nChange-Id: I6007e67ec4f1365e06317fff386eff84016cfd0b\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/06861cb7891ae2231f7ceda3ab18388afda6596a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/06861cb7891ae2231f7ceda3ab18388afda6596a"}]},"branch":"refs/heads/master"},"e85411e48d433e012288023c603c7d45725c44e5":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2026-03-23 17:20:45.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/94/981494/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/94/981494/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/3"}}},"commit":{"parents":[{"commit":"b16101405fd449f8331c1ef63980f36bdc42eaab","subject":"Add strict typing","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/b16101405fd449f8331c1ef63980f36bdc42eaab"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-04 21:22:46.000000000","tz":0},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-23 17:20:35.000000000","tz":60},"subject":"Add support for dataclass style o.vos","message":"Add support for dataclass style o.vos\n\nAdd support for dataclass-style o.vos, allowing us to rewrite the\nfollowing o.vo:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.1\u0027\n      fields \u003d {\n          \u0027foo\u0027: fields.Field(fields.Integer(), default\u003d1),\n          \u0027bar\u0027: fields.Field(fields.String()),\n      }\n\nas:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.6\u0027\n\n      foo: int \u003d fields.field(default\u003d1)\n      bar: str\n\nTo do this, we rely on heavily on annotations. There are a couple of\ngaps here, particularly around things like dict types but this is an\nimportant first step.\n\nChange-Id: I6007e67ec4f1365e06317fff386eff84016cfd0b\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/e85411e48d433e012288023c603c7d45725c44e5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/e85411e48d433e012288023c603c7d45725c44e5"}]},"branch":"refs/heads/master"},"c9ba3942269138cb73c89aa5cc505c34209ab85e":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2026-03-24 12:15:28.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/94/981494/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/94/981494/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/4"}}},"commit":{"parents":[{"commit":"2027fca7f0dce02ac911b964b84d8ec8c2732cbc","subject":"Add strict typing","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/2027fca7f0dce02ac911b964b84d8ec8c2732cbc"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-04 21:22:46.000000000","tz":0},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-24 12:12:42.000000000","tz":60},"subject":"Add support for dataclass style o.vos","message":"Add support for dataclass style o.vos\n\nAdd support for dataclass-style o.vos, allowing us to rewrite the\nfollowing o.vo:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.1\u0027\n      fields \u003d {\n          \u0027foo\u0027: fields.Field(fields.Integer(), default\u003d1),\n          \u0027bar\u0027: fields.Field(fields.String()),\n      }\n\nas:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.6\u0027\n\n      foo: int \u003d fields.field(default\u003d1)\n      bar: str\n\nTo do this, we rely on heavily on annotations. There are a couple of\ngaps here, particularly around things like dict types but this is an\nimportant first step.\n\nChange-Id: I6007e67ec4f1365e06317fff386eff84016cfd0b\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/c9ba3942269138cb73c89aa5cc505c34209ab85e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/c9ba3942269138cb73c89aa5cc505c34209ab85e"}]},"branch":"refs/heads/master"},"2597a1ae14e26962c4905c3d3f61494860fce131":{"kind":"TRIVIAL_REBASE","_number":5,"created":"2026-03-25 10:36:11.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/94/981494/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/94/981494/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/5"}}},"commit":{"parents":[{"commit":"c9ea38eda657db3ad37d3ce71b8c6031bc9daffb","subject":"Add strict typing","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/c9ea38eda657db3ad37d3ce71b8c6031bc9daffb"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-04 21:22:46.000000000","tz":0},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-25 10:36:05.000000000","tz":60},"subject":"Add support for dataclass style o.vos","message":"Add support for dataclass style o.vos\n\nAdd support for dataclass-style o.vos, allowing us to rewrite the\nfollowing o.vo:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.1\u0027\n      fields \u003d {\n          \u0027foo\u0027: fields.Field(fields.Integer(), default\u003d1),\n          \u0027bar\u0027: fields.Field(fields.String()),\n      }\n\nas:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.6\u0027\n\n      foo: int \u003d fields.field(default\u003d1)\n      bar: str\n\nTo do this, we rely on heavily on annotations. There are a couple of\ngaps here, particularly around things like dict types but this is an\nimportant first step.\n\nChange-Id: I6007e67ec4f1365e06317fff386eff84016cfd0b\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/2597a1ae14e26962c4905c3d3f61494860fce131"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/2597a1ae14e26962c4905c3d3f61494860fce131"}]},"branch":"refs/heads/master"},"19c795892e1e992e0d9cf9ac75d5e0ff55c45720":{"kind":"TRIVIAL_REBASE","_number":6,"created":"2026-04-14 09:56:36.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/94/981494/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/94/981494/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/6"}}},"commit":{"parents":[{"commit":"4552dd7f7561abf8dcdb6c4538fbbe5a8cf582ff","subject":"Add strict typing","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/4552dd7f7561abf8dcdb6c4538fbbe5a8cf582ff"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-04 21:22:46.000000000","tz":0},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-04-14 09:56:28.000000000","tz":60},"subject":"Add support for dataclass style o.vos","message":"Add support for dataclass style o.vos\n\nAdd support for dataclass-style o.vos, allowing us to rewrite the\nfollowing o.vo:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.1\u0027\n      fields \u003d {\n          \u0027foo\u0027: fields.Field(fields.Integer(), default\u003d1),\n          \u0027bar\u0027: fields.Field(fields.String()),\n      }\n\nas:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.6\u0027\n\n      foo: int \u003d fields.field(default\u003d1)\n      bar: str\n\nTo do this, we rely on heavily on annotations. There are a couple of\ngaps here, particularly around things like dict types but this is an\nimportant first step.\n\nChange-Id: I6007e67ec4f1365e06317fff386eff84016cfd0b\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/19c795892e1e992e0d9cf9ac75d5e0ff55c45720"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/19c795892e1e992e0d9cf9ac75d5e0ff55c45720"}]},"branch":"refs/heads/master"},"caba0bb3de0f715d95816b8202a8de71a479c952":{"kind":"REWORK","_number":7,"created":"2026-04-17 11:37:23.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/94/981494/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/94/981494/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/7"}}},"commit":{"parents":[{"commit":"1c5301e6f76fa7e4f16b3249d9403c3047938f76","subject":"fields: Add primitive field types from nova","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/1c5301e6f76fa7e4f16b3249d9403c3047938f76"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-04 21:22:46.000000000","tz":0},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-04-17 11:36:50.000000000","tz":60},"subject":"Add support for dataclass style o.vos","message":"Add support for dataclass style o.vos\n\nAdd support for dataclass-style o.vos, allowing us to rewrite the\nfollowing o.vo:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.1\u0027\n      fields \u003d {\n          \u0027foo\u0027: fields.Field(fields.Integer(), default\u003d1),\n          \u0027bar\u0027: fields.Field(fields.String()),\n      }\n\nas:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.6\u0027\n\n      foo: int \u003d fields.field(default\u003d1)\n      bar: str\n\nTo do this, we rely on heavily on annotations. There are a couple of\ngaps here, particularly around things like dict types but this is an\nimportant first step.\n\nChange-Id: I6007e67ec4f1365e06317fff386eff84016cfd0b\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/caba0bb3de0f715d95816b8202a8de71a479c952"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/caba0bb3de0f715d95816b8202a8de71a479c952"}]},"branch":"refs/heads/master"},"8e0c41fb2aa559c1f122d7649dbfa2047a91263b":{"kind":"REWORK","_number":8,"created":"2026-04-17 23:15:09.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/94/981494/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/94/981494/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/94/981494/8"}}},"commit":{"parents":[{"commit":"d377d03d0d00cbc677470eb9bdf3f0d4ee72bbab","subject":"test: Remove use of oslo_concurrency.lockutils","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/d377d03d0d00cbc677470eb9bdf3f0d4ee72bbab"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-03-04 21:22:46.000000000","tz":0},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-04-17 21:17:54.000000000","tz":60},"subject":"Add support for dataclass style o.vos","message":"Add support for dataclass style o.vos\n\nAdd support for dataclass-style o.vos, allowing us to rewrite the\nfollowing o.vo:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.1\u0027\n      fields \u003d {\n          \u0027foo\u0027: fields.Field(fields.Integer(), default\u003d1),\n          \u0027bar\u0027: fields.Field(fields.String()),\n          \u0027baz\u0027: fields.ListOfStringsField(nullable\u003dTrue),\n      }\n\nas:\n\n  @base.VersionedObjectRegistry.register\n  class MyObj(base.VersionedObject):\n      VERSION \u003d \u00271.6\u0027\n\n      foo: int \u003d fields.field(default\u003d1)\n      bar: str\n      baz: list[str] | None\n\nTo do this, we rely on heavily on annotations. There are a couple of\ngaps here, particularly around things like dict types but this is an\nimportant first step.\n\nChange-Id: I6007e67ec4f1365e06317fff386eff84016cfd0b\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/8e0c41fb2aa559c1f122d7649dbfa2047a91263b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/8e0c41fb2aa559c1f122d7649dbfa2047a91263b"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"},{"label":"Backport-Candidate","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","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":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
