* Kevin Wolf (kwolf@xxxxxxxxxx) wrote: > Am 25.10.2021 um 07:25 hat Markus Armbruster geschrieben: > > By convention, names starting with "x-" are experimental. The parts > > of external interfaces so named may be withdrawn or changed > > incompatibly in future releases. > > > > Drawback: promoting something from experimental to stable involves a > > name change. Client code needs to be updated. > > > > Moreover, the convention is not universally observed: > > > > * QOM type "input-barrier" has properties "x-origin", "y-origin". > > Looks accidental, but it's ABI since 4.2. > > > > * QOM types "memory-backend-file", "memory-backend-memfd", > > "memory-backend-ram", and "memory-backend-epc" have a property > > "x-use-canonical-path-for-ramblock-id" that is documented to be > > stable despite its name. > > > > We could document these exceptions, but documentation helps only > > humans. We want to recognize "unstable" in code, like "deprecated". > > > > Replace the convention by a new special feature flag "unstable". It > > will be recognized by the QAPI generator, like the existing feature > > flag "deprecated", and unlike regular feature flags. > > > > This commit updates documentation and prepares tests. The next commit > > updates the QAPI schema. The remaining patches update the QAPI > > generator and wire up -compat policy checking. > > > > Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx> > > Obviously, replacing the old convention gets rid of the old drawbacks, > but adds a new one: While using x- makes it very obvious for a human > user that this is an unstable feature, a feature flag in the schema will > almost certainly go unnoticed in manual use. Agreed, I'd keep the x- as well. Having said that, the x- represents a few different things (that we don't currently distinguish): - experimental - for internal use - for debugging/human use Dave > Kevin > -- Dr. David Alan Gilbert / dgilbert@xxxxxxxxxx / Manchester, UK