)]}'
{"id":"openstack%2Fcyborg~991177","triplet_id":"openstack%2Fcyborg~master~Iba69ec4f17b62b502ca9d83cf2191dc0152200a3","project":"openstack/cyborg","branch":"master","topic":"pci-sim","attention_set":{},"removed_from_attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-06-17 13:00:31.000000000","reason":"\u003cGERRIT_ACCOUNT_11604\u003e replied on the change","reason_account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}},"34452":{"account":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"last_update":"2026-06-15 15:05:06.000000000","reason":"\u003cGERRIT_ACCOUNT_34452\u003e replied on the change","reason_account":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"}}},"hashtags":[],"change_id":"Iba69ec4f17b62b502ca9d83cf2191dc0152200a3","subject":"Add pci-sim developer guide","status":"MERGED","created":"2026-06-02 19:00:42.000000000","updated":"2026-06-17 14:06:31.000000000","submitted":"2026-06-17 14:02:45.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":10,"unresolved_comment_count":2,"has_review_started":true,"submission_id":"991177-pci-sim","meta_rev_id":"86c5d9ea03985ff05dfe04457c33b9fef690c376","_number":991177,"virtual_id_number":991177,"owner":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-06-17 14:02:45.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":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"recommended":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"all":[{"value":1,"date":"2026-06-15 15:05:06.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"value":2,"date":"2026-06-17 13:00:31.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":1,"date":"2026-06-17 11:44:57.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},{"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":"","value":1,"default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"all":[{"value":0,"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"value":1,"date":"2026-06-17 13:00:31.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-02 19:12:37.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":"2026-06-10 14:35:13.000000000","updated_by":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"reviewer":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"state":"REVIEWER"},{"updated":"2026-06-17 11:44:57.000000000","updated_by":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"reviewer":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"state":"REVIEWER"}],"messages":[{"id":"710631a22a72f1ae75c82275bf499e931bb7c720","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-02 19:00:42.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"d0b7a0a1d2706b886db9c32b96f3965c4c41ab49","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-02 19:12:37.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/503639f71ec84689884260e575a90121\n\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/17b7c609384b426ca37be38ebc0eac34 : SUCCESS in 3m 46s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/33d1778575464d9dbac45231ccf5552c : SUCCESS in 3m 11s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/9c4a12d5063a49aa8b569e7220c13b11 : SUCCESS in 4m 20s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/53527bbb017143ea9d88721cc095ed59 : SUCCESS in 6m 52s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3f8003ab892a4b2181a328446100b745 : SUCCESS in 2m 32s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/ba8f10e2780f4d03a13a9f9ba32900e6 : SUCCESS in 3m 59s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/cf49becefef7438ea5a89d1548a312a4 : SUCCESS in 3m 41s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/e88915777e9847d8a215a8170851d5dc : SUCCESS in 4m 18s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"e46c3c3ec00c3c60935f2f2ee159ee3df35e29e7","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-04 10:46:09.000000000","message":"Topic set to pci-sim","accounts_in_message":[],"_revision_number":1},{"id":"e2e3443e81995648966d4c2b30dd7e97df9054b6","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-06-10 14:35:13.000000000","message":"Patch Set 1: Code-Review+1\n\n(3 comments)","accounts_in_message":[],"_revision_number":1},{"id":"b00b2654a1e91c2bbb81fab2fcadf648bb44a49d","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-10 15:28:56.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"0305564e44d169e5f2e3c834de7ff6fe3bb296f8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-12 15:20:01.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* 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":"391e21faa389fc89bfe8cb26493cf6e197fa890a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-12 15:36:05.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/2d66175a545a4633b8fef10c7c0586db\n\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/045e8f5fabee4a5faac82f9ec39892f1 : SUCCESS in 4m 20s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d86aa1d72d97400ba3a5b82c5185e729 : SUCCESS in 4m 52s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f7ec90e717c94de99589b8c56e82805d : SUCCESS in 3m 59s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/96f09df849914aa083abb9534472a542 : SUCCESS in 8m 11s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a6405f7dbe3b4e9aa9bf230cf721d83b : FAILURE in 3m 14s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/61b1509901fa4e5da0811c8db622effd : SUCCESS in 4m 03s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/940c18572b9640e2bfc281230b0b31ec : SUCCESS in 5m 22s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/12a6686af767478284542ea264fbb881 : SUCCESS in 4m 44s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"4a7b47b84847e943a6f0c39c3040a8ee8a27c44a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-15 11:06:52.000000000","message":"Uploaded patch set 3: Patch Set 2 was rebased.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"8cc742b42ddf6cc9da8bbccdbdb3b2e421b9dbae","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-15 11:18:20.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/5e2d15081b944bc6a16bf91344146b45\n\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/824ac014adc84a7ca05d4e1ec321dbd1 : SUCCESS in 3m 31s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/92c9450799e04b02a16eaa3f392b3fc1 : POST_FAILURE in 2m 35s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/014ff9ef986345beb5999ccefd94a4fc : SUCCESS in 3m 35s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/580f02b700c544039195a4fb1e784b7a : SUCCESS in 8m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bad9203f444c4596a511586bcca0d2db : POST_FAILURE in 1m 59s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/b77bb26039594ec9a02fcf2c156e54f8 : SUCCESS in 3m 31s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/8636a89beffc40739bad075151a64c85 : SUCCESS in 3m 43s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/e1695f70e27041209c3a3ab9e953e106 : SUCCESS in 8m 04s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"24ac9fd243a684d409b3f7003eeb5677fe611bb7","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-15 13:46:45.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"651a228bd85935fc06fb071bbc36b98354a4352d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-15 13:59:43.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a9e1ae662da342a8804e80b468229375\n\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/be9a5b917e654f658c1b7f6e72a741bc : SUCCESS in 2m 21s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/a7ad12707691486aa0131c1bbbbb65b0 : SUCCESS in 2m 44s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/bb723a97463748389e6b371756fee545 : SUCCESS in 6m 03s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bbb3069cba564a8e9a9a2f2b8e3cc006 : SUCCESS in 3m 51s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cd7fe6d6c834417f855b29705017b657 : SUCCESS in 2m 55s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/348bf6d65bd0426abe7a1a05dcfc6153 : SUCCESS in 4m 51s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b1f974ccdb7d4e038125e09328d641e1 : SUCCESS in 3m 37s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a98fcaabd48c423c8a54381a86c5235a : SUCCESS in 5m 36s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"f2e48869eae0da6b5de06f7551199ab719369940","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-06-15 15:05:06.000000000","message":"Patch Set 3: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"501c25cf27041c3483619a178c8c3d13ea9bfe25","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-06-15 15:05:23.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"3c7481deb1fd60bf1a685d95741cf786e9e70ca1","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-15 22:21:05.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"08cdefbe44eb9b3175bd85c14e87d9140e25dd93","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-17 11:44:57.000000000","message":"Patch Set 3: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"24500e25a43904105f35d1ee72244a86263b0d28","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-17 13:00:31.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"06c22f842a542aa11ec2f8c5300b79c6023e58a8","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-17 13:05:24.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"402af3a5efe3c3a8bc34cda5dbff8fa9f53fa587","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-17 14:02:45.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6c7ef8d10ed54fdb8d783afc9a597814\n\n- build-openstack-api-ref https://zuul.opendev.org/t/openstack/build/af7a19150e404b5fa2e3676bce353159 : SUCCESS in 2m 41s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/73391ce621794404a8939600ab765bf1 : SUCCESS in 2m 37s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/42396553211c4b9c9f211953cb2d079a : SUCCESS in 9m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fbef62afdf3547a3b151c3c33647544f : SUCCESS in 5m 12s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/4d790fefe7ad43deb065e5e093441382 : SUCCESS in 3m 29s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/8778cbaaadfe4ee18a43b08fd64f709e : SUCCESS in 3m 45s","accounts_in_message":[],"_revision_number":3},{"id":"28ff53dd2ac706cae540f9996917b55e8ca559e3","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-17 14:02:45.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":3},{"id":"86c5d9ea03985ff05dfe04457c33b9fef690c376","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-17 14:06:31.000000000","message":"Patch Set 3:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/85bc046f8fe34cf39a0a7b86ef8865de\n\n- promote-api-ref https://zuul.opendev.org/t/openstack/build/e7439b0137b14a378d86c8af95128e12 : SUCCESS in 56s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/22c96b73270d42e0adddf2bf95b70369 : SUCCESS in 53s\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/55fbc8a9749340639ae78bb1e0fe7b25 : SUCCESS in 43s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"f9a214179798084a4c6af04a7b8ee8ab402c1130","revisions":{"a89b9830043610e65ee0208d7c031294c7d8c882":{"kind":"REWORK","_number":1,"created":"2026-06-02 19:00:42.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/77/991177/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/77/991177/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/77/991177/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/77/991177/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/77/991177/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/77/991177/1"}}},"commit":{"parents":[{"commit":"41398512fc77cb55da86d531b88961b7ac9fa187","subject":"devstack: add pci-sim fake SR-IOV PCI passthrough test fixture","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/41398512fc77cb55da86d531b88961b7ac9fa187"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-06-02 19:00:22.000000000","tz":60},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-06-02 19:00:22.000000000","tz":60},"subject":"Add pci-sim developer guide","message":"Add pci-sim developer guide\n\nThe pci-sim module now has several focused contributor pages, but it lacks a\nsingle maintainer-oriented guide that explains how the out-of-tree kernel\nmodule works and how to safely extend it. That makes it difficult for Cyborg\ncontributors who understand OpenStack and virtualization to reason about the\nPCI, SR-IOV, IOMMU, VFIO, and TTY kernel interfaces used by the module.\n\nAdd a long-form pci-sim developer guide covering the module\u0027s design goals,\ncore kernel concepts, build flow, source layout, data paths, extension\nworkflows, validation strategy, troubleshooting, and limitations. Link the new\npage from the pci-sim contributor index.\n\nAlso align the Sphinx tox commands with Nova\u0027s stricter docs pattern by using\n--keep-going and parallel builds for docs, PDF docs, release notes, and the API\nreference. This keeps warnings fatal while allowing Sphinx to report more than\nthe first issue.\n\nGenerated-By: pi gpt-5.5\nChange-Id: Iba69ec4f17b62b502ca9d83cf2191dc0152200a3\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/a89b9830043610e65ee0208d7c031294c7d8c882"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/a89b9830043610e65ee0208d7c031294c7d8c882"}]},"branch":"refs/heads/master"},"06f28ed8fc748eb41c7800aae0f43fc523a0fb70":{"kind":"REWORK","_number":2,"created":"2026-06-12 15:20:01.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/77/991177/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/77/991177/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/77/991177/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/77/991177/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/77/991177/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/77/991177/2"}}},"commit":{"parents":[{"commit":"4a8a85c1112931bb4444a07cf38d11a3ad01d801","subject":"devstack: add pci-sim fake SR-IOV PCI passthrough test fixture","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/4a8a85c1112931bb4444a07cf38d11a3ad01d801"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-06-02 19:00:22.000000000","tz":60},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-06-12 15:13:45.000000000","tz":0},"subject":"Add pci-sim developer guide","message":"Add pci-sim developer guide\n\nThe pci-sim module now has several focused contributor pages, but it lacks a\nsingle maintainer-oriented guide that explains how the out-of-tree kernel\nmodule works and how to safely extend it. That makes it difficult for Cyborg\ncontributors who understand OpenStack and virtualization to reason about the\nPCI, SR-IOV, IOMMU, VFIO, and TTY kernel interfaces used by the module.\n\nAdd a long-form pci-sim developer guide covering the module\u0027s design goals,\ncore kernel concepts, build flow, source layout, data paths, extension\nworkflows, validation strategy, troubleshooting, and limitations. Link the new\npage from the pci-sim contributor index.\n\nAlso align the Sphinx tox commands with Nova\u0027s stricter docs pattern by using\n--keep-going and parallel builds for docs, PDF docs, release notes, and the API\nreference. This keeps warnings fatal while allowing Sphinx to report more than\nthe first issue.\n\nGenerated-By: pi gpt-5.5\nChange-Id: Iba69ec4f17b62b502ca9d83cf2191dc0152200a3\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/06f28ed8fc748eb41c7800aae0f43fc523a0fb70"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/06f28ed8fc748eb41c7800aae0f43fc523a0fb70"}]},"branch":"refs/heads/master"},"f9a214179798084a4c6af04a7b8ee8ab402c1130":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2026-06-15 11:06:52.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/77/991177/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cyborg","ref":"refs/changes/77/991177/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/77/991177/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/77/991177/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cyborg refs/changes/77/991177/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cyborg refs/changes/77/991177/3"}}},"commit":{"parents":[{"commit":"7b1fc570bd189f18ad5f4a44926a736f8b442198","subject":"devstack: add pci-sim fake SR-IOV PCI passthrough test fixture","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/7b1fc570bd189f18ad5f4a44926a736f8b442198"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-06-02 19:00:22.000000000","tz":60},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-06-15 09:49:23.000000000","tz":60},"subject":"Add pci-sim developer guide","message":"Add pci-sim developer guide\n\nThe pci-sim module now has several focused contributor pages, but it lacks a\nsingle maintainer-oriented guide that explains how the out-of-tree kernel\nmodule works and how to safely extend it. That makes it difficult for Cyborg\ncontributors who understand OpenStack and virtualization to reason about the\nPCI, SR-IOV, IOMMU, VFIO, and TTY kernel interfaces used by the module.\n\nAdd a long-form pci-sim developer guide covering the module\u0027s design goals,\ncore kernel concepts, build flow, source layout, data paths, extension\nworkflows, validation strategy, troubleshooting, and limitations. Link the new\npage from the pci-sim contributor index.\n\nAlso align the Sphinx tox commands with Nova\u0027s stricter docs pattern by using\n--keep-going and parallel builds for docs, PDF docs, release notes, and the API\nreference. This keeps warnings fatal while allowing Sphinx to report more than\nthe first issue.\n\nGenerated-By: pi gpt-5.5\nChange-Id: Iba69ec4f17b62b502ca9d83cf2191dc0152200a3\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/f9a214179798084a4c6af04a7b8ee8ab402c1130"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cyborg/commit/f9a214179798084a4c6af04a7b8ee8ab402c1130"}]},"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":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}}]}],"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":"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":""}}}]}
