All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Marc-André Lureau" <marcandre.lureau@gmail.com>
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Cc: mdroth@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH for-2.9 00/47] qapi: Put type information back into QMP documentation
Date: Tue, 14 Mar 2017 13:24:26 +0000	[thread overview]
Message-ID: <CAJ+F1CK1=b5sbTiu06cQyvV_ROaONPv5DUF366xRnmmi13=gHA@mail.gmail.com> (raw)
In-Reply-To: <1489385927-6735-1-git-send-email-armbru@redhat.com>

Hi

On Mon, Mar 13, 2017 at 10:23 AM Markus Armbruster <armbru@redhat.com>
wrote:

> I'm proposing this is 2.9 because it fixes a documentation regression.
> It affects only documentation; generated C code is unchanged except
> for the removal of trailing space in PATCH 46.
>
> Based on my qapi-next branch, which contains Marc-André's PATCH 1/2.
>
> Marc-André's work to merge qmp-commands.txt and qmp-events.txt into
> the QAPI schema and generate their replacements from the schema
> (commit b6af8ea..56e8bdd) was a big step forward.  As committed, it
> also was a step back: the documentation lost information on JSON
> types, because I didn't like Marc-André's patch to add it.  He
> reposted it for further review afterwards:
>
>     Subject: [PATCH 0/2] qapi2texi: add type information
>     Message-Id: <20170125130308.16104-1-marcandre.lureau@redhat.com>
>     https://lists.gnu.org/archive/html/qemu-devel/2017-01/msg05432.html
>
> His PATCH 1/2 is a straightforward cleanup.  His PATCH 2/2 adds type
> descriptions in a new formal language to the generated documentation.
> Quoting the commit message:
>
>     Array types have the following syntax: type[]. Ex: str[].
>
>     - Struct, commands and events use the following members syntax:
>
>       { 'member': type, ('foo': str), ... }
>
>     Optional members are under parentheses.
>
>     A structure with a base type will have 'BaseStruct +' prepended.
>
>     - Alternates use the following syntax:
>
>       [ 'foo': type, 'bar': type, ... ]
>
>     - Simple unions use the following syntax:
>
>       { 'type': str, 'data': 'type' = [ 'foo': type, 'bar': type... ] }
>
>     - Flat unions use the following syntax:
>
>       BaseStruct + 'discriminator' = [ 'foo': type, 'bar': type... ]
>
> End quote.  Looks like this in generated documentation:
>
>  -- Event: VNC_CONNECTED {'server': VncServerInfo, 'client':
>           VncBasicInfo}
>
>      Emitted when a VNC client establishes a connection
>      ''server''
>           server information
>      ''client''
>           client information
>
>      Note: This event is emitted before any authentication takes place,
>      thus the authentication ID is not provided
> [...]
>
>  -- Struct: VncServerInfo VncBasicInfo + {('auth': str)}
>
>      The network connection information for server
>      ''auth'' (optional)
>           authentication method used for the plain (non-websocket) VNC
>           server
>
>      Since: 2.1
>
>  -- Simple Union: SocketAddress { 'type': str, 'data': 'type' = ['inet':
>           InetSocketAddress, 'unix': UnixSocketAddress, 'vsock':
>           VsockSocketAddress, 'fd': String] }
>
>      Captures the address of a socket, which could also be a named file
>      descriptor
>
>      Since: 1.3
>
> Here's my counter-proposal: instead of inventing a formal language,
> fix the natural language documentation to actually mention *all*
> members, and add type information in a plain, easy-to-understand way.
> Looks like this:
>
>  -- Event: VNC_CONNECTED
>
>      Emitted when a VNC client establishes a connection
>
>      Arguments:
>      'server: VncServerInfo'
>           server information
>      'client: VncBasicInfo'
>           client information
>
>      Note: This event is emitted before any authentication takes place,
>      thus the authentication ID is not provided
> [...]
>
>  -- Object: VncServerInfo
>
>      The network connection information for server
>
>      Members:
>      'auth: string' (optional)
>           authentication method used for the plain (non-websocket) VNC
>           server
>      The members of 'VncBasicInfo'
>
>      Since: 2.1
>
>  -- Object: SocketAddress
>
>      Captures the address of a socket, which could also be a named file
>      descriptor
>
>      Members:
>      'type'
>           One of "inet", "unix", "vsock", "fd"
>      'data: InetSocketAddress' when 'type' is "inet"
>      'data: UnixSocketAddress' when 'type' is "unix"
>      'data: VsockSocketAddress' when 'type' is "vsock"
>      'data: String' when 'type' is "fd"
>
>      Since: 1.3
>
> Additionally, my series fixes a number of bugs and cleans up along the
> way.  In particular, it converts qapi2texi.py from parse trees to the
> visitor interface the other generators use.
>
> Future generated documentation work includes eliding types that aren't
> visible in QMP (like introspection does), and making uses of type
> names links in HTML.
>
> Markus Armbruster (47):
>   qapi: Factor QAPISchemaParser._include() out of .__init__()
>   qapi: Make doc comments optional where we don't need them
>   qapi: Back out doc comments added just to please qapi.py
>   docs/qapi-code-gen.txt: Drop confusing reference to 'gen'
>   qapi: Have each QAPI schema declare its returns white-list
>   qapi: Have each QAPI schema declare its name rule violations
>   qapi: Clean up build of generated documentation
>   tests/qapi-schema: Cover empty union base
>   qapi: Fix to reject empty union base gracefully
>   qapi2texi: Fix up output around #optional
>   qapi: Avoid unwanted blank lines in QAPIDoc
>   qapi/rocker: Fix up doc comment notes on optional members
>   qapi: Fix QAPISchemaEnumType.is_implicit() for 'QType'
>   qapi: Prepare for requiring more complete documentation
>   qapi: Conjure up QAPIDoc.ArgSection for undocumented members
>   qapi2texi: Convert to QAPISchemaVisitor
>   qapi: The #optional tag is redundant, drop
>   qapi: Use raw strings for regular expressions consistently
>   qapi: Prefer single-quoted strings more consistently
>   qapi2texi: Plainer enum value and member name formatting
>   qapi2texi: Present the table of members more clearly
>   qapi2texi: Explain enum value undocumentedness more clearly
>   qapi2texi: Don't hide undocumented members and arguments
>   qapi2texi: Implement boxed argument documentation
>   qapi2texi: Include member type in generated documentation
>   qapi2texi: Generate reference to base type members
>   qapi2texi: Generate documentation for variant members
>   qapi2texi: Generate descriptions for simple union tags
>   qapi2texi: Use category "Object" for all object types
>   tests/qapi-schema: Improve doc / expression mismatch coverage
>   qapi: Fix detection of doc / expression mismatch
>   qapi: Move detection of doc / expression name mismatch
>   qapi: Improve error message on @NAME: in free-form doc
>   qapi: Move empty doc section checking to doc parser
>   tests/qapi-schema: Rename doc-bad-args to doc-bad-command-arg
>   tests/qapi-schema: Improve coverage of bogus member docs
>   qapi: Fix detection of bogus member documentation
>   qapi: Eliminate check_docs() and drop QAPIDoc.expr
>   qapi: Drop unused variable events
>   qapi: Simplify what gets stored in enum_types
>   qapi: Factor add_name() calls out of the meta conditional
>   qapi: enum_types is a list used like a dict, make it one
>   qapi: struct_types is a list used like a dict, make it one
>   qapi: union_types is a list used like a dict, make it one
>   qapi: Drop unused .check_clash() parameter schema
>   qapi: Make pylint a bit happier
>   qapi: Fix a misleading parser error message
>
>
Except the few comments and questions I left, the series looks good to me.
I don't think we need to rush it in the 2.9 release though, but I will let
the maintainers decide how to deal with the planning and rules.


>  .gitignore                                         |  10 +-
>  Makefile                                           |  27 +-
>  docs/qapi-code-gen.txt                             |  81 +--
>  docs/qemu-qmp-ref.texi                             |   2 +-
>  docs/writing-qmp-commands.txt                      |   4 +-
>  qapi-schema.json                                   | 403 ++++++-------
>  qapi/block-core.json                               | 428 +++++++-------
>  qapi/block.json                                    |   8 +-
>  qapi/crypto.json                                   |  22 +-
>  qapi/event.json                                    |  10 +-
>  qapi/introspect.json                               |   6 +-
>  qapi/rocker.json                                   |  88 +--
>  qapi/trace.json                                    |   6 +-
>  qga/qapi-schema.json                               |  55 +-
>  rules.mak                                          |   2 +-
>  scripts/qapi-commands.py                           |   6 +-
>  scripts/qapi-event.py                              |   2 +-
>  scripts/qapi-introspect.py                         |   4 +-
>  scripts/qapi-types.py                              |   4 +-
>  scripts/qapi-visit.py                              |   5 +-
>  scripts/qapi.py                                    | 632
> ++++++++++-----------
>  scripts/qapi2texi.py                               | 298 +++++-----
>  tests/Makefile.include                             |   9 +-
>  tests/qapi-schema/alternate-any.err                |   2 +-
>  tests/qapi-schema/alternate-any.json               |   4 -
>  tests/qapi-schema/alternate-array.err              |   2 +-
>  tests/qapi-schema/alternate-array.json             |   7 -
>  tests/qapi-schema/alternate-base.err               |   2 +-
>  tests/qapi-schema/alternate-base.json              |   7 -
>  tests/qapi-schema/alternate-clash.err              |   2 +-
>  tests/qapi-schema/alternate-clash.json             |   4 -
>  tests/qapi-schema/alternate-conflict-dict.err      |   2 +-
>  tests/qapi-schema/alternate-conflict-dict.json     |  10 -
>  tests/qapi-schema/alternate-conflict-string.err    |   2 +-
>  tests/qapi-schema/alternate-conflict-string.json   |   7 -
>  tests/qapi-schema/alternate-empty.err              |   2 +-
>  tests/qapi-schema/alternate-empty.json             |   4 -
>  tests/qapi-schema/alternate-nested.err             |   2 +-
>  tests/qapi-schema/alternate-nested.json            |   7 -
>  tests/qapi-schema/alternate-unknown.err            |   2 +-
>  tests/qapi-schema/alternate-unknown.json           |   4 -
>  tests/qapi-schema/args-alternate.err               |   2 +-
>  tests/qapi-schema/args-alternate.json              |   8 -
>  tests/qapi-schema/args-any.err                     |   2 +-
>  tests/qapi-schema/args-any.json                    |   4 -
>  tests/qapi-schema/args-array-empty.err             |   2 +-
>  tests/qapi-schema/args-array-empty.json            |   4 -
>  tests/qapi-schema/args-array-unknown.err           |   2 +-
>  tests/qapi-schema/args-array-unknown.json          |   4 -
>  tests/qapi-schema/args-bad-boxed.err               |   2 +-
>  tests/qapi-schema/args-bad-boxed.json              |   4 -
>  tests/qapi-schema/args-boxed-anon.err              |   2 +-
>  tests/qapi-schema/args-boxed-anon.json             |   4 -
>  tests/qapi-schema/args-boxed-empty.err             |   2 +-
>  tests/qapi-schema/args-boxed-empty.json            |   8 -
>  tests/qapi-schema/args-boxed-string.err            |   2 +-
>  tests/qapi-schema/args-boxed-string.json           |   4 -
>  tests/qapi-schema/args-int.err                     |   2 +-
>  tests/qapi-schema/args-int.json                    |   4 -
>  tests/qapi-schema/args-invalid.err                 |   2 +-
>  tests/qapi-schema/args-invalid.json                |   3 -
>  tests/qapi-schema/args-member-array-bad.err        |   2 +-
>  tests/qapi-schema/args-member-array-bad.json       |   4 -
>  tests/qapi-schema/args-member-case.err             |   2 +-
>  tests/qapi-schema/args-member-case.json            |   4 -
>  tests/qapi-schema/args-member-unknown.err          |   2 +-
>  tests/qapi-schema/args-member-unknown.json         |   4 -
>  tests/qapi-schema/args-name-clash.err              |   2 +-
>  tests/qapi-schema/args-name-clash.json             |   4 -
>  tests/qapi-schema/args-union.err                   |   2 +-
>  tests/qapi-schema/args-union.json                  |   7 -
>  tests/qapi-schema/args-unknown.err                 |   2 +-
>  tests/qapi-schema/args-unknown.json                |   4 -
>  tests/qapi-schema/bad-base.err                     |   2 +-
>  tests/qapi-schema/bad-base.json                    |   7 -
>  tests/qapi-schema/bad-data.err                     |   2 +-
>  tests/qapi-schema/bad-data.json                    |   4 -
>  tests/qapi-schema/bad-ident.err                    |   2 +-
>  tests/qapi-schema/bad-ident.json                   |   4 -
>  tests/qapi-schema/bad-type-bool.err                |   2 +-
>  tests/qapi-schema/bad-type-bool.json               |   4 -
>  tests/qapi-schema/bad-type-dict.err                |   2 +-
>  tests/qapi-schema/bad-type-dict.json               |   4 -
>  tests/qapi-schema/base-cycle-direct.err            |   2 +-
>  tests/qapi-schema/base-cycle-direct.json           |   4 -
>  tests/qapi-schema/base-cycle-indirect.err          |   2 +-
>  tests/qapi-schema/base-cycle-indirect.json         |   7 -
>  tests/qapi-schema/command-int.err                  |   2 +-
>  tests/qapi-schema/command-int.json                 |   4 -
>  tests/qapi-schema/comments.json                    |   4 -
>  tests/qapi-schema/comments.out                     |   1 -
>  tests/qapi-schema/doc-bad-alternate-member.err     |   1 +
>  ...optional.exit => doc-bad-alternate-member.exit} |   0
>  tests/qapi-schema/doc-bad-alternate-member.json    |   9 +
>  ...c-optional.out => doc-bad-alternate-member.out} |   0
>  tests/qapi-schema/doc-bad-args.err                 |   1 -
>  tests/qapi-schema/doc-bad-command-arg.err          |   1 +
>  ...{doc-bad-args.exit => doc-bad-command-arg.exit} |   0
>  ...{doc-bad-args.json => doc-bad-command-arg.json} |   0
>  .../{doc-bad-args.out => doc-bad-command-arg.out}  |   0
>  tests/qapi-schema/doc-bad-expr.err                 |   1 +
>  tests/qapi-schema/doc-bad-expr.exit                |   1 +
>  tests/qapi-schema/doc-bad-expr.json                |   7 +
>  tests/qapi-schema/doc-bad-expr.out                 |   0
>  tests/qapi-schema/doc-bad-symbol.err               |   2 +-
>  tests/qapi-schema/doc-bad-union-member.err         |   1 +
>  tests/qapi-schema/doc-bad-union-member.exit        |   1 +
>  tests/qapi-schema/doc-bad-union-member.json        |  19 +
>  tests/qapi-schema/doc-bad-union-member.out         |   0
>  tests/qapi-schema/doc-empty-section.err            |   2 +-
>  tests/qapi-schema/doc-invalid-section.err          |   2 +-
>  tests/qapi-schema/doc-missing-expr.err             |   2 +-
>  tests/qapi-schema/doc-missing.err                  |   1 +
>  tests/qapi-schema/doc-missing.exit                 |   1 +
>  tests/qapi-schema/doc-missing.json                 |   5 +
>  tests/qapi-schema/doc-missing.out                  |   0
>  tests/qapi-schema/doc-no-symbol.err                |   1 +
>  tests/qapi-schema/doc-no-symbol.exit               |   1 +
>  tests/qapi-schema/doc-no-symbol.json               |   6 +
>  tests/qapi-schema/doc-no-symbol.out                |   0
>  tests/qapi-schema/doc-optional.err                 |   1 -
>  tests/qapi-schema/doc-optional.json                |   7 -
>  tests/qapi-schema/double-type.err                  |   2 +-
>  tests/qapi-schema/double-type.json                 |   4 -
>  tests/qapi-schema/enum-bad-name.err                |   2 +-
>  tests/qapi-schema/enum-bad-name.json               |   4 -
>  tests/qapi-schema/enum-bad-prefix.err              |   2 +-
>  tests/qapi-schema/enum-bad-prefix.json             |   4 -
>  tests/qapi-schema/enum-clash-member.err            |   2 +-
>  tests/qapi-schema/enum-clash-member.json           |   4 -
>  tests/qapi-schema/enum-dict-member.err             |   2 +-
>  tests/qapi-schema/enum-dict-member.json            |   4 -
>  tests/qapi-schema/enum-member-case.err             |   2 +-
>  tests/qapi-schema/enum-member-case.json            |   8 +-
>  tests/qapi-schema/enum-missing-data.err            |   2 +-
>  tests/qapi-schema/enum-missing-data.json           |   4 -
>  tests/qapi-schema/enum-wrong-data.err              |   2 +-
>  tests/qapi-schema/enum-wrong-data.json             |   4 -
>  tests/qapi-schema/event-boxed-empty.err            |   2 +-
>  tests/qapi-schema/event-boxed-empty.json           |   4 -
>  tests/qapi-schema/event-case.json                  |   4 -
>  tests/qapi-schema/event-case.out                   |   1 -
>  tests/qapi-schema/event-nest-struct.err            |   2 +-
>  tests/qapi-schema/event-nest-struct.json           |   4 -
>  tests/qapi-schema/flat-union-array-branch.err      |   2 +-
>  tests/qapi-schema/flat-union-array-branch.json     |  12 -
>  tests/qapi-schema/flat-union-bad-base.err          |   2 +-
>  tests/qapi-schema/flat-union-bad-base.json         |  13 -
>  tests/qapi-schema/flat-union-bad-discriminator.err |   2 +-
>  .../qapi-schema/flat-union-bad-discriminator.json  |  16 -
>  tests/qapi-schema/flat-union-base-any.err          |   2 +-
>  tests/qapi-schema/flat-union-base-any.json         |  13 -
>  tests/qapi-schema/flat-union-base-union.err        |   2 +-
>  tests/qapi-schema/flat-union-base-union.json       |  16 -
>  tests/qapi-schema/flat-union-clash-member.err      |   2 +-
>  tests/qapi-schema/flat-union-clash-member.json     |  16 -
>  tests/qapi-schema/flat-union-empty.err             |   2 +-
>  tests/qapi-schema/flat-union-empty.json            |  10 -
>  tests/qapi-schema/flat-union-incomplete-branch.err |   2 +-
>  .../qapi-schema/flat-union-incomplete-branch.json  |  10 -
>  tests/qapi-schema/flat-union-inline.err            |   2 +-
>  tests/qapi-schema/flat-union-inline.json           |  10 -
>  tests/qapi-schema/flat-union-int-branch.err        |   2 +-
>  tests/qapi-schema/flat-union-int-branch.json       |  13 -
>  .../qapi-schema/flat-union-invalid-branch-key.err  |   2 +-
>  .../qapi-schema/flat-union-invalid-branch-key.json |  15 -
>  .../flat-union-invalid-discriminator.err           |   2 +-
>  .../flat-union-invalid-discriminator.json          |  15 -
>  tests/qapi-schema/flat-union-no-base.err           |   2 +-
>  tests/qapi-schema/flat-union-no-base.json          |  13 -
>  .../flat-union-optional-discriminator.err          |   2 +-
>  .../flat-union-optional-discriminator.json         |  13 -
>  .../flat-union-string-discriminator.err            |   2 +-
>  .../flat-union-string-discriminator.json           |  15 -
>  tests/qapi-schema/ident-with-escape.json           |   4 -
>  tests/qapi-schema/ident-with-escape.out            |   1 -
>  tests/qapi-schema/include-relpath-sub.json         |   3 -
>  tests/qapi-schema/include-relpath.out              |   1 -
>  tests/qapi-schema/include-repetition.out           |   1 -
>  tests/qapi-schema/include-simple-sub.json          |   3 -
>  tests/qapi-schema/include-simple.out               |   1 -
>  tests/qapi-schema/indented-expr.json               |   6 -
>  tests/qapi-schema/indented-expr.out                |   2 -
>  tests/qapi-schema/missing-type.err                 |   2 +-
>  tests/qapi-schema/missing-type.json                |   4 -
>  tests/qapi-schema/nested-struct-data.err           |   2 +-
>  tests/qapi-schema/nested-struct-data.json          |   4 -
>  tests/qapi-schema/qapi-schema-test.json            | 218 +------
>  tests/qapi-schema/qapi-schema-test.out             | 130 -----
>  tests/qapi-schema/redefined-builtin.err            |   2 +-
>  tests/qapi-schema/redefined-builtin.json           |   4 -
>  tests/qapi-schema/redefined-command.err            |   2 +-
>  tests/qapi-schema/redefined-command.json           |   7 -
>  tests/qapi-schema/redefined-event.err              |   2 +-
>  tests/qapi-schema/redefined-event.json             |   7 -
>  tests/qapi-schema/redefined-type.err               |   2 +-
>  tests/qapi-schema/redefined-type.json              |   7 -
>  tests/qapi-schema/reserved-command-q.err           |   2 +-
>  tests/qapi-schema/reserved-command-q.json          |   7 -
>  tests/qapi-schema/reserved-enum-q.err              |   2 +-
>  tests/qapi-schema/reserved-enum-q.json             |   4 -
>  tests/qapi-schema/reserved-member-has.err          |   2 +-
>  tests/qapi-schema/reserved-member-has.json         |   4 -
>  tests/qapi-schema/reserved-member-q.err            |   2 +-
>  tests/qapi-schema/reserved-member-q.json           |   4 -
>  tests/qapi-schema/reserved-member-u.err            |   2 +-
>  tests/qapi-schema/reserved-member-u.json           |   4 -
>  tests/qapi-schema/reserved-member-underscore.err   |   2 +-
>  tests/qapi-schema/reserved-member-underscore.json  |   4 -
>  tests/qapi-schema/reserved-type-kind.err           |   2 +-
>  tests/qapi-schema/reserved-type-kind.json          |   4 -
>  tests/qapi-schema/reserved-type-list.err           |   2 +-
>  tests/qapi-schema/reserved-type-list.json          |   4 -
>  tests/qapi-schema/returns-alternate.err            |   2 +-
>  tests/qapi-schema/returns-alternate.json           |   7 -
>  tests/qapi-schema/returns-array-bad.err            |   2 +-
>  tests/qapi-schema/returns-array-bad.json           |   4 -
>  tests/qapi-schema/returns-dict.err                 |   2 +-
>  tests/qapi-schema/returns-dict.json                |   4 -
>  tests/qapi-schema/returns-unknown.err              |   2 +-
>  tests/qapi-schema/returns-unknown.json             |   4 -
>  tests/qapi-schema/returns-whitelist.err            |   2 +-
>  tests/qapi-schema/returns-whitelist.json           |  18 +-
>  tests/qapi-schema/struct-base-clash-deep.err       |   2 +-
>  tests/qapi-schema/struct-base-clash-deep.json      |  10 -
>  tests/qapi-schema/struct-base-clash.err            |   2 +-
>  tests/qapi-schema/struct-base-clash.json           |   7 -
>  tests/qapi-schema/struct-data-invalid.err          |   2 +-
>  tests/qapi-schema/struct-data-invalid.json         |   3 -
>  tests/qapi-schema/struct-member-invalid.err        |   2 +-
>  tests/qapi-schema/struct-member-invalid.json       |   3 -
>  tests/qapi-schema/test-qapi.py                     |  14 -
>  tests/qapi-schema/trailing-comma-list.err          |   2 +-
>  tests/qapi-schema/type-bypass-bad-gen.err          |   2 +-
>  tests/qapi-schema/type-bypass-bad-gen.json         |   4 -
>  tests/qapi-schema/unicode-str.err                  |   2 +-
>  tests/qapi-schema/unicode-str.json                 |   4 -
>  tests/qapi-schema/union-base-empty.err             |   1 +
>  tests/qapi-schema/union-base-empty.exit            |   1 +
>  tests/qapi-schema/union-base-empty.json            |   9 +
>  tests/qapi-schema/union-base-empty.out             |   0
>  tests/qapi-schema/union-base-no-discriminator.err  |   2 +-
>  tests/qapi-schema/union-base-no-discriminator.json |  12 -
>  tests/qapi-schema/union-branch-case.err            |   2 +-
>  tests/qapi-schema/union-branch-case.json           |   4 -
>  tests/qapi-schema/union-clash-branches.err         |   2 +-
>  tests/qapi-schema/union-clash-branches.json        |   4 -
>  tests/qapi-schema/union-empty.err                  |   2 +-
>  tests/qapi-schema/union-empty.json                 |   4 -
>  tests/qapi-schema/union-invalid-base.err           |   2 +-
>  tests/qapi-schema/union-invalid-base.json          |  10 -
>  tests/qapi-schema/union-optional-branch.err        |   2 +-
>  tests/qapi-schema/union-optional-branch.json       |   4 -
>  tests/qapi-schema/union-unknown.err                |   2 +-
>  tests/qapi-schema/union-unknown.json               |   4 -
>  tests/qapi-schema/unknown-escape.err               |   2 +-
>  tests/qapi-schema/unknown-escape.json              |   4 -
>  tests/qapi-schema/unknown-expr-key.err             |   2 +-
>  tests/qapi-schema/unknown-expr-key.json            |   4 -
>  259 files changed, 1263 insertions(+), 2109 deletions(-)
>  create mode 100644 tests/qapi-schema/doc-bad-alternate-member.err
>  rename tests/qapi-schema/{doc-optional.exit =>
> doc-bad-alternate-member.exit} (100%)
>  create mode 100644 tests/qapi-schema/doc-bad-alternate-member.json
>  rename tests/qapi-schema/{doc-optional.out =>
> doc-bad-alternate-member.out} (100%)
>  delete mode 100644 tests/qapi-schema/doc-bad-args.err
>  create mode 100644 tests/qapi-schema/doc-bad-command-arg.err
>  rename tests/qapi-schema/{doc-bad-args.exit => doc-bad-command-arg.exit}
> (100%)
>  rename tests/qapi-schema/{doc-bad-args.json => doc-bad-command-arg.json}
> (100%)
>  rename tests/qapi-schema/{doc-bad-args.out => doc-bad-command-arg.out}
> (100%)
>  create mode 100644 tests/qapi-schema/doc-bad-expr.err
>  create mode 100644 tests/qapi-schema/doc-bad-expr.exit
>  create mode 100644 tests/qapi-schema/doc-bad-expr.json
>  create mode 100644 tests/qapi-schema/doc-bad-expr.out
>  create mode 100644 tests/qapi-schema/doc-bad-union-member.err
>  create mode 100644 tests/qapi-schema/doc-bad-union-member.exit
>  create mode 100644 tests/qapi-schema/doc-bad-union-member.json
>  create mode 100644 tests/qapi-schema/doc-bad-union-member.out
>  create mode 100644 tests/qapi-schema/doc-missing.err
>  create mode 100644 tests/qapi-schema/doc-missing.exit
>  create mode 100644 tests/qapi-schema/doc-missing.json
>  create mode 100644 tests/qapi-schema/doc-missing.out
>  create mode 100644 tests/qapi-schema/doc-no-symbol.err
>  create mode 100644 tests/qapi-schema/doc-no-symbol.exit
>  create mode 100644 tests/qapi-schema/doc-no-symbol.json
>  create mode 100644 tests/qapi-schema/doc-no-symbol.out
>  delete mode 100644 tests/qapi-schema/doc-optional.err
>  delete mode 100644 tests/qapi-schema/doc-optional.json
>  create mode 100644 tests/qapi-schema/union-base-empty.err
>  create mode 100644 tests/qapi-schema/union-base-empty.exit
>  create mode 100644 tests/qapi-schema/union-base-empty.json
>  create mode 100644 tests/qapi-schema/union-base-empty.out
>
> --
> 2.7.4
>
>
> --
Marc-André Lureau

  parent reply	other threads:[~2017-03-14 13:24 UTC|newest]

Thread overview: 137+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-13  6:18 [Qemu-devel] [PATCH for-2.9 00/47] qapi: Put type information back into QMP documentation Markus Armbruster
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 01/47] qapi: Factor QAPISchemaParser._include() out of .__init__() Markus Armbruster
2017-03-13 19:34   ` Eric Blake
2017-03-14  8:28   ` Marc-André Lureau
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 02/47] qapi: Make doc comments optional where we don't need them Markus Armbruster
2017-03-13 21:00   ` Eric Blake
2017-03-14  7:21     ` Markus Armbruster
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 03/47] qapi: Back out doc comments added just to please qapi.py Markus Armbruster
2017-03-13 21:13   ` Eric Blake
2017-03-14  7:26     ` Markus Armbruster
2017-03-14  8:28   ` Marc-André Lureau
2017-03-14  9:45     ` Markus Armbruster
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 04/47] docs/qapi-code-gen.txt: Drop confusing reference to 'gen' Markus Armbruster
2017-03-13 22:17   ` Eric Blake
2017-03-14  8:30   ` Marc-André Lureau
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 05/47] qapi: Have each QAPI schema declare its returns white-list Markus Armbruster
2017-03-13 22:41   ` Eric Blake
2017-03-14  7:40     ` Markus Armbruster
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 06/47] qapi: Have each QAPI schema declare its name rule violations Markus Armbruster
2017-03-13 22:46   ` Eric Blake
2017-03-14  7:51     ` Markus Armbruster
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 07/47] qapi: Clean up build of generated documentation Markus Armbruster
2017-03-14 15:55   ` Eric Blake
2017-03-15  7:08     ` Markus Armbruster
2017-03-15 11:53       ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 08/47] tests/qapi-schema: Cover empty union base Markus Armbruster
2017-03-14  8:41   ` Marc-André Lureau
2017-03-14 15:56   ` Eric Blake
2017-03-15  7:11     ` Markus Armbruster
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 09/47] qapi: Fix to reject empty union base gracefully Markus Armbruster
2017-03-14  8:40   ` Marc-André Lureau
2017-03-14 15:58   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 10/47] qapi2texi: Fix up output around #optional Markus Armbruster
2017-03-14  8:37   ` Marc-André Lureau
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 11/47] qapi: Avoid unwanted blank lines in QAPIDoc Markus Armbruster
2017-03-14  8:46   ` Marc-André Lureau
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 12/47] qapi/rocker: Fix up doc comment notes on optional members Markus Armbruster
2017-03-14  8:49   ` Marc-André Lureau
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 13/47] qapi: Fix QAPISchemaEnumType.is_implicit() for 'QType' Markus Armbruster
2017-03-14 16:03   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 14/47] qapi: Prepare for requiring more complete documentation Markus Armbruster
2017-03-14 16:08   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 15/47] qapi: Conjure up QAPIDoc.ArgSection for undocumented members Markus Armbruster
2017-03-14 17:16   ` Eric Blake
2017-03-15  7:12     ` Markus Armbruster
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 16/47] qapi2texi: Convert to QAPISchemaVisitor Markus Armbruster
2017-03-14 17:31   ` Eric Blake
2017-03-15  7:14     ` Markus Armbruster
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 17/47] qapi: The #optional tag is redundant, drop Markus Armbruster
2017-03-14 17:59   ` Eric Blake
2017-03-15  7:22     ` Markus Armbruster
2017-03-14 20:14   ` Eric Blake
2017-03-15  7:15     ` Markus Armbruster
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 18/47] qapi: Use raw strings for regular expressions consistently Markus Armbruster
2017-03-14 18:00   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 19/47] qapi: Prefer single-quoted strings more consistently Markus Armbruster
2017-03-14 18:05   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 20/47] qapi2texi: Plainer enum value and member name formatting Markus Armbruster
2017-03-14 18:06   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 21/47] qapi2texi: Present the table of members more clearly Markus Armbruster
2017-03-14 18:08   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 22/47] qapi2texi: Explain enum value undocumentedness " Markus Armbruster
2017-03-14 19:00   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 23/47] qapi2texi: Don't hide undocumented members and arguments Markus Armbruster
2017-03-14 19:02   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 24/47] qapi2texi: Implement boxed argument documentation Markus Armbruster
2017-03-14 19:12   ` Eric Blake
2017-03-15  7:23     ` Markus Armbruster
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 25/47] qapi2texi: Include member type in generated documentation Markus Armbruster
2017-03-14 12:42   ` Marc-André Lureau
2017-03-14 15:16     ` Markus Armbruster
2017-03-14 19:16   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 26/47] qapi2texi: Generate reference to base type members Markus Armbruster
2017-03-14 19:29   ` Eric Blake
2017-03-15  7:30     ` Markus Armbruster
2017-03-15 12:13       ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 27/47] qapi2texi: Generate documentation for variant members Markus Armbruster
2017-03-14 19:36   ` Eric Blake
2017-03-15  7:36     ` Markus Armbruster
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 28/47] qapi2texi: Generate descriptions for simple union tags Markus Armbruster
2017-03-14 19:54   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 29/47] qapi2texi: Use category "Object" for all object types Markus Armbruster
2017-03-14 19:56   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 30/47] tests/qapi-schema: Improve doc / expression mismatch coverage Markus Armbruster
2017-03-14 20:02   ` Eric Blake
2017-03-14 20:36   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 31/47] qapi: Fix detection of doc / expression mismatch Markus Armbruster
2017-03-14 20:35   ` Eric Blake
2017-03-15  7:39     ` Markus Armbruster
2017-03-15 12:14       ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 32/47] qapi: Move detection of doc / expression name mismatch Markus Armbruster
2017-03-14 20:43   ` Eric Blake
2017-03-15  7:39     ` Markus Armbruster
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 33/47] qapi: Improve error message on @NAME: in free-form doc Markus Armbruster
2017-03-14 20:46   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 34/47] qapi: Move empty doc section checking to doc parser Markus Armbruster
2017-03-13  6:23   ` Markus Armbruster
2017-03-15  1:40     ` Eric Blake
2017-03-15  7:44       ` Markus Armbruster
2017-03-15  1:37   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 35/47] tests/qapi-schema: Rename doc-bad-args to doc-bad-command-arg Markus Armbruster
2017-03-14 20:47   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 36/47] tests/qapi-schema: Improve coverage of bogus member docs Markus Armbruster
2017-03-14 20:55   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 37/47] qapi: Fix detection of bogus member documentation Markus Armbruster
2017-03-14 20:58   ` Eric Blake
2017-03-15  7:46     ` Markus Armbruster
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 38/47] qapi: Eliminate check_docs() and drop QAPIDoc.expr Markus Armbruster
2017-03-14 21:00   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 39/47] qapi: Drop unused variable events Markus Armbruster
2017-03-14 21:02   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 40/47] qapi: Simplify what gets stored in enum_types Markus Armbruster
2017-03-15  0:34   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 41/47] qapi: Factor add_name() calls out of the meta conditional Markus Armbruster
2017-03-15  0:39   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 42/47] qapi: enum_types is a list used like a dict, make it one Markus Armbruster
2017-03-15  0:47   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 43/47] qapi: struct_types " Markus Armbruster
2017-03-15  1:31   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 44/47] qapi: union_types " Markus Armbruster
2017-03-15  1:34   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 45/47] qapi: Drop unused .check_clash() parameter schema Markus Armbruster
2017-03-15  1:46   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 46/47] qapi: Make pylint a bit happier Markus Armbruster
2017-03-15  1:47   ` Eric Blake
2017-03-13  6:18 ` [Qemu-devel] [PATCH for-2.9 47/47] qapi: Fix a misleading parser error message Markus Armbruster
2017-03-15  1:48   ` Eric Blake
2017-03-13 10:32 ` [Qemu-devel] [PATCH for-2.9 00/47] qapi: Put type information back into QMP documentation Marc-André Lureau
2017-03-13 12:14   ` Markus Armbruster
2017-03-13 12:21     ` Marc-André Lureau
2017-03-13 13:12       ` Markus Armbruster
2017-03-14 13:22         ` Marc-André Lureau
2017-03-14 16:14           ` Markus Armbruster
2017-03-15 14:00             ` Marc-André Lureau
2017-03-14 13:24 ` Marc-André Lureau [this message]
2017-03-15 13:06   ` Markus Armbruster
2017-04-27 18:16 ` 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='CAJ+F1CK1=b5sbTiu06cQyvV_ROaONPv5DUF366xRnmmi13=gHA@mail.gmail.com' \
    --to=marcandre.lureau@gmail.com \
    --cc=armbru@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    /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.