diff mbox series

[v2,1/2] Python: bump minimum sphinx version to 3.4.3

Message ID 20240703175235.239004-2-jsnow@redhat.com (mailing list archive)
State New, archived
Headers show
Series docs/python: bump minimum Sphinx version | expand

Commit Message

John Snow July 3, 2024, 5:52 p.m. UTC
With RHEL 8 support retired (It's been two years since RHEL9 released),
our very oldest build platform version of Sphinx is now 3.4.3; and
keeping backwards compatibility for versions as old as v1.6 when using
domain extensions is a lot of work we don't need to do.

This patch is motivated by my work creating a new QAPI domain, which
unlike the dbus documentation, cannot be allowed to regress by creating
a "dummy" doc when operating under older sphinx versions. Easier is to
raise our minimum version as far as we can push it forwards, reducing my
burden in creating cross-compatibility hacks and patches.

A sampling of sphinx versions from various distributions, courtesy
https://repology.org/project/python:sphinx/versions

Alpine 3.16: v4.3.0 (QEMU support ended 2024-05-23)
Alpine 3.17: v5.3.0
Alpine 3.18: v6.1.3
Alpine 3.19: v6.2.1
Ubuntu 20.04 LTS: EOL
Ubuntu 22.04 LTS: v4.3.2
Ubuntu 22.10: EOL
Ubuntu 23.04: EOL
Ubuntu 23.10: v5.3.0
Ubuntu 24.04 LTS: v7.2.6
Debian 11: v3.4.3 (QEMU support ends 2024-07-xx)
Debian 12: v5.3.0
Fedora 38: EOL
Fedora 39: v6.2.1
Fedora 40: v7.2.6
CentOS Stream 8: v1.7.6 (QEMU support ended 2024-05-17)
CentOS Stream 9: v3.4.3
OpenSUSE Leap 15.4: EOL
OpenSUSE Leap 15.5: 2.3.1, 4.2.0 and 7.2.6

RHEL9 / CentOS Stream 9 becomes the new defining factor in staying at
Sphinx 3.4.3 due to downstream offline build requirements that force us
to use platform Sphinx instead of newer packages from PyPI.

Signed-off-by: John Snow <jsnow@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
---
 docs/conf.py    | 7 +++----
 pythondeps.toml | 2 +-
 2 files changed, 4 insertions(+), 5 deletions(-)

Comments

Thomas Huth July 3, 2024, 6:35 p.m. UTC | #1
On 03/07/2024 19.52, John Snow wrote:
> With RHEL 8 support retired (It's been two years since RHEL9 released),
> our very oldest build platform version of Sphinx is now 3.4.3; and
> keeping backwards compatibility for versions as old as v1.6 when using
> domain extensions is a lot of work we don't need to do.
> 
> This patch is motivated by my work creating a new QAPI domain, which
> unlike the dbus documentation, cannot be allowed to regress by creating
> a "dummy" doc when operating under older sphinx versions. Easier is to
> raise our minimum version as far as we can push it forwards, reducing my
> burden in creating cross-compatibility hacks and patches.
> 
> A sampling of sphinx versions from various distributions, courtesy
> https://repology.org/project/python:sphinx/versions
> 
> Alpine 3.16: v4.3.0 (QEMU support ended 2024-05-23)
> Alpine 3.17: v5.3.0
> Alpine 3.18: v6.1.3
> Alpine 3.19: v6.2.1
> Ubuntu 20.04 LTS: EOL
> Ubuntu 22.04 LTS: v4.3.2
> Ubuntu 22.10: EOL
> Ubuntu 23.04: EOL
> Ubuntu 23.10: v5.3.0
> Ubuntu 24.04 LTS: v7.2.6
> Debian 11: v3.4.3 (QEMU support ends 2024-07-xx)
> Debian 12: v5.3.0
> Fedora 38: EOL
> Fedora 39: v6.2.1
> Fedora 40: v7.2.6
> CentOS Stream 8: v1.7.6 (QEMU support ended 2024-05-17)
> CentOS Stream 9: v3.4.3
> OpenSUSE Leap 15.4: EOL
> OpenSUSE Leap 15.5: 2.3.1, 4.2.0 and 7.2.6
> 
> RHEL9 / CentOS Stream 9 becomes the new defining factor in staying at
> Sphinx 3.4.3 due to downstream offline build requirements that force us
> to use platform Sphinx instead of newer packages from PyPI.
> 
> Signed-off-by: John Snow <jsnow@redhat.com>
> Acked-by: Paolo Bonzini <pbonzini@redhat.com>
> Acked-by: Markus Armbruster <armbru@redhat.com>
> ---
>   docs/conf.py    | 7 +++----
>   pythondeps.toml | 2 +-
>   2 files changed, 4 insertions(+), 5 deletions(-)

Reviewed-by: Thomas Huth <thuth@redhat.com>
diff mbox series

Patch

diff --git a/docs/conf.py b/docs/conf.py
index aae0304ac6e..876f6768815 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -53,10 +53,9 @@ 
 
 # If your documentation needs a minimal Sphinx version, state it here.
 #
-# Sphinx 1.5 and earlier can't build our docs because they are too
-# picky about the syntax of the argument to the option:: directive
-# (see Sphinx bugs #646, #3366).
-needs_sphinx = '1.6'
+# 3.4.3 is the oldest version of Sphinx that ships on a platform we
+# pledge build support for.
+needs_sphinx = '3.4.3'
 
 # Add any Sphinx extension module names here, as strings. They can be
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
diff --git a/pythondeps.toml b/pythondeps.toml
index 9c16602d303..bc656376caa 100644
--- a/pythondeps.toml
+++ b/pythondeps.toml
@@ -23,7 +23,7 @@  meson = { accepted = ">=0.63.0", installed = "1.2.3", canary = "meson" }
 
 [docs]
 # Please keep the installed versions in sync with docs/requirements.txt
-sphinx = { accepted = ">=1.6", installed = "5.3.0", canary = "sphinx-build" }
+sphinx = { accepted = ">=3.4.3", installed = "5.3.0", canary = "sphinx-build" }
 sphinx_rtd_theme = { accepted = ">=0.5", installed = "1.1.1" }
 
 [avocado]