John Snow <jsnow@xxxxxxxxxx> writes: > On Mon, Oct 25, 2021 at 1:26 AM Markus Armbruster <armbru@xxxxxxxxxx> wrote: > >> 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> [...] > Feels odd to combine the doc update *and* test prep, but eh, whatever. I admit this is what was left after patch splitting and reshuffling. > Reviewed-by: John Snow <jsnow@xxxxxxxxxx> Thanks!