On 9/13/19 10:05 AM, Markus Armbruster wrote: >>> +Any change to a command definition's 'data' or one of the types used >>> +there (recursively) needs to consider send direction compatibility. >>> + >>> +Any change to a command definition's 'return', an event definition's >>> +'data', or one of the types used there (recursively) needs to consider >>> +receive direction compatibility. >>> + >>> +Any change to types used in both contexts need to consider both. >>> + >>> +Members of enumeration types, complex types and alternate types may be >>> +reordered freely. For enumerations and alternate types, this doesn't >>> +affect the wire encoding. For complex types, this might make the >>> +implementation emit JSON object members in a different order, which >>> +the Client JSON Protocol permits. >> >> Worth mentioning that type names themselves are NOT part of the >> interface, and may be freely renamed? > > Care to suggest a suitable sentence?
Although member names within a type cannot be changed without affecting compatibility, changes to type names themselves do not affect the protocol. As such, complex types may be freely renamed or refactored, such as splitting members from one type into a common base type, as long as the resulting set of members remain compatible. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature