Peter Maydell <peter.maydell(a)linaro.org> writes:
On Mon, 14 Sep 2020 at 09:55, Markus Armbruster
<armbru(a)redhat.com> wrote:
>
> New option -compat lets you configure what to do when deprecated
> interfaces get used. This is intended for testing users of the
> management interfaces. It is experimental.
>
> -compat deprecated-input=<in-policy> configures what to do when
> deprecated input is received. Available policies:
>
> * accept: Accept deprecated commands and arguments (default)
> * reject: Reject them
> * crash: Crash
>
> -compat deprecated-output=<out-policy> configures what to do when
> deprecated output is sent. Available output policies:
>
> * accept: Emit deprecated command results and events (default)
> * hide: Suppress them
>
> For now, -compat covers only deprecated syntactic aspects of QMP. We
> may want to extend it to cover semantic aspects, CLI, and experimental
> features.
Some bikeshedding on option naming...
If this only covers QMP, should we make the argument to -compat
have a name that expresses that? eg deprecated-qmp-input,
deprecated-qmp-output ?
It's only implemented for QMP so far. But we really want it for all
external interfaces for use by machines. Today, that's QMP and CLI.
Naming the parameters deprecated-qmp-{input,output} leads to separate
settings for QMP and CLI.
Naming them just deprecated-{input,output} leads to a single set of
settings common to all externeal interfaces, or to sugar for setting all
the deprecated-*-{input,output} we may have.
I don't think getting it wrong now would be a big deal. No excuse for
getting it wrong unthinkingly :)
Also, it seems a bit repetitive to say 'deprecated' here all
the time -- do you have a future use of -compat in mind which
would be to adjust something that is *not* deprecated ? If
not, maybe the 'deprecated' part should be in the option name
rather than in every argument, eg
-deprecation-compat qmp-input=crash,qmp-output=hide,cli-option=reject
?
My cover letter hints at such future uses: "We may want to extend it to
cover [...] experimental features." Something like
-compat experimental-input=reject,experimental-output=hide