[PATCH v2 00/33] qapi: docs: width=70 and two spaces between sentences

Vladimir Sementsov-Ogievskiy posted 33 patches 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20251011140441.297246-1-vsementsov@yandex-team.ru
Maintainers: Eric Blake <eblake@redhat.com>, Markus Armbruster <armbru@redhat.com>, Mauro Carvalho Chehab <mchehab+huawei@kernel.org>, "Michael S. Tsirkin" <mst@redhat.com>, Igor Mammedov <imammedo@redhat.com>, Ani Sinha <anisinha@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, John Snow <jsnow@redhat.com>, Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>, Eduardo Habkost <eduardo@habkost.net>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Yanan Wang <wangyanan55@huawei.com>, Zhao Liu <zhao1.liu@intel.com>, Peter Xu <peterx@redhat.com>, Fabiano Rosas <farosas@suse.de>, Jason Wang <jasowang@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, Jiri Pirko <jiri@resnulli.us>, Stefan Berger <stefanb@linux.vnet.ibm.com>, Stefan Hajnoczi <stefanha@redhat.com>, Mads Ynddal <mads@ynddal.dk>, Alex Williamson <alex.williamson@redhat.com>, "Cédric Le Goater" <clg@redhat.com>, Michael Roth <michael.roth@amd.com>, Kostiantyn Kostiuk <kkostiuk@redhat.com>
There is a newer version of this series
qapi/acpi-hest.json     |   2 +-
qapi/acpi.json          |  20 ++-
qapi/audio.json         |   4 +-
qapi/block-core.json    | 191 +++++++++++++++-------------
qapi/block-export.json  |  26 ++--
qapi/block.json         |  18 +--
qapi/char.json          |  34 +++--
qapi/crypto.json        |   7 +-
qapi/dump.json          |   9 +-
qapi/introspect.json    |   8 +-
qapi/job.json           |  26 ++--
qapi/machine-s390x.json |   3 +-
qapi/machine.json       |  59 +++++----
qapi/migration.json     | 209 ++++++++++++++++++-------------
qapi/misc-arm.json      |   6 +-
qapi/misc-i386.json     |   9 +-
qapi/misc.json          |  16 ++-
qapi/net.json           |  61 +++++----
qapi/qdev.json          |  13 +-
qapi/qom.json           |  31 +++--
qapi/replay.json        |   9 +-
qapi/rocker.json        |  18 ++-
qapi/run-state.json     |  60 +++++----
qapi/sockets.json       |  34 ++---
qapi/stats.json         |   3 +-
qapi/tpm.json           |   3 +-
qapi/trace.json         |   3 +-
qapi/transaction.json   |  33 ++---
qapi/ui.json            | 108 ++++++++++------
qapi/vfio.json          |   3 +-
qapi/virtio.json        | 269 +++-------------------------------------
qga/qapi-schema.json    |  83 +++++++------
scripts/qapi/parser.py  |  39 +++++-
33 files changed, 713 insertions(+), 704 deletions(-)
[PATCH v2 00/33] qapi: docs: width=70 and two spaces between sentences
Posted by Vladimir Sementsov-Ogievskiy 1 month ago
Hi all!

Let's bring the documentation in line with the requirements. And
do check these requirements in QAPI parser.

v2: resend without duplicated patchs. Sorry for the noise.

Vladimir Sementsov-Ogievskiy (33):
  qapi: Add documentation format validation
  qapi/acpi.json: docs: width=70 and two spaces between sentences
  qapi/audio.json: docs: width=70 and two spaces between sentences
  qapi/block-core.json: docs: width=70 and two spaces between sentences
  qapi/block-export.json: docs: width=70 and two spaces between
    sentences
  qapi/block.json: docs: width=70 and two spaces between sentences
  qapi/char.json: docs: width=70 and two spaces between sentences
  qapi/crypto.json: docs: width=70 and two spaces between sentences
  qapi/dump.json: docs: width=70 and two spaces between sentences
  qapi/introspect.json: docs: width=70 and two spaces between sentences
  qapi/job.json: docs: width=70 and two spaces between sentences
  qapi/machine-s390x.json: docs: width=70 and two spaces between
    sentences
  qapi/machine.json: docs: width=70 and two spaces between sentences
  qapi/migration.json: docs: width=70 and two spaces between sentences
  qapi/misc-arm.json: docs: width=70 and two spaces between sentences
  qapi/misc-i386.json: docs: width=70 and two spaces between sentences
  qapi/misc.json: docs: width=70 and two spaces between sentences
  qapi/net.json: docs: width=70 and two spaces between sentences
  qapi/qdev.json: docs: width=70 and two spaces between sentences
  qapi/qom.json: docs: width=70 and two spaces between sentences
  qapi/replay.json: docs: width=70 and two spaces between sentences
  qapi/rocker.json: docs: width=70 and two spaces between sentences
  qapi/run-state.json: docs: width=70 and two spaces between sentences
  qapi/sockets.json: docs: width=70 and two spaces between sentences
  qapi/stats.json: docs: width=70 and two spaces between sentences
  qapi/tpm.json: docs: width=70 and two spaces between sentences
  qapi/trace.json: docs: width=70 and two spaces between sentences
  qapi/transaction.json: docs: width=70 and two spaces between sentences
  qapi/ui.json: docs: width=70 and two spaces between sentences
  qapi/vfio.json: docs: width=70 and two spaces between sentences
  qapi/virtio.json: docs: width=70 and two spaces between sentences
  qga/qapi-schema.json: docs: width=70 and two spaces between sentences
  qapi/acpi-hest.json: docs: width=70 and two spaces between sentences

 qapi/acpi-hest.json     |   2 +-
 qapi/acpi.json          |  20 ++-
 qapi/audio.json         |   4 +-
 qapi/block-core.json    | 191 +++++++++++++++-------------
 qapi/block-export.json  |  26 ++--
 qapi/block.json         |  18 +--
 qapi/char.json          |  34 +++--
 qapi/crypto.json        |   7 +-
 qapi/dump.json          |   9 +-
 qapi/introspect.json    |   8 +-
 qapi/job.json           |  26 ++--
 qapi/machine-s390x.json |   3 +-
 qapi/machine.json       |  59 +++++----
 qapi/migration.json     | 209 ++++++++++++++++++-------------
 qapi/misc-arm.json      |   6 +-
 qapi/misc-i386.json     |   9 +-
 qapi/misc.json          |  16 ++-
 qapi/net.json           |  61 +++++----
 qapi/qdev.json          |  13 +-
 qapi/qom.json           |  31 +++--
 qapi/replay.json        |   9 +-
 qapi/rocker.json        |  18 ++-
 qapi/run-state.json     |  60 +++++----
 qapi/sockets.json       |  34 ++---
 qapi/stats.json         |   3 +-
 qapi/tpm.json           |   3 +-
 qapi/trace.json         |   3 +-
 qapi/transaction.json   |  33 ++---
 qapi/ui.json            | 108 ++++++++++------
 qapi/vfio.json          |   3 +-
 qapi/virtio.json        | 269 +++-------------------------------------
 qga/qapi-schema.json    |  83 +++++++------
 scripts/qapi/parser.py  |  39 +++++-
 33 files changed, 713 insertions(+), 704 deletions(-)

-- 
2.48.1
Re: [PATCH v2 00/33] qapi: docs: width=70 and two spaces between sentences
Posted by Daniel P. Berrangé 1 month ago
On Sat, Oct 11, 2025 at 05:04:06PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> Hi all!
> 
> Let's bring the documentation in line with the requirements. And
> do check these requirements in QAPI parser.

This implicitly assumes that the requirements are desirable.

This is a large number of patches, showing the requirements are widely
ignored today. When I look at the changes in the patches my overwhealming
reaction is that they are not beneficial, which in turn makes me believe
the requirements should be changed to match the reality of the code,
rather than the reverse.

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
Re: [PATCH v2 00/33] qapi: docs: width=70 and two spaces between sentences
Posted by Markus Armbruster 2 weeks, 2 days ago
Daniel P. Berrangé <berrange@redhat.com> writes:

> On Sat, Oct 11, 2025 at 05:04:06PM +0300, Vladimir Sementsov-Ogievskiy wrote:
>> Hi all!
>> 
>> Let's bring the documentation in line with the requirements. And
>> do check these requirements in QAPI parser.
>
> This implicitly assumes that the requirements are desirable.
>
> This is a large number of patches, showing the requirements are widely
> ignored today. When I look at the changes in the patches my overwhealming
> reaction is that they are not beneficial, which in turn makes me believe
> the requirements should be changed to match the reality of the code,
> rather than the reverse.

A QAPI schema contains four distinct kinds of text:

1. Schema code

2. Example code in comments

3. Doc comments less example code, i.e. prose

4. Non-doc comments

This series touches all four.

"The requirements" refers to docs/devel/qapi-code-gen.rst section
Documentation comments / Documentation markup:

    For legibility, wrap text paragraphs so every line is at most 70
    characters long.

    Separate sentences with two spaces.

I've explained why these rules make sense a number of times, and I'm
happy to explain again if needed.

Note this applies only to doc comments.

I've been enforcing it manually for prose.  Whether it should be
enforced for example code is debatable.  Let's focus on prose.

"Widely ignored" is not true, and I have numbers to back that up.

We have some 20,000 lines of doc comments in the main QAPI schema and
the QGA QAPI schema.  Some 3,000 lines are examples.  That leaves a bit
over 17,000 lines of prose in 48 files.

If I drop the changes to the other three kinds from Vladimir's series,
and add a few more prose changes he missed, I get this diffstat:

 24 files changed, 351 insertions(+), 332 deletions(-)

So, 98% of the prose adheres to the rules.

Half of the files are *spotless*.
Re: [PATCH v2 00/33] qapi: docs: width=70 and two spaces between sentences
Posted by Vladimir Sementsov-Ogievskiy 2 weeks, 2 days ago
On 29.10.25 11:29, Markus Armbruster wrote:
> Daniel P. Berrangé <berrange@redhat.com> writes:
> 
>> On Sat, Oct 11, 2025 at 05:04:06PM +0300, Vladimir Sementsov-Ogievskiy wrote:
>>> Hi all!
>>>
>>> Let's bring the documentation in line with the requirements. And
>>> do check these requirements in QAPI parser.
>>
>> This implicitly assumes that the requirements are desirable.
>>
>> This is a large number of patches, showing the requirements are widely
>> ignored today. When I look at the changes in the patches my overwhealming
>> reaction is that they are not beneficial, which in turn makes me believe
>> the requirements should be changed to match the reality of the code,
>> rather than the reverse.
> 
> A QAPI schema contains four distinct kinds of text:
> 
> 1. Schema code
> 
> 2. Example code in comments
> 
> 3. Doc comments less example code, i.e. prose
> 
> 4. Non-doc comments
> 
> This series touches all four.

I'm unsure about [1.]. What do you mean? The series touch only comments.

I now check:

  git diff 37137ae582 HEAD | grep '^[+-][^#+-]'

where 37137ae582 is first commit "qapi: Add documentation format validation"
for me, and this grep finds nothing..

Assume [4.] is a tiny part.

> 
> "The requirements" refers to docs/devel/qapi-code-gen.rst section
> Documentation comments / Documentation markup:
> 
>      For legibility, wrap text paragraphs so every line is at most 70
>      characters long.
> 
>      Separate sentences with two spaces.
> 
> I've explained why these rules make sense a number of times, and I'm
> happy to explain again if needed.
> 
> Note this applies only to doc comments.
> 
> I've been enforcing it manually for prose.  Whether it should be
> enforced for example code is debatable.  Let's focus on prose.
> 
> "Widely ignored" is not true, and I have numbers to back that up.
> 
> We have some 20,000 lines of doc comments in the main QAPI schema and
> the QGA QAPI schema.  Some 3,000 lines are examples.  That leaves a bit
> over 17,000 lines of prose in 48 files.
> 
> If I drop the changes to the other three kinds from Vladimir's series,
> and add a few more prose changes he missed

Hmm it surprises me.. Does it mean that the check added in patch 01 misses
some violations?

>, I get this diffstat:
> 
>   24 files changed, 351 insertions(+), 332 deletions(-)

Compare with original diffstat:

  33 files changed, 713 insertions(+), 704 deletions(-)

So obviously, touching up code examples makes the series twice more invasive.

I agree, to at least postpone examples changing. And the series show, that in many
cases there are no obvious possibility to satisfy restrictions for examples.

Hmm, probably, we want another limit for examples? 90 characters? Anyway, not in this
series.

-- 
Best regards,
Vladimir

Re: [PATCH v2 00/33] qapi: docs: width=70 and two spaces between sentences
Posted by Markus Armbruster 2 weeks, 2 days ago
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> writes:

> On 29.10.25 11:29, Markus Armbruster wrote:
>> Daniel P. Berrangé <berrange@redhat.com> writes:
>> 
>>> On Sat, Oct 11, 2025 at 05:04:06PM +0300, Vladimir Sementsov-Ogievskiy wrote:
>>>> Hi all!
>>>>
>>>> Let's bring the documentation in line with the requirements. And
>>>> do check these requirements in QAPI parser.
>>>
>>> This implicitly assumes that the requirements are desirable.
>>>
>>> This is a large number of patches, showing the requirements are widely
>>> ignored today. When I look at the changes in the patches my overwhealming
>>> reaction is that they are not beneficial, which in turn makes me believe
>>> the requirements should be changed to match the reality of the code,
>>> rather than the reverse.
>>
>> A QAPI schema contains four distinct kinds of text:
>>
>> 1. Schema code
>>
>> 2. Example code in comments
>>
>> 3. Doc comments less example code, i.e. prose
>>
>> 4. Non-doc comments
>>
>> This series touches all four.
>
> I'm unsure about [1.]. What do you mean? The series touch only comments.
>
> I now check:
>
>  git diff 37137ae582 HEAD | grep '^[+-][^#+-]'
>
> where 37137ae582 is first commit "qapi: Add documentation format validation"
> for me, and this grep finds nothing..

You're right.  Cross-eyed, I guess %-}

> Assume [4.] is a tiny part.

Yes.

>> "The requirements" refers to docs/devel/qapi-code-gen.rst section
>> Documentation comments / Documentation markup:
>>
>>      For legibility, wrap text paragraphs so every line is at most 70
>>      characters long.
>>
>>      Separate sentences with two spaces.
>>
>> I've explained why these rules make sense a number of times, and I'm
>> happy to explain again if needed.
>>
>> Note this applies only to doc comments.
>>
>> I've been enforcing it manually for prose.  Whether it should be
>> enforced for example code is debatable.  Let's focus on prose.
>>
>> "Widely ignored" is not true, and I have numbers to back that up.
>>
>> We have some 20,000 lines of doc comments in the main QAPI schema and
>> the QGA QAPI schema.  Some 3,000 lines are examples.  That leaves a bit
>> over 17,000 lines of prose in 48 files.
>>
>> If I drop the changes to the other three kinds from Vladimir's series,
>> and add a few more prose changes he missed
>
> Hmm it surprises me.. Does it mean that the check added in patch 01 misses
> some violations?

I found a few more paragraphs to reflow for reasons other than long
lines, a few extra blank lines, a few missing blank lines, and slightly
off indentation in a few places.  None of this I expect your code to
catch.

I found a few errors in your patch, like this one in PATCH 13:

    @@ -620,7 +622,8 @@
     ##
     # @NumaCpuOptions:
     #
    -# Option "-numa cpu" overrides default cpu to node mapping.  It accepts
    +# Option "-numa cpu" overrides default cpu to node mapping.  It
    +#     accepts
     # the same set of cpu properties as returned by
     # `query-hotpluggable-cpus[].props <query-hotpluggable-cpus>`, where
     # node-id could be used to override default node mapping.
    @@ -686,7 +689,8 @@

They made me feel useful ;)

I also found a few single spaces that should be double.  Maybe the code
could be improved to catch them.

>>, I get this diffstat:
>>   24 files changed, 351 insertions(+), 332 deletions(-)
>
> Compare with original diffstat:
>
>  33 files changed, 713 insertions(+), 704 deletions(-)
>
> So obviously, touching up code examples makes the series twice more invasive.
>
> I agree, to at least postpone examples changing. And the series show, that in many
> cases there are no obvious possibility to satisfy restrictions for examples.
>
> Hmm, probably, we want another limit for examples? 90 characters? Anyway, not in this
> series.

I figure code in examples should be treated just like "real" code.

Avoiding long prose lines is easy.  When I reflowed the entire QAPI
schema documentation to stay within the limit (commit a937b6aa739), not
a single line break was awkward.

Code is unlike prose: it's often more deeply indented, and it contains
more longer words (identifiers).  Because of that, a long code line can
be less bad than an awkward line break.  Use your judgement.

devel/style.rst thus advises:

    Line width
    ==========

    Lines should be 80 characters; try not to make them longer.

    Sometimes it is hard to do, especially when dealing with QEMU subsystems
    that use long function or symbol names. If wrapping the line at 80 columns
    is obviously less readable and more awkward, prefer not to wrap it; better
    to have an 85 character line than one which is awkwardly wrapped.

    Even in that case, try not to make lines much longer than 80 characters.
    (The checkpatch script will warn at 100 characters, but this is intended
    as a guard against obviously-overlength lines, not a target.)
Re: [PATCH v2 00/33] qapi: docs: width=70 and two spaces between sentences
Posted by Vladimir Sementsov-Ogievskiy 1 month ago
On 13.10.25 11:11, Daniel P. Berrangé wrote:
> On Sat, Oct 11, 2025 at 05:04:06PM +0300, Vladimir Sementsov-Ogievskiy wrote:
>> Hi all!
>>
>> Let's bring the documentation in line with the requirements. And
>> do check these requirements in QAPI parser.
> 
> This implicitly assumes that the requirements are desirable.
> 
> This is a large number of patches, showing the requirements are widely
> ignored today. When I look at the changes in the patches my overwhealming
> reaction is that they are not beneficial, which in turn makes me believe
> the requirements should be changed to match the reality of the code,
> rather than the reverse.
> 

Markus, what do you think?

Maybe, add existing violations simply as exclusions to parser (maybe a mapping
{ file_name -> number_of_violations } ) ? This way we can add check for
new code, but avoid updating the old one.

Or should we change the requirements?

-- 
Best regards,
Vladimir

Re: [PATCH v2 00/33] qapi: docs: width=70 and two spaces between sentences
Posted by Markus Armbruster 2 weeks, 2 days ago
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> writes:

> Hi all!
>
> Let's bring the documentation in line with the requirements. And
> do check these requirements in QAPI parser.

Prior art:

    01bed0ff14 qapi: Refill doc comments to conform to conventions
    7270819384 qga/qapi-schema: Refill doc comments to conform to current conventions
    209e64d9ed qapi: Refill doc comments to conform to current conventions

These only touched prose.

Your series also touches examples, is split per source file, and adds
code to enforce the rules automatically.

Automatic enforcement makes a ton of sense.  Should've tried to code it
up long ago.  Much appreciated!  However, it's in the first patch.  It
needs to go last to not break bisection.

I don't think splitting per source file is necessary.

I'd prefer to put aside examples for now and focus on prose, since the
case for prose is much stronger.

Since I already split off the prose changes for my own review purposes,
there's no need for you to do that again.  I'll take care of it.

However, we need to adjust the enforcement code to skip examples.

Examples are marked up with ReST directive qmp-example.  They look like
this:

    # .. qmp-example::
    #
    #     the example
    #         text is
    #     indented

The stupidest solution that could possibly work is to start skipping the
checks at

    # .. qmp-example::

and resume it at the first unindented line.

This is of course a hack: it second-guesses the ReST parser.  I think
it's good enough.

If we in a later step decide reflowing the examples is usful, the hack
goes away.

Would you be willing to take care of that part?
Re: [PATCH v2 00/33] qapi: docs: width=70 and two spaces between sentences
Posted by Vladimir Sementsov-Ogievskiy 2 weeks, 2 days ago
On 29.10.25 12:08, Markus Armbruster wrote:
> Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> writes:
> 
>> Hi all!
>>
>> Let's bring the documentation in line with the requirements. And
>> do check these requirements in QAPI parser.
> 
> Prior art:
> 
>      01bed0ff14 qapi: Refill doc comments to conform to conventions
>      7270819384 qga/qapi-schema: Refill doc comments to conform to current conventions
>      209e64d9ed qapi: Refill doc comments to conform to current conventions
> 
> These only touched prose.
> 
> Your series also touches examples, is split per source file, and adds
> code to enforce the rules automatically.
> 
> Automatic enforcement makes a ton of sense.  Should've tried to code it
> up long ago.  Much appreciated!  However, it's in the first patch.  It
> needs to go last to not break bisection.
> 
> I don't think splitting per source file is necessary.
> 
> I'd prefer to put aside examples for now and focus on prose, since the
> case for prose is much stronger.
> 
> Since I already split off the prose changes for my own review purposes,
> there's no need for you to do that again.  I'll take care of it.
> 
> However, we need to adjust the enforcement code to skip examples.
> 
> Examples are marked up with ReST directive qmp-example.  They look like
> this:
> 
>      # .. qmp-example::
>      #
>      #     the example
>      #         text is
>      #     indented
> 
> The stupidest solution that could possibly work is to start skipping the
> checks at
> 
>      # .. qmp-example::
> 
> and resume it at the first unindented line.
> 
> This is of course a hack: it second-guesses the ReST parser.  I think
> it's good enough.
> 
> If we in a later step decide reflowing the examples is usful, the hack
> goes away.
> 
> Would you be willing to take care of that part?
> 

Of course. Will you send a detached prose changes, so I can base changed
patch 01 on top of it?

-- 
Best regards,
Vladimir
Re: [PATCH v2 00/33] qapi: docs: width=70 and two spaces between sentences
Posted by Markus Armbruster 2 weeks, 2 days ago
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> writes:

> On 29.10.25 12:08, Markus Armbruster wrote:
>> Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> writes:
>> 
>>> Hi all!
>>>
>>> Let's bring the documentation in line with the requirements. And
>>> do check these requirements in QAPI parser.
>>
>> Prior art:
>>
>>      01bed0ff14 qapi: Refill doc comments to conform to conventions
>>      7270819384 qga/qapi-schema: Refill doc comments to conform to current conventions
>>      209e64d9ed qapi: Refill doc comments to conform to current conventions
>>
>> These only touched prose.
>>
>> Your series also touches examples, is split per source file, and adds
>> code to enforce the rules automatically.
>>
>> Automatic enforcement makes a ton of sense.  Should've tried to code it
>> up long ago.  Much appreciated!  However, it's in the first patch.  It
>> needs to go last to not break bisection.
>>
>> I don't think splitting per source file is necessary.
>>
>> I'd prefer to put aside examples for now and focus on prose, since the
>> case for prose is much stronger.
>>
>> Since I already split off the prose changes for my own review purposes,
>> there's no need for you to do that again.  I'll take care of it.
>>
>> However, we need to adjust the enforcement code to skip examples.
>>
>> Examples are marked up with ReST directive qmp-example.  They look like
>> this:
>>
>>      # .. qmp-example::
>>      #
>>      #     the example
>>      #         text is
>>      #     indented
>>
>> The stupidest solution that could possibly work is to start skipping the
>> checks at
>>
>>      # .. qmp-example::
>>
>> and resume it at the first unindented line.
>>
>> This is of course a hack: it second-guesses the ReST parser.  I think
>> it's good enough.
>>
>> If we in a later step decide reflowing the examples is usful, the hack
>> goes away.
>>
>> Would you be willing to take care of that part?
>
> Of course. Will you send a detached prose changes, so I can base changed
> patch 01 on top of it?

Cool!  I'll make my patches somewhat more presentable after lunch, and
send you an URL to git-fetch them.