* [PATCH 0/3] docs: Bump sphinx to 6.2.1 @ 2025-05-10 6:16 Akihiko Odaki 2025-05-10 6:16 ` [PATCH 1/3] " Akihiko Odaki ` (4 more replies) 0 siblings, 5 replies; 7+ messages in thread From: Akihiko Odaki @ 2025-05-10 6:16 UTC (permalink / raw) To: Peter Maydell, qemu-devel; +Cc: devel, John Snow, Akihiko Odaki Supersedes: <20250505-sphinx82-v1-0-85f2418b33b1@daynix.com> ("[PATCH 0/2] docs: Bump sphinx to 8.2.3") sphinx 5.3.0 fails with Python 3.13.1: ../docs/meson.build:37: WARNING: /home/me/qemu/build/pyvenv/bin/sphinx-build: Extension error: Could not import extension sphinx.builders.epub3 (exception: No module named 'imghdr') ../docs/meson.build:39:6: ERROR: Problem encountered: Install a Python 3 version of python-sphinx and the readthedoc theme Bump sphinx to 6.2.1 and also sphinx_rtd_theme as required for the new sphinx version. Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> --- Akihiko Odaki (3): docs: Bump sphinx to 6.2.1 docs: Require sphinx>=6.2 MAINTAINERS: Add docs/requirements.txt MAINTAINERS | 1 + docs/requirements.txt | 4 +- docs/sphinx/compat.py | 230 --------------------------------------------- docs/sphinx/qapi_domain.py | 33 +++---- pythondeps.toml | 4 +- 5 files changed, 20 insertions(+), 252 deletions(-) --- base-commit: 1da8f3a3c53b604edfe0d55e475102640490549e change-id: 20250508-sphinx72-400c521af710 Best regards, -- Akihiko Odaki <akihiko.odaki@daynix.com> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/3] docs: Bump sphinx to 6.2.1 2025-05-10 6:16 [PATCH 0/3] docs: Bump sphinx to 6.2.1 Akihiko Odaki @ 2025-05-10 6:16 ` Akihiko Odaki 2025-05-10 6:16 ` [PATCH 2/3] docs: Require sphinx>=6.2 Akihiko Odaki ` (3 subsequent siblings) 4 siblings, 0 replies; 7+ messages in thread From: Akihiko Odaki @ 2025-05-10 6:16 UTC (permalink / raw) To: Peter Maydell, qemu-devel; +Cc: devel, John Snow, Akihiko Odaki sphinx 5.3.0 fails with Python 3.13.1: ../docs/meson.build:37: WARNING: /home/me/qemu/build/pyvenv/bin/sphinx-build: Extension error: Could not import extension sphinx.builders.epub3 (exception: No module named 'imghdr') ../docs/meson.build:39:6: ERROR: Problem encountered: Install a Python 3 version of python-sphinx and the readthedoc theme Bump sphinx to 6.2.1 and also sphinx_rtd_theme as required for the new sphinx version. Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> --- docs/requirements.txt | 4 ++-- pythondeps.toml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 02583f209aa6..87f7afcb2e79 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ # Used by readthedocs.io # Should be in sync with the "installed" key of pythondeps.toml -sphinx==5.3.0 -sphinx_rtd_theme==1.1.1 +sphinx==6.2.1 +sphinx_rtd_theme==1.2.2 diff --git a/pythondeps.toml b/pythondeps.toml index c03c9df81b5c..4f6b6f01e0d0 100644 --- a/pythondeps.toml +++ b/pythondeps.toml @@ -24,8 +24,8 @@ pycotap = { accepted = ">=1.1.0", installed = "1.3.1" } [docs] # Please keep the installed versions in sync with docs/requirements.txt -sphinx = { accepted = ">=3.4.3", installed = "5.3.0", canary = "sphinx-build" } -sphinx_rtd_theme = { accepted = ">=0.5", installed = "1.1.1" } +sphinx = { accepted = ">=3.4.3", installed = "6.2.1", canary = "sphinx-build" } +sphinx_rtd_theme = { accepted = ">=0.5", installed = "1.2.2" } [avocado] # Note that qemu.git/python/ is always implicitly installed. -- 2.49.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] docs: Require sphinx>=6.2 2025-05-10 6:16 [PATCH 0/3] docs: Bump sphinx to 6.2.1 Akihiko Odaki 2025-05-10 6:16 ` [PATCH 1/3] " Akihiko Odaki @ 2025-05-10 6:16 ` Akihiko Odaki 2025-05-10 6:16 ` [PATCH 3/3] MAINTAINERS: Add docs/requirements.txt Akihiko Odaki ` (2 subsequent siblings) 4 siblings, 0 replies; 7+ messages in thread From: Akihiko Odaki @ 2025-05-10 6:16 UTC (permalink / raw) To: Peter Maydell, qemu-devel; +Cc: devel, John Snow, Akihiko Odaki This makes docs/sphinx/compat.py unnecessary. The accepted range of the sphinx_rtd_theme version was also changed to >=1.2 for compatibility with sphinx>=6.2. Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> --- docs/sphinx/compat.py | 230 --------------------------------------------- docs/sphinx/qapi_domain.py | 33 +++---- pythondeps.toml | 4 +- 3 files changed, 17 insertions(+), 250 deletions(-) diff --git a/docs/sphinx/compat.py b/docs/sphinx/compat.py deleted file mode 100644 index 9cf7fe006e44..000000000000 --- a/docs/sphinx/compat.py +++ /dev/null @@ -1,230 +0,0 @@ -""" -Sphinx cross-version compatibility goop -""" - -import re -from typing import ( - TYPE_CHECKING, - Any, - Callable, - Optional, - Type, -) - -from docutils import nodes -from docutils.nodes import Element, Node, Text -from docutils.statemachine import StringList - -import sphinx -from sphinx import addnodes, util -from sphinx.directives import ObjectDescription -from sphinx.environment import BuildEnvironment -from sphinx.roles import XRefRole -from sphinx.util import docfields -from sphinx.util.docutils import ( - ReferenceRole, - SphinxDirective, - switch_source_input, -) -from sphinx.util.typing import TextlikeNode - - -MAKE_XREF_WORKAROUND = sphinx.version_info[:3] < (4, 1, 0) - - -SpaceNode: Callable[[str], Node] -KeywordNode: Callable[[str, str], Node] - -if sphinx.version_info[:3] >= (4, 0, 0): - SpaceNode = addnodes.desc_sig_space - KeywordNode = addnodes.desc_sig_keyword -else: - SpaceNode = Text - KeywordNode = addnodes.desc_annotation - - -def nested_parse_with_titles( - directive: SphinxDirective, content_node: Element -) -> None: - """ - This helper preserves error parsing context across sphinx versions. - """ - - # necessary so that the child nodes get the right source/line set - content_node.document = directive.state.document - - try: - # Modern sphinx (6.2.0+) supports proper offsetting for - # nested parse error context management - util.nodes.nested_parse_with_titles( - directive.state, - directive.content, - content_node, - content_offset=directive.content_offset, - ) - except TypeError: - # No content_offset argument. Fall back to SSI method. - with switch_source_input(directive.state, directive.content): - util.nodes.nested_parse_with_titles( - directive.state, directive.content, content_node - ) - - -# ########################################### -# xref compatibility hacks for Sphinx < 4.1 # -# ########################################### - -# When we require >= Sphinx 4.1, the following function and the -# subsequent 3 compatibility classes can be removed. Anywhere in -# qapi_domain that uses one of these Compat* types can be switched to -# using the garden-variety lib-provided classes with no trickery. - - -def _compat_make_xref( # pylint: disable=unused-argument - self: sphinx.util.docfields.Field, - rolename: str, - domain: str, - target: str, - innernode: Type[TextlikeNode] = addnodes.literal_emphasis, - contnode: Optional[Node] = None, - env: Optional[BuildEnvironment] = None, - inliner: Any = None, - location: Any = None, -) -> Node: - """ - Compatibility workaround for Sphinx versions prior to 4.1.0. - - Older sphinx versions do not use the domain's XRefRole for parsing - and formatting cross-references, so we need to perform this magick - ourselves to avoid needing to write the parser/formatter in two - separate places. - - This workaround isn't brick-for-brick compatible with modern Sphinx - versions, because we do not have access to the parent directive's - state during this parsing like we do in more modern versions. - - It's no worse than what pre-Sphinx 4.1.0 does, so... oh well! - """ - - # Yes, this function is gross. Pre-4.1 support is a miracle. - # pylint: disable=too-many-locals - - assert env - # Note: Sphinx's own code ignores the type warning here, too. - if not rolename: - return contnode or innernode(target, target) # type: ignore[call-arg] - - # Get the role instance, but don't *execute it* - we lack the - # correct state to do so. Instead, we'll just use its public - # methods to do our reference formatting, and emulate the rest. - role = env.get_domain(domain).roles[rolename] - assert isinstance(role, XRefRole) - - # XRefRole features not supported by this compatibility shim; - # these were not supported in Sphinx 3.x either, so nothing of - # value is really lost. - assert not target.startswith("!") - assert not re.match(ReferenceRole.explicit_title_re, target) - assert not role.lowercase - assert not role.fix_parens - - # Code below based mostly on sphinx.roles.XRefRole; run() and - # create_xref_node() - options = { - "refdoc": env.docname, - "refdomain": domain, - "reftype": rolename, - "refexplicit": False, - "refwarn": role.warn_dangling, - } - refnode = role.nodeclass(target, **options) - title, target = role.process_link(env, refnode, False, target, target) - refnode["reftarget"] = target - classes = ["xref", domain, f"{domain}-{rolename}"] - refnode += role.innernodeclass(target, title, classes=classes) - - # This is the very gross part of the hack. Normally, - # result_nodes takes a document object to which we would pass - # self.inliner.document. Prior to Sphinx 4.1, we don't *have* an - # inliner to pass, so we have nothing to pass here. However, the - # actual implementation of role.result_nodes in this case - # doesn't actually use that argument, so this winds up being - # ... fine. Rest easy at night knowing this code only runs under - # old versions of Sphinx, so at least it won't change in the - # future on us and lead to surprising new failures. - # Gross, I know. - result_nodes, _messages = role.result_nodes( - None, # type: ignore - env, - refnode, - is_ref=True, - ) - return nodes.inline(target, "", *result_nodes) - - -class CompatField(docfields.Field): - if MAKE_XREF_WORKAROUND: - make_xref = _compat_make_xref - - -class CompatGroupedField(docfields.GroupedField): - if MAKE_XREF_WORKAROUND: - make_xref = _compat_make_xref - - -class CompatTypedField(docfields.TypedField): - if MAKE_XREF_WORKAROUND: - make_xref = _compat_make_xref - - -# ################################################################ -# Nested parsing error location fix for Sphinx 5.3.0 < x < 6.2.0 # -# ################################################################ - -# When we require Sphinx 4.x, the TYPE_CHECKING hack where we avoid -# subscripting ObjectDescription at runtime can be removed in favor of -# just always subscripting the class. - -# When we require Sphinx > 6.2.0, the rest of this compatibility hack -# can be dropped and QAPIObject can just inherit directly from -# ObjectDescription[Signature]. - -SOURCE_LOCATION_FIX = (5, 3, 0) <= sphinx.version_info[:3] < (6, 2, 0) - -Signature = str - - -if TYPE_CHECKING: - _BaseClass = ObjectDescription[Signature] -else: - _BaseClass = ObjectDescription - - -class ParserFix(_BaseClass): - - _temp_content: StringList - _temp_offset: int - _temp_node: Optional[addnodes.desc_content] - - def before_content(self) -> None: - # Work around a sphinx bug and parse the content ourselves. - self._temp_content = self.content - self._temp_offset = self.content_offset - self._temp_node = None - - if SOURCE_LOCATION_FIX: - self._temp_node = addnodes.desc_content() - self.state.nested_parse( - self.content, self.content_offset, self._temp_node - ) - # Sphinx will try to parse the content block itself, - # Give it nothingness to parse instead. - self.content = StringList() - self.content_offset = 0 - - def transform_content(self, content_node: addnodes.desc_content) -> None: - # Sphinx workaround: Inject our parsed content and restore state. - if self._temp_node: - content_node += self._temp_node.children - self.content = self._temp_content - self.content_offset = self._temp_offset diff --git a/docs/sphinx/qapi_domain.py b/docs/sphinx/qapi_domain.py index c94af5719ca0..29e006c9cf0f 100644 --- a/docs/sphinx/qapi_domain.py +++ b/docs/sphinx/qapi_domain.py @@ -21,14 +21,10 @@ from docutils import nodes from docutils.parsers.rst import directives -from compat import ( - CompatField, - CompatGroupedField, - CompatTypedField, - KeywordNode, - ParserFix, - Signature, - SpaceNode, +from sphinx.util.docfields import ( + Field, + GroupedField, + TypedField, ) from sphinx import addnodes from sphinx.directives import ObjectDescription @@ -64,6 +60,7 @@ from sphinx.util.typing import OptionSpec +Signature = str logger = logging.getLogger(__name__) @@ -158,7 +155,7 @@ def result_nodes( return results, [] -class QAPIDescription(ParserFix): +class QAPIDescription(ObjectDescription[Signature]): """ Generic QAPI description. @@ -312,7 +309,7 @@ class QAPIObject(QAPIDescription): doc_field_types = [ # :feat name: descr - CompatGroupedField( + GroupedField( "feature", label=_("Features"), names=("feat",), @@ -324,8 +321,8 @@ def get_signature_prefix(self) -> List[nodes.Node]: """Return a prefix to put before the object name in the signature.""" assert self.objtype return [ - KeywordNode("", self.objtype.title()), - SpaceNode(" "), + addnodes.desc_sig_keyword("", self.objtype.title()), + addnodes.desc_sig_space(" "), ] def get_signature_suffix(self) -> List[nodes.Node]: @@ -334,7 +331,7 @@ def get_signature_suffix(self) -> List[nodes.Node]: if "since" in self.options: ret += [ - SpaceNode(" "), + addnodes.desc_sig_space(" "), addnodes.desc_sig_element( "", f"(Since: {self.options['since']})" ), @@ -482,7 +479,7 @@ def transform_content(self, content_node: addnodes.desc_content) -> None: self._validate_field(field) -class SpecialTypedField(CompatTypedField): +class SpecialTypedField(TypedField): def make_field(self, *args: Any, **kwargs: Any) -> nodes.field: ret = super().make_field(*args, **kwargs) @@ -515,14 +512,14 @@ class QAPICommand(QAPIObject): can_collapse=False, ), # :error: descr - CompatField( + Field( "error", label=_("Errors"), names=("error", "errors"), has_arg=False, ), # :return TypeName: descr - CompatGroupedField( + GroupedField( "returnvalue", label=_("Return"), rolename="type", @@ -540,7 +537,7 @@ class QAPIEnum(QAPIObject): doc_field_types.extend( [ # :value name: descr - CompatGroupedField( + GroupedField( "value", label=_("Values"), names=("value",), @@ -557,7 +554,7 @@ class QAPIAlternate(QAPIObject): doc_field_types.extend( [ # :alt type name: descr - CompatTypedField( + TypedField( "alternative", label=_("Alternatives"), names=("alt",), diff --git a/pythondeps.toml b/pythondeps.toml index 4f6b6f01e0d0..0d8f5ae24a24 100644 --- a/pythondeps.toml +++ b/pythondeps.toml @@ -24,8 +24,8 @@ pycotap = { accepted = ">=1.1.0", installed = "1.3.1" } [docs] # Please keep the installed versions in sync with docs/requirements.txt -sphinx = { accepted = ">=3.4.3", installed = "6.2.1", canary = "sphinx-build" } -sphinx_rtd_theme = { accepted = ">=0.5", installed = "1.2.2" } +sphinx = { accepted = ">=6.2", installed = "6.2.1", canary = "sphinx-build" } +sphinx_rtd_theme = { accepted = ">=1.2", installed = "1.2.2" } [avocado] # Note that qemu.git/python/ is always implicitly installed. -- 2.49.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] MAINTAINERS: Add docs/requirements.txt 2025-05-10 6:16 [PATCH 0/3] docs: Bump sphinx to 6.2.1 Akihiko Odaki 2025-05-10 6:16 ` [PATCH 1/3] " Akihiko Odaki 2025-05-10 6:16 ` [PATCH 2/3] docs: Require sphinx>=6.2 Akihiko Odaki @ 2025-05-10 6:16 ` Akihiko Odaki 2025-05-15 11:53 ` [PATCH 0/3] docs: Bump sphinx to 6.2.1 Markus Armbruster 2025-05-19 17:47 ` John Snow 4 siblings, 0 replies; 7+ messages in thread From: Akihiko Odaki @ 2025-05-10 6:16 UTC (permalink / raw) To: Peter Maydell, qemu-devel; +Cc: devel, John Snow, Akihiko Odaki Add docs/requirements.txt to "Sphinx documentation configuration and build machinery". Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> --- MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index d54b5578f883..6ae5d2665e16 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4328,6 +4328,7 @@ M: Peter Maydell <peter.maydell@linaro.org> S: Maintained F: docs/conf.py F: docs/*/conf.py +F: docs/requirements.txt F: docs/sphinx/ F: docs/_templates/ F: docs/devel/docs.rst -- 2.49.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 0/3] docs: Bump sphinx to 6.2.1 2025-05-10 6:16 [PATCH 0/3] docs: Bump sphinx to 6.2.1 Akihiko Odaki ` (2 preceding siblings ...) 2025-05-10 6:16 ` [PATCH 3/3] MAINTAINERS: Add docs/requirements.txt Akihiko Odaki @ 2025-05-15 11:53 ` Markus Armbruster 2025-05-19 17:47 ` John Snow 4 siblings, 0 replies; 7+ messages in thread From: Markus Armbruster @ 2025-05-15 11:53 UTC (permalink / raw) To: Akihiko Odaki; +Cc: Peter Maydell, qemu-devel, devel, John Snow Akihiko Odaki <akihiko.odaki@daynix.com> writes: > Supersedes: <20250505-sphinx82-v1-0-85f2418b33b1@daynix.com> > ("[PATCH 0/2] docs: Bump sphinx to 8.2.3") > > sphinx 5.3.0 fails with Python 3.13.1: > > ../docs/meson.build:37: WARNING: /home/me/qemu/build/pyvenv/bin/sphinx-build: > Extension error: > Could not import extension sphinx.builders.epub3 (exception: No module named 'imghdr') > > ../docs/meson.build:39:6: ERROR: Problem encountered: Install a Python 3 version of python-sphinx and the readthedoc theme > > Bump sphinx to 6.2.1 and also sphinx_rtd_theme as required for the new > sphinx version. > > Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> Works fine for me on a Fedora 41 box (Sphinx 7.3.8) Tested-by: Markus Armbruster <armbru@redhat.com> ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/3] docs: Bump sphinx to 6.2.1 2025-05-10 6:16 [PATCH 0/3] docs: Bump sphinx to 6.2.1 Akihiko Odaki ` (3 preceding siblings ...) 2025-05-15 11:53 ` [PATCH 0/3] docs: Bump sphinx to 6.2.1 Markus Armbruster @ 2025-05-19 17:47 ` John Snow 2025-06-04 22:06 ` John Snow 4 siblings, 1 reply; 7+ messages in thread From: John Snow @ 2025-05-19 17:47 UTC (permalink / raw) To: Akihiko Odaki; +Cc: Peter Maydell, qemu-devel, devel [-- Attachment #1: Type: text/plain, Size: 1808 bytes --] On Sat, May 10, 2025 at 2:17 AM Akihiko Odaki <akihiko.odaki@daynix.com> wrote: > Supersedes: <20250505-sphinx82-v1-0-85f2418b33b1@daynix.com> > ("[PATCH 0/2] docs: Bump sphinx to 8.2.3") > > sphinx 5.3.0 fails with Python 3.13.1: > > ../docs/meson.build:37: WARNING: > /home/me/qemu/build/pyvenv/bin/sphinx-build: > Extension error: > Could not import extension sphinx.builders.epub3 (exception: No module > named 'imghdr') > > ../docs/meson.build:39:6: ERROR: Problem encountered: Install a Python 3 > version of python-sphinx and the readthedoc theme > > Bump sphinx to 6.2.1 and also sphinx_rtd_theme as required for the new > sphinx version. > > Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> > Reviewed-by: John Snow <jsnow@redhat.com> I figure if this causes issues, this early in the development cycle we can roll it back or pursue alternate solutions if necessary. I figure because this touches so much stuff I wrote, it probably ought to go through my tree, so I'll stage this tentatively. (Paolo, Peter: But if you want to stage it instead, be my guest.) --- > Akihiko Odaki (3): > docs: Bump sphinx to 6.2.1 > docs: Require sphinx>=6.2 > MAINTAINERS: Add docs/requirements.txt > > MAINTAINERS | 1 + > docs/requirements.txt | 4 +- > docs/sphinx/compat.py | 230 > --------------------------------------------- > Oh, thank you so much O:-) how beautiful... > docs/sphinx/qapi_domain.py | 33 +++---- > pythondeps.toml | 4 +- > 5 files changed, 20 insertions(+), 252 deletions(-) > --- > base-commit: 1da8f3a3c53b604edfe0d55e475102640490549e > change-id: 20250508-sphinx72-400c521af710 > > Best regards, > -- > Akihiko Odaki <akihiko.odaki@daynix.com> > > [-- Attachment #2: Type: text/html, Size: 2910 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/3] docs: Bump sphinx to 6.2.1 2025-05-19 17:47 ` John Snow @ 2025-06-04 22:06 ` John Snow 0 siblings, 0 replies; 7+ messages in thread From: John Snow @ 2025-06-04 22:06 UTC (permalink / raw) To: Akihiko Odaki; +Cc: Peter Maydell, qemu-devel, devel [-- Attachment #1: Type: text/plain, Size: 2473 bytes --] On Mon, May 19, 2025 at 1:47 PM John Snow <jsnow@redhat.com> wrote: > > > On Sat, May 10, 2025 at 2:17 AM Akihiko Odaki <akihiko.odaki@daynix.com> > wrote: > >> Supersedes: <20250505-sphinx82-v1-0-85f2418b33b1@daynix.com> >> ("[PATCH 0/2] docs: Bump sphinx to 8.2.3") >> >> sphinx 5.3.0 fails with Python 3.13.1: >> >> ../docs/meson.build:37: WARNING: >> /home/me/qemu/build/pyvenv/bin/sphinx-build: >> Extension error: >> Could not import extension sphinx.builders.epub3 (exception: No module >> named 'imghdr') >> >> ../docs/meson.build:39:6: ERROR: Problem encountered: Install a Python 3 >> version of python-sphinx and the readthedoc theme >> >> Bump sphinx to 6.2.1 and also sphinx_rtd_theme as required for the new >> sphinx version. >> >> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> >> > > Reviewed-by: John Snow <jsnow@redhat.com> > > I figure if this causes issues, this early in the development cycle we can > roll it back or pursue alternate solutions if necessary. I figure because > this touches so much stuff I wrote, it probably ought to go through my > tree, so I'll stage this tentatively. > > (Paolo, Peter: But if you want to stage it instead, be my guest.) > > --- >> Akihiko Odaki (3): >> docs: Bump sphinx to 6.2.1 >> docs: Require sphinx>=6.2 >> MAINTAINERS: Add docs/requirements.txt >> >> MAINTAINERS | 1 + >> docs/requirements.txt | 4 +- >> docs/sphinx/compat.py | 230 >> --------------------------------------------- >> > > Oh, thank you so much O:-) how beautiful... > > >> docs/sphinx/qapi_domain.py | 33 +++---- >> pythondeps.toml | 4 +- >> 5 files changed, 20 insertions(+), 252 deletions(-) >> --- >> base-commit: 1da8f3a3c53b604edfe0d55e475102640490549e >> change-id: 20250508-sphinx72-400c521af710 >> >> Best regards, >> -- >> Akihiko Odaki <akihiko.odaki@daynix.com> > > Just a note to say that I started staging and testing this and found a few problems -- many are minor and I have patched them up accordingly, but I am currently having an issue with debian claiming it can't find the sphinxcontrib-jquery extension: https://gitlab.com/jsnow/qemu/-/jobs/10257469021 It might be the case that we need to install the dependencies too, but that might pose problems for offline source distributions. I haven't fixed this yet, but I will continue looking into it. Thanks, --js [-- Attachment #2: Type: text/html, Size: 3991 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-06-04 22:07 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-05-10 6:16 [PATCH 0/3] docs: Bump sphinx to 6.2.1 Akihiko Odaki 2025-05-10 6:16 ` [PATCH 1/3] " Akihiko Odaki 2025-05-10 6:16 ` [PATCH 2/3] docs: Require sphinx>=6.2 Akihiko Odaki 2025-05-10 6:16 ` [PATCH 3/3] MAINTAINERS: Add docs/requirements.txt Akihiko Odaki 2025-05-15 11:53 ` [PATCH 0/3] docs: Bump sphinx to 6.2.1 Markus Armbruster 2025-05-19 17:47 ` John Snow 2025-06-04 22:06 ` John Snow
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).