From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Igor Mammedov" <imammedo@redhat.com>,
"Vladimir Sementsov-Ogievskiy" <vsementsov@yandex-team.ru>,
"Eric Blake" <eblake@redhat.com>, "Kevin Wolf" <kwolf@redhat.com>,
"Zhao Liu" <zhao1.liu@intel.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Lukas Straub" <lukasstraub2@web.de>,
"Ani Sinha" <anisinha@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Markus Armbruster" <armbru@redhat.com>,
"Fabiano Rosas" <farosas@suse.de>,
"Jason Wang" <jasowang@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"John Snow" <jsnow@redhat.com>, "Hanna Reitz" <hreitz@redhat.com>,
qemu-block@nongnu.org, "Peter Xu" <peterx@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Eduardo Habkost" <eduardo@habkost.net>
Subject: [PATCH 00/18] QAPI: add cross-references to qapi docs
Date: Fri, 13 Jun 2025 16:36:02 -0400 [thread overview]
Message-ID: <20250613203620.1283814-1-jsnow@redhat.com> (raw)
Based-on: 20250612214200.1208340-1-jsnow@redhat.com
[PATCH v4 0/4] qapi: add auto-generated return docs
Hi, this patch series is a *mostly* mechanical application of QAPI
cross-references to the QAPI/QMP documentation. I exported all
cross-referenceable symbols from the QMP QAPI schema and ran them
through a script that converted any matching words to a cross-reference.
I then used `git add -p` and only added changes that looked reasonable,
omitting many cases of converting common words like "stop",
"transaction", "eject", "String" etc when it wasn't immediately clear
that it was appropriate. I probably missed a few ... in either
direction.
I'd like to ask maintainers for each subsystem to review the changes and
confirm that they make sense. To make it easy for you, here's a link to
each module that was changed, in order:
1/18 acpi
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#acpi
2/18 authz
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#user-authorization
3/18 block
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#block-devices
4/18 crypto
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#cryptography-devices
5/18 dump
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#dump-guest-memory
6/18 job
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#background-jobs
7/18 machine
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#machines
8/18 migration
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#migration
9/18 net
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#net-devices
10/18 pci
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#pci
11/18 QOM
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#qemu-object-model-qom
12/18 replay
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#record-replay
13/18 run-state
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#vm-run-state
14/18 sockets
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#socket-data-types
15/18 ui
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#remote-desktop
16/18 virtio
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#virtio-devices
17/18 yank
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#yank-feature
18/18 misc
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#qmp-monitor-control
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#ebpf-objects
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#qmp-introspection
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#module-QMP-misc-arm
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#module-QMP-misc-i386
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#module-QMP-misc
https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#module-QMP-stats
A few benefits of doing this:
(1) It makes the docs easier to navigate for users, being able to just
click to the referred data type / enum / event / command / etc.
(2) It helps prevent bitrot: if the name of a command / event / data
type / etc changes, the cross-reference will cause the build to
fail, giving a needed hint that documentation elsewhere needs to be
updated.
(3) Prompting the maintainers to review the generated HTML documentation
O:-)
A few hints for maintainers should they wish to try their own hand at
improving the documentation for their subsystems:
* Try building docs from your build directory like this:
> DEBUG=1 pyvenv/bin/sphinx-build -v -j 1 -b html -d docs/manual.p/ ../docs/ docs/manual/;
Limiting to one thread makes sphinx errors more verbose (and
helpful), and if you run into rST formatting errors, you can view
the 'qapi_qapi-schema.ir' artifact in the build directory (DEBUG=1
causes this to exist) to examine the intermediate rST source code so
you don't have to fight with the QAPI parsing subsystem to
understand what happened.
* html docs of interest will be in
docs/manual/interop/qemu-qmp-ref.html
* QMP reference index will be at docs/manual/qapi-qmp-index.html
* QAPI-specific cross-referencing syntax is documented at
https://www.qemu.org/docs/master/devel/qapi-domain.html#cross-references
* QMP Example syntax is documented towards the bottom of this QAPI
codegen section:
https://www.qemu.org/docs/master/devel/qapi-code-gen.html#definition-documentation
John Snow (18):
qapi: add cross-references to acpi.json
qapi: add cross-references to authz.json
qapi: add cross-references to block layer
qapi: add cross-references to crypto.json
qapi: add cross-references to dump.json
qapi: add cross-references to job.json
qapi: add cross-references to Machine core
qapi: add cross-references to migration.json
qapi: add cross-references to net.json
qapi: add cross-references to pci.json
qapi: add cross-references to QOM
qapi: add cross-references to replay.json
qapi: add cross-references to run-state.json
qapi: add cross-references to sockets.json
qapi: add cross-references to ui.json
qapi: add cross-references to virtio.json
qapi: add cross-references to yank.json
qapi: add cross-references to misc modules
qapi/acpi.json | 2 +-
qapi/authz.json | 2 +-
qapi/block-core.json | 186 +++++++++++++++++++--------------------
qapi/block-export.json | 36 ++++----
qapi/block.json | 14 +--
qapi/control.json | 2 +-
qapi/crypto.json | 4 +-
qapi/dump.json | 10 +--
qapi/ebpf.json | 2 +-
qapi/introspect.json | 22 ++---
qapi/job.json | 73 +++++++--------
qapi/machine-common.json | 20 ++---
qapi/machine.json | 100 ++++++++++-----------
qapi/migration.json | 62 ++++++-------
qapi/misc-arm.json | 4 +-
qapi/misc-i386.json | 2 +-
qapi/misc.json | 6 +-
qapi/net.json | 4 +-
qapi/pci.json | 2 +-
qapi/qdev.json | 4 +-
qapi/qom.json | 9 +-
qapi/replay.json | 10 +--
qapi/run-state.json | 42 ++++-----
qapi/sockets.json | 6 +-
qapi/stats.json | 8 +-
qapi/transaction.json | 20 ++---
qapi/ui.json | 34 +++----
qapi/virtio.json | 8 +-
qapi/yank.json | 20 ++---
29 files changed, 358 insertions(+), 356 deletions(-)
--
2.48.1
next reply other threads:[~2025-06-13 20:37 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-13 20:36 John Snow [this message]
2025-06-13 20:36 ` [PATCH 01/18] qapi: add cross-references to acpi.json John Snow
2025-06-13 20:36 ` [PATCH 02/18] qapi: add cross-references to authz.json John Snow
2025-06-13 20:36 ` [PATCH 03/18] qapi: add cross-references to block layer John Snow
2025-06-16 16:30 ` Eric Blake
2025-06-16 16:45 ` John Snow
2025-07-02 7:45 ` Markus Armbruster
2025-06-13 20:36 ` [PATCH 04/18] qapi: add cross-references to crypto.json John Snow
2025-06-13 20:36 ` [PATCH 05/18] qapi: add cross-references to dump.json John Snow
2025-06-13 20:36 ` [PATCH 06/18] qapi: add cross-references to job.json John Snow
2025-07-02 7:57 ` Markus Armbruster
2025-06-13 20:36 ` [PATCH 07/18] qapi: add cross-references to Machine core John Snow
2025-07-02 8:00 ` Markus Armbruster
2025-06-13 20:36 ` [PATCH 08/18] qapi: add cross-references to migration.json John Snow
2025-07-02 8:04 ` Markus Armbruster
2025-07-11 5:32 ` John Snow
2025-06-13 20:36 ` [PATCH 09/18] qapi: add cross-references to net.json John Snow
2025-06-13 20:36 ` [PATCH 10/18] qapi: add cross-references to pci.json John Snow
2025-06-13 20:36 ` [PATCH 11/18] qapi: add cross-references to QOM John Snow
2025-06-13 20:36 ` [PATCH 12/18] qapi: add cross-references to replay.json John Snow
2025-06-13 20:36 ` [PATCH 13/18] qapi: add cross-references to run-state.json John Snow
2025-06-13 20:36 ` [PATCH 14/18] qapi: add cross-references to sockets.json John Snow
2025-06-16 17:04 ` Eric Blake
2025-06-13 20:36 ` [PATCH 15/18] qapi: add cross-references to ui.json John Snow
2025-07-02 8:10 ` Markus Armbruster
2025-06-13 20:36 ` [PATCH 16/18] qapi: add cross-references to virtio.json John Snow
2025-06-13 20:36 ` [PATCH 17/18] qapi: add cross-references to yank.json John Snow
2025-06-16 15:24 ` Lukas Straub
2025-07-02 8:14 ` Markus Armbruster
2025-06-13 20:36 ` [PATCH 18/18] qapi: add cross-references to misc modules John Snow
2025-06-16 17:06 ` Eric Blake
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250613203620.1283814-1-jsnow@redhat.com \
--to=jsnow@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=anisinha@redhat.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=eblake@redhat.com \
--cc=eduardo@habkost.net \
--cc=farosas@suse.de \
--cc=hreitz@redhat.com \
--cc=imammedo@redhat.com \
--cc=jasowang@redhat.com \
--cc=kwolf@redhat.com \
--cc=lukasstraub2@web.de \
--cc=marcandre.lureau@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=vsementsov@yandex-team.ru \
--cc=wangyanan55@huawei.com \
--cc=zhao1.liu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).