-
Notifications
You must be signed in to change notification settings - Fork 928
Decrease minimum Python version to 3.6 #13272
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
It was pointed out on the Open MPI packagers mailing list that RHEL 8 (and clones) has Python 3.6 inbox. If we only allow Open MPI to build with Python >= 3.7, we'll break all builds on RHEL 8 (etc.). That seems like a bad idea. * Update the git submodule for the pympistandard module to a version that is friendly to running with Python 3.6. * List the additional pip modules in docs/requirements.txt that are needed by pympistandard to be able to run with Python 3.6. Signed-off-by: Jeff Squyres <[email protected]>
|
The c/f08 bindings code needs python 3.7 or higher. Please add back in the check for the case that we're building from a git clone. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR needs to include putting back in the check for python 3.7 or higher in the case where one is building from a git clone or using the config option to generated the 'c' and 'f08' binding code.
|
in that case, do we want to keep the minimum required version at 3.7, or is there still benefit of having some parts of the code require python 3.6 only? |
|
I converted this to draft so that we don't accidentally merge it before this is resolved.
Are you sure? I did the following:
It succeeded, including generating all the Fortran C/F code via the python scripts. |
|
i only know what was in the original PR for bigcount concerning python 3.7 requirement. but this seems to show that we can use 3.6. so in that case my concerns are allayed. |
|
I've been trying hard to test my Python dependencies against Py 3.6, but I'm having lots of problems with it. FWIW: the stock Alma 8 container image comes with Py 3.11 - and there is no package for Py 3.6 available for it. I've been trying to hand-install Py 3.6 in that container, but it fails to build. So I'm reaching the point of agreeing with George - this is feeling like way too much effort, at least for my very limited resources. I will therefore likely stick with Py 3.7 as the minimum for PMIx/PRRTE. |
|
Oh - well, that's cute. The test for Py >= v3.7 passes even with Py = 3.6.8. So I guess it all is irrelevant from my end until I fix the configury. FWIW: I did finally find a Py 3.6.8 package I could add to the container - had to do some hand mangling to make it active. |
|
@rhc54 I'm not sure which Alma 8 container you're using; the one I'm using comes with a dnf database with the upstream Alma Linux RPM repo that will install Python 3.6.8 when requested: I can also |
|
Okay, I believe that the test by @jsquyres may in fact be bogus. Here is what I'm seeing in my configure output (modified to error out when showing the final Py result: checking if we need Python... yes
checking for a Python interpreter with version >= 3.7... python3.11
checking for python3.11... /usr/bin/python3.11
checking for python3.11 version... 3.11
checking for python3.11 platform... linux
checking for python3.11 script directory... ${prefix}/lib/python3.11/site-packages
checking for python3.11 extension module directory... ${exec_prefix}/lib64/python3.11/site-packages
configure: WARNING: Python 3.11
configure: error: PYTHON Python 3.6.8 3.7So here is what is going on. As I said above, Alma 8 now comes standard with Py 3.11. I then hand-install an old Py 3.6.8 version and set it to be the default However, Thus, I don't know that we actually have tested the build under Py < 3.7. I think we may just have a "false positive" outcome. When I have time, I may try to override the autoconf selection and see if it still works. |
What Alma 8 image are you using? I'm using https://hub.docker.com/layers/library/almalinux/8/images/sha256-c8ce4bb54f674de7d65e9876d25eedb5046bd205cfdb0d3f5680cd5ec5e1253e. |
|
Okay, I managed to finagle this thing enough to actually build with Py 3.6. Confirmed that my dependencies are okay with that version. |
I simply spec'd "almalinux:8" in the dockerfile - and got Py 3.11. I do have to load dependencies to build, and so I imagine one of them could have pulled Py 3.11 down with it. Still, if you want to build my stuff, at least, it seems you end up that way. 🤷♂️ |
|
FWIW: I used this Dockerfile to make an image that was able to build a fresh recursive clone of all of Open MPI, including the embedded OpenPMIx and PRTE: FROM almalinux:8
RUN \
dnf update && \
dnf install -y gcc gcc-gfortran make flex \
python3 autoconf automake libtool \
emacs-nox gitThat pulled down just Python 3.6.8, not Python 3.11 (I notably did not install the pip's needed to build the sphinx docs). For example: Just to be triple sure, I hit FWIW: I'm guessing / assuming that the Open MPI
As far as I can tell, everything built ok. I'm sure that's not 100% the same thing as building pmix / prte as standalone projects, but it was as close an approximation as I had time for to test today, and hopefully a reasonable-enough smoke test to sure that Py 3.6 is suitable... |
|
Based on my testing, I think this PR is ok. |
It was pointed out on the Open MPI packagers mailing list that RHEL 8 (and clones) has Python 3.6 inbox. If we only allow Open MPI to build with Python >= 3.7, we'll break all builds on RHEL 8 (etc.). That seems like a bad idea.
Fixes #13267