Thread: What's our minimum supported Python version?

What's our minimum supported Python version?

From
Tom Lane
Date:
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



Re: What's our minimum supported Python version?

From
Florents Tselai
Date:

> On 19 Apr 2025, at 7:17 PM, Tom Lane <tgl@sss.pgh.pa.us> 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.






Re: What's our minimum supported Python version?

From
Tom Lane
Date:
Florents Tselai <florents.tselai@gmail.com> writes:
> On 19 Apr 2025, at 7:17 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> 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.

> 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. 

Per these numbers, that would be cutting off 31% of the buildfarm,
including a lot of still-in-support distros such as RHEL8.
So I would say that's not likely to be our choice.

            regards, tom lane