Paolo Bonzini <pbonz...@redhat.com> writes: > On 21/09/20 11:16, Markus Armbruster wrote: >> QMP is an *external* interface. >> >> It supports compatible evolution: we can make certain kinds of changes >> without affecting clients. These include: >> >> * Adding optional arguments >> >> * Adding results >> >> * Adding values to an enumeration type, branches to a union or >> alternate >> >> * Reordering members of enumerations, structs, unions >> >> * Turning an argument type into an alternate with the old type as branch >> >> We've made use of this extensively. See also >> docs/devel/qapi-code-gen.txt section "Compatibility considerations." >> >> How do such changes affect clients of the proposed D-Bus interface? > > All this makes me think that Q{MP,OM,API} badly needs rationale > documentation.
docs/devel/qapi-code-gen.txt is fairly thorough (>8000 words), but it doesn't try to serve as rationale documentation.