Feature #23096
closedUpdate RHEL 8 packages to build with Python 3.11
Description
Because Arvados 3.2.0 drops support for Debian 11 and Ubuntu 20.04, our minimum Python version between those distros goes from 3.8 to 3.10 (in Ubuntu 22.04).
RHEL 8.8 AppStreams include Python 3.11. Update our RHEL 8 packages to build with this version. Write an upgrade note about this. This way, Arvados 3.2.0 can drop all support for Python 3.9, which will go EOL during the 3.2.x series.
(I would be open to upgrade to Python 3.10 or 3.12, but neither of those are available in AppStreams, so that makes the decision for us.)
Updated by Brett Smith 7 months ago
- Blocks Feature #23097: Update all Python modules to require 3.10, remove 3.8 and 3.9 classifiers added
Updated by Brett Smith 7 months ago
- Target version set to Development 2025-08-21
- Assigned To set to Brett Smith
- Status changed from New to In Progress
23096-rhel8-py311 @ ec4b179c65703ecbce01afab28f2b1772ed0fa60
developer-run-tests-doc-sdk-java-R: #2247 (for doc changes)
- All agreed upon points are implemented / addressed. Describe changes from pre-implementation design.
- Yes
- Anything not implemented (discovered or discussed during work) has a follow-up story.
- N/A
- Code is tested and passing, both automated and manual, what manual testing was done is described.
- See above. In the build-packages console output, in the package tests, you can see that when installing Arvados Python packages brings in Python 3.11. Also reviewed documentation manually.
- Tested code incorporates recent main branch changes.
- Yes
- New or changed UI/UX and has gotten feedback from stakeholders.
- N/A
- Documentation has been updated.
- Yes
- Behaves appropriately at the intended scale (describe intended scale).
- No change in scale
- Considered backwards and forwards compatibility issues between client and server.
- N/A - Does raise the minimum version of RHEL 8 we support, in a way that we're okay with (it's more than two years old, very close to Debian 12 in both age and packaged software).
- Follows our coding standards and GUI style guidelines.
- N/A
Updated by Tom Clegg 7 months ago
Should the upgrade notes also mention that you need at least 9.2 if you're on the 9 series?
With this the modules_to_enable doc template feature is unused. But we'll need it again to raise our minimum Python version without dropping distro support, so we're keeping it around. Is that right?
Rest LGTM.
Updated by Brett Smith 7 months ago
Tom Clegg wrote in #note-4:
Should the upgrade notes also mention that you need at least 9.2 if you're on the 9 series?
No, because this isn't a change since the last release. 3.2.0 is the first version with RHEL 9 support.
With this the
modules_to_enabledoc template feature is unused. But we'll need it again to raise our minimum Python version without dropping distro support, so we're keeping it around. Is that right?
Honestly, I don't know. Behold:
$ docker run --rm -ti rockylinux:8-minimal bash-4.4# microdnf install dnf […] Complete. bash-4.4# dnf module list | grep python3 python36 3.6 [d] build, common [d] Python programming language, version 3.6 python38 3.8 [d] build, common [d] Python programming language, version 3.8 python39 3.9 [d] build, common [d] Python programming language, version 3.9
Note Python 3.11 is not on this list. The release notes document that it is available from appstreams, but it no longer requires you to enable a module to get it. I do not know if they'll be using this same strategy going forward, or if future versions of Python might require a module again, or what. So… I guess I'm hedging against this uncertainty?
Is the postgresql:10 → postgresql:15 change just because 15 is the minimum version in 8.8, 9.2?
It was purely opportunistic. Similarly to the Python upgrade, this bump brings the RHEL 8 versions more in line with other distributions we're supporting like Debian 12. (I did not make any change to RHEL 9 here.) However, note also that the only place we actually use this in is the package test Docker image. arvados-api-server's dependency on PostgreSQL is unversioned and that is not affected by this branch:
% rpm -qRF arvados-api-server-3.2.0\~dev20250812154933-1.x86_64.rpm | grep postgres postgresql postgresql-devel
Updated by Tom Clegg 7 months ago
Brett Smith wrote in #note-7:
It was purely opportunistic. Similarly to the Python upgrade, this bump brings the RHEL 8 versions more in line with other distributions we're supporting like Debian 12. (I did not make any change to RHEL 9 here.) However, note also that the only place we actually use this in is the package test Docker image. arvados-api-server's dependency on PostgreSQL is unversioned and that is not affected by this branch:
I see, that enables the postgresql:15 module when we're testing whether our packages can actually be installed on rh8, we aren't actually demanding that version in actual deployments.
LGTM, thanks for the clarifications.