Re: What's our minimum supported Python version?

Jacob Champion <jacob.champion@enterprisedb.com>

From: Jacob Champion <jacob.champion@enterprisedb.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Jelte Fennema-Nio <postgres@jeltef.nl>, Renan Alves Fonseca <renanfonseca@gmail.com>, Florents Tselai <florents.tselai@gmail.com>, pgsql-hackers <pgsql-hackers@lists.postgresql.org>, Devrim Gündüz <devrim@gunduz.org>, Christoph Berg <myon@debian.org>
Date: 2025-04-22T22:33:21Z
Lists: pgsql-hackers
On Tue, Apr 22, 2025 at 3:04 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> The fact that Jacob was able to fix
> oauth_server.py without (it seemed like) very much work seems to
> bear out that opinion.

I think my ability to do it should not be used as evidence of "ease".

I knew where to download 3.6, that I should build it with Clang to
avoid GCC segfaults, that I should set the rpaths appropriately, and
to wrap it all in a virtualenv for Meson to find. And I had to kick
Meson to get it to clear its cached Python information, or else the
contrib modules refused to build...

I suspect the only way most developers are going to want to test this
is by running EL8.

> This calculus might change if we start to rely more heavily on
> Python for build and test infrastructure than we do today.  But
> I think we can have that conversation when it happens.

As long as the need to backport to PG18 doesn't freeze that
conversation in place, I suppose.

> Anyway, what I propose that we do for now is replace the
> installation.sgml text
>
>     The minimum required version is Python 3.2.
>
> with
>
>     The minimum supported version is Python 3.6.8.
>
> where I use "supported" advisedly, as in "it might work with
> something older, but we don't promise to fix it if not".

No objection to that as a first step. I'm still hopeful that Devrim
has some evidence in favor of bumping to 3.8 or 3.9. :)

Thanks,
--Jacob



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. plpython: Remove obsolete test expected file

  2. Bump the minimum supported Python version to 3.6.8

  3. oauth: Support Python 3.6 in tests