Peter Maydell <peter.maydell@xxxxxxxxxx> writes: > On Wed, 4 Mar 2020 at 08:18, Markus Armbruster <armbru@xxxxxxxxxx> wrote: >> Peter Maydell <peter.maydell@xxxxxxxxxx> writes: >> > How much do you think this is likely to affect the >> > generate-rst-from-qapi-docs series? I'd really like >> > that to go in for this release, but this looks like >> > it's shaping up to be a big conflict :-( >> >> I paused reviewing your series to post this one, because "I'd really >> like that to go in for this release" :) >> >> My series touches 21 existing commented definitions in qapi/, six more >> in tests/qapi-schema/doc-good.json, and adds new module >> qapi/compat.json. Consolidated diff appended. >> >> Rule of thumb for reducing conflict resolution labor: the bigger manual >> change goes first. Yours is bigger, but I don't remember how manual it >> is. > > We got pretty much all the manual changes I needed into > master already, so all that's left really is the script parts. > The conflicts would basically be where this series affects > the generate-docs parts of the scripts -- any changes here > to doc.py are basically dead-code-walking and would need > to be done over again in the equivalent code for rust generation. > But looking at the diffstat > scripts/qapi/doc.py | 16 +- > so hopefully it won't be too bad. Not bad at all: two patches, both trivial for this file: $ git-log --patch master..posted/qapi-features scripts/qapi/doc.py commit 63daae3c1da9a7d8a189a9dfc80804c812b3f6af Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Fri Oct 18 11:23:40 2019 +0200 qapi: Consistently put @features parameter right after @ifcond Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> diff --git a/scripts/qapi/doc.py b/scripts/qapi/doc.py index 36e823338b..92f584edcf 100644 --- a/scripts/qapi/doc.py +++ b/scripts/qapi/doc.py @@ -249,8 +249,8 @@ class QAPISchemaGenDocVisitor(QAPISchemaVisitor): texi_members(doc, 'Values', member_func=texi_enum_value))) - def visit_object_type(self, name, info, ifcond, base, members, variants, - features): + def visit_object_type(self, name, info, ifcond, features, + base, members, variants): doc = self.cur_doc if base and base.is_implicit(): base = None @@ -262,9 +262,9 @@ class QAPISchemaGenDocVisitor(QAPISchemaVisitor): self._gen.add(texi_type('Alternate', doc, ifcond, texi_members(doc, 'Members'))) - def visit_command(self, name, info, ifcond, arg_type, ret_type, gen, - success_response, boxed, allow_oob, allow_preconfig, - features): + def visit_command(self, name, info, ifcond, features, + arg_type, ret_type, gen, success_response, boxed, + allow_oob, allow_preconfig): doc = self.cur_doc self._gen.add(texi_msg('Command', doc, ifcond, texi_arguments(doc, commit 9e101e2b1803f326df46e42d88bae9f281da9fe4 Author: Markus Armbruster <armbru@xxxxxxxxxx> Date: Tue Oct 15 14:33:24 2019 +0200 qapi: Add feature flags to remaining definitions In v4.1.0, we added feature flags just to struct types (commit 6a8c0b5102^..f3ed93d545), to satisfy an immediate need (commit c9d4070991 "file-posix: Add dynamic-auto-read-only QAPI feature"). In v4.2.0, we added them to commands (commit 23394b4c39 "qapi: Add feature flags to commands") to satisfy another immediate need (commit d76744e65e "qapi: Allow introspecting fix for savevm's cooperation with blockdev"). Add them to the remaining definitions: enumeration types, union types, alternate types, and events. Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> diff --git a/scripts/qapi/doc.py b/scripts/qapi/doc.py index 1787a53d91..36e823338b 100644 --- a/scripts/qapi/doc.py +++ b/scripts/qapi/doc.py @@ -243,7 +243,7 @@ class QAPISchemaGenDocVisitor(QAPISchemaVisitor): def write(self, output_dir): self._gen.write(output_dir) - def visit_enum_type(self, name, info, ifcond, members, prefix): + def visit_enum_type(self, name, info, ifcond, features, members, prefix): doc = self.cur_doc self._gen.add(texi_type('Enum', doc, ifcond, texi_members(doc, 'Values', @@ -257,7 +257,7 @@ class QAPISchemaGenDocVisitor(QAPISchemaVisitor): self._gen.add(texi_type('Object', doc, ifcond, texi_members(doc, 'Members', base, variants))) - def visit_alternate_type(self, name, info, ifcond, variants): + def visit_alternate_type(self, name, info, ifcond, features, variants): doc = self.cur_doc self._gen.add(texi_type('Alternate', doc, ifcond, texi_members(doc, 'Members'))) @@ -270,7 +270,7 @@ class QAPISchemaGenDocVisitor(QAPISchemaVisitor): texi_arguments(doc, arg_type if boxed else None))) - def visit_event(self, name, info, ifcond, arg_type, boxed): + def visit_event(self, name, info, ifcond, features, arg_type, boxed): doc = self.cur_doc self._gen.add(texi_msg('Event', doc, ifcond, texi_arguments(doc,