From: Markus Armbruster <armbru@redhat.com>
To: John Snow <jsnow@redhat.com>
Cc: qemu-devel@nongnu.org, "Jason Wang" <jasowang@redhat.com>,
"Zhao Liu" <zhao1.liu@intel.com>,
"Fabiano Rosas" <farosas@suse.de>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Mads Ynddal" <mads@ynddal.dk>, "Hanna Reitz" <hreitz@redhat.com>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Michael S. Tsirkin" <mst@redhat.com>,
qemu-trivial@nongnu.org,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Yanan Wang" <wangyanan55@huawei.com>,
qemu-block@nongnu.org, "Lukas Straub" <lukasstraub2@web.de>,
"Jiri Pirko" <jiri@resnulli.us>,
"Stefan Berger" <stefanb@linux.vnet.ibm.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Michael Tokarev" <mjt@tls.msk.ru>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Laurent Vivier" <laurent@vivier.eu>,
"Zhenwei Pi" <pizhenwei@bytedance.com>,
"Eric Blake" <eblake@redhat.com>, "Peter Xu" <peterx@redhat.com>,
"Ani Sinha" <anisinha@redhat.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Vladimir Sementsov-Ogievskiy" <vsementsov@yandex-team.ru>,
"Kevin Wolf" <kwolf@redhat.com>,
"Michael Roth" <michael.roth@amd.com>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Gonglei (Arei)" <arei.gonglei@huawei.com>
Subject: Re: [PATCH v2 2/4] docs, qapi: generate undocumented return sections
Date: Tue, 01 Apr 2025 08:07:37 +0200 [thread overview]
Message-ID: <877c445s9i.fsf@pond.sub.org> (raw)
In-Reply-To: <CAFn=p-bwhzosvS8v7q1sKhYaa39LkPKAoYkog14jEg_S_s0jHg@mail.gmail.com> (John Snow's message of "Mon, 31 Mar 2025 14:30:36 -0400")
John Snow <jsnow@redhat.com> writes:
> On Thu, Mar 27, 2025 at 5:11 AM Markus Armbruster <armbru@redhat.com> wrote:
>
>> John Snow <jsnow@redhat.com> writes:
>>
>> > 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>
>>
>> Might want to briefly explain placement of the auto-generated return
>> value documentation. But before we discuss that any further, let's
>> review the actual changes the the generated docs.
>>
>> This patch adds auto-generated return value documentation where we have
>> none.
>>
>> The next patch replaces handwritten by auto-generated return value
>> documentation where these are at least as good. Moves the return value
>> docs in some cases.
>>
>> First the additions:
>>
>> * x-debug-query-block-graph
>>
>> Title, intro, features, return
>>
>> * query-tpm
>>
>> Title, intro, return, example
>>
>> * query-dirty-rate
>>
>> Title, intro, arguments, return, examples
>>
>> * query-vcpu-dirty-limit
>>
>> Title, intro, return, example
>>
>> * query-vm-generation-id
>>
>> Title, return
>>
>> * query-memory-size-summary
>>
>> Title, intro, example, return
>>
>> * query-memory-devices
>>
>> Title, intro, return, example
>>
>> * query-acpi-ospm-status
>>
>> Title, intro, return, example
>>
>> * query-stats-schemas
>>
>> Title, intro, arguments, note, return
>>
>> Undesirable:
>>
>> * query-memory-size-summary has returns after the example instead of
>> before. I figure it needs the TODO hack to separate intro and example
>> (see announce-self).
>>
>
> Yes
>
>
>>
>> * query-stats-schemas has a note between arguments and return. I think
>> this demonstrates that the placement algorithm is too simplistic.
>>
>
> Yeah ... It's just that *glances at length of email* it's been a sensitive
> topic without a lot of certainty in desire, so I've tried to keep things on
> the stupid/simple side ...
When the best solution is unclear, starting discussion with a simplistic
solution is smart. Beats starting with a complicated solution that gets
shot down.
>> Debatable:
>>
>> * x-debug-query-block-graph has returns after features. I'd prefer
>> returns before features. No need to debate this now.
>>
>
> Willing to do this for you if you'd like to enforce it globally. I'd be
> happy with any mandated order of sections, really.
Could a more rigid order help the inliner, too?
>> Next the movements:
>>
>> * x-debug-block-dirty-bitmap-sha256
>>
>> From right before errors to right after
>>
>> * blockdev-snapshot-delete-internal-sync
>>
>> From right before errors to right after
>>
>> * query-xen-replication-status
>>
>> From between intro and example to the end
>>
>> * query-colo-status
>>
>> From between intro and example to the end
>>
>> * query-balloon
>>
>> From right before errors to right after
>>
>> * query-hv-balloon-status-report
>>
>> From right before errors to right after
>>
>> * query-yank
>>
>> From between intro and example to the end
>>
>> * add-fd
>>
>> From between arguments and errors to between last note and example
>>
>> I don't like any of these :)
>>
>
> So it goes ...
>
>
>>
>> Undesirable:
>>
>> * query-xen-replication-status, query-yank, and query-colo-status now
>> have return after the example instead of before. I figure they now
>> need the TODO hack to separate intro and example.
>>
>
> Yes
>
>
>>
>> * add-fd now has a note between arguments and return. Same placement
>> weakness as for query-stats above.
>>
>> Debatable:
>>
>> * x-debug-block-dirty-bitmap-sha256,
>> blockdev-snapshot-delete-internal-sync, query-colo-status, and
>> query-hv-balloon-status-report now have return after errors instead of
>> before. I'd prefer before.
>>
>> What's the stupidest acceptable placement algorithm? Maybe this one:
>>
>> 1. If we have arguments, return goes right after them.
>>
>> 2. Else if we have errors, return goes right before them.
>>
>> 3. Else if we have features, return goes right before them.
>>
>> 4. Else return goes right after the intro (to make this work, we need
>> a few more TODO hacks).
>>
>> Would you be willing to give this a try?
>>
>
> Probably ...
>
> So this algorithm seems to imply a preference for this ordering:
>
> 1. Intro
> 2. Arguments
> 3. Return
> 4. Errors
> 5. Features
> 6. Details
>
> Do I have that correct?
Yes, with
7. Since
although a case could also be made for
1. Intro
2. Arguments
3. Return
4. Errors
5. Features
6. Since
7. Details
next prev parent reply other threads:[~2025-04-01 6:08 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-26 19:57 [PATCH v2 0/4] qapi: add auto-generated return docs John Snow
2025-03-26 19:57 ` [PATCH v2 1/4] docs/qapi-domain: add return-nodesc John Snow
2025-03-26 19:57 ` [PATCH v2 2/4] docs, qapi: generate undocumented return sections John Snow
2025-03-27 9:11 ` Markus Armbruster
2025-03-31 18:30 ` John Snow
2025-04-01 6:07 ` Markus Armbruster [this message]
2025-04-03 21:05 ` John Snow
2025-03-26 19:57 ` [PATCH v2 3/4] qapi: remove trivial "Returns:" sections John Snow
2025-03-26 19:57 ` [PATCH v2 4/4] qapi: rephrase return docs to avoid type name John Snow
2025-03-28 8:36 ` Markus Armbruster
2025-03-31 18:34 ` John Snow
2025-04-01 6:10 ` Markus Armbruster
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=877c445s9i.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=anisinha@redhat.com \
--cc=arei.gonglei@huawei.com \
--cc=berrange@redhat.com \
--cc=eblake@redhat.com \
--cc=eduardo@habkost.net \
--cc=farosas@suse.de \
--cc=hreitz@redhat.com \
--cc=jasowang@redhat.com \
--cc=jiri@resnulli.us \
--cc=jsnow@redhat.com \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=laurent@vivier.eu \
--cc=lukasstraub2@web.de \
--cc=mads@ynddal.dk \
--cc=marcandre.lureau@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=michael.roth@amd.com \
--cc=mjt@tls.msk.ru \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=peterx@redhat.com \
--cc=philmd@linaro.org \
--cc=pizhenwei@bytedance.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
--cc=stefanb@linux.vnet.ibm.com \
--cc=stefanha@redhat.com \
--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.