Subject: Re: What's our minimum supported Python version?

From: Florents Tselai <[email-masked]>
Date: Sat, 19 Apr 2025 20:05:22 +0300

> On 19 Apr 2025, at 7:17 PM, Tom Lane <[email-masked]> wrote:
> 
> Our fine manual claims the answer to $SUBJECT is 3.2.
> 
> However, there is room to doubt that our code still actually
> works with 3.2, because the oldest version I can find being
> tested by the buildfarm is topminnow's 3.4.2.  The next oldest
> is shelduck's 3.4.10, and everything else has 3.5.2 or newer.
> topminnow hasn't reported in a couple months, so it may
> actually be dead.
> 
> The reason I bring this up is that I found out the hard way
> that src/test/modules/oauth_validator fails on RHEL8, because
> its oauth_server.py script is not compatible with the 3.6.8
> version of Python supplied by this distro.  (There are 22
> buildfarm animals running 3.6.8, presumably mostly also Red
> Hat-derived platforms, so I'm not going to apologize for
> my workstation being a little long in the tooth.)
> 
> I think we need to do some combination of moving our
> minimum-supported-version goalposts forward, making sure that
> whatever we claim is the minimum Python version is actually
> being tested in the buildfarm, and fixing oauth_server.py
> so that it works on that version.
> 
> I am not familiar enough with the Python landscape to
> have an informed opinion about what the minimum supported
> version should be.  But I'll present this data scraped
> from the buildfarm about how many animals are running what
> (counting animals that have reported since 2025-01-01):
> 
>  Count Version
> 
>      1 3.4.2
>      1 3.4.10
>      2 3.5.2
>      3 3.5.3
>      2 3.6.5
>     22 3.6.8
>      3 3.6.9
>      5 3.6.15
>      1 3.7.1
>      2 3.7.3
>      1 3.7.10
>      2 3.7.16
>      1 3.8.8
>      4 3.8.10
>     15 3.9.2
>      6 3.9.16
>      6 3.9.18
>      1 3.9.19
>      2 3.9.20
>     13 3.9.21
>      6 3.10.x
>     18 3.11.x
>     21 3.12.x
>     22 3.13.x
> 
>    160 total
> 
> Thoughts?
> 
> 			regards, tom lane
> 

From an Python ecosystem perspective,
 3.9 is the usual minimum that people use in CI matrices nowdays.
So if it was up to me, that’s what I’d choose. 

Mabe 3.7 if I was too liberal, but <3.6 and older it’s probably too old to bother.
Then again, I’m not a buildfarm power user, so my 2 cents are worth a bit less.