[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 00/23] docs: add basic sphinx-domain rST generator to qapidoc
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 00/23] docs: add basic sphinx-domain rST generator to qapidoc |
Date: |
Thu, 19 Dec 2024 13:31:01 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
John Snow <jsnow@redhat.com> writes:
> based-on: 20241213011307.2942030-1-jsnow@redhat.com/">https://patchew.org/QEMU/20241213011307.2942030-1-jsnow@redhat.com/
>
> Hi!
>
> This series is a very, very barebones implementation for the new QAPI
> doc generator. It does not have many features that I presented on at KVM
> Forum; the point of this patch set is instead to present a stripped down
> basis for ongoing work so we can discuss on-list with full context of
> the code available to do so.
>
> The documentation this series generates is *not suitable* for replacing
> the current document generator, it has a few glaring omissions - on
> purpose - those features have been factored out intentionally so they
> can be reviewed with fuller context and more careful review.
>
> What this series does:
>
> - Adds the new "Transmogrifier" rST generator to qapidoc.py, which
> generates an in-memory rST document using qapi-domain directives.
> - Adds a test document that showcases this new transmogrifier.
Note to other reviewers: transmogrifier output is
docs/manual/qapi/index.html.
> What this series very notably does not do (yet):
>
> - "ifcond" data for anything other than top-level entities is not
> considered or rendered. This means "if" statements for features and
> members are entirely absent.
>
> - The inliner is not present at all. This series renders only
> documentation exactly as it is exists in the source files.
This item is not even a regression.
> - *branches* are themselves not considered at all; they're skipped
> entirely for now. They will be included alongside the inliner in
> either a subsequent series or a followup to this series.
>
> - Undocumented members and return statements are not autogenerated.
The current doc generator auto-generates missing member documentation
("Not documented"). It doesn't auto-generate missing returns
documentation. I explored auto-generating them, but shelved my work to
not interfere with yours.
> - Pseudofeatures (Things like allow-oob) are not generated as documented
> features.
What exactly are "pseudofeatures"?
> - Documentation culling: all entities are documented whether or not
> they're relevant to the wire format.
Also not a regression.
> My goal in doing it this way is to save the "fancy" features for later
> so we can focus on reviewing and tightening up the core functionality of
> the transmogrifier. Once we're on steadier ground, I will re-add the
> fanciful features while adjusting the qapi-domain mechanisms. Once
> everything looks "roughly right, give or take some minor nits", I will
> switch back to the qapi-domain series itself for review before we merge
> everything together.
Makes sense to me.
[...]
> docs/index.rst | 1 +
> docs/qapi/index.rst | 53 ++++++
> docs/sphinx/qapidoc.py | 419 ++++++++++++++++++++++++++++++++++++++---
> scripts/qapi/parser.py | 97 +++++++---
> scripts/qapi/source.py | 4 +-
> 5 files changed, 524 insertions(+), 50 deletions(-)
> create mode 100644 docs/qapi/index.rst
The changes to the QAPI generator core (scripts/qapi/) are small, and
spread over just four patches:
qapi/source: allow multi-line QAPISourceInfo advancing
qapi/schema: add __repr__ to QAPIDoc.Section
qapi: expand tags to all doc sections
qapi/parser: adjust info location for doc body section
- [PATCH 16/23] docs/qapidoc: add visit_feature() method, (continued)
- [PATCH 16/23] docs/qapidoc: add visit_feature() method, John Snow, 2024/12/12
- [PATCH 19/23] docs/qapidoc: add visit_member() method, John Snow, 2024/12/12
- [PATCH 17/23] docs/qapidoc: record current documented entity in transmogrifier, John Snow, 2024/12/12
- [PATCH 21/23] docs/qapidoc: add visit_entity(), John Snow, 2024/12/12
- [PATCH 18/23] docs/qapidoc: add visit_returns() method, John Snow, 2024/12/12
- [PATCH 20/23] docs/qapidoc: add visit_sections() method, John Snow, 2024/12/12
- [PATCH 22/23] docs/qapidoc: implement transmogrify() method, John Snow, 2024/12/12
- [PATCH 23/23] docs/qapidoc: add transmogrifier test document, John Snow, 2024/12/12
- Re: [PATCH 00/23] docs: add basic sphinx-domain rST generator to qapidoc,
Markus Armbruster <=