On Fri, 18 Dec 2009 18:20:52 +0100 Markus Armbruster <arm...@redhat.com> wrote:
> Luiz Capitulino <lcapitul...@redhat.com> writes: > > [...] > > -4. Notes to Client implementors > > -------------------------------- > > +4. Compatibility Considerations > > +-------------------------------- > > > > -4.1 It is recommended to always start the Server in pause mode, thus the > > - Client is able to perform any setup procedure without the risk of > > - race conditions and related problems > > +In order to achieve maximum compatibility between versions, the following > > +changes are forbidden in newer versions of the Server: > > > > -4.2 It is recommended to always check the capabilities json-array, issued > > - with the greeting message, at connection time > > +- Removal of commands > > +- Removal of command arguments > > +- Addition of extra mandatory arguments for commands > > +- Modification of arguments types > > +- Modification of arguments, commands, events or error names > > +- Modification of arguments in replies, events or errors > > While I think these promises are appropriate for a mature version of the > protocol, I do not think we should make them for 0.12. > > We've just dreamed up version 0.1 of the protocol. It hasn't been used > in anger. Yes, we put some serious thought in it, and we even have > prototype code using it in libvirt, but let's face it, we're not > infallible: we *will* have to evolve stuff. While I agree with your arguments, I think this will happen to any QMP version or any stable protocol/API. You have the point that QMP is immature at this point, but: 1. Given the current Monitor design, if you want QMP to be perfect to be useful then we're going to have it around QEMU version 10.0 2. I don't think we're going to get any serious user until we declare it stable