Kenneth — Thanks for the info. See my replies on this thread for some additional information.
I did not know about Python 3.6 in RHEL 8, though — that’s good new information for me. There is a reason that we require Python >= v3.7, but it’s a nuanced issue: The C/Fortran-generating Python scripts we use definitely work with core Python v3.6 (I didn’t bother testing with Python < v3.6) and require no additional pip modules. They’re pretty simplistic Python scripts. These scripts are run in all Open MPI builds — packager builds, end-user builds, git clone builds, … etc. Building the documentation — specifically, rendering the MPI API function signatures — uses the MPI Forum pympistandard module (https://github.com/mpi-forum/pympistandard) This module requires Python v3.7. I don’t remember the specific issue offhand, but I remember specifically testing this and coming to the conclusion that that module uses some feature that was introduced in Python v3.7. However, the pympistandard module is only used if you are building the Open MPI documentation, which is not required (by default) for end-user (and many packager?) tarball builds because Open MPI official distribution tarballs include pre-built HTML and man page documentation. However, for simplicity, we just made Open MPI’s configure script require Python >= v3.7 (as opposed to always requiring Python >= v3.6, and only requiring Python >= v3.7 if you’re building the documentation). I’ll go back and revisit this. > On May 20, 2025, at 1:56 AM, Kenneth Hoste <kenneth.ho...@ugent.be> wrote: > > Hi Jeff, > > Out of personal experience since Python 2.4 (with EasyBuild, which is fully > implemented in Python), a couple of attention points: > > - Stick to the Python standard library, don't require additional Python > packages (from PyPI). > If you can, avoid packaging tools (incl. setuptools). > > - Have CI in place that tests the scripts with all Python versions you > support. > Sooner or later you will catch something that surprises you. > Make sure you also test with new Python releases, which often include > breaking changes. > > - Requiring Python >= 3.7 seems somewhat arbitrary, any particular reason for > that specific version requirement? > > If you can, I strongly recommend you to also support Python 3.6, which is > the default Python version in RHEL8. That's an important Linux distribution > for HPC, since RHEL8 + derivatives thereof are likely the most popular Linux > distribution for HPC systems. > > > I fully understand why there's an interest in switching away from Perl, and I > think it's a good idea, but there may be unexpected dragons when you tread > into the magic wonderland of Python, so come in prepared and tread carefully. > :) > > > regards, > > Kenneth > > On 15/05/2025 16:11, Jeff Squyres wrote: >> Open MPI packagers — >> There’s active work going on to (slowly) convert the Perl scripts used in >> Open MPI’s build process to Python >= v3.7 for the Open MPI 6.0.x series. >> That being said, even with this work, I’m sure we won’t eliminate the Perl >> build requirement before v6.0.0. >> Depending on how packagers build Open MPI, you may have effectively already >> had a Python 3 build requirement. But these changes would require Python 3 >> for *all* build scenarios — even for build-from- tarball-source end users. >> Does anyone have any opinions on Open MPI v6.x adding Python >=v3.7 as a >> build requirement? Possibilities include: >> * “No problem / I don’t care" >> * “This is terrible! Let me tell you why…” >> * …something else >> I’d love to hear your thoughts here. >> Thanks! >> -- >> {+} Jeff Squyres > -- {+} Jeff Squyres To unsubscribe from this group and stop receiving emails from it, send an email to ompi-packagers+unsubscr...@lists.open-mpi.org.