qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: "John Snow" <jsnow@redhat.com>,
	qemu-devel <qemu-devel@nongnu.org>,
	"Daniel Berrangé" <berrange@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Akihiko Odaki" <akihiko.odaki@daynix.com>
Subject: Re: Build platform guarantees, docs, tests, and snakes in the garden
Date: Wed, 18 Jun 2025 09:53:11 +0200	[thread overview]
Message-ID: <23559c8d-149a-4ec6-adaa-fe0a8f8533f1@redhat.com> (raw)
In-Reply-To: <CAFn=p-YuqzXvWF-cGLUc0LVVMe2Rinx9+LOjvpHRY-vRrPyJow@mail.gmail.com>

On 6/5/25 21:35, John Snow wrote:
> However, if we take as iron-clad our commitment to the build platform 
> promise -- *and* guarantee offline/tarball builds as well -- then Debian 
> 12 (as an example) only offers Sphinx 5.3.0 and not newer unless we 
> allow internet access to fetch Sphinx 6.2.1. This is not a problem for 
> developer workstations at all, but I am unclear on what problems this 
> may cause for tarball releases and downstream offline/isolated/ 
> reproducible builds, if any.
> 
> In this case, we can (probably) "fix" the issue by continuing to allow 
> older Sphinx while preferring a newer Sphinx version when it is missing, 
> but then we lose the ability to make code cleanups and drop a lot of 
> back-compat crud. If memory serves, there were other issues recently 
> where older versions of Sphinx behaved differently from newer versions, 
> causing intermittent failures that were hard to track down.

The *ideal* solution would be to:

- accept: 4.3.2 or newer, which is what Ubuntu 22.04 has

- install: 6.2.1, which is what supports Python 3.13

This lets all supported distros build documentation if they use the 
default Python runtime.  It would still require a couple hacks in 
compat.py: SOURCE_LOCATION_FIX and nested_parse_with_titles().

I am not sure however whether to count the latter, for two reasons. 
First, it has this:

     # necessary so that the child nodes get the right source/line set
     content_node.document = directive.state.document

so it is not a pure compatibility hack.  Second, and opposite, currently 
none of the uses of nested_parse_with_titles() go through compat.py's 
version, therefore it probably can be removed altogether.

That leaves only SOURCE_LOCATION_FIX.

As an aside, if the compat.py hacks survive, I would add comments to 
document which distros need the hacks.

> What I'd like to know is: what precisely are our options in this 
> scenario? Do we consider it acceptable for some platforms to be unable 
> to build docs offline?

Certainly for platforms not using the default Python runtime, which 
right now is only SLES.  For others...

> How highly do we value the ability to locally 
> build docs for any given release?

... I think I value this a bit higher than Markus, but not really 
because of offline builds.  Rather, keeping the "accepted" key lower 
(i.e. supporting the packaged sphinx on a wide range of distros) makes 
it easier to bump the "installed" key when needed, as in this failure to 
run 5.3.0 under Python 3.13.

This time there was a version that works on both the oldest and newest 
Python that we support, but there may not always be one because sphinx 
is all too happy at dropping support for EOL'd versions of Python.

Paolo

> Before I throw my weight behind any given option, I just want to know 
> what we consider our non-negotiable obligations to be.
> 
> Thanks,
> --js
> 



  parent reply	other threads:[~2025-06-18  7:54 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-05 19:35 Build platform guarantees, docs, tests, and snakes in the garden John Snow
2025-06-13  5:21 ` Akihiko Odaki
2025-06-17 12:34 ` Markus Armbruster
2025-06-18  7:53 ` Paolo Bonzini [this message]
2025-06-24  6:45   ` Markus Armbruster
2025-06-25 20:42     ` John Snow
2025-06-26  6:23       ` Markus Armbruster
2025-07-02 19:24     ` Paolo Bonzini
2025-07-02 19:24       ` Paolo Bonzini
2025-07-03  8:57         ` Markus Armbruster
2025-07-07  9:10       ` Daniel P. Berrangé
2025-07-09 18:39         ` John Snow
2025-07-09 19:40           ` Paolo Bonzini
2025-07-09 20:26             ` John Snow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=23559c8d-149a-4ec6-adaa-fe0a8f8533f1@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=akihiko.odaki@daynix.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).