Skip to content

Style deprecation notices in the API reference - #329

Merged
llucax merged 2 commits into
frequenz-floss:v0.x.xfrom
llucax:deprecated-admonitions
Sep 21, 2026
Merged

llucax merged 2 commits into
frequenz-floss:v0.x.xfrom
llucax:deprecated-admonitions

Conversation

@llucax

@llucax llucax commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Preparation for the client-common 0.4.1 update, so deprecation notices already look right by the time it adds them.

Two things: a CSS rule that styles the deprecated admonition class (gravestone icon, its own colour, otherwise like a warning), and the griffe-warnings-deprecated extension wired into the mkdocstrings handler so symbols decorated with typing_extensions.deprecated get an admonition generated for them.

The extension's kind is set to deprecated rather than the default warning, so what it emits is markup-identical to a hand-written Deprecated: admonition. One rule styles both, which matters because the decorator cannot reach module-level aliases, a single function argument, enum members or whole modules.

Style the `deprecated` admonition class like a warning, but with the
`material/grave-stone` icon and its own colour, so deprecation notices
read as deprecation notices and not as generic warnings.

That class is what a hand-written `Deprecated:` admonition in
a docstring produces, and also what the griffe extension added next
will emit, so a single rule covers both sources.

Signed-off-by: Leandro Lucarella <luca-frequenz@llucax.com>
Wire the `griffe-warnings-deprecated` extension into the mkdocstrings
handler options, so every symbol decorated with
`typing_extensions.deprecated` gets a "Deprecated" admonition in the
API reference with no docstring edit at all.

The extension's `kind` is set to `deprecated` rather than the default
`warning`, so it emits `class="deprecated"`, which is exactly what
a hand-written `Deprecated:` admonition produces. The CSS rule added
in the previous commit then styles both, and the two are visually
indistinguishable. That matters because the decorator cannot reach
everything: module-level aliases, a single function argument, enum
members and whole modules still need the admonition written by hand.

Signed-off-by: Leandro Lucarella <luca-frequenz@llucax.com>
@github-actions github-actions Bot added part:docs Affects the documentation part:tooling Affects the development tooling (CI, deployment, dependency management, etc.) labels Sep 21, 2026
@llucax
llucax added this pull request to the merge queue Sep 21, 2026
Merged via the queue into frequenz-floss:v0.x.x with commit 784fa73 Sep 21, 2026
9 checks passed
@llucax
llucax deleted the deprecated-admonitions branch September 21, 2026 17:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

part:docs Affects the documentation part:tooling Affects the development tooling (CI, deployment, dependency management, etc.)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants