)]}'
{"id":"openstack%2Foslo.versionedobjects~632321","triplet_id":"openstack%2Foslo.versionedobjects~master~I948a708f10dfe5ff9f031e71cba30a881a9b261d","project":"openstack/oslo.versionedobjects","branch":"master","topic":"doc-versioning-example","attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-04-14 15:07:49.000000000","reason":"Vote got outdated and was removed: Code-Review+1"},"25733":{"account":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"last_update":"2026-04-14 16:32:44.000000000","reason":"A robot voted negatively on a label"},"4393":{"account":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"last_update":"2026-04-15 14:45:35.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"}}},"removed_from_attention_set":{"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2026-04-15 14:45:35.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":"I948a708f10dfe5ff9f031e71cba30a881a9b261d","subject":"Add a tutorial illustrating versioning","status":"NEW","created":"2019-01-22 08:54:48.000000000","updated":"2026-04-17 11:13:20.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":31,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"7f55a48a985af353c295efe8fb01d41383e61b74","_number":632321,"virtual_id_number":632321,"owner":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-04-17 11:13:20.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":-1,"max":1},"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},{"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":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"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":[{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":-1,"max":0},"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},{"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":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"_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":-1,"max":1},"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},{"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":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"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":{"CC":[{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"}],"REVIEWER":[{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"_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"]},{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-01-22 10:54:17.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":"2019-01-22 15:57:23.000000000","updated_by":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"reviewer":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"state":"REVIEWER"},{"updated":"2019-01-22 16:38:55.000000000","updated_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"reviewer":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"state":"REVIEWER"},{"updated":"2019-03-06 17:15:30.000000000","updated_by":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"reviewer":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"state":"REVIEWER"},{"updated":"2019-03-19 11:54:46.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"REVIEWER"},{"updated":"2020-03-21 20:59:54.000000000","updated_by":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"reviewer":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"state":"REVIEWER"},{"updated":"2021-02-18 15:30:27.000000000","updated_by":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"reviewer":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"state":"CC"},{"updated":"2024-08-01 09:31:16.000000000","updated_by":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"reviewer":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"state":"CC"}],"messages":[{"id":"e92172346ddbd74a0f398538998027bc9ab9aaf2","author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"date":"2019-01-22 08:54:48.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c870fb951dd632e10dc3b1ece6018c8a9fcb5b54","author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"date":"2019-01-22 09:06:16.000000000","message":"Patch Set 1:\n\nNote to reviewers: This review is the start of a great debate, input is welcome, flames, suggestions, and comments are greatly encouraged!","accounts_in_message":[],"_revision_number":1},{"id":"603e45669ee423444525cf27d24f961e6bf30152","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-01-22 10:54:17.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tempest-full http://logs.openstack.org/21/632321/1/check/tempest-full/d30bb01/ : SUCCESS in 1h 48m 59s\n- tempest-full-py3 http://logs.openstack.org/21/632321/1/check/tempest-full-py3/4b1ff68/ : SUCCESS in 1h 53m 04s\n- openstack-tox-lower-constraints http://logs.openstack.org/21/632321/1/check/openstack-tox-lower-constraints/479a8d0/ : SUCCESS in 4m 02s\n- openstack-tox-pep8 http://logs.openstack.org/21/632321/1/check/openstack-tox-pep8/3f8e1bc/ : SUCCESS in 3m 12s\n- openstack-tox-py27 http://logs.openstack.org/21/632321/1/check/openstack-tox-py27/e245a1e/ : SUCCESS in 3m 25s\n- openstack-tox-py35 http://logs.openstack.org/21/632321/1/check/openstack-tox-py35/d9d0b04/ : SUCCESS in 3m 10s\n- openstack-tox-py36 http://logs.openstack.org/21/632321/1/check/openstack-tox-py36/6e2809b/ : SUCCESS in 3m 16s\n- openstack-tox-docs http://logs.openstack.org/21/632321/1/check/openstack-tox-docs/038549c/html/ : SUCCESS in 4m 56s\n- oslo.versionedobjects-src-grenade-devstack-multinode http://logs.openstack.org/21/632321/1/check/oslo.versionedobjects-src-grenade-devstack-multinode/e63162c/ : SUCCESS in 1h 08m 50s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"a8a6e1c750d2f76f193c8f2b3bf58338c218302d","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2019-01-22 16:38:55.000000000","message":"Patch Set 1: Code-Review+1\n\n(1 comment)\n\nthis looks correct to me in general\none question inline","accounts_in_message":[],"_revision_number":1},{"id":"b67f99a1100ac8fa953186fac35d2af8426a134f","author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"date":"2019-01-22 16:54:20.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nFrom what I read in the docstrings, it _seems_ that it\u0027s not needed. I\u0027ll mock up a silly test to check if I get a gap.","accounts_in_message":[],"_revision_number":1},{"id":"049027f6033a0b5056d04860737966cca4edb5ef","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2019-01-22 17:18:04.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"2d6b8ce60fffd67bea5cd678ba5a9f5d9b29532e","author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"date":"2019-01-22 17:27:17.000000000","message":"Patch Set 1:\n\n(2 comments)\n\nI did a version bump out of an abundance of caution here... composition has many subtle effects.","accounts_in_message":[],"_revision_number":1},{"id":"8e243ca994fe37a5e7e678461f668aa19a260155","author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"date":"2019-01-24 11:57:23.000000000","message":"Patch Set 1:\n\n(6 comments)\n\nI added a number of bikeshed pointers. These are mainly style choices that I have no strong feelings about and would invite some guidance from people who are going to be reviewing patches influenced by hypothetical readers.","accounts_in_message":[],"_revision_number":1},{"id":"77406bc883ea34561c5f18e389fcd561b81fc7b7","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2019-02-20 10:04:22.000000000","message":"Patch Set 1: Code-Review+2\n\nMy comments were addressed and the typo(s) can be addressed in a follow-up. I\u0027m happy with this as-is","accounts_in_message":[],"_revision_number":1},{"id":"65fa4ea31e68e6a7d7f1cd8b08b6c9945ef68ea7","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2019-03-06 17:15:30.000000000","message":"Patch Set 1: Code-Review-1\n\n(1 comment)\n\nSorry for not seeing this until now. TBH, I hadn\u0027t ever worked out the subclassing stuff in my head, so I was (a) surprised to read some of it and (b) willing to believe it\u0027s well-researched so I don\u0027t have to.\n\nI think we should remove the obj_relationships thing as noted, but the rest looks good. Thanks for doing it!","accounts_in_message":[],"_revision_number":1},{"id":"7f56b0f3b9a3b4721735bc608780b5e48cf889d9","author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"date":"2019-03-06 18:38:12.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nThanks, I\u0027ll touch up the ugly a bit when I get a space.","accounts_in_message":[],"_revision_number":1},{"id":"205b993e8e54e83db4280db8da5178b31fc332a5","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2019-03-06 18:46:33.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"dbeab5c1727d599e6e6df192f82cd36065c0888a","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2019-03-19 11:54:46.000000000","message":"Patch Set 1: -Code-Review","accounts_in_message":[],"_revision_number":1},{"id":"3fdc9741c5937198358c31f103ae0a0f6e5f3c41","author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"date":"2020-03-21 20:59:54.000000000","message":"Patch Set 1:\n\nSome great info in here that would be nice to include. Any chance of getting an update to address comments?","accounts_in_message":[],"_revision_number":1},{"id":"140aacd205ef5dd28eeef8179b0810521145208f","author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"date":"2021-02-18 15:30:27.000000000","message":"Patch Set 1:\n\nAny update?","accounts_in_message":[],"_revision_number":1},{"id":"44c55f75c39223c16bef2b3482630a179c14b167","author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"date":"2024-08-01 09:31:16.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"514767e1aa311a68862bd6c5891147c88ac348a2","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2024-08-01 10:11:43.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"389917ff18ac26eec793286c60aca2ed6c7e3275","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-14 15:07:49.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Code-Review+1, Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"faef9351527ca7114d23def2f6214d531eb1a061","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-14 16:32:44.000000000","message":"Patch Set 2: Verified-1\n\n(50 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/5b1f605a12a2404fa2f15280ec59aeab\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/a8c11b221c3a405b8c01b74e1678bf90 : SUCCESS in 1h 21m 31s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4ed8d4f6988743d0892e3d4df753d206 : FAILURE in 4m 07s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/fe4b5d880b564a6abc88751ab9695e1d : SUCCESS in 3m 49s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/547b6fcc9e7044e3b468b5c084433d85 : SUCCESS in 3m 52s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/0fcbfd9bd99d46e6a0c1624b12428d47 : SUCCESS in 6m 44s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2309d40834fc4d0b89ac89f082834c89 : SUCCESS in 4m 19s\n- oslo.versionedobjects-src-grenade-multinode https://zuul.opendev.org/t/openstack/build/93a2b9cd91d14f32a8658dc2525d0d59 : SUCCESS in 1h 18m 47s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"cddda67d56ccfefd6f633bfab4ae4032cc182dde","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-14 17:35:21.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"8fc620a9e44cf9b11e52e29e347345f0ae0db443","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-14 19:33:51.000000000","message":"Patch Set 3: 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/68be8db2781e4bfaa421144f374ab00d\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/e928129ff6a0489ea0387137ff062a7c : SUCCESS in 1h 47m 21s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c0dc5a2c379144888282dfe16157e5f7 : FAILURE in 4m 18s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/137f7907b0a04aeabe66c1eff929349e : SUCCESS in 2m 53s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/6f66960e8780454aabfcd47cb2466f05 : SUCCESS in 5m 30s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/c1d4e99f3e8244a29a7de33960bc86dd : SUCCESS in 7m 41s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b8827b205fbf46d4bd6a3e2401c94962 : SUCCESS in 3m 35s\n- oslo.versionedobjects-src-grenade-multinode https://zuul.opendev.org/t/openstack/build/ba2eb508fbc6448aaf541a619ad9fd5f : SUCCESS in 1h 16m 57s (non-voting)\n\nWarning:\n  Comments left for invalid file oslo_versionedobjects/tests/test_fixture.py","accounts_in_message":[],"_revision_number":3},{"id":"a024bcf91011bbfd9c3a14018f93962f02f68376","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2026-04-14 21:04:05.000000000","message":"Patch Set 3:\n\n(5 comments)","accounts_in_message":[],"_revision_number":3},{"id":"fa2a42153b7518f3089fb63617bebb36ca49e56d","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-15 14:45:35.000000000","message":"Patch Set 3:\n\n(4 comments)","accounts_in_message":[],"_revision_number":3},{"id":"18231e69674538a9e5a3bb042603f05330bb7b22","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-04-17 11:00:49.000000000","message":"Patch Set 3:\n\n(5 comments)","accounts_in_message":[],"_revision_number":3},{"id":"a3024f794724d74e683f9301c2b24915bf0e2162","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:02:22.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"7f55a48a985af353c295efe8fb01d41383e61b74","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-17 11:13:20.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/52ce4c69081c4306957da9f32a7dcc2e\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e373470865e642aabb17341ff0ec3659 : SUCCESS in 3m 51s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c5e4b9ee1e9e4698beb98784865eaf6d : SUCCESS in 4m 21s","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"69a06243f0ea25acd3255f40baffc4a3cfad2be5","revisions":{"40cd5da175454fa7d1da2ee55b2cebb74cb8eb52":{"kind":"REWORK","_number":1,"created":"2019-01-22 08:54:48.000000000","uploader":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"ref":"refs/changes/21/632321/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/21/632321/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/1"}}},"commit":{"parents":[{"commit":"2847ec2f587d9d5b1bb3916bea6deeee600df8e0","subject":"Use template for lower-constraints","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/2847ec2f587d9d5b1bb3916bea6deeee600df8e0"}]}],"author":{"name":"Jan Gutter","email":"jan.gutter@netronome.com","date":"2019-01-21 18:20:04.000000000","tz":120},"committer":{"name":"Jan Gutter","email":"jan.gutter@netronome.com","date":"2019-01-21 18:54:28.000000000","tz":120},"subject":"Add a tutorial illustrating versioning","message":"Add a tutorial illustrating versioning\n\n* While working on the spec for generic os-vif datapath offloads[1], it\n  became apparent that there\u0027s a gap in o.vo\u0027s developer-facing documentation\n  detailing the interactions between versioning, inheritance and\n  composition.\n\n* All the information in this commit can be sourced from various blogs,\n  example code and tests, but it is convenient to have a succinct\n  summary in one place.\n\n* Finally, this documentation tries to establish a pattern that that is\n  rigorous and simple to implement.\n\n[1]: http://specs.openstack.org/openstack/nova-specs/specs/stein/approved/generic-os-vif-offloads.html\n\nChange-Id: I948a708f10dfe5ff9f031e71cba30a881a9b261d\nSigned-off-by: Jan Gutter \u003cjan.gutter@netronome.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/40cd5da175454fa7d1da2ee55b2cebb74cb8eb52"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/40cd5da175454fa7d1da2ee55b2cebb74cb8eb52"}]},"branch":"refs/heads/master"},"a1858a94de75cf2ab19a856f9cb863da1426bd74":{"kind":"REWORK","_number":2,"created":"2026-04-14 15:07:49.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/21/632321/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/21/632321/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/2"}}},"commit":{"parents":[{"commit":"f546fae2ec41bc463551bcedf43eedceb6e3460d","subject":"Merge \"typing: Add type hints to oslo_versionedobjects.base\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/f546fae2ec41bc463551bcedf43eedceb6e3460d"}]}],"author":{"name":"Jan Gutter","email":"jan.gutter@netronome.com","date":"2019-01-21 18:20:04.000000000","tz":120},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-04-14 15:04:32.000000000","tz":60},"subject":"Add a tutorial illustrating versioning","message":"Add a tutorial illustrating versioning\n\n* While working on the spec for generic os-vif datapath offloads[1], it\n  became apparent that there\u0027s a gap in o.vo\u0027s developer-facing documentation\n  detailing the interactions between versioning, inheritance and\n  composition.\n\n* All the information in this commit can be sourced from various blogs,\n  example code and tests, but it is convenient to have a succinct\n  summary in one place.\n\n* Finally, this documentation tries to establish a pattern that that is\n  rigorous and simple to implement.\n\n[1]: http://specs.openstack.org/openstack/nova-specs/specs/stein/approved/generic-os-vif-offloads.html\n\nChange-Id: I948a708f10dfe5ff9f031e71cba30a881a9b261d\nSigned-off-by: Jan Gutter \u003cjan.gutter@netronome.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/a1858a94de75cf2ab19a856f9cb863da1426bd74"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/a1858a94de75cf2ab19a856f9cb863da1426bd74"}]},"branch":"refs/heads/master"},"5e5a76881ea07d96dc88ce48fc1d71cfc21aec2e":{"kind":"REWORK","_number":3,"created":"2026-04-14 17:35:21.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/21/632321/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/21/632321/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/3"}}},"commit":{"parents":[{"commit":"07afeadd4a01e90479f3bf14439c2d0ab7a18fdb","subject":"typing: Broaden accepted types for obj_relationships","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/07afeadd4a01e90479f3bf14439c2d0ab7a18fdb"}]}],"author":{"name":"Jan Gutter","email":"jan.gutter@netronome.com","date":"2019-01-21 18:20:04.000000000","tz":120},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-04-14 17:35:11.000000000","tz":60},"subject":"Add a tutorial illustrating versioning","message":"Add a tutorial illustrating versioning\n\n* While working on the spec for generic os-vif datapath offloads[1], it\n  became apparent that there\u0027s a gap in o.vo\u0027s developer-facing documentation\n  detailing the interactions between versioning, inheritance and\n  composition.\n\n* All the information in this commit can be sourced from various blogs,\n  example code and tests, but it is convenient to have a succinct\n  summary in one place.\n\n* Finally, this documentation tries to establish a pattern that that is\n  rigorous and simple to implement.\n\n[1]: http://specs.openstack.org/openstack/nova-specs/specs/stein/approved/generic-os-vif-offloads.html\n\nChange-Id: I948a708f10dfe5ff9f031e71cba30a881a9b261d\nSigned-off-by: Jan Gutter \u003cjan.gutter@netronome.com\u003e\nCo-authored-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/5e5a76881ea07d96dc88ce48fc1d71cfc21aec2e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/5e5a76881ea07d96dc88ce48fc1d71cfc21aec2e"}]},"branch":"refs/heads/master"},"69a06243f0ea25acd3255f40baffc4a3cfad2be5":{"kind":"REWORK","_number":4,"created":"2026-04-17 11:02:22.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/21/632321/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.versionedobjects","ref":"refs/changes/21/632321/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.versionedobjects refs/changes/21/632321/4"}}},"commit":{"parents":[{"commit":"94eb4e112e956131f525584f7d13ae4bc9d156d3","subject":"base: Add docs for obj_extra_fields attribute","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/94eb4e112e956131f525584f7d13ae4bc9d156d3"}]}],"author":{"name":"Jan Gutter","email":"jan.gutter@netronome.com","date":"2019-01-21 18:20:04.000000000","tz":120},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-04-17 11:02:13.000000000","tz":60},"subject":"Add a tutorial illustrating versioning","message":"Add a tutorial illustrating versioning\n\n* While working on the spec for generic os-vif datapath offloads [1], it\n  became apparent that there\u0027s a gap in o.vo\u0027s developer-facing\n  documentation detailing the interactions between versioning,\n  inheritance and composition.\n\n* All the information in this commit can be sourced from various blogs,\n  example code and tests, but it is convenient to have a succinct\n  summary in one place.\n\n* Finally, this documentation tries to establish a pattern that that is\n  rigorous and simple to implement.\n\n[1]: http://specs.openstack.org/openstack/nova-specs/specs/stein/approved/generic-os-vif-offloads.html\n\nChange-Id: I948a708f10dfe5ff9f031e71cba30a881a9b261d\nSigned-off-by: Jan Gutter \u003cjan.gutter@netronome.com\u003e\nCo-authored-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/69a06243f0ea25acd3255f40baffc4a3cfad2be5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.versionedobjects/commit/69a06243f0ea25acd3255f40baffc4a3cfad2be5"}]},"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":""}}}]}
