On 9/30/24 19:16, John Snow wrote:
The current reality is that Sphinx 3.4.3 is our minimum because RHEL 9 offers that as the distro package and I have not dared bump our version beyond that for fear of disrupting our ability to build docs on RHEL 9 without internet.

What I'd like to ask is: How adamant are we that we can build docs on older platforms? Do we consider it part of our platform promise? Can we bump Sphinx to a slightly newer version at the expense of offline doc builds for RHEL 9?

Could we stop building QMP docs, if Sphinx is too old? While at the same time keeping the same 3.x version and the ability to build man pages, which is the really important part.

It should be as easy as adding a -D option to SPHINX_ARGS based on sphinx_version in docs/meson.build; bonus points for adding a docs-qmp feature option, like

enable_docs_qmp = get_option('docs-qmp') \
  .disable_auto_if(sphinx_version.version_compare('<4')) \
  .allowed()
if enable_docs_qmp
  SPHINX_ARGS += ['-Ddocs_qmp=1']
endif

and for adding enable_docs_qmp to the summary. Unfortunately I don't think -D is accessible from rST, so you'd have to check it from the extension and put a "QMP documentation not included in this manual" placeholder. Not great, I admit.

The current check on sphinx being 1.7 or newer is obsolute, but I won't remove it for now so that you already have the code to compute sphinx_version.

Paolo

To reiterate: interactive developer builds from git or source tarballs would continue to work (and be able to build docs just fine) so long as --enable-docs is passed, but will require an internet connection to set up the python environment with a new-enough sphinx. RHEL 9 rpm builds of bleeding edge QEMU may be cut off from building docs in isolated RPMBUILD environments unless that repository backports a newer sphinx that can be identified as a dependency in the specfile.

How much of a problem do we consider that to be?

CCing the usual suspects.

--js



Reply via email to