docs/qapi-domain: add :unstable: directive option

Although "unstable" is a feature (and *will* appear in the features
list), add a special :unstable: option to generate an eye-catch that
makes this information very hard to miss.

The forthcoming Transmogrifier in qapidoc.py will add this option
whenever it detects that the features list attached to a definition
contains the "unstable" entry.

Signed-off-by: Harmonie Snow <harmonie@gmail.com>
Signed-off-by: John Snow <jsnow@redhat.com>
Message-ID: <20250311034303.75779-25-jsnow@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
John Snow 2025-03-10 23:42:22 -04:00 committed by Markus Armbruster
parent 1a0c090a5b
commit d25808c2bc
2 changed files with 13 additions and 1 deletions

View file

@ -221,7 +221,7 @@ div[class^="highlight"] pre {
margin: 0.25em; margin: 0.25em;
} }
.qapi-deprecated { .qapi-deprecated,.qapi-unstable {
background-color: #fffef5; background-color: #fffef5;
border: solid #fff176 6px; border: solid #fff176 6px;
font-weight: bold; font-weight: bold;
@ -230,6 +230,10 @@ div[class^="highlight"] pre {
margin: 5px; margin: 5px;
} }
.qapi-unstable::before {
content: '🚧 ';
}
.qapi-deprecated::before { .qapi-deprecated::before {
content: '⚠️ '; content: '⚠️ ';
} }

View file

@ -218,6 +218,7 @@ class QAPIObject(QAPIDescription):
# These are QAPI originals: # These are QAPI originals:
"since": directives.unchanged, "since": directives.unchanged,
"deprecated": directives.flag, "deprecated": directives.flag,
"unstable": directives.flag,
} }
) )
@ -300,6 +301,13 @@ class QAPIObject(QAPIDescription):
"qapi-deprecated", "qapi-deprecated",
) )
if "unstable" in self.options:
_add_pip(
":unstable:",
f"This {self.objtype} is unstable/experimental.",
"qapi-unstable",
)
if infopips.children: if infopips.children:
contentnode.insert(0, infopips) contentnode.insert(0, infopips)