diff mbox series

[4/4] Python: Enable python3.12 support

Message ID 20231006195243.3131140-5-jsnow@redhat.com
State New
Headers show
Series Python: Enable python3.12 support | expand

Commit Message

John Snow Oct. 6, 2023, 7:52 p.m. UTC
Python 3.12 has released, so update the test infrastructure to test
against this version. Update the configure script to look for it when an
explicit Python interpreter isn't chosen.

Signed-off-by: John Snow <jsnow@redhat.com>
---
 configure                              | 3 ++-
 python/setup.cfg                       | 3 ++-
 tests/docker/dockerfiles/python.docker | 6 +++++-
 3 files changed, 9 insertions(+), 3 deletions(-)

Comments

Vladimir Sementsov-Ogievskiy Oct. 6, 2023, 8:39 p.m. UTC | #1
On 06.10.23 22:52, John Snow wrote:
> Python 3.12 has released, so update the test infrastructure to test
> against this version. Update the configure script to look for it when an
> explicit Python interpreter isn't chosen.
> 
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>   configure                              | 3 ++-
>   python/setup.cfg                       | 3 ++-
>   tests/docker/dockerfiles/python.docker | 6 +++++-
>   3 files changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/configure b/configure
> index e9a921ffb0..b480a3d6ae 100755
> --- a/configure
> +++ b/configure
> @@ -561,7 +561,8 @@ first_python=
>   if test -z "${PYTHON}"; then
>       # A bare 'python' is traditionally python 2.x, but some distros
>       # have it as python 3.x, so check in both places.
> -    for binary in python3 python python3.11 python3.10 python3.9 python3.8; do
> +    for binary in python3 python python3.12 python3.11 \
> +                          python3.10 python3.9 python3.8; do
>           if has "$binary"; then
>               python=$(command -v "$binary")
>               if check_py_version "$python"; then
> diff --git a/python/setup.cfg b/python/setup.cfg
> index 8c67dce457..48668609d3 100644
> --- a/python/setup.cfg
> +++ b/python/setup.cfg
> @@ -18,6 +18,7 @@ classifiers =
>       Programming Language :: Python :: 3.9
>       Programming Language :: Python :: 3.10
>       Programming Language :: Python :: 3.11
> +    Programming Language :: Python :: 3.12
>       Typing :: Typed
>   
>   [options]
> @@ -182,7 +183,7 @@ multi_line_output=3
>   # of python available on your system to run this test.
>   
>   [tox:tox]
> -envlist = py38, py39, py310, py311
> +envlist = py38, py39, py310, py311, py312
>   skip_missing_interpreters = true
>   
>   [testenv]
> diff --git a/tests/docker/dockerfiles/python.docker b/tests/docker/dockerfiles/python.docker
> index 383ccbdc3a..a3c1321190 100644
> --- a/tests/docker/dockerfiles/python.docker
> +++ b/tests/docker/dockerfiles/python.docker
> @@ -11,7 +11,11 @@ ENV PACKAGES \
>       python3-pip \
>       python3-tox \
>       python3-virtualenv \
> -    python3.10
> +    python3.10 \
> +    python3.11 \
> +    python3.12 \
> +    python3.8 \
> +    python3.9

Hmm, interesting, how did it work before? Only 3.10 was tested?

>   
>   RUN dnf install -y $PACKAGES
>   RUN rpm -q $PACKAGES | sort > /packages.txt

weak, I'm unsure about how this all works, I just see that 3.12 is added like others in all hunks except python.docker, but I think adding several python versions to docker should be safe anyway:
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Vladimir Sementsov-Ogievskiy Oct. 6, 2023, 8:40 p.m. UTC | #2
On 06.10.23 23:39, Vladimir Sementsov-Ogievskiy wrote:
> On 06.10.23 22:52, John Snow wrote:
>> Python 3.12 has released, so update the test infrastructure to test
>> against this version. Update the configure script to look for it when an
>> explicit Python interpreter isn't chosen.
>>
>> Signed-off-by: John Snow <jsnow@redhat.com>
>> ---
>>   configure                              | 3 ++-
>>   python/setup.cfg                       | 3 ++-
>>   tests/docker/dockerfiles/python.docker | 6 +++++-
>>   3 files changed, 9 insertions(+), 3 deletions(-)
>>
>> diff --git a/configure b/configure
>> index e9a921ffb0..b480a3d6ae 100755
>> --- a/configure
>> +++ b/configure
>> @@ -561,7 +561,8 @@ first_python=
>>   if test -z "${PYTHON}"; then
>>       # A bare 'python' is traditionally python 2.x, but some distros
>>       # have it as python 3.x, so check in both places.
>> -    for binary in python3 python python3.11 python3.10 python3.9 python3.8; do
>> +    for binary in python3 python python3.12 python3.11 \
>> +                          python3.10 python3.9 python3.8; do
>>           if has "$binary"; then
>>               python=$(command -v "$binary")
>>               if check_py_version "$python"; then
>> diff --git a/python/setup.cfg b/python/setup.cfg
>> index 8c67dce457..48668609d3 100644
>> --- a/python/setup.cfg
>> +++ b/python/setup.cfg
>> @@ -18,6 +18,7 @@ classifiers =
>>       Programming Language :: Python :: 3.9
>>       Programming Language :: Python :: 3.10
>>       Programming Language :: Python :: 3.11
>> +    Programming Language :: Python :: 3.12
>>       Typing :: Typed
>>   [options]
>> @@ -182,7 +183,7 @@ multi_line_output=3
>>   # of python available on your system to run this test.
>>   [tox:tox]
>> -envlist = py38, py39, py310, py311
>> +envlist = py38, py39, py310, py311, py312
>>   skip_missing_interpreters = true
>>   [testenv]
>> diff --git a/tests/docker/dockerfiles/python.docker b/tests/docker/dockerfiles/python.docker
>> index 383ccbdc3a..a3c1321190 100644
>> --- a/tests/docker/dockerfiles/python.docker
>> +++ b/tests/docker/dockerfiles/python.docker
>> @@ -11,7 +11,11 @@ ENV PACKAGES \
>>       python3-pip \
>>       python3-tox \
>>       python3-virtualenv \
>> -    python3.10
>> +    python3.10 \
>> +    python3.11 \
>> +    python3.12 \
>> +    python3.8 \
>> +    python3.9
> 
> Hmm, interesting, how did it work before? Only 3.10 was tested?
> 
>>   RUN dnf install -y $PACKAGES
>>   RUN rpm -q $PACKAGES | sort > /packages.txt
> 
> weak, I'm unsure about how this all works, I just see that 3.12 is added like others in all hunks except python.docker, but I think adding several python versions to docker should be safe anyway:
> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
> 

I meant, r-b is weak, not the patch :)
John Snow Oct. 6, 2023, 9:06 p.m. UTC | #3
On Fri, Oct 6, 2023 at 4:40 PM Vladimir Sementsov-Ogievskiy
<vsementsov@yandex-team.ru> wrote:
>
> On 06.10.23 22:52, John Snow wrote:
> > Python 3.12 has released, so update the test infrastructure to test
> > against this version. Update the configure script to look for it when an
> > explicit Python interpreter isn't chosen.
> >
> > Signed-off-by: John Snow <jsnow@redhat.com>
> > ---
> >   configure                              | 3 ++-
> >   python/setup.cfg                       | 3 ++-
> >   tests/docker/dockerfiles/python.docker | 6 +++++-
> >   3 files changed, 9 insertions(+), 3 deletions(-)
> >
> > diff --git a/configure b/configure
> > index e9a921ffb0..b480a3d6ae 100755
> > --- a/configure
> > +++ b/configure
> > @@ -561,7 +561,8 @@ first_python=
> >   if test -z "${PYTHON}"; then
> >       # A bare 'python' is traditionally python 2.x, but some distros
> >       # have it as python 3.x, so check in both places.
> > -    for binary in python3 python python3.11 python3.10 python3.9 python3.8; do
> > +    for binary in python3 python python3.12 python3.11 \
> > +                          python3.10 python3.9 python3.8; do
> >           if has "$binary"; then
> >               python=$(command -v "$binary")
> >               if check_py_version "$python"; then
> > diff --git a/python/setup.cfg b/python/setup.cfg
> > index 8c67dce457..48668609d3 100644
> > --- a/python/setup.cfg
> > +++ b/python/setup.cfg
> > @@ -18,6 +18,7 @@ classifiers =
> >       Programming Language :: Python :: 3.9
> >       Programming Language :: Python :: 3.10
> >       Programming Language :: Python :: 3.11
> > +    Programming Language :: Python :: 3.12
> >       Typing :: Typed
> >
> >   [options]
> > @@ -182,7 +183,7 @@ multi_line_output=3
> >   # of python available on your system to run this test.
> >
> >   [tox:tox]
> > -envlist = py38, py39, py310, py311
> > +envlist = py38, py39, py310, py311, py312
> >   skip_missing_interpreters = true
> >
> >   [testenv]
> > diff --git a/tests/docker/dockerfiles/python.docker b/tests/docker/dockerfiles/python.docker
> > index 383ccbdc3a..a3c1321190 100644
> > --- a/tests/docker/dockerfiles/python.docker
> > +++ b/tests/docker/dockerfiles/python.docker
> > @@ -11,7 +11,11 @@ ENV PACKAGES \
> >       python3-pip \
> >       python3-tox \
> >       python3-virtualenv \
> > -    python3.10
> > +    python3.10 \
> > +    python3.11 \
> > +    python3.12 \
> > +    python3.8 \
> > +    python3.9
>
> Hmm, interesting, how did it work before? Only 3.10 was tested?

I was relying on dependencies to pull in other versions -- tox usually
pulls in all but the very latest version. I made it explicit instead.
I can explain this in the commit.

>
> >
> >   RUN dnf install -y $PACKAGES
> >   RUN rpm -q $PACKAGES | sort > /packages.txt
>
> weak, I'm unsure about how this all works, I just see that 3.12 is added like others in all hunks except python.docker, but I think adding several python versions to docker should be safe anyway:
> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Thanks -- and I see your patches for iotests. I'll try to look into
them shortly.

>
> --
> Best regards,
> Vladimir
>
diff mbox series

Patch

diff --git a/configure b/configure
index e9a921ffb0..b480a3d6ae 100755
--- a/configure
+++ b/configure
@@ -561,7 +561,8 @@  first_python=
 if test -z "${PYTHON}"; then
     # A bare 'python' is traditionally python 2.x, but some distros
     # have it as python 3.x, so check in both places.
-    for binary in python3 python python3.11 python3.10 python3.9 python3.8; do
+    for binary in python3 python python3.12 python3.11 \
+                          python3.10 python3.9 python3.8; do
         if has "$binary"; then
             python=$(command -v "$binary")
             if check_py_version "$python"; then
diff --git a/python/setup.cfg b/python/setup.cfg
index 8c67dce457..48668609d3 100644
--- a/python/setup.cfg
+++ b/python/setup.cfg
@@ -18,6 +18,7 @@  classifiers =
     Programming Language :: Python :: 3.9
     Programming Language :: Python :: 3.10
     Programming Language :: Python :: 3.11
+    Programming Language :: Python :: 3.12
     Typing :: Typed
 
 [options]
@@ -182,7 +183,7 @@  multi_line_output=3
 # of python available on your system to run this test.
 
 [tox:tox]
-envlist = py38, py39, py310, py311
+envlist = py38, py39, py310, py311, py312
 skip_missing_interpreters = true
 
 [testenv]
diff --git a/tests/docker/dockerfiles/python.docker b/tests/docker/dockerfiles/python.docker
index 383ccbdc3a..a3c1321190 100644
--- a/tests/docker/dockerfiles/python.docker
+++ b/tests/docker/dockerfiles/python.docker
@@ -11,7 +11,11 @@  ENV PACKAGES \
     python3-pip \
     python3-tox \
     python3-virtualenv \
-    python3.10
+    python3.10 \
+    python3.11 \
+    python3.12 \
+    python3.8 \
+    python3.9
 
 RUN dnf install -y $PACKAGES
 RUN rpm -q $PACKAGES | sort > /packages.txt