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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.