John Snow <[email protected]> writes:

> FYI,
>
> bash-5.1# cat /etc/centos-release
> CentOS Stream release 9
> bash-5.1# python3 --version
> Python 3.9.25
> bash-5.1# dnf install python3.12-setuptools python3.12-wheel python3.12-pip
> Last metadata expiration check: 0:02:24 ago on Tue Feb 17 22:39:26 2026.
> Dependencies resolved.

[...]

> Transaction Summary
> ==================================================================================================================================================
> Install  9 Packages
>
> Total download size: 16 M
> Installed size: 66 M
> Is this ok [y/N]:
>
> ...
>
> So we actually probably have decent movement we can make as soon as
> Ubuntu 22.04 is dropped; enough to do:
>
> Python 3.9 -> 3.11
> pip 21.3.1 -> 23.0.1
> setuptools 53.0.0 -> 63.1.0
> wheel 0.36.2 -> 0.38.4

Accomodating a wide range of Python versions (language proper and
tooling) is costly.  Few projects go as far back as we do.  Narrowing
our range is good.

> With most of the new sticking points being debian 12 (EOL in June) or
> FreeBSD (timeline uncertain for when they'll re-modernize their python
> stack)
>
> One edge case here, however, is Sphinx, which does not actually have a
> modern package in centOS stream 9.
>
> CentOS currently ships 3.4.3, but it would not be usable if using the
> optional 3.12 upgrade. If we ignore this, both FreeBSD and Debian 12
> have sphinx 5.3.0 to offer us, which is a reasonable version jump, but
> it means that CentOS would not be able to build docs unless you
> enabled `--online` for configuring QEMU or sideloaded Sphinx
> otherwise.

CentOS 9 reaches end of life on May 31 next year.  I do not think
keeping its ability to build bleeding edge docs offline out of the box
for its final year (give or take) is worth your time, or anybody's.

Same for FreeBSD, to be frank.

> That's enough to delete a large amount of the horrid crap in
> docs/sphinx/compat.py, though not all of it - version 6.2.0 is the
> version that would allow me to delete the *entire* thing.

That thing is an achievement in more than one way.  It makes something
work well that has no right to work at all.  It reaches vertiginous
heights of ugliness.  It was disgustingly expensive to write, and it
will be disgustingly expensive to fix if it ever breaks, more so if the
fixer isn't John Snow.  The sooner we get rid of it, the better.

> When Debian 12 is dropped (June), we're waiting on just FreeBSD to
> modernize their stack and we could make that final leap, too.
>
> My plan:
> - Wait and see what happens after the current QEMU release
> - Gleefully drop Ubuntu 22.04 in April (Allows Python 3.11+)
> - Gleefully drop Debian 12 in June
> - Hold my breath and see if FreeBSD happens to modernize by this point
> (They have until October 2027 to do so, so it's a dice roll if they
> will or not)
> - Do a big round of Python modernization all at once; either to 3.11
> or 3.12 depending, and either to Sphinx 5.x or 7.x depending, pray for
> forgiveness that I am removing CentOS stream 9's ability to build docs
> offline so I don't have to wait another six months and then do another
> big cleanup round

Makes sense to me.

> Updated version dashboard:
> https://gitlab.com/jsnow/repology-dashboard#results-overview-as-of-2026-02-16
>
> --js


Reply via email to