"Dr. David Alan Gilbert" <dave(a)treblig.org> writes:
* Daniel P. Berrangé (berrange(a)redhat.com) wrote:
> On Fri, May 31, 2024 at 06:47:45AM +0200, Thomas Huth wrote:
> > On 30/05/2024 09.45, Philippe Mathieu-Daudé wrote:
> > > We are trying to unify all qemu-system-FOO to a single binary.
> > > In order to do that we need to remove QAPI target specific code.
> > >
> > > @dump-skeys is only available on qemu-system-s390x. This series
> > > rename it as @dump-s390-skey, making it available on other
> > > binaries. We take care of backward compatibility via deprecation.
> > >
> > > Philippe Mathieu-Daudé (4):
> > > hw/s390x: Introduce the @dump-s390-skeys QMP command
> > > hw/s390x: Introduce the 'dump_s390_skeys' HMP command
> > > hw/s390x: Deprecate the HMP 'dump_skeys' command
> > > hw/s390x: Deprecate the QMP @dump-skeys command
> >
> > Why do we have to rename the command? Just for the sake of it? I think
> > renaming HMP commands is maybe ok, but breaking the API in QMP is something
> > you should consider twice.
PRO rename: the command's tie to S390 is them immediately obvious, which
may be useful when the command becomes available in qemu-systems capable
of running other targets.
CON rename: users need to adapt.
What are the users? Not libvirt, as far as I can tell.
> That was going to be my question too. Seems like its possible to
simply
> stub out the existing command for other targets.
That's going to happen whether we rename the commands or not.
Are these commands really supposed to be stable, or are they just
debug
commands? If they are debug, then add the x- and don't worry too much.
docs/devel/qapi-code-gen.rst:
Names beginning with ``x-`` used to signify "experimental". This
convention has been replaced by special feature "unstable".
Feature "unstable" is what makes something unstable, and is what
machines should check.
An "x-" prefix may still be useful for humans. Machines should *not*
key on the prefix. It's unreliable anyway: InputBarrierProperties
member @x-origin is stable despite it's name. Renames to gain or lose
the prefix may or may not be worth the bother.
Making an existing part of the interface unstable should be treated
similar to deprecating it: we keep it stable for at least the
deprecation period. Not written policy, because we didn't consider such
changes when we documented our deprecation policy in
docs/about/deprecated.rst.
Alternative path to a renamed command (*if* we want that):
1. Make it unstable.
2. But keep it stable for two releases.
3. Rename.
[...]