qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 597494: qapi2texi: change texi formatters


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 597494: qapi2texi: change texi formatters
Date: Thu, 16 Mar 2017 07:15:12 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 597494abdefc68991b41cfda03801a496c9fcc4e
      
https://github.com/qemu/qemu/commit/597494abdefc68991b41cfda03801a496c9fcc4e
  Author: Marc-André Lureau <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi2texi: change texi formatters

STRUCT_FMT is generic enough, rename it to TYPE_FMT, use it for unions.

Rename COMMAND_FMT to MSG_FMT, since it applies to both commands and
events.

Signed-off-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>


  Commit: f880cd6b6f3fe7847cde3bec1fa98891c92229d2
      
https://github.com/qemu/qemu/commit/f880cd6b6f3fe7847cde3bec1fa98891c92229d2
  Author: Daniel P. Berrange <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qmp/qmp-shell

  Log Message:
  -----------
  qmp: allow setting properties to empty string in qmp-shell

The qmp-shell property parser currently rejects attempts to
set string properties to the empty string eg

  (QEMU) migrate-set-parameters  tls-hostname=
  Error while parsing command line: Expected a key=value pair, got 
'tls-hostname='
command format: <command-name>  [arg-name1=arg1] ... [arg-nameN=argN]

This is caused by checking the wrong condition after splitting
the parameter on '='. The "partition" method will return "" for
the separator field, if the seperator was not present, so that
is the correct thing to check for malformed syntax.

Signed-off-by: Daniel P. Berrange <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: John Snow <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>


  Commit: e04dea88727c2ac97091333ac8be6af5952634a7
      
https://github.com/qemu/qemu/commit/e04dea88727c2ac97091333ac8be6af5952634a7
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py

  Log Message:
  -----------
  qapi: Factor QAPISchemaParser._include() out of .__init__()

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>


  Commit: bc52d03ff589a033843b4603cfdfd1518867c626
      
https://github.com/qemu/qemu/commit/bc52d03ff589a033843b4603cfdfd1518867c626
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M docs/qapi-code-gen.txt
    M qapi-schema.json
    M qga/qapi-schema.json
    M scripts/qapi.py
    M scripts/qapi2texi.py
    M tests/Makefile.include
    A tests/qapi-schema/doc-missing.err
    A tests/qapi-schema/doc-missing.exit
    A tests/qapi-schema/doc-missing.json
    A tests/qapi-schema/doc-missing.out
    A tests/qapi-schema/include-extra-junk.err
    A tests/qapi-schema/include-extra-junk.exit
    A tests/qapi-schema/include-extra-junk.json
    A tests/qapi-schema/include-extra-junk.out
    A tests/qapi-schema/pragma-doc-required-crap.err
    A tests/qapi-schema/pragma-doc-required-crap.exit
    A tests/qapi-schema/pragma-doc-required-crap.json
    A tests/qapi-schema/pragma-doc-required-crap.out
    A tests/qapi-schema/pragma-extra-junk.err
    A tests/qapi-schema/pragma-extra-junk.exit
    A tests/qapi-schema/pragma-extra-junk.json
    A tests/qapi-schema/pragma-extra-junk.out
    A tests/qapi-schema/pragma-non-dict.err
    A tests/qapi-schema/pragma-non-dict.exit
    A tests/qapi-schema/pragma-non-dict.json
    A tests/qapi-schema/pragma-non-dict.out

  Log Message:
  -----------
  qapi: Make doc comments optional where we don't need them

Since we added the documentation generator in commit 3313b61, doc
comments are mandatory.  That's a very good idea for a schema that
needs to be documented, but has proven to be annoying for testing.

Make doc comments optional again, but add a new directive

    { 'pragma': { 'doc-required': true } }

to let a QAPI schema require them.

Add test cases for the new pragma directive.  While there, plug a
minor hole in includ directive test coverage.

Require documentation in the schemas we actually want documented:
qapi-schema.json and qga/qapi-schema.json.

We could probably make qapi2texi.py cope with incomplete
documentation, but for now, simply make it refuse to run unless the
schema has 'doc-required': true.

Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
[qapi-code-gen.txt wording tweaked]
Reviewed-by: Eric Blake <address@hidden>


  Commit: 87c16dcecae62ce324ba6cb360b86434cb324c95
      
https://github.com/qemu/qemu/commit/87c16dcecae62ce324ba6cb360b86434cb324c95
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M tests/qapi-schema/alternate-any.err
    M tests/qapi-schema/alternate-any.json
    M tests/qapi-schema/alternate-array.err
    M tests/qapi-schema/alternate-array.json
    M tests/qapi-schema/alternate-base.err
    M tests/qapi-schema/alternate-base.json
    M tests/qapi-schema/alternate-clash.err
    M tests/qapi-schema/alternate-clash.json
    M tests/qapi-schema/alternate-conflict-dict.err
    M tests/qapi-schema/alternate-conflict-dict.json
    M tests/qapi-schema/alternate-conflict-string.err
    M tests/qapi-schema/alternate-conflict-string.json
    M tests/qapi-schema/alternate-empty.err
    M tests/qapi-schema/alternate-empty.json
    M tests/qapi-schema/alternate-nested.err
    M tests/qapi-schema/alternate-nested.json
    M tests/qapi-schema/alternate-unknown.err
    M tests/qapi-schema/alternate-unknown.json
    M tests/qapi-schema/args-alternate.err
    M tests/qapi-schema/args-alternate.json
    M tests/qapi-schema/args-any.err
    M tests/qapi-schema/args-any.json
    M tests/qapi-schema/args-array-empty.err
    M tests/qapi-schema/args-array-empty.json
    M tests/qapi-schema/args-array-unknown.err
    M tests/qapi-schema/args-array-unknown.json
    M tests/qapi-schema/args-bad-boxed.err
    M tests/qapi-schema/args-bad-boxed.json
    M tests/qapi-schema/args-boxed-anon.err
    M tests/qapi-schema/args-boxed-anon.json
    M tests/qapi-schema/args-boxed-empty.err
    M tests/qapi-schema/args-boxed-empty.json
    M tests/qapi-schema/args-boxed-string.err
    M tests/qapi-schema/args-boxed-string.json
    M tests/qapi-schema/args-int.err
    M tests/qapi-schema/args-int.json
    M tests/qapi-schema/args-invalid.err
    M tests/qapi-schema/args-invalid.json
    M tests/qapi-schema/args-member-array-bad.err
    M tests/qapi-schema/args-member-array-bad.json
    M tests/qapi-schema/args-member-case.err
    M tests/qapi-schema/args-member-case.json
    M tests/qapi-schema/args-member-unknown.err
    M tests/qapi-schema/args-member-unknown.json
    M tests/qapi-schema/args-name-clash.err
    M tests/qapi-schema/args-name-clash.json
    M tests/qapi-schema/args-union.err
    M tests/qapi-schema/args-union.json
    M tests/qapi-schema/args-unknown.err
    M tests/qapi-schema/args-unknown.json
    M tests/qapi-schema/bad-base.err
    M tests/qapi-schema/bad-base.json
    M tests/qapi-schema/bad-data.err
    M tests/qapi-schema/bad-data.json
    M tests/qapi-schema/bad-ident.err
    M tests/qapi-schema/bad-ident.json
    M tests/qapi-schema/bad-type-bool.err
    M tests/qapi-schema/bad-type-bool.json
    M tests/qapi-schema/bad-type-dict.err
    M tests/qapi-schema/bad-type-dict.json
    M tests/qapi-schema/base-cycle-direct.err
    M tests/qapi-schema/base-cycle-direct.json
    M tests/qapi-schema/base-cycle-indirect.err
    M tests/qapi-schema/base-cycle-indirect.json
    M tests/qapi-schema/command-int.err
    M tests/qapi-schema/command-int.json
    M tests/qapi-schema/comments.json
    M tests/qapi-schema/comments.out
    M tests/qapi-schema/double-type.err
    M tests/qapi-schema/double-type.json
    M tests/qapi-schema/enum-bad-name.err
    M tests/qapi-schema/enum-bad-name.json
    M tests/qapi-schema/enum-bad-prefix.err
    M tests/qapi-schema/enum-bad-prefix.json
    M tests/qapi-schema/enum-clash-member.err
    M tests/qapi-schema/enum-clash-member.json
    M tests/qapi-schema/enum-dict-member.err
    M tests/qapi-schema/enum-dict-member.json
    M tests/qapi-schema/enum-member-case.err
    M tests/qapi-schema/enum-member-case.json
    M tests/qapi-schema/enum-missing-data.err
    M tests/qapi-schema/enum-missing-data.json
    M tests/qapi-schema/enum-wrong-data.err
    M tests/qapi-schema/enum-wrong-data.json
    M tests/qapi-schema/event-boxed-empty.err
    M tests/qapi-schema/event-boxed-empty.json
    M tests/qapi-schema/event-case.json
    M tests/qapi-schema/event-case.out
    M tests/qapi-schema/event-nest-struct.err
    M tests/qapi-schema/event-nest-struct.json
    M tests/qapi-schema/flat-union-array-branch.err
    M tests/qapi-schema/flat-union-array-branch.json
    M tests/qapi-schema/flat-union-bad-base.err
    M tests/qapi-schema/flat-union-bad-base.json
    M tests/qapi-schema/flat-union-bad-discriminator.err
    M tests/qapi-schema/flat-union-bad-discriminator.json
    M tests/qapi-schema/flat-union-base-any.err
    M tests/qapi-schema/flat-union-base-any.json
    M tests/qapi-schema/flat-union-base-union.err
    M tests/qapi-schema/flat-union-base-union.json
    M tests/qapi-schema/flat-union-clash-member.err
    M tests/qapi-schema/flat-union-clash-member.json
    M tests/qapi-schema/flat-union-empty.err
    M tests/qapi-schema/flat-union-empty.json
    M tests/qapi-schema/flat-union-incomplete-branch.err
    M tests/qapi-schema/flat-union-incomplete-branch.json
    M tests/qapi-schema/flat-union-inline.err
    M tests/qapi-schema/flat-union-inline.json
    M tests/qapi-schema/flat-union-int-branch.err
    M tests/qapi-schema/flat-union-int-branch.json
    M tests/qapi-schema/flat-union-invalid-branch-key.err
    M tests/qapi-schema/flat-union-invalid-branch-key.json
    M tests/qapi-schema/flat-union-invalid-discriminator.err
    M tests/qapi-schema/flat-union-invalid-discriminator.json
    M tests/qapi-schema/flat-union-no-base.err
    M tests/qapi-schema/flat-union-no-base.json
    M tests/qapi-schema/flat-union-optional-discriminator.err
    M tests/qapi-schema/flat-union-optional-discriminator.json
    M tests/qapi-schema/flat-union-string-discriminator.err
    M tests/qapi-schema/flat-union-string-discriminator.json
    M tests/qapi-schema/ident-with-escape.json
    M tests/qapi-schema/ident-with-escape.out
    M tests/qapi-schema/include-relpath-sub.json
    M tests/qapi-schema/include-relpath.out
    M tests/qapi-schema/include-repetition.out
    M tests/qapi-schema/include-simple-sub.json
    M tests/qapi-schema/include-simple.out
    M tests/qapi-schema/indented-expr.json
    M tests/qapi-schema/indented-expr.out
    M tests/qapi-schema/missing-type.err
    M tests/qapi-schema/missing-type.json
    M tests/qapi-schema/nested-struct-data.err
    M tests/qapi-schema/nested-struct-data.json
    M tests/qapi-schema/qapi-schema-test.json
    M tests/qapi-schema/qapi-schema-test.out
    M tests/qapi-schema/redefined-builtin.err
    M tests/qapi-schema/redefined-builtin.json
    M tests/qapi-schema/redefined-command.err
    M tests/qapi-schema/redefined-command.json
    M tests/qapi-schema/redefined-event.err
    M tests/qapi-schema/redefined-event.json
    M tests/qapi-schema/redefined-type.err
    M tests/qapi-schema/redefined-type.json
    M tests/qapi-schema/reserved-command-q.err
    M tests/qapi-schema/reserved-command-q.json
    M tests/qapi-schema/reserved-enum-q.err
    M tests/qapi-schema/reserved-enum-q.json
    M tests/qapi-schema/reserved-member-has.err
    M tests/qapi-schema/reserved-member-has.json
    M tests/qapi-schema/reserved-member-q.err
    M tests/qapi-schema/reserved-member-q.json
    M tests/qapi-schema/reserved-member-u.err
    M tests/qapi-schema/reserved-member-u.json
    M tests/qapi-schema/reserved-member-underscore.err
    M tests/qapi-schema/reserved-member-underscore.json
    M tests/qapi-schema/reserved-type-kind.err
    M tests/qapi-schema/reserved-type-kind.json
    M tests/qapi-schema/reserved-type-list.err
    M tests/qapi-schema/reserved-type-list.json
    M tests/qapi-schema/returns-alternate.err
    M tests/qapi-schema/returns-alternate.json
    M tests/qapi-schema/returns-array-bad.err
    M tests/qapi-schema/returns-array-bad.json
    M tests/qapi-schema/returns-dict.err
    M tests/qapi-schema/returns-dict.json
    M tests/qapi-schema/returns-unknown.err
    M tests/qapi-schema/returns-unknown.json
    M tests/qapi-schema/returns-whitelist.err
    M tests/qapi-schema/returns-whitelist.json
    M tests/qapi-schema/struct-base-clash-deep.err
    M tests/qapi-schema/struct-base-clash-deep.json
    M tests/qapi-schema/struct-base-clash.err
    M tests/qapi-schema/struct-base-clash.json
    M tests/qapi-schema/struct-data-invalid.err
    M tests/qapi-schema/struct-data-invalid.json
    M tests/qapi-schema/struct-member-invalid.err
    M tests/qapi-schema/struct-member-invalid.json
    M tests/qapi-schema/test-qapi.py
    M tests/qapi-schema/type-bypass-bad-gen.err
    M tests/qapi-schema/type-bypass-bad-gen.json
    M tests/qapi-schema/unicode-str.err
    M tests/qapi-schema/unicode-str.json
    M tests/qapi-schema/union-base-no-discriminator.err
    M tests/qapi-schema/union-base-no-discriminator.json
    M tests/qapi-schema/union-branch-case.err
    M tests/qapi-schema/union-branch-case.json
    M tests/qapi-schema/union-clash-branches.err
    M tests/qapi-schema/union-clash-branches.json
    M tests/qapi-schema/union-empty.err
    M tests/qapi-schema/union-empty.json
    M tests/qapi-schema/union-invalid-base.err
    M tests/qapi-schema/union-invalid-base.json
    M tests/qapi-schema/union-optional-branch.err
    M tests/qapi-schema/union-optional-branch.json
    M tests/qapi-schema/union-unknown.err
    M tests/qapi-schema/union-unknown.json
    M tests/qapi-schema/unknown-escape.err
    M tests/qapi-schema/unknown-escape.json
    M tests/qapi-schema/unknown-expr-key.err
    M tests/qapi-schema/unknown-expr-key.json

  Log Message:
  -----------
  qapi: Back out doc comments added just to please qapi.py

This reverts commit 3313b61's changes to tests/qapi-schema/, except
for tests/qapi-schema/doc-*.

We could keep some of these doc comments to serve as positive test
cases.  However, they don't actually add to what we get from doc
comment use in actual schemas, as we we don't test output matches
expectations, and don't systematically cover doc comment features.
Proper positive test coverage would be nice.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 700dc9f503c61cdd1180e9bf84a225105b22b227
      
https://github.com/qemu/qemu/commit/700dc9f503c61cdd1180e9bf84a225105b22b227
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M docs/qapi-code-gen.txt

  Log Message:
  -----------
  docs/qapi-code-gen.txt: Drop confusing reference to 'gen'

Section "Commands" qualifies its rules on permitted argument and
return types "with one exception noted below when 'gen' is used".  The
note went away in commit 2d21291.  Clean up the dangling references.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>


  Commit: 1554a8fae984cad4704fb94a8cef3c9b42ef6185
      
https://github.com/qemu/qemu/commit/1554a8fae984cad4704fb94a8cef3c9b42ef6185
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M docs/qapi-code-gen.txt
    M qapi-schema.json
    M qga/qapi-schema.json
    M scripts/qapi.py
    M tests/Makefile.include
    A tests/qapi-schema/pragma-returns-whitelist-crap.err
    A tests/qapi-schema/pragma-returns-whitelist-crap.exit
    A tests/qapi-schema/pragma-returns-whitelist-crap.json
    A tests/qapi-schema/pragma-returns-whitelist-crap.out
    M tests/qapi-schema/qapi-schema-test.json
    M tests/qapi-schema/returns-whitelist.err
    M tests/qapi-schema/returns-whitelist.json

  Log Message:
  -----------
  qapi: Have each QAPI schema declare its returns white-list

qapi.py has a hardcoded white-list of command names that may violate
the rules on permitted return types.  Add a new pragma directive
'returns-whitelist', and use it to replace the hard-coded white-list.

Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: 2cfbae3c423ecd13a7722ac7a7dca7ec4168e2ff
      
https://github.com/qemu/qemu/commit/2cfbae3c423ecd13a7722ac7a7dca7ec4168e2ff
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M docs/qapi-code-gen.txt
    M qapi-schema.json
    M scripts/qapi.py
    M tests/Makefile.include
    M tests/qapi-schema/enum-member-case.err
    M tests/qapi-schema/enum-member-case.json
    A tests/qapi-schema/pragma-name-case-whitelist-crap.err
    A tests/qapi-schema/pragma-name-case-whitelist-crap.exit
    A tests/qapi-schema/pragma-name-case-whitelist-crap.json
    A tests/qapi-schema/pragma-name-case-whitelist-crap.out

  Log Message:
  -----------
  qapi: Have each QAPI schema declare its name rule violations

qapi.py has a hardcoded white-list of type names that may violate the
rule on use of upper and lower case.  Add a new pragma directive
'name-case-whitelist', and use it to replace the hard-coded
white-list.

Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: bd7f974796872fc754c2d01b3a8499e8bb85f844
      
https://github.com/qemu/qemu/commit/bd7f974796872fc754c2d01b3a8499e8bb85f844
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M .gitignore
    M Makefile
    M docs/qemu-qmp-ref.texi
    M rules.mak

  Log Message:
  -----------
  qapi: Clean up build of generated documentation

Rename intermediate qemu-qapi.texi to qemu-qmp-qapi.texi to match its
user qemu-qmp-ref.texi, just like qemu-ga-qapi.texi matches
qemu-ga-ref.texi.

Build the intermediate .texi next to the sources and the final output
in docs/ instead of dumping them into the build root.

Fix version.texi dependencies so that only the targets that actually
need it depend on it.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 707fb2d381de7a03e5bf9d2bd305dc7883fd992e
      
https://github.com/qemu/qemu/commit/707fb2d381de7a03e5bf9d2bd305dc7883fd992e
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M tests/Makefile.include
    A tests/qapi-schema/union-base-empty.err
    A tests/qapi-schema/union-base-empty.exit
    A tests/qapi-schema/union-base-empty.json
    A tests/qapi-schema/union-base-empty.out

  Log Message:
  -----------
  tests/qapi-schema: Cover empty union base

The new test case shows off qapi.py choking on an empty union base.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 481537451302fc63eee5cf3663a92629bb78954f
      
https://github.com/qemu/qemu/commit/481537451302fc63eee5cf3663a92629bb78954f
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py
    M tests/qapi-schema/union-base-empty.err

  Log Message:
  -----------
  qapi: Fix to reject empty union base gracefully

Common Python pitfall: 'assert base_members' fires on [] in addition
to None.  Correct to 'assert base_members is not None'.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 42bebcc129a8bf235f41d65788eb54e199ba5e64
      
https://github.com/qemu/qemu/commit/42bebcc129a8bf235f41d65788eb54e199ba5e64
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M qapi-schema.json
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi2texi: Fix up output around #optional

We use tag #optional to mark optional members, like this:

    # @name: #optional The name of the guest

texi_body() strips #optional, but not whitespace around it.  For the
above, we get in qemu-qmp-qapi.texi

    @item @code{'name'} (optional)
     The name of the guest
    @end table

The extra space can lead to artifacts in output, e.g in
qemu-qmp-ref.7.pod

    =item C<'name'> (optional)

     The name of the guest

and then in qemu-qmp-ref.7

    .IX Item "name (optional)"
    .Vb 1
    \& The name of the guest
    .Ve

instead of intended plain

    .IX Item "name (optional)"
    The name of the guest

Get rid of these artifacts by removing whitespace around #optional
along with it.

This turns three minus signs in qapi-schema.json into markup, because
they're now at the beginning of the line.  Drop them, they're unwanted
there.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>


  Commit: b116fd8e302d0ff7cabf431e78ce078127b51f85
      
https://github.com/qemu/qemu/commit/b116fd8e302d0ff7cabf431e78ce078127b51f85
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi: Avoid unwanted blank lines in QAPIDoc

We silently fix missing #optional tags for QAPIDoc by appending a line
"#optional" to the section's .content.  However, this interferes with
.__repr__ stripping trailing blank lines from .content.

Use new ArgSection instance variable .optional instead, and leave
.content alone.

To permit testing .optional in texi_body(), clean up texi_enum()'s
hack to add empty documentation for undocumented enum values: add an
ArgSection instead of ''.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>


  Commit: 8c0aa61318a63d42099ee0e3d40e80e8108cbc21
      
https://github.com/qemu/qemu/commit/8c0aa61318a63d42099ee0e3d40e80e8108cbc21
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M qapi/rocker.json

  Log Message:
  -----------
  qapi/rocker: Fix up doc comment notes on optional members

Talking about #optional like this

    # Note: fields are marked #optional to indicate that they may or may
    # not appear ...

doesn't work so well in generated documentation, because the #optional
tag is not visible there.  Replace by

    # Note: optional members may or may not appear ...

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>


  Commit: 4636211e4dddfc798d9e9072546a87f9adf7ce5a
      
https://github.com/qemu/qemu/commit/4636211e4dddfc798d9e9072546a87f9adf7ce5a
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py

  Log Message:
  -----------
  qapi: Fix QAPISchemaEnumType.is_implicit() for 'QType'

Missed in commit 7264f5c.  Harmless, because nothing checks whether an
enumeration type is implicit so far.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 069fb5b250c8f90caeb84dcc003e2147ccc4a782
      
https://github.com/qemu/qemu/commit/069fb5b250c8f90caeb84dcc003e2147ccc4a782
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py

  Log Message:
  -----------
  qapi: Prepare for requiring more complete documentation

We currently neglect to check all enumeration values, common members
of object types and members of alternate types are documented.
Unsurprisingly, many aren't.

Add the necessary plumbing to find undocumented ones, except for
variant members of object types.  Don't enforce anything just yet, but
connect each QAPIDoc.ArgSection to its QAPISchemaMember.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 860e87786123368a97c879b6e7459b3f519bbc97
      
https://github.com/qemu/qemu/commit/860e87786123368a97c879b6e7459b3f519bbc97
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi: Conjure up QAPIDoc.ArgSection for undocumented members

qapi2texi.py already conjures up ArgSections for undocumented
enumeration values, in texi_enum.  Drop that, and conjure them up for
all kinds of "arguments" (enumeration values, object and alternate
type members) in qapi.py instead.

Take care to keep generated documentation exactly the same for now.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: aa964b7fdc2b9c6fd0dd530c44563b2a9d891d0f
      
https://github.com/qemu/qemu/commit/aa964b7fdc2b9c6fd0dd530c44563b2a9d891d0f
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi2texi: Convert to QAPISchemaVisitor

qapi2texi works with schema expression trees.  Such a tight coupling
to schema language syntax is not a good idea.  Convert it to the visitor
interface the other generators use.

No change to generated documentation.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 1d8bda128d2ff1f7e589c90d0ac468b95d260757
      
https://github.com/qemu/qemu/commit/1d8bda128d2ff1f7e589c90d0ac468b95d260757
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M docs/qapi-code-gen.txt
    M docs/writing-qmp-commands.txt
    M qapi-schema.json
    M qapi/block-core.json
    M qapi/block.json
    M qapi/crypto.json
    M qapi/event.json
    M qapi/introspect.json
    M qapi/rocker.json
    M qapi/trace.json
    M qga/qapi-schema.json
    M scripts/qapi.py
    M scripts/qapi2texi.py
    M tests/Makefile.include
    R tests/qapi-schema/doc-optional.err
    R tests/qapi-schema/doc-optional.exit
    R tests/qapi-schema/doc-optional.json
    R tests/qapi-schema/doc-optional.out

  Log Message:
  -----------
  qapi: The #optional tag is redundant, drop

We traditionally mark optional members #optional in the doc comment.
Before commit 3313b61, this was entirely manual.

Commit 3313b61 added some automation because its qapi2texi.py relied
on #optional to determine whether a member is optional.  This is no
longer the case since the previous commit: the only thing qapi2texi.py
still does with #optional is stripping it out.  We still reject bogus
qapi-schema.json and six places for qga/qapi-schema.json.

Thus, you can't actually rely on #optional to see whether something is
optional.  Yet we still make people add it manually.  That's just
busy-work.

Drop the code to check, fix up and strip out #optional, along with all
instances of #optional.  To keep it out, add code to reject it, to be
dropped again once the dust settles.

No change to generated documentation.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 0fe675af77e922f3901552be4ac0c454b7dad43d
      
https://github.com/qemu/qemu/commit/0fe675af77e922f3901552be4ac0c454b7dad43d
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py

  Log Message:
  -----------
  qapi: Use raw strings for regular expressions consistently

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: ef801a9bb1e2cf276a8482c4ad1910f72de223f8
      
https://github.com/qemu/qemu/commit/ef801a9bb1e2cf276a8482c4ad1910f72de223f8
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi-event.py
    M scripts/qapi-introspect.py
    M scripts/qapi-types.py
    M scripts/qapi-visit.py
    M scripts/qapi.py
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi: Prefer single-quoted strings more consistently

PEP 8 advises:

    In Python, single-quoted strings and double-quoted strings are the
    same.  This PEP does not make a recommendation for this.  Pick a
    rule and stick to it.  When a string contains single or double
    quote characters, however, use the other one to avoid backslashes
    in the string.  It improves readability.

The QAPI generators succeed at picking a rule, but fail at sticking to
it.  Convert a bunch of double-quoted strings to single-quoted ones.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 71d918a1b191adaabd009910163f996289666ee7
      
https://github.com/qemu/qemu/commit/71d918a1b191adaabd009910163f996289666ee7
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi2texi: Plainer enum value and member name formatting

Use @code{%s} instead of @code{'%s'}.  Impact, using @id as example:

* Texinfo
  address@hidden @code{'id'}
  address@hidden @code{id}

* HTML
  -<dt><code>'id'</code></dt>
  +<dt><code>id</code></dt>

* POD (for manual pages):
  -=item C<'id'>
  +=item C<id>

* Formatted manual pages:
  -'id'
  +"id"

* Plain text:
  -     ''id''
  +     'id'

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 2a1183ce9399657a896c51f388e6c7ca58f5d56d
      
https://github.com/qemu/qemu/commit/2a1183ce9399657a896c51f388e6c7ca58f5d56d
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi2texi: Present the table of members more clearly

The table of members follows the main descriptive text immediately.
Makes it hard to see what it is about.  Start a new paragraph, and
lead with a line "Members:" for object and alternate types, "Values:"
for enumeration types, and "Arguments:" for commands and events.

Example change (qemu-qmp-ref.txt):

  -- Command: set_link

      Sets the link status of a virtual network adapter.
+
+     Arguments:
      'name'
     the device name of the virtual network adapter
      'up'
     true to set the link status to be up

      Returns: Nothing on success If 'name' is not a valid network
      device, DeviceNotFound

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 5da19f14ff3393dc84f0f84c50770affd2c10acf
      
https://github.com/qemu/qemu/commit/5da19f14ff3393dc84f0f84c50770affd2c10acf
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi2texi: Explain enum value undocumentedness more clearly

Instead of not saying anything when we have no documentation, say "Not
documented".

Example change (qemu-qmp-ref.txt):

  -- Enum: GuestPanicAction

      An enumeration of the actions taken when guest OS panic is detected

      Values:
      'pause'
     system pauses
      'poweroff'
+          Not documented

      Since: 2.1 (poweroff since 2.8)

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 2c99f5fdc8a1e3decbb2c3bd99090ecb816a3d95
      
https://github.com/qemu/qemu/commit/2c99f5fdc8a1e3decbb2c3bd99090ecb816a3d95
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi2texi: Don't hide undocumented members and arguments

Show undocumented object, alternate type members and command, event
arguments exactly like undocumented enumeration type values.

Example change (qemu-qmp-ref.txt):

  -- Command: query-rocker

      Return rocker switch information.

+     Arguments:
+     'name'
+          Not documented
+
      Returns: 'Rocker' information

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: c2dd311cb72b0ef59287aad3c0c7ee968c7289e2
      
https://github.com/qemu/qemu/commit/c2dd311cb72b0ef59287aad3c0c7ee968c7289e2
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M qapi-schema.json
    M qapi/block-core.json
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi2texi: Implement boxed argument documentation

This replaces manual references like "For the arguments, see the
documentation of ..." by a generated reference "Arguments: the members
of ...".

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 691e03133e79fd1f70ea4b524cdd10cbc23fd72a
      
https://github.com/qemu/qemu/commit/691e03133e79fd1f70ea4b524cdd10cbc23fd72a
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi2texi: Include member type in generated documentation

The recent merge of docs/qmp-commands.txt and docs/qmp-events.txt into
the schema lost type information.  Fix this documentation regression.

Example change (qemu-qmp-ref.txt):

  -- Struct: InputKeyEvent

      Keyboard input event.

      Members:
-     'button'
+     'button: InputButton'
     Which button this event is for.
-     'down'
+     'down: boolean'
     True for key-down and false for key-up events.

      Since: 2.0

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 88f63467c5753ec49ea8e7134c6b4b59c03d73b2
      
https://github.com/qemu/qemu/commit/88f63467c5753ec49ea8e7134c6b4b59c03d73b2
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi2texi: Generate reference to base type members

The generated documentation doesn't mention object type members
inherited from a base type.  Fix that.

Example change (qemu-qmp-ref.txt):

  -- Struct: VncServerInfo

      The network connection information for server

      Members:
      'auth' (optional)
           authentication method used for the plain (non-websocket) VNC
           server
+     The members of 'VncBasicInfo'

      Since: 2.1

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 5169cd87673b99be8c017b1969583f0c729917d9
      
https://github.com/qemu/qemu/commit/5169cd87673b99be8c017b1969583f0c729917d9
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi2texi: Generate documentation for variant members

A flat union's branch brings in the members of another type.  Generate
a suitable reference to that type.

Example change (qemu-qmp-ref.txt):

  -- Flat Union: QCryptoBlockOpenOptions

      The options that are available for all encryption formats when
      opening an existing volume

      Members:
      The members of 'QCryptoBlockOptionsBase'
+     The members of 'QCryptoBlockOptionsQCow' when 'format' is "qcow"
+     The members of 'QCryptoBlockOptionsLUKS' when 'format' is "luks"

      Since: 2.6

A simple union's branch adds a member 'data' of some other type.
Generate documentation for that member.

Example change (qemu-qmp-ref.txt):

  -- Simple Union: SocketAddress

      Captures the address of a socket, which could also be a named file
      descriptor

      Members:
      'type'
           Not documented
+     '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

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: c19eaa64df7be01f060e04c0f13bba5de549c3f3
      
https://github.com/qemu/qemu/commit/c19eaa64df7be01f060e04c0f13bba5de549c3f3
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi2texi: Generate descriptions for simple union tags

Simple union tags carry no type information, because their type is
implicit.  Their description should make up for it, but many have
none.  Generate one automatically then.

Example change (qemu-qmp-ref.txt):

  -- Simple Union: ImageInfoSpecific

      A discriminated record of image format specific information
      structures.

      Members:
      'type'
-          Not documented
+          One of "qcow2", "vmdk", "luks"
      'data: ImageInfoSpecificQCow2' when 'type' is "qcow2"
      'data: ImageInfoSpecificVmdk' when 'type' is "vmdk"
      'data: QCryptoBlockInfoLUKS' when 'type' is "luks"

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 75b50196d9eee43f0b7d006455b9735ea5c3c333
      
https://github.com/qemu/qemu/commit/75b50196d9eee43f0b7d006455b9735ea5c3c333
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi2texi.py

  Log Message:
  -----------
  qapi2texi: Use category "Object" for all object types

At the protocol level, the distinction between struct, flat union and
simple union is meaningless, they are all JSON objects.  Document them
that way.

Example change (qemu-qmp-ref.txt):

- -- Simple Union: InputEvent
+ -- Object: InputEvent

      Input event union.

This also fixes the completely broken headings for flat and simple
unions in qemu-qmp-ref.7 and qemu-ga-ref.7, by sidestepping a bug in
texi2pod.pl.  For instance, it mistranslates "@deftp {Simple Union}
InputEvent" to "B<Union> (Simple)", but translates "@deftp Object
InputEvent" to "B<SocketAddress> (Object)".

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 2028be8eeaa5334ce63fbf625942c6d52c6dac28
      
https://github.com/qemu/qemu/commit/2028be8eeaa5334ce63fbf625942c6d52c6dac28
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M tests/Makefile.include
    A tests/qapi-schema/doc-before-include.err
    A tests/qapi-schema/doc-before-include.exit
    A tests/qapi-schema/doc-before-include.json
    A tests/qapi-schema/doc-before-include.out
    A tests/qapi-schema/doc-before-pragma.err
    A tests/qapi-schema/doc-before-pragma.exit
    A tests/qapi-schema/doc-before-pragma.json
    A tests/qapi-schema/doc-before-pragma.out
    A tests/qapi-schema/doc-no-symbol.err
    A tests/qapi-schema/doc-no-symbol.exit
    A tests/qapi-schema/doc-no-symbol.json
    A tests/qapi-schema/doc-no-symbol.out

  Log Message:
  -----------
  tests/qapi-schema: Improve doc / expression mismatch coverage

New tests doc-before-include.json and doc-before-pragma.json show we
fail to reject a misplaced expression comment.

New test doc-no-symbol.json shows a bad error message.

Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: e7823a2adf7222d0513b8e7cfd8af85d407d4918
      
https://github.com/qemu/qemu/commit/e7823a2adf7222d0513b8e7cfd8af85d407d4918
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py
    M tests/qapi-schema/doc-before-include.err
    M tests/qapi-schema/doc-before-include.exit
    M tests/qapi-schema/doc-before-include.json
    M tests/qapi-schema/doc-before-include.out
    M tests/qapi-schema/doc-before-pragma.err
    M tests/qapi-schema/doc-before-pragma.exit
    M tests/qapi-schema/doc-before-pragma.json
    M tests/qapi-schema/doc-before-pragma.out
    M tests/qapi-schema/doc-missing-expr.err
    M tests/qapi-schema/doc-no-symbol.err
    M tests/qapi-schema/doc-no-symbol.json

  Log Message:
  -----------
  qapi: Fix detection of doc / expression mismatch

This fixes the errors uncovered by the previous commit.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 7947016d1ceb08584f0d0a3f62b8049ab27219ba
      
https://github.com/qemu/qemu/commit/7947016d1ceb08584f0d0a3f62b8049ab27219ba
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py
    M tests/qapi-schema/doc-bad-symbol.err

  Log Message:
  -----------
  qapi: Move detection of doc / expression name mismatch

Move the check whether the doc matches the expression name from
check_definition_doc() to check_exprs().  This changes the error
location from the comment to the expression.  Makes sense as the
message talks about the expression: "Definition of '%s' follows
documentation for '%s'".  It's also a step towards getting rid of
check_docs().

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 2d433236df5ab15d61a117c3d8e47a4abc651ce0
      
https://github.com/qemu/qemu/commit/2d433236df5ab15d61a117c3d8e47a4abc651ce0
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py
    M tests/qapi-schema/doc-invalid-section.err

  Log Message:
  -----------
  qapi: Improve error message on @NAME: in free-form doc

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 4ea7148e89deda8795b3233bc5ba8c4bf037230e
      
https://github.com/qemu/qemu/commit/4ea7148e89deda8795b3233bc5ba8c4bf037230e
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py
    M tests/qapi-schema/doc-empty-section.err

  Log Message:
  -----------
  qapi: Move empty doc section checking to doc parser

Results in a more precise error location, but the real reason is
emptying out check_docs() step by step.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: bdc001caaa60dd71af8cddf73688f28ac5a32bc2
      
https://github.com/qemu/qemu/commit/bdc001caaa60dd71af8cddf73688f28ac5a32bc2
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M tests/Makefile.include
    R tests/qapi-schema/doc-bad-args.err
    R tests/qapi-schema/doc-bad-args.exit
    R tests/qapi-schema/doc-bad-args.json
    R tests/qapi-schema/doc-bad-args.out
    A tests/qapi-schema/doc-bad-command-arg.err
    A tests/qapi-schema/doc-bad-command-arg.exit
    A tests/qapi-schema/doc-bad-command-arg.json
    A tests/qapi-schema/doc-bad-command-arg.out

  Log Message:
  -----------
  tests/qapi-schema: Rename doc-bad-args to doc-bad-command-arg

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: f641d06ad63773ae524fb073b2f8639e1db1462c
      
https://github.com/qemu/qemu/commit/f641d06ad63773ae524fb073b2f8639e1db1462c
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M tests/Makefile.include
    A tests/qapi-schema/doc-bad-alternate-member.err
    A tests/qapi-schema/doc-bad-alternate-member.exit
    A tests/qapi-schema/doc-bad-alternate-member.json
    A tests/qapi-schema/doc-bad-alternate-member.out
    A tests/qapi-schema/doc-bad-union-member.err
    A tests/qapi-schema/doc-bad-union-member.exit
    A tests/qapi-schema/doc-bad-union-member.json
    A tests/qapi-schema/doc-bad-union-member.out

  Log Message:
  -----------
  tests/qapi-schema: Improve coverage of bogus member docs

New test doc-bad-union-member.json shows we can fail to reject
documentation for nonexistent members.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 816a57cd6ebb6fe820766ac12478a56a5fa33d52
      
https://github.com/qemu/qemu/commit/816a57cd6ebb6fe820766ac12478a56a5fa33d52
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py
    M tests/qapi-schema/doc-bad-union-member.err
    M tests/qapi-schema/doc-bad-union-member.exit
    M tests/qapi-schema/doc-bad-union-member.out

  Log Message:
  -----------
  qapi: Fix detection of bogus member documentation

check_definition_doc() checks for member documentation without a
matching member.  It laboriously second-guesses what members
QAPISchema._def_exprs() will create.  That's a stupid game.

Move the check into QAPISchema.check(), where the members are known.
Delegate the actual checking to new QAPIDoc.check().

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: a9f396b028bc304fd1c27b2d52b22966cfc98a61
      
https://github.com/qemu/qemu/commit/a9f396b028bc304fd1c27b2d52b22966cfc98a61
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py

  Log Message:
  -----------
  qapi: Eliminate check_docs() and drop QAPIDoc.expr

Move what's left in check_docs() to check_expr().  Delegate the actual
checking to new QAPIDoc.check_expr().

QAPIDoc.expr is now unused; drop it.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 062e856b155a8b7724b8eba449fc3aa8a181d46b
      
https://github.com/qemu/qemu/commit/062e856b155a8b7724b8eba449fc3aa8a181d46b
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py

  Log Message:
  -----------
  qapi: Drop unused variable events

Missed in commit e98859a

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: eda43c68440e32062c32cc99a79edbb52cf87a74
      
https://github.com/qemu/qemu/commit/eda43c68440e32062c32cc99a79edbb52cf87a74
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py

  Log Message:
  -----------
  qapi: Simplify what gets stored in enum_types

Don't invent a new dictionary structure just for enum_types, simply
store the defining expression, like we do for struct_types and
union_types.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 6f05345f8f8eac137e0ba22a7389cdeaff60c9b2
      
https://github.com/qemu/qemu/commit/6f05345f8f8eac137e0ba22a7389cdeaff60c9b2
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py

  Log Message:
  -----------
  qapi: Factor add_name() calls out of the meta conditional

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 5f018446fe69ec85711db364e8d1f4c4de372bf5
      
https://github.com/qemu/qemu/commit/5f018446fe69ec85711db364e8d1f4c4de372bf5
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py

  Log Message:
  -----------
  qapi: enum_types is a list used like a dict, make it one

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: ed285bf821eeb5d82bb2777707cc02b11194b7b1
      
https://github.com/qemu/qemu/commit/ed285bf821eeb5d82bb2777707cc02b11194b7b1
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py

  Log Message:
  -----------
  qapi: struct_types is a list used like a dict, make it one

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 768562ded0354f6834b48c99626b6fadf19b757b
      
https://github.com/qemu/qemu/commit/768562ded0354f6834b48c99626b6fadf19b757b
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py

  Log Message:
  -----------
  qapi: union_types is a list used like a dict, make it one

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 6bbfb12de6541794c10baf007ad327262f94f10a
      
https://github.com/qemu/qemu/commit/6bbfb12de6541794c10baf007ad327262f94f10a
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py

  Log Message:
  -----------
  qapi: Drop unused .check_clash() parameter schema

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: c261394978d000000a095d7b4986226d0a4a551c
      
https://github.com/qemu/qemu/commit/c261394978d000000a095d7b4986226d0a4a551c
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi-commands.py
    M scripts/qapi-visit.py
    M scripts/qapi.py

  Log Message:
  -----------
  qapi: Make pylint a bit happier

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 012b126de2ded4e93b5ed069be5544ad8a2e6c15
      
https://github.com/qemu/qemu/commit/012b126de2ded4e93b5ed069be5544ad8a2e6c15
  Author: Markus Armbruster <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M scripts/qapi.py
    M tests/qapi-schema/trailing-comma-list.err

  Log Message:
  -----------
  qapi: Fix a misleading parser error message

When choking on a token where an expression is expected, we report
'Expected "{", "[" or string'.  Close, but no cigar.  Fix it to
Expected '"{", "[", string, boolean or "null"'.

Missed in commit e53188a.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 3c2758c286fbb82973471d09f5977dc5ece37137
      
https://github.com/qemu/qemu/commit/3c2758c286fbb82973471d09f5977dc5ece37137
  Author: Peter Maydell <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M .gitignore
    M Makefile
    M docs/qapi-code-gen.txt
    M docs/qemu-qmp-ref.texi
    M docs/writing-qmp-commands.txt
    M qapi-schema.json
    M qapi/block-core.json
    M qapi/block.json
    M qapi/crypto.json
    M qapi/event.json
    M qapi/introspect.json
    M qapi/rocker.json
    M qapi/trace.json
    M qga/qapi-schema.json
    M rules.mak
    M scripts/qapi-commands.py
    M scripts/qapi-event.py
    M scripts/qapi-introspect.py
    M scripts/qapi-types.py
    M scripts/qapi-visit.py
    M scripts/qapi.py
    M scripts/qapi2texi.py
    M scripts/qmp/qmp-shell
    M tests/Makefile.include
    M tests/qapi-schema/alternate-any.err
    M tests/qapi-schema/alternate-any.json
    M tests/qapi-schema/alternate-array.err
    M tests/qapi-schema/alternate-array.json
    M tests/qapi-schema/alternate-base.err
    M tests/qapi-schema/alternate-base.json
    M tests/qapi-schema/alternate-clash.err
    M tests/qapi-schema/alternate-clash.json
    M tests/qapi-schema/alternate-conflict-dict.err
    M tests/qapi-schema/alternate-conflict-dict.json
    M tests/qapi-schema/alternate-conflict-string.err
    M tests/qapi-schema/alternate-conflict-string.json
    M tests/qapi-schema/alternate-empty.err
    M tests/qapi-schema/alternate-empty.json
    M tests/qapi-schema/alternate-nested.err
    M tests/qapi-schema/alternate-nested.json
    M tests/qapi-schema/alternate-unknown.err
    M tests/qapi-schema/alternate-unknown.json
    M tests/qapi-schema/args-alternate.err
    M tests/qapi-schema/args-alternate.json
    M tests/qapi-schema/args-any.err
    M tests/qapi-schema/args-any.json
    M tests/qapi-schema/args-array-empty.err
    M tests/qapi-schema/args-array-empty.json
    M tests/qapi-schema/args-array-unknown.err
    M tests/qapi-schema/args-array-unknown.json
    M tests/qapi-schema/args-bad-boxed.err
    M tests/qapi-schema/args-bad-boxed.json
    M tests/qapi-schema/args-boxed-anon.err
    M tests/qapi-schema/args-boxed-anon.json
    M tests/qapi-schema/args-boxed-empty.err
    M tests/qapi-schema/args-boxed-empty.json
    M tests/qapi-schema/args-boxed-string.err
    M tests/qapi-schema/args-boxed-string.json
    M tests/qapi-schema/args-int.err
    M tests/qapi-schema/args-int.json
    M tests/qapi-schema/args-invalid.err
    M tests/qapi-schema/args-invalid.json
    M tests/qapi-schema/args-member-array-bad.err
    M tests/qapi-schema/args-member-array-bad.json
    M tests/qapi-schema/args-member-case.err
    M tests/qapi-schema/args-member-case.json
    M tests/qapi-schema/args-member-unknown.err
    M tests/qapi-schema/args-member-unknown.json
    M tests/qapi-schema/args-name-clash.err
    M tests/qapi-schema/args-name-clash.json
    M tests/qapi-schema/args-union.err
    M tests/qapi-schema/args-union.json
    M tests/qapi-schema/args-unknown.err
    M tests/qapi-schema/args-unknown.json
    M tests/qapi-schema/bad-base.err
    M tests/qapi-schema/bad-base.json
    M tests/qapi-schema/bad-data.err
    M tests/qapi-schema/bad-data.json
    M tests/qapi-schema/bad-ident.err
    M tests/qapi-schema/bad-ident.json
    M tests/qapi-schema/bad-type-bool.err
    M tests/qapi-schema/bad-type-bool.json
    M tests/qapi-schema/bad-type-dict.err
    M tests/qapi-schema/bad-type-dict.json
    M tests/qapi-schema/base-cycle-direct.err
    M tests/qapi-schema/base-cycle-direct.json
    M tests/qapi-schema/base-cycle-indirect.err
    M tests/qapi-schema/base-cycle-indirect.json
    M tests/qapi-schema/command-int.err
    M tests/qapi-schema/command-int.json
    M tests/qapi-schema/comments.json
    M tests/qapi-schema/comments.out
    A tests/qapi-schema/doc-bad-alternate-member.err
    A tests/qapi-schema/doc-bad-alternate-member.exit
    A tests/qapi-schema/doc-bad-alternate-member.json
    A tests/qapi-schema/doc-bad-alternate-member.out
    R tests/qapi-schema/doc-bad-args.err
    R tests/qapi-schema/doc-bad-args.exit
    R tests/qapi-schema/doc-bad-args.json
    R tests/qapi-schema/doc-bad-args.out
    A tests/qapi-schema/doc-bad-command-arg.err
    A tests/qapi-schema/doc-bad-command-arg.exit
    A tests/qapi-schema/doc-bad-command-arg.json
    A tests/qapi-schema/doc-bad-command-arg.out
    M tests/qapi-schema/doc-bad-symbol.err
    A tests/qapi-schema/doc-bad-union-member.err
    A tests/qapi-schema/doc-bad-union-member.exit
    A tests/qapi-schema/doc-bad-union-member.json
    A tests/qapi-schema/doc-bad-union-member.out
    A tests/qapi-schema/doc-before-include.err
    A tests/qapi-schema/doc-before-include.exit
    A tests/qapi-schema/doc-before-include.json
    A tests/qapi-schema/doc-before-include.out
    A tests/qapi-schema/doc-before-pragma.err
    A tests/qapi-schema/doc-before-pragma.exit
    A tests/qapi-schema/doc-before-pragma.json
    A tests/qapi-schema/doc-before-pragma.out
    M tests/qapi-schema/doc-empty-section.err
    M tests/qapi-schema/doc-invalid-section.err
    M tests/qapi-schema/doc-missing-expr.err
    A tests/qapi-schema/doc-missing.err
    A tests/qapi-schema/doc-missing.exit
    A tests/qapi-schema/doc-missing.json
    A tests/qapi-schema/doc-missing.out
    A tests/qapi-schema/doc-no-symbol.err
    A tests/qapi-schema/doc-no-symbol.exit
    A tests/qapi-schema/doc-no-symbol.json
    A tests/qapi-schema/doc-no-symbol.out
    R tests/qapi-schema/doc-optional.err
    R tests/qapi-schema/doc-optional.exit
    R tests/qapi-schema/doc-optional.json
    R tests/qapi-schema/doc-optional.out
    M tests/qapi-schema/double-type.err
    M tests/qapi-schema/double-type.json
    M tests/qapi-schema/enum-bad-name.err
    M tests/qapi-schema/enum-bad-name.json
    M tests/qapi-schema/enum-bad-prefix.err
    M tests/qapi-schema/enum-bad-prefix.json
    M tests/qapi-schema/enum-clash-member.err
    M tests/qapi-schema/enum-clash-member.json
    M tests/qapi-schema/enum-dict-member.err
    M tests/qapi-schema/enum-dict-member.json
    M tests/qapi-schema/enum-member-case.err
    M tests/qapi-schema/enum-member-case.json
    M tests/qapi-schema/enum-missing-data.err
    M tests/qapi-schema/enum-missing-data.json
    M tests/qapi-schema/enum-wrong-data.err
    M tests/qapi-schema/enum-wrong-data.json
    M tests/qapi-schema/event-boxed-empty.err
    M tests/qapi-schema/event-boxed-empty.json
    M tests/qapi-schema/event-case.json
    M tests/qapi-schema/event-case.out
    M tests/qapi-schema/event-nest-struct.err
    M tests/qapi-schema/event-nest-struct.json
    M tests/qapi-schema/flat-union-array-branch.err
    M tests/qapi-schema/flat-union-array-branch.json
    M tests/qapi-schema/flat-union-bad-base.err
    M tests/qapi-schema/flat-union-bad-base.json
    M tests/qapi-schema/flat-union-bad-discriminator.err
    M tests/qapi-schema/flat-union-bad-discriminator.json
    M tests/qapi-schema/flat-union-base-any.err
    M tests/qapi-schema/flat-union-base-any.json
    M tests/qapi-schema/flat-union-base-union.err
    M tests/qapi-schema/flat-union-base-union.json
    M tests/qapi-schema/flat-union-clash-member.err
    M tests/qapi-schema/flat-union-clash-member.json
    M tests/qapi-schema/flat-union-empty.err
    M tests/qapi-schema/flat-union-empty.json
    M tests/qapi-schema/flat-union-incomplete-branch.err
    M tests/qapi-schema/flat-union-incomplete-branch.json
    M tests/qapi-schema/flat-union-inline.err
    M tests/qapi-schema/flat-union-inline.json
    M tests/qapi-schema/flat-union-int-branch.err
    M tests/qapi-schema/flat-union-int-branch.json
    M tests/qapi-schema/flat-union-invalid-branch-key.err
    M tests/qapi-schema/flat-union-invalid-branch-key.json
    M tests/qapi-schema/flat-union-invalid-discriminator.err
    M tests/qapi-schema/flat-union-invalid-discriminator.json
    M tests/qapi-schema/flat-union-no-base.err
    M tests/qapi-schema/flat-union-no-base.json
    M tests/qapi-schema/flat-union-optional-discriminator.err
    M tests/qapi-schema/flat-union-optional-discriminator.json
    M tests/qapi-schema/flat-union-string-discriminator.err
    M tests/qapi-schema/flat-union-string-discriminator.json
    M tests/qapi-schema/ident-with-escape.json
    M tests/qapi-schema/ident-with-escape.out
    A tests/qapi-schema/include-extra-junk.err
    A tests/qapi-schema/include-extra-junk.exit
    A tests/qapi-schema/include-extra-junk.json
    A tests/qapi-schema/include-extra-junk.out
    M tests/qapi-schema/include-relpath-sub.json
    M tests/qapi-schema/include-relpath.out
    M tests/qapi-schema/include-repetition.out
    M tests/qapi-schema/include-simple-sub.json
    M tests/qapi-schema/include-simple.out
    M tests/qapi-schema/indented-expr.json
    M tests/qapi-schema/indented-expr.out
    M tests/qapi-schema/missing-type.err
    M tests/qapi-schema/missing-type.json
    M tests/qapi-schema/nested-struct-data.err
    M tests/qapi-schema/nested-struct-data.json
    A tests/qapi-schema/pragma-doc-required-crap.err
    A tests/qapi-schema/pragma-doc-required-crap.exit
    A tests/qapi-schema/pragma-doc-required-crap.json
    A tests/qapi-schema/pragma-doc-required-crap.out
    A tests/qapi-schema/pragma-extra-junk.err
    A tests/qapi-schema/pragma-extra-junk.exit
    A tests/qapi-schema/pragma-extra-junk.json
    A tests/qapi-schema/pragma-extra-junk.out
    A tests/qapi-schema/pragma-name-case-whitelist-crap.err
    A tests/qapi-schema/pragma-name-case-whitelist-crap.exit
    A tests/qapi-schema/pragma-name-case-whitelist-crap.json
    A tests/qapi-schema/pragma-name-case-whitelist-crap.out
    A tests/qapi-schema/pragma-non-dict.err
    A tests/qapi-schema/pragma-non-dict.exit
    A tests/qapi-schema/pragma-non-dict.json
    A tests/qapi-schema/pragma-non-dict.out
    A tests/qapi-schema/pragma-returns-whitelist-crap.err
    A tests/qapi-schema/pragma-returns-whitelist-crap.exit
    A tests/qapi-schema/pragma-returns-whitelist-crap.json
    A tests/qapi-schema/pragma-returns-whitelist-crap.out
    M tests/qapi-schema/qapi-schema-test.json
    M tests/qapi-schema/qapi-schema-test.out
    M tests/qapi-schema/redefined-builtin.err
    M tests/qapi-schema/redefined-builtin.json
    M tests/qapi-schema/redefined-command.err
    M tests/qapi-schema/redefined-command.json
    M tests/qapi-schema/redefined-event.err
    M tests/qapi-schema/redefined-event.json
    M tests/qapi-schema/redefined-type.err
    M tests/qapi-schema/redefined-type.json
    M tests/qapi-schema/reserved-command-q.err
    M tests/qapi-schema/reserved-command-q.json
    M tests/qapi-schema/reserved-enum-q.err
    M tests/qapi-schema/reserved-enum-q.json
    M tests/qapi-schema/reserved-member-has.err
    M tests/qapi-schema/reserved-member-has.json
    M tests/qapi-schema/reserved-member-q.err
    M tests/qapi-schema/reserved-member-q.json
    M tests/qapi-schema/reserved-member-u.err
    M tests/qapi-schema/reserved-member-u.json
    M tests/qapi-schema/reserved-member-underscore.err
    M tests/qapi-schema/reserved-member-underscore.json
    M tests/qapi-schema/reserved-type-kind.err
    M tests/qapi-schema/reserved-type-kind.json
    M tests/qapi-schema/reserved-type-list.err
    M tests/qapi-schema/reserved-type-list.json
    M tests/qapi-schema/returns-alternate.err
    M tests/qapi-schema/returns-alternate.json
    M tests/qapi-schema/returns-array-bad.err
    M tests/qapi-schema/returns-array-bad.json
    M tests/qapi-schema/returns-dict.err
    M tests/qapi-schema/returns-dict.json
    M tests/qapi-schema/returns-unknown.err
    M tests/qapi-schema/returns-unknown.json
    M tests/qapi-schema/returns-whitelist.err
    M tests/qapi-schema/returns-whitelist.json
    M tests/qapi-schema/struct-base-clash-deep.err
    M tests/qapi-schema/struct-base-clash-deep.json
    M tests/qapi-schema/struct-base-clash.err
    M tests/qapi-schema/struct-base-clash.json
    M tests/qapi-schema/struct-data-invalid.err
    M tests/qapi-schema/struct-data-invalid.json
    M tests/qapi-schema/struct-member-invalid.err
    M tests/qapi-schema/struct-member-invalid.json
    M tests/qapi-schema/test-qapi.py
    M tests/qapi-schema/trailing-comma-list.err
    M tests/qapi-schema/type-bypass-bad-gen.err
    M tests/qapi-schema/type-bypass-bad-gen.json
    M tests/qapi-schema/unicode-str.err
    M tests/qapi-schema/unicode-str.json
    A tests/qapi-schema/union-base-empty.err
    A tests/qapi-schema/union-base-empty.exit
    A tests/qapi-schema/union-base-empty.json
    A tests/qapi-schema/union-base-empty.out
    M tests/qapi-schema/union-base-no-discriminator.err
    M tests/qapi-schema/union-base-no-discriminator.json
    M tests/qapi-schema/union-branch-case.err
    M tests/qapi-schema/union-branch-case.json
    M tests/qapi-schema/union-clash-branches.err
    M tests/qapi-schema/union-clash-branches.json
    M tests/qapi-schema/union-empty.err
    M tests/qapi-schema/union-empty.json
    M tests/qapi-schema/union-invalid-base.err
    M tests/qapi-schema/union-invalid-base.json
    M tests/qapi-schema/union-optional-branch.err
    M tests/qapi-schema/union-optional-branch.json
    M tests/qapi-schema/union-unknown.err
    M tests/qapi-schema/union-unknown.json
    M tests/qapi-schema/unknown-escape.err
    M tests/qapi-schema/unknown-escape.json
    M tests/qapi-schema/unknown-expr-key.err
    M tests/qapi-schema/unknown-expr-key.json

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2017-03-16' into 
staging

QAPI patches for 2017-03-16

# gpg: Signature made Thu 16 Mar 2017 06:18:38 GMT
# gpg:                using RSA key 0x3870B400EB918653
# gpg: Good signature from "Markus Armbruster <address@hidden>"
# gpg:                 aka "Markus Armbruster <address@hidden>"
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653

* remotes/armbru/tags/pull-qapi-2017-03-16: (49 commits)
  qapi: Fix a misleading parser error message
  qapi: Make pylint a bit happier
  qapi: Drop unused .check_clash() parameter schema
  qapi: union_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: enum_types is a list used like a dict, make it one
  qapi: Factor add_name() calls out of the meta conditional
  qapi: Simplify what gets stored in enum_types
  qapi: Drop unused variable events
  qapi: Eliminate check_docs() and drop QAPIDoc.expr
  qapi: Fix detection of bogus member documentation
  tests/qapi-schema: Improve coverage of bogus member docs
  tests/qapi-schema: Rename doc-bad-args to doc-bad-command-arg
  qapi: Move empty doc section checking to doc parser
  qapi: Improve error message on @NAME: in free-form doc
  qapi: Move detection of doc / expression name mismatch
  qapi: Fix detection of doc / expression mismatch
  tests/qapi-schema: Improve doc / expression mismatch coverage
  qapi2texi: Use category "Object" for all object types
  qapi2texi: Generate descriptions for simple union tags
  ...

Signed-off-by: Peter Maydell <address@hidden>


  Commit: 699f6c6fd420e8c38f1f746f85815f4e88be11c6
      
https://github.com/qemu/qemu/commit/699f6c6fd420e8c38f1f746f85815f4e88be11c6
  Author: Peter Maydell <address@hidden>
  Date:   2017-03-16 (Thu, 16 Mar 2017)

  Changed paths:
    M dtc

  Log Message:
  -----------
  dtc: Revert unintentional submodule downgrade from commit c2cabb34220d63f9

Commit c2cabb34220d63f9 inadvertently downgraded the 'dtc' submodule,
undoing the increments added in earlier commits. Revert this,
returning the submodule state to where we should be.

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/3716fba3f58d...699f6c6fd420

reply via email to

[Prev in Thread] Current Thread [Next in Thread]