* [PATCH v3 0/4] qapi: add auto-generated return docs
@ 2025-05-23 18:24 John Snow
2025-05-23 18:24 ` [PATCH v3 1/4] docs/qapi-domain: add return-nodesc John Snow
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: John Snow @ 2025-05-23 18:24 UTC (permalink / raw)
To: qemu-devel
Cc: Kevin Wolf, Peter Maydell, Yanan Wang, Jiri Pirko,
Marcel Apfelbaum, Philippe Mathieu-Daudé, Lukas Straub,
Peter Xu, Michael Roth, Jason Wang, Stefan Hajnoczi, Eric Blake,
qemu-trivial, Gerd Hoffmann, Marc-André Lureau,
Michael Tokarev, qemu-block, Mads Ynddal, Michael S. Tsirkin,
Stefan Berger, Paolo Bonzini, John Snow, Eduardo Habkost,
Fabiano Rosas, Zhao Liu, Zhenwei Pi, Ani Sinha, Markus Armbruster,
Daniel P. Berrangé, Hanna Reitz,
Vladimir Sementsov-Ogievskiy, Gonglei (Arei), Laurent Vivier
v3: rebased on top of python-qapi-linting (v4) pull request;
removed commits that are no longer needed.
Markus: I forget where we left off... shall we refresh?
v2: fix multi-return-sections bug :(
John Snow (4):
docs/qapi-domain: add return-nodesc
docs, qapi: generate undocumented return sections
qapi: remove trivial "Returns:" sections
qapi: rephrase return docs to avoid type name
docs/devel/qapi-domain.rst | 30 ++++++++++++++++++++++++++++++
docs/sphinx/qapi_domain.py | 8 ++++++++
docs/sphinx/qapidoc.py | 14 ++++++++------
qapi/audio.json | 2 --
qapi/block-core.json | 14 +++-----------
qapi/block-export.json | 2 +-
qapi/block.json | 2 +-
qapi/char.json | 8 --------
qapi/control.json | 5 ++---
qapi/cryptodev.json | 2 --
qapi/dump.json | 5 ++---
qapi/introspect.json | 6 +++---
qapi/job.json | 2 +-
qapi/machine-target.json | 9 +++------
qapi/machine.json | 22 ----------------------
qapi/migration.json | 12 ------------
qapi/misc-target.json | 14 +-------------
qapi/misc.json | 12 ++----------
qapi/net.json | 2 +-
qapi/pci.json | 2 +-
qapi/qdev.json | 3 +--
qapi/qom.json | 8 +++-----
qapi/rocker.json | 4 ----
qapi/run-state.json | 2 --
qapi/stats.json | 2 +-
qapi/tpm.json | 4 ----
qapi/trace.json | 2 +-
qapi/ui.json | 10 +---------
qapi/virtio.json | 8 +++-----
qapi/yank.json | 1 -
scripts/qapi/parser.py | 15 +++++++++++++++
scripts/qapi/schema.py | 3 +++
32 files changed, 95 insertions(+), 140 deletions(-)
--
2.48.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v3 1/4] docs/qapi-domain: add return-nodesc
2025-05-23 18:24 [PATCH v3 0/4] qapi: add auto-generated return docs John Snow
@ 2025-05-23 18:24 ` John Snow
2025-05-23 18:24 ` [PATCH v3 2/4] docs, qapi: generate undocumented return sections John Snow
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: John Snow @ 2025-05-23 18:24 UTC (permalink / raw)
To: qemu-devel
Cc: Kevin Wolf, Peter Maydell, Yanan Wang, Jiri Pirko,
Marcel Apfelbaum, Philippe Mathieu-Daudé, Lukas Straub,
Peter Xu, Michael Roth, Jason Wang, Stefan Hajnoczi, Eric Blake,
qemu-trivial, Gerd Hoffmann, Marc-André Lureau,
Michael Tokarev, qemu-block, Mads Ynddal, Michael S. Tsirkin,
Stefan Berger, Paolo Bonzini, John Snow, Eduardo Habkost,
Fabiano Rosas, Zhao Liu, Zhenwei Pi, Ani Sinha, Markus Armbruster,
Daniel P. Berrangé, Hanna Reitz,
Vladimir Sementsov-Ogievskiy, Gonglei (Arei), Laurent Vivier
This form is used to annotate a return type without an accompanying
description, for when there is no "Returns:" information in the source
doc, but we have a return type we want to generate a cross-reference to.
The syntax is:
:return-nodesc: TypeName
It's primarily necessary because Sphinx always expects both a type and a
description for the prior form and will format it accordingly. To have a
reasonable rendering when the body is missing, we need to use a
different info field list entirely.
Signed-off-by: John Snow <jsnow@redhat.com>
---
docs/devel/qapi-domain.rst | 30 ++++++++++++++++++++++++++++++
docs/sphinx/qapi_domain.py | 8 ++++++++
2 files changed, 38 insertions(+)
diff --git a/docs/devel/qapi-domain.rst b/docs/devel/qapi-domain.rst
index 11238723c2d..204abb72ff4 100644
--- a/docs/devel/qapi-domain.rst
+++ b/docs/devel/qapi-domain.rst
@@ -242,6 +242,36 @@ Example::
}
+``:return-nodesc:``
+-------------------
+
+Document the return type of a QAPI command, without an accompanying description.
+
+:availability: This field list is only available in the body of the
+ Command directive.
+:syntax: ``:return-nodesc: type``
+:type: `sphinx.util.docfields.Field
+ <https://pydoc.dev/sphinx/latest/sphinx.util.docfields.Field.html?private=1>`_
+
+
+Example::
+
+ .. qapi:command:: query-replay
+ :since: 5.2
+
+ Retrieve the record/replay information. It includes current
+ instruction count which may be used for ``replay-break`` and
+ ``replay-seek`` commands.
+
+ :return-nodesc: ReplayInfo
+
+ .. qmp-example::
+
+ -> { "execute": "query-replay" }
+ <- { "return": {
+ "mode": "play", "filename": "log.rr", "icount": 220414 }
+ }
+
``:value:``
-----------
diff --git a/docs/sphinx/qapi_domain.py b/docs/sphinx/qapi_domain.py
index ebc46a72c61..f561dc465f8 100644
--- a/docs/sphinx/qapi_domain.py
+++ b/docs/sphinx/qapi_domain.py
@@ -532,6 +532,14 @@ class QAPICommand(QAPIObject):
names=("return",),
can_collapse=True,
),
+ # :return-nodesc: TypeName
+ CompatField(
+ "returnvalue",
+ label=_("Return"),
+ names=("return-nodesc",),
+ bodyrolename="type",
+ has_arg=False,
+ ),
]
)
--
2.48.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 2/4] docs, qapi: generate undocumented return sections
2025-05-23 18:24 [PATCH v3 0/4] qapi: add auto-generated return docs John Snow
2025-05-23 18:24 ` [PATCH v3 1/4] docs/qapi-domain: add return-nodesc John Snow
@ 2025-05-23 18:24 ` John Snow
2025-05-23 18:24 ` [PATCH v3 3/4] qapi: remove trivial "Returns:" sections John Snow
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: John Snow @ 2025-05-23 18:24 UTC (permalink / raw)
To: qemu-devel
Cc: Kevin Wolf, Peter Maydell, Yanan Wang, Jiri Pirko,
Marcel Apfelbaum, Philippe Mathieu-Daudé, Lukas Straub,
Peter Xu, Michael Roth, Jason Wang, Stefan Hajnoczi, Eric Blake,
qemu-trivial, Gerd Hoffmann, Marc-André Lureau,
Michael Tokarev, qemu-block, Mads Ynddal, Michael S. Tsirkin,
Stefan Berger, Paolo Bonzini, John Snow, Eduardo Habkost,
Fabiano Rosas, Zhao Liu, Zhenwei Pi, Ani Sinha, Markus Armbruster,
Daniel P. Berrangé, Hanna Reitz,
Vladimir Sementsov-Ogievskiy, Gonglei (Arei), Laurent Vivier
This patch changes the qapidoc transmogrifier to generate Return value
documentation for any command that has a return value but hasn't
explicitly documented that return value.
Signed-off-by: John Snow <jsnow@redhat.com>
---
docs/sphinx/qapidoc.py | 14 ++++++++------
scripts/qapi/parser.py | 15 +++++++++++++++
scripts/qapi/schema.py | 3 +++
3 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py
index 8011ac9efaf..627d0b5ff1a 100644
--- a/docs/sphinx/qapidoc.py
+++ b/docs/sphinx/qapidoc.py
@@ -255,16 +255,18 @@ def visit_feature(self, section: QAPIDoc.ArgSection) -> None:
def visit_returns(self, section: QAPIDoc.Section) -> None:
assert isinstance(self.entity, QAPISchemaCommand)
rtype = self.entity.ret_type
- # q_empty can produce None, but we won't be documenting anything
- # without an explicit return statement in the doc block, and we
- # should not have any such explicit statements when there is no
- # return value.
+ # return statements will not be present (and won't be
+ # autogenerated) for any command that doesn't return
+ # *something*, so ret_type will always be defined here.
assert rtype
typ = self.format_type(rtype)
assert typ
- assert section.text
- self.add_field("return", typ, section.text, section.info)
+
+ if section.text:
+ self.add_field("return", typ, section.text, section.info)
+ else:
+ self.add_lines(f":return-nodesc: {typ}", section.info)
def visit_errors(self, section: QAPIDoc.Section) -> None:
# FIXME: the formatting for errors may be inconsistent and may
diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py
index 949d9e8bff7..6db08f82409 100644
--- a/scripts/qapi/parser.py
+++ b/scripts/qapi/parser.py
@@ -815,6 +815,21 @@ def connect_feature(self, feature: 'QAPISchemaFeature') -> None:
% feature.name)
self.features[feature.name].connect(feature)
+ def ensure_returns(self, info: QAPISourceInfo) -> None:
+ if not any(s.kind == QAPIDoc.Kind.RETURNS for s in self.all_sections):
+
+ stub = QAPIDoc.Section(info, QAPIDoc.Kind.RETURNS)
+
+ # Stub "Returns" section for undocumented returns value.
+ # Insert stub after the last non-PLAIN section.
+ for sect in reversed(self.all_sections):
+ if sect.kind != QAPIDoc.Kind.PLAIN:
+ idx = self.all_sections.index(sect) + 1
+ self.all_sections.insert(idx, stub)
+ break
+ else:
+ self.all_sections.append(stub)
+
def check_expr(self, expr: QAPIExpression) -> None:
if 'command' in expr:
if self.returns and 'returns' not in expr:
diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
index cbe3b5aa91e..3abddea3525 100644
--- a/scripts/qapi/schema.py
+++ b/scripts/qapi/schema.py
@@ -1062,6 +1062,9 @@ def connect_doc(self, doc: Optional[QAPIDoc] = None) -> None:
if self.arg_type and self.arg_type.is_implicit():
self.arg_type.connect_doc(doc)
+ if self.ret_type and self.info:
+ doc.ensure_returns(self.info)
+
def visit(self, visitor: QAPISchemaVisitor) -> None:
super().visit(visitor)
visitor.visit_command(
--
2.48.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 3/4] qapi: remove trivial "Returns:" sections
2025-05-23 18:24 [PATCH v3 0/4] qapi: add auto-generated return docs John Snow
2025-05-23 18:24 ` [PATCH v3 1/4] docs/qapi-domain: add return-nodesc John Snow
2025-05-23 18:24 ` [PATCH v3 2/4] docs, qapi: generate undocumented return sections John Snow
@ 2025-05-23 18:24 ` John Snow
2025-05-23 18:24 ` [PATCH v3 4/4] qapi: rephrase return docs to avoid type name John Snow
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: John Snow @ 2025-05-23 18:24 UTC (permalink / raw)
To: qemu-devel
Cc: Kevin Wolf, Peter Maydell, Yanan Wang, Jiri Pirko,
Marcel Apfelbaum, Philippe Mathieu-Daudé, Lukas Straub,
Peter Xu, Michael Roth, Jason Wang, Stefan Hajnoczi, Eric Blake,
qemu-trivial, Gerd Hoffmann, Marc-André Lureau,
Michael Tokarev, qemu-block, Mads Ynddal, Michael S. Tsirkin,
Stefan Berger, Paolo Bonzini, John Snow, Eduardo Habkost,
Fabiano Rosas, Zhao Liu, Zhenwei Pi, Ani Sinha, Markus Armbruster,
Daniel P. Berrangé, Hanna Reitz,
Vladimir Sementsov-Ogievskiy, Gonglei (Arei), Laurent Vivier
The new qapidoc transmogrifier can generate "Returns" statements with
type information just fine, so we can remove it from the source where it
doesn't add anything particularly novel or helpful and just repeats the
type info.
This patch does not touch Returns: lines that add some information
(potentially helpful, potentially not) but repeats the type information
to remove that type.
Signed-off-by: John Snow <jsnow@redhat.com>
---
qapi/audio.json | 2 --
qapi/block-core.json | 8 --------
qapi/char.json | 8 --------
qapi/cryptodev.json | 2 --
qapi/machine-target.json | 2 --
qapi/machine.json | 22 ----------------------
qapi/migration.json | 12 ------------
qapi/misc-target.json | 12 ------------
qapi/misc.json | 7 -------
qapi/rocker.json | 4 ----
qapi/run-state.json | 2 --
qapi/tpm.json | 4 ----
qapi/ui.json | 8 --------
qapi/virtio.json | 2 --
qapi/yank.json | 1 -
15 files changed, 96 deletions(-)
diff --git a/qapi/audio.json b/qapi/audio.json
index dd5a58d13e6..d49ca4cae47 100644
--- a/qapi/audio.json
+++ b/qapi/audio.json
@@ -535,8 +535,6 @@
#
# Returns information about audiodev configuration
#
-# Returns: array of @Audiodev
-#
# Since: 8.0
##
{ 'command': 'query-audiodevs',
diff --git a/qapi/block-core.json b/qapi/block-core.json
index b1937780e19..92b2e368b72 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -1949,8 +1949,6 @@
# @flat: Omit the nested data about backing image ("backing-image"
# key) if true. Default is false (Since 5.0)
#
-# Returns: the list of BlockDeviceInfo
-#
# Since: 2.0
#
# .. qmp-example::
@@ -2464,9 +2462,6 @@
#
# @unstable: This command is meant for debugging.
#
-# Returns:
-# BlockDirtyBitmapSha256
-#
# Errors:
# - If @node is not a valid block device, DeviceNotFound
# - If @name is not found or if hashing has failed, GenericError
@@ -6157,9 +6152,6 @@
#
# @name: optional the snapshot's name to be deleted
#
-# Returns:
-# SnapshotInfo
-#
# Errors:
# - If @device is not a valid block device, GenericError
# - If snapshot not found, GenericError
diff --git a/qapi/char.json b/qapi/char.json
index dde2f9538f8..6a82db0d156 100644
--- a/qapi/char.json
+++ b/qapi/char.json
@@ -36,8 +36,6 @@
#
# Returns information about current character devices.
#
-# Returns: a list of @ChardevInfo
-#
# Since: 0.14
#
# .. qmp-example::
@@ -82,8 +80,6 @@
#
# Returns information about character device backends.
#
-# Returns: a list of @ChardevBackendInfo
-#
# Since: 2.0
#
# .. qmp-example::
@@ -772,8 +768,6 @@
#
# @backend: backend type and parameters
#
-# Returns: ChardevReturn.
-#
# Since: 1.4
#
# .. qmp-example::
@@ -812,8 +806,6 @@
#
# @backend: new backend type and parameters
#
-# Returns: ChardevReturn.
-#
# Since: 2.10
#
# .. qmp-example::
diff --git a/qapi/cryptodev.json b/qapi/cryptodev.json
index 04d0e21d209..e8371b9d950 100644
--- a/qapi/cryptodev.json
+++ b/qapi/cryptodev.json
@@ -96,8 +96,6 @@
#
# Returns information about current crypto devices.
#
-# Returns: a list of @QCryptodevInfo
-#
# Since: 8.0
##
{ 'command': 'query-cryptodev', 'returns': ['QCryptodevInfo']}
diff --git a/qapi/machine-target.json b/qapi/machine-target.json
index 426ce4ee82d..e4b464eb1a4 100644
--- a/qapi/machine-target.json
+++ b/qapi/machine-target.json
@@ -391,8 +391,6 @@
#
# Return a list of supported virtual CPU definitions
#
-# Returns: a list of CpuDefinitionInfo
-#
# Since: 1.2
##
{ 'command': 'query-cpu-definitions', 'returns': ['CpuDefinitionInfo'],
diff --git a/qapi/machine.json b/qapi/machine.json
index c8feb9fe17b..5d5b958d1d4 100644
--- a/qapi/machine.json
+++ b/qapi/machine.json
@@ -101,8 +101,6 @@
#
# Returns information about all virtual CPUs.
#
-# Returns: list of @CpuInfoFast
-#
# Since: 2.12
#
# .. qmp-example::
@@ -218,8 +216,6 @@
#
# @unstable: Argument @compat-props is experimental.
#
-# Returns: a list of MachineInfo
-#
# Since: 1.2
#
# .. qmp-example::
@@ -268,8 +264,6 @@
#
# Return information on the current virtual machine.
#
-# Returns: CurrentMachineParams
-#
# Since: 4.0
##
{ 'command': 'query-current-machine', 'returns': 'CurrentMachineParams' }
@@ -291,8 +285,6 @@
#
# Return information about the target for this QEMU
#
-# Returns: QemuTargetInfo
-#
# Since: 1.2
##
{ 'command': 'query-target', 'returns': 'QemuTargetInfo' }
@@ -316,8 +308,6 @@
#
# Query the guest UUID information.
#
-# Returns: The @UuidInfo for the guest
-#
# Since: 0.14
#
# .. qmp-example::
@@ -469,8 +459,6 @@
#
# Returns information about KVM acceleration
#
-# Returns: @KvmInfo
-#
# Since: 0.14
#
# .. qmp-example::
@@ -932,8 +920,6 @@
#
# Returns information for all memory backends.
#
-# Returns: a list of @Memdev.
-#
# Since: 2.1
#
# .. qmp-example::
@@ -1049,8 +1035,6 @@
#
# TODO: Better documentation; currently there is none.
#
-# Returns: a list of HotpluggableCPU objects.
-#
# Since: 2.7
#
# .. qmp-example::
@@ -1172,9 +1156,6 @@
#
# Return information about the balloon device.
#
-# Returns:
-# @BalloonInfo
-#
# Errors:
# - If the balloon driver is enabled but not functional because
# the KVM kernel module cannot support it, KVMMissingCap
@@ -1238,9 +1219,6 @@
# Returns the hv-balloon driver data contained in the last received
# "STATUS" message from the guest.
#
-# Returns:
-# @HvBalloonInfo
-#
# Errors:
# - If no hv-balloon device is present, guest memory status
# reporting is not enabled or no guest memory status report
diff --git a/qapi/migration.json b/qapi/migration.json
index 8b9c53595c4..b0e9452e7fa 100644
--- a/qapi/migration.json
+++ b/qapi/migration.json
@@ -286,8 +286,6 @@
# is active there will be another json-object with RAM migration
# status.
#
-# Returns: @MigrationInfo
-#
# Since: 0.14
#
# .. qmp-example::
@@ -537,8 +535,6 @@
#
# Returns information about the current migration capabilities status
#
-# Returns: @MigrationCapabilityStatus
-#
# Since: 1.2
#
# .. qmp-example::
@@ -1322,8 +1318,6 @@
#
# Returns information about the current migration parameters
#
-# Returns: @MigrationParameters
-#
# Since: 2.4
#
# .. qmp-example::
@@ -1904,8 +1898,6 @@
#
# Query replication status while the vm is running.
#
-# Returns: A @ReplicationStatus object showing the status.
-#
# .. qmp-example::
#
# -> { "execute": "query-xen-replication-status" }
@@ -1958,8 +1950,6 @@
#
# Query COLO status while the vm is running.
#
-# Returns: A @COLOStatus object showing the status.
-#
# .. qmp-example::
#
# -> { "execute": "query-colo-status" }
@@ -2333,8 +2323,6 @@
#
# @deprecated: This command is deprecated with no replacement yet.
#
-# Returns: @MigrationThreadInfo
-#
# Since: 7.2
##
{ 'command': 'query-migrationthreads',
diff --git a/qapi/misc-target.json b/qapi/misc-target.json
index 42e4a7417dc..94624cb45e0 100644
--- a/qapi/misc-target.json
+++ b/qapi/misc-target.json
@@ -129,8 +129,6 @@
#
# Returns information about SEV
#
-# Returns: @SevInfo
-#
# Since: 2.12
#
# .. qmp-example::
@@ -205,8 +203,6 @@
# This command is used to get the SEV capabilities, and is supported
# on AMD X86 platforms only.
#
-# Returns: SevCapability objects.
-#
# Since: 2.12
#
# .. qmp-example::
@@ -259,8 +255,6 @@
# @mnonce: a random 16 bytes value encoded in base64 (it will be
# included in report)
#
-# Returns: SevAttestationReport objects.
-#
# Since: 6.1
#
# .. qmp-example::
@@ -305,8 +299,6 @@
# This command is ARM-only. It will return a list of GICCapability
# objects that describe its capability bits.
#
-# Returns: a list of GICCapability objects.
-#
# Since: 2.6
#
# .. qmp-example::
@@ -363,8 +355,6 @@
#
# Returns information about SGX
#
-# Returns: @SGXInfo
-#
# Since: 6.2
#
# .. qmp-example::
@@ -382,8 +372,6 @@
#
# Returns information from host SGX capabilities
#
-# Returns: @SGXInfo
-#
# Since: 6.2
#
# .. qmp-example::
diff --git a/qapi/misc.json b/qapi/misc.json
index 559b66f2017..de5dd531071 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -56,8 +56,6 @@
#
# Return the name information of a guest.
#
-# Returns: @NameInfo of the guest
-#
# Since: 0.14
#
# .. qmp-example::
@@ -332,9 +330,6 @@
#
# @opaque: A free-form string that can be used to describe the fd.
#
-# Returns:
-# @AddfdInfo
-#
# Errors:
# - If file descriptor was not received, GenericError
# - If @fdset-id is a negative value, GenericError
@@ -415,8 +410,6 @@
#
# Return information describing all fd sets.
#
-# Returns: A list of @FdsetInfo
-#
# Since: 1.2
#
# .. note:: The list of fd sets is shared by all monitor connections.
diff --git a/qapi/rocker.json b/qapi/rocker.json
index 0c7ef1f77c8..2d2ae3bbafc 100644
--- a/qapi/rocker.json
+++ b/qapi/rocker.json
@@ -28,8 +28,6 @@
#
# @name: switch name
#
-# Returns: @Rocker information
-#
# Since: 2.4
#
# .. qmp-example::
@@ -98,8 +96,6 @@
#
# @name: port name
#
-# Returns: a list of @RockerPort information
-#
# Since: 2.4
#
# .. qmp-example::
diff --git a/qapi/run-state.json b/qapi/run-state.json
index ce95cfa46b7..ff2d694ee2f 100644
--- a/qapi/run-state.json
+++ b/qapi/run-state.json
@@ -119,8 +119,6 @@
#
# Query the run status of the VM
#
-# Returns: @StatusInfo reflecting the VM
-#
# Since: 0.14
#
# .. qmp-example::
diff --git a/qapi/tpm.json b/qapi/tpm.json
index a16a72edb98..f749e6869df 100644
--- a/qapi/tpm.json
+++ b/qapi/tpm.json
@@ -27,8 +27,6 @@
#
# Return a list of supported TPM models
#
-# Returns: a list of TpmModel
-#
# Since: 1.5
#
# .. qmp-example::
@@ -58,8 +56,6 @@
#
# Return a list of supported TPM types
#
-# Returns: a list of TpmType
-#
# Since: 1.5
#
# .. qmp-example::
diff --git a/qapi/ui.json b/qapi/ui.json
index c536d4e5241..46843bdbefa 100644
--- a/qapi/ui.json
+++ b/qapi/ui.json
@@ -325,8 +325,6 @@
#
# Returns information about the current SPICE server
#
-# Returns: @SpiceInfo
-#
# Since: 0.14
#
# .. qmp-example::
@@ -656,8 +654,6 @@
#
# Returns information about the current VNC server
#
-# Returns: @VncInfo
-#
# Since: 0.14
#
# .. qmp-example::
@@ -687,8 +683,6 @@
#
# Returns a list of vnc servers. The list can be empty.
#
-# Returns: a list of @VncInfo2
-#
# Since: 2.3
##
{ 'command': 'query-vnc-servers', 'returns': ['VncInfo2'],
@@ -1564,8 +1558,6 @@
#
# Returns information about display configuration
#
-# Returns: @DisplayOptions
-#
# Since: 3.1
##
{ 'command': 'query-display-options',
diff --git a/qapi/virtio.json b/qapi/virtio.json
index d351d2166ef..93c576a21da 100644
--- a/qapi/virtio.json
+++ b/qapi/virtio.json
@@ -847,8 +847,6 @@
#
# @unstable: This command is meant for debugging.
#
-# Returns: VirtioQueueElement information
-#
# Since: 7.2
#
# .. qmp-example::
diff --git a/qapi/yank.json b/qapi/yank.json
index 30f46c97c98..9bd8ecce27f 100644
--- a/qapi/yank.json
+++ b/qapi/yank.json
@@ -102,7 +102,6 @@
#
# Query yank instances. See @YankInstance for more information.
#
-# Returns: list of @YankInstance
#
# .. qmp-example::
#
--
2.48.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 4/4] qapi: rephrase return docs to avoid type name
2025-05-23 18:24 [PATCH v3 0/4] qapi: add auto-generated return docs John Snow
` (2 preceding siblings ...)
2025-05-23 18:24 ` [PATCH v3 3/4] qapi: remove trivial "Returns:" sections John Snow
@ 2025-05-23 18:24 ` John Snow
2025-05-30 12:09 ` [PATCH v3 0/4] qapi: add auto-generated return docs Michael S. Tsirkin
2025-05-31 17:33 ` Michael Tokarev
5 siblings, 0 replies; 8+ messages in thread
From: John Snow @ 2025-05-23 18:24 UTC (permalink / raw)
To: qemu-devel
Cc: Kevin Wolf, Peter Maydell, Yanan Wang, Jiri Pirko,
Marcel Apfelbaum, Philippe Mathieu-Daudé, Lukas Straub,
Peter Xu, Michael Roth, Jason Wang, Stefan Hajnoczi, Eric Blake,
qemu-trivial, Gerd Hoffmann, Marc-André Lureau,
Michael Tokarev, qemu-block, Mads Ynddal, Michael S. Tsirkin,
Stefan Berger, Paolo Bonzini, John Snow, Eduardo Habkost,
Fabiano Rosas, Zhao Liu, Zhenwei Pi, Ani Sinha, Markus Armbruster,
Daniel P. Berrangé, Hanna Reitz,
Vladimir Sementsov-Ogievskiy, Gonglei (Arei), Laurent Vivier
Well, I tried. Maybe not very hard. Sorry!
Signed-off-by: John Snow <jsnow@redhat.com>
---
qapi/block-core.json | 6 +++---
qapi/block-export.json | 2 +-
qapi/block.json | 2 +-
qapi/control.json | 5 ++---
qapi/dump.json | 5 ++---
qapi/introspect.json | 6 +++---
qapi/job.json | 2 +-
qapi/machine-target.json | 7 +++----
qapi/misc-target.json | 2 +-
qapi/misc.json | 5 ++---
qapi/net.json | 2 +-
qapi/pci.json | 2 +-
qapi/qdev.json | 3 +--
qapi/qom.json | 8 +++-----
qapi/stats.json | 2 +-
qapi/trace.json | 2 +-
qapi/ui.json | 2 +-
qapi/virtio.json | 6 +++---
18 files changed, 31 insertions(+), 38 deletions(-)
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 92b2e368b72..eb97b70cd80 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -763,7 +763,7 @@
#
# Get a list of BlockInfo for all virtual block devices.
#
-# Returns: a list of @BlockInfo describing each virtual block device.
+# Returns: a list describing each virtual block device.
# Filter nodes that were created implicitly are skipped over.
#
# Since: 0.14
@@ -1168,7 +1168,7 @@
# nodes that were created implicitly are skipped over in this
# mode. (Since 2.3)
#
-# Returns: A list of @BlockStats for each virtual block devices.
+# Returns: A list of statistics for each virtual block device.
#
# Since: 0.14
#
@@ -1440,7 +1440,7 @@
#
# Return information about long-running block device operations.
#
-# Returns: a list of @BlockJobInfo for each active block job
+# Returns: a list of job info for each active block job
#
# Since: 1.1
##
diff --git a/qapi/block-export.json b/qapi/block-export.json
index c783e01a532..84852606e52 100644
--- a/qapi/block-export.json
+++ b/qapi/block-export.json
@@ -472,7 +472,7 @@
##
# @query-block-exports:
#
-# Returns: A list of BlockExportInfo describing all block exports
+# Returns: A list describing all block exports
#
# Since: 5.2
##
diff --git a/qapi/block.json b/qapi/block.json
index e66666f5c64..bdbbe78854f 100644
--- a/qapi/block.json
+++ b/qapi/block.json
@@ -86,7 +86,7 @@
# Returns a list of information about each persistent reservation
# manager.
#
-# Returns: a list of @PRManagerInfo for each persistent reservation
+# Returns: a list of manager info for each persistent reservation
# manager
#
# Since: 3.0
diff --git a/qapi/control.json b/qapi/control.json
index 336386f79e1..2e45bf25df8 100644
--- a/qapi/control.json
+++ b/qapi/control.json
@@ -93,8 +93,7 @@
#
# Returns the current version of QEMU.
#
-# Returns: A @VersionInfo object describing the current version of
-# QEMU.
+# Returns: An object describing the current version of QEMU.
#
# Since: 0.14
#
@@ -131,7 +130,7 @@
#
# Return a list of supported QMP commands by this server
#
-# Returns: A list of @CommandInfo for all supported commands
+# Returns: A list of all supported commands
#
# Since: 0.14
#
diff --git a/qapi/dump.json b/qapi/dump.json
index d7826c0e323..1bd6bacc5ce 100644
--- a/qapi/dump.json
+++ b/qapi/dump.json
@@ -146,7 +146,7 @@
#
# Query latest dump status.
#
-# Returns: A @DumpStatus object showing the dump status.
+# Returns: An object showing the dump status.
#
# Since: 2.6
#
@@ -197,8 +197,7 @@
#
# Returns the available formats for dump-guest-memory
#
-# Returns: A @DumpGuestMemoryCapability object listing available
-# formats for dump-guest-memory
+# Returns: An object listing available formats for dump-guest-memory
#
# Since: 2.0
#
diff --git a/qapi/introspect.json b/qapi/introspect.json
index 01bb242947c..7daec5045fb 100644
--- a/qapi/introspect.json
+++ b/qapi/introspect.json
@@ -34,10 +34,10 @@
# string into a specific enum or from one specific type into an
# alternate that includes the original type alongside something else.
#
-# Returns: array of @SchemaInfo, where each element describes an
-# entity in the ABI: command, event, type, ...
+# Returns: an array where each element describes an entity in the ABI:
+# command, event, type, ...
#
-# The order of the various SchemaInfo is unspecified; however, all
+# The order of the various elements is unspecified; however, all
# names are guaranteed to be unique (no name will be duplicated
# with different meta-types).
#
diff --git a/qapi/job.json b/qapi/job.json
index cfc3beedd21..856dd688f95 100644
--- a/qapi/job.json
+++ b/qapi/job.json
@@ -269,7 +269,7 @@
#
# Return information about jobs.
#
-# Returns: a list with a @JobInfo for each active job
+# Returns: a list with info for each active job
#
# Since: 3.0
##
diff --git a/qapi/machine-target.json b/qapi/machine-target.json
index e4b464eb1a4..7d306d8fa56 100644
--- a/qapi/machine-target.json
+++ b/qapi/machine-target.json
@@ -162,8 +162,7 @@
# @modelb: description of the second CPU model to compare, referred to
# as "model B" in CpuModelCompareResult
#
-# Returns: a CpuModelCompareInfo describing how both CPU models
-# compare
+# Returns: An object describing how both CPU models compare
#
# Errors:
# - if comparing CPU models is not supported
@@ -218,7 +217,7 @@
#
# @modelb: description of the second CPU model to baseline
#
-# Returns: a CpuModelBaselineInfo describing the baselined CPU model
+# Returns: An object describing the baselined CPU model
#
# Errors:
# - if baselining CPU models is not supported
@@ -296,7 +295,7 @@
#
# @type: expansion type, specifying how to expand the CPU model
#
-# Returns: a CpuModelExpansionInfo describing the expanded CPU model
+# Returns: An object describing the expanded CPU model
#
# Errors:
# - if expanding CPU models is not supported
diff --git a/qapi/misc-target.json b/qapi/misc-target.json
index 94624cb45e0..799a4ad1ce1 100644
--- a/qapi/misc-target.json
+++ b/qapi/misc-target.json
@@ -158,7 +158,7 @@
#
# Query the SEV guest launch information.
#
-# Returns: The @SevLaunchMeasureInfo for the guest
+# Returns: The guest's SEV guest launch measurement info
#
# Since: 2.12
#
diff --git a/qapi/misc.json b/qapi/misc.json
index de5dd531071..3d10aeb215c 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -105,7 +105,7 @@
# declared using the ``-object iothread`` command-line option. It
# is always the main thread of the process.
#
-# Returns: a list of @IOThreadInfo for each iothread
+# Returns: a list of info for each iothread
#
# Since: 2.0
#
@@ -509,8 +509,7 @@
#
# @option: option name
#
-# Returns: list of @CommandLineOptionInfo for all options (or for the
-# given @option).
+# Returns: list of objects for all options (or for the given @option).
#
# Errors:
# - if the given @option doesn't exist
diff --git a/qapi/net.json b/qapi/net.json
index 310cc4fd190..43739fd0259 100644
--- a/qapi/net.json
+++ b/qapi/net.json
@@ -845,7 +845,7 @@
#
# @name: net client name
#
-# Returns: list of @RxFilterInfo for all NICs (or for the given NIC).
+# Returns: list of info for all NICs (or for the given NIC).
#
# Errors:
# - if the given @name doesn't exist
diff --git a/qapi/pci.json b/qapi/pci.json
index dc85a41d28b..29549d94551 100644
--- a/qapi/pci.json
+++ b/qapi/pci.json
@@ -175,7 +175,7 @@
#
# Return information about the PCI bus topology of the guest.
#
-# Returns: a list of @PciInfo for each PCI bus. Each bus is
+# Returns: a list of info for each PCI bus. Each bus is
# represented by a json-object, which has a key with a json-array
# of all PCI devices attached to it. Each device is represented
# by a json-object.
diff --git a/qapi/qdev.json b/qapi/qdev.json
index 32c7d100463..5d18fb8e0e0 100644
--- a/qapi/qdev.json
+++ b/qapi/qdev.json
@@ -17,8 +17,7 @@
#
# @typename: the type name of a device
#
-# Returns: a list of ObjectPropertyInfo describing a devices
-# properties
+# Returns: a list describing a devices properties
#
# .. note:: Objects can create properties at runtime, for example to
# describe links between different devices and/or objects. These
diff --git a/qapi/qom.json b/qapi/qom.json
index 04c118e4d61..44f5f25c19e 100644
--- a/qapi/qom.json
+++ b/qapi/qom.json
@@ -54,8 +54,7 @@
# @path: the path within the object model. See @qom-get for a
# description of this parameter.
#
-# Returns: a list of @ObjectPropertyInfo that describe the properties
-# of the object.
+# Returns: a list that describe the properties of the object.
#
# Since: 1.2
#
@@ -178,8 +177,7 @@
#
# @abstract: if true, include abstract types in the results
#
-# Returns: a list of @ObjectTypeInfo or an empty list if no results
-# are found
+# Returns: a list of types, or an empty list if no results are found
#
# Since: 1.1
##
@@ -199,7 +197,7 @@
# describe links between different devices and/or objects. These
# properties are not included in the output of this command.
#
-# Returns: a list of ObjectPropertyInfo describing object properties
+# Returns: a list describing object properties
#
# Since: 2.12
##
diff --git a/qapi/stats.json b/qapi/stats.json
index 8902ef94e08..7e7f1dabbc3 100644
--- a/qapi/stats.json
+++ b/qapi/stats.json
@@ -186,7 +186,7 @@
# The arguments are a StatsFilter and specify the provider and objects
# to return statistics about.
#
-# Returns: a list of StatsResult, one for each provider and object
+# Returns: a list of statistics, one for each provider and object
# (e.g., for each vCPU).
#
# Since: 7.1
diff --git a/qapi/trace.json b/qapi/trace.json
index eb5f63f5135..11f0b5c3427 100644
--- a/qapi/trace.json
+++ b/qapi/trace.json
@@ -47,7 +47,7 @@
#
# @name: Event name pattern (case-sensitive glob).
#
-# Returns: a list of @TraceEventInfo for the matching events
+# Returns: a list of info for the matching events
#
# Since: 2.2
#
diff --git a/qapi/ui.json b/qapi/ui.json
index 46843bdbefa..a1015801b1b 100644
--- a/qapi/ui.json
+++ b/qapi/ui.json
@@ -816,7 +816,7 @@
#
# Returns information about each active mouse device
#
-# Returns: a list of @MouseInfo for each device
+# Returns: a list of info for each device
#
# Since: 0.14
#
diff --git a/qapi/virtio.json b/qapi/virtio.json
index 93c576a21da..cee0e100d44 100644
--- a/qapi/virtio.json
+++ b/qapi/virtio.json
@@ -199,7 +199,7 @@
#
# @unstable: This command is meant for debugging.
#
-# Returns: VirtioStatus of the virtio device
+# Returns: Status of the virtio device
#
# Since: 7.2
#
@@ -563,7 +563,7 @@
#
# @unstable: This command is meant for debugging.
#
-# Returns: VirtQueueStatus of the VirtQueue
+# Returns: Status of the queue
#
# .. note:: last_avail_idx will not be displayed in the case where the
# selected VirtIODevice has a running vhost device and the
@@ -698,7 +698,7 @@
#
# @unstable: This command is meant for debugging.
#
-# Returns: VirtVhostQueueStatus of the vhost_virtqueue
+# Returns: Status of the vhost_virtqueue
#
# Since: 7.2
#
--
2.48.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v3 0/4] qapi: add auto-generated return docs
2025-05-23 18:24 [PATCH v3 0/4] qapi: add auto-generated return docs John Snow
` (3 preceding siblings ...)
2025-05-23 18:24 ` [PATCH v3 4/4] qapi: rephrase return docs to avoid type name John Snow
@ 2025-05-30 12:09 ` Michael S. Tsirkin
2025-05-31 17:33 ` Michael Tokarev
5 siblings, 0 replies; 8+ messages in thread
From: Michael S. Tsirkin @ 2025-05-30 12:09 UTC (permalink / raw)
To: John Snow
Cc: qemu-devel, Kevin Wolf, Peter Maydell, Yanan Wang, Jiri Pirko,
Marcel Apfelbaum, Philippe Mathieu-Daudé, Lukas Straub,
Peter Xu, Michael Roth, Jason Wang, Stefan Hajnoczi, Eric Blake,
qemu-trivial, Gerd Hoffmann, Marc-André Lureau,
Michael Tokarev, qemu-block, Mads Ynddal, Stefan Berger,
Paolo Bonzini, Eduardo Habkost, Fabiano Rosas, Zhao Liu,
Zhenwei Pi, Ani Sinha, Markus Armbruster, Daniel P. Berrangé,
Hanna Reitz, Vladimir Sementsov-Ogievskiy, Gonglei (Arei),
Laurent Vivier
On Fri, May 23, 2025 at 02:24:38PM -0400, John Snow wrote:
> v3: rebased on top of python-qapi-linting (v4) pull request;
> removed commits that are no longer needed.
> Markus: I forget where we left off... shall we refresh?
>
> v2: fix multi-return-sections bug :(
LGTM
My bits:
Acked-by: Michael S. Tsirkin <mst@redhat.com>
feel free to merge
> John Snow (4):
> docs/qapi-domain: add return-nodesc
> docs, qapi: generate undocumented return sections
> qapi: remove trivial "Returns:" sections
> qapi: rephrase return docs to avoid type name
>
> docs/devel/qapi-domain.rst | 30 ++++++++++++++++++++++++++++++
> docs/sphinx/qapi_domain.py | 8 ++++++++
> docs/sphinx/qapidoc.py | 14 ++++++++------
> qapi/audio.json | 2 --
> qapi/block-core.json | 14 +++-----------
> qapi/block-export.json | 2 +-
> qapi/block.json | 2 +-
> qapi/char.json | 8 --------
> qapi/control.json | 5 ++---
> qapi/cryptodev.json | 2 --
> qapi/dump.json | 5 ++---
> qapi/introspect.json | 6 +++---
> qapi/job.json | 2 +-
> qapi/machine-target.json | 9 +++------
> qapi/machine.json | 22 ----------------------
> qapi/migration.json | 12 ------------
> qapi/misc-target.json | 14 +-------------
> qapi/misc.json | 12 ++----------
> qapi/net.json | 2 +-
> qapi/pci.json | 2 +-
> qapi/qdev.json | 3 +--
> qapi/qom.json | 8 +++-----
> qapi/rocker.json | 4 ----
> qapi/run-state.json | 2 --
> qapi/stats.json | 2 +-
> qapi/tpm.json | 4 ----
> qapi/trace.json | 2 +-
> qapi/ui.json | 10 +---------
> qapi/virtio.json | 8 +++-----
> qapi/yank.json | 1 -
> scripts/qapi/parser.py | 15 +++++++++++++++
> scripts/qapi/schema.py | 3 +++
> 32 files changed, 95 insertions(+), 140 deletions(-)
>
> --
> 2.48.1
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 0/4] qapi: add auto-generated return docs
2025-05-23 18:24 [PATCH v3 0/4] qapi: add auto-generated return docs John Snow
` (4 preceding siblings ...)
2025-05-30 12:09 ` [PATCH v3 0/4] qapi: add auto-generated return docs Michael S. Tsirkin
@ 2025-05-31 17:33 ` Michael Tokarev
2025-06-02 8:10 ` Markus Armbruster
5 siblings, 1 reply; 8+ messages in thread
From: Michael Tokarev @ 2025-05-31 17:33 UTC (permalink / raw)
To: John Snow, qemu-devel
Cc: Kevin Wolf, Peter Maydell, Yanan Wang, Jiri Pirko,
Marcel Apfelbaum, Philippe Mathieu-Daudé, Lukas Straub,
Peter Xu, Michael Roth, Jason Wang, Stefan Hajnoczi, Eric Blake,
qemu-trivial, Gerd Hoffmann, Marc-André Lureau, qemu-block,
Mads Ynddal, Michael S. Tsirkin, Stefan Berger, Paolo Bonzini,
Eduardo Habkost, Fabiano Rosas, Zhao Liu, Zhenwei Pi, Ani Sinha,
Markus Armbruster, Daniel P. Berrangé, Hanna Reitz,
Vladimir Sementsov-Ogievskiy, Gonglei (Arei), Laurent Vivier
On 23.05.2025 21:24, John Snow wrote:
> v3: rebased on top of python-qapi-linting (v4) pull request;
> removed commits that are no longer needed.
> Markus: I forget where we left off... shall we refresh?
>
> v2: fix multi-return-sections bug :(
>
> John Snow (4):
> docs/qapi-domain: add return-nodesc
> docs, qapi: generate undocumented return sections
> qapi: remove trivial "Returns:" sections
> qapi: rephrase return docs to avoid type name
I've applied the first 2 patches to the trivial-patches tree.
But the remaining 2 does not apply anymore due to reorg of
the json files for single-binary.
I tried to fiddle with the patches a bit, but it looks like
it'd be better if the original author will do that, to avoid
my mistakes :)
Thanks,
/mjt
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 0/4] qapi: add auto-generated return docs
2025-05-31 17:33 ` Michael Tokarev
@ 2025-06-02 8:10 ` Markus Armbruster
0 siblings, 0 replies; 8+ messages in thread
From: Markus Armbruster @ 2025-06-02 8:10 UTC (permalink / raw)
To: Michael Tokarev
Cc: John Snow, qemu-devel, Kevin Wolf, Peter Maydell, Yanan Wang,
Jiri Pirko, Marcel Apfelbaum, Philippe Mathieu-Daudé,
Lukas Straub, Peter Xu, Michael Roth, Jason Wang, Stefan Hajnoczi,
Eric Blake, qemu-trivial, Gerd Hoffmann, Marc-André Lureau,
qemu-block, Mads Ynddal, Michael S. Tsirkin, Stefan Berger,
Paolo Bonzini, Eduardo Habkost, Fabiano Rosas, Zhao Liu,
Zhenwei Pi, Ani Sinha, Daniel P. Berrangé, Hanna Reitz,
Vladimir Sementsov-Ogievskiy, Gonglei (Arei), Laurent Vivier
Michael Tokarev <mjt@tls.msk.ru> writes:
> On 23.05.2025 21:24, John Snow wrote:
>> v3: rebased on top of python-qapi-linting (v4) pull request;
>> removed commits that are no longer needed.
>> Markus: I forget where we left off... shall we refresh?
>> v2: fix multi-return-sections bug :(
>> John Snow (4):
>> docs/qapi-domain: add return-nodesc
>> docs, qapi: generate undocumented return sections
>> qapi: remove trivial "Returns:" sections
>> qapi: rephrase return docs to avoid type name
>
> I've applied the first 2 patches to the trivial-patches tree.
>
> But the remaining 2 does not apply anymore due to reorg of
> the json files for single-binary.
>
> I tried to fiddle with the patches a bit, but it looks like
> it'd be better if the original author will do that, to avoid
> my mistakes :)
I'd like to take all four through my tree after I reviewed them.
Sorry for the delay!
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-06-02 8:10 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-23 18:24 [PATCH v3 0/4] qapi: add auto-generated return docs John Snow
2025-05-23 18:24 ` [PATCH v3 1/4] docs/qapi-domain: add return-nodesc John Snow
2025-05-23 18:24 ` [PATCH v3 2/4] docs, qapi: generate undocumented return sections John Snow
2025-05-23 18:24 ` [PATCH v3 3/4] qapi: remove trivial "Returns:" sections John Snow
2025-05-23 18:24 ` [PATCH v3 4/4] qapi: rephrase return docs to avoid type name John Snow
2025-05-30 12:09 ` [PATCH v3 0/4] qapi: add auto-generated return docs Michael S. Tsirkin
2025-05-31 17:33 ` Michael Tokarev
2025-06-02 8:10 ` Markus Armbruster
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).