There are a number of reasons, some of which are related to the fact that Py3.6 had already transitioned to only receiving security fixes by the time we made the decision. We decided to jump to the most recent python version still accepting general bug fixes. There are a number of features such as importlib.resources, dataclasses, contextvars, changes to multiprocessing/threading, PEP563, PEP538, ordered dicts. Some of those align with py3.7, but since RHEL8 didn't include 3.7 and 3.7 was only receiving security fixes, we jumped to 3.8. Additionally there is a cost associated, both human and monetary, with supporting a larger set of versions. Ultimately we made a decision to only support the 3 most recent upstream Python versions from a controller code perspective. ansible-core 2.14 will transition to supporting Py 3.9-3.11. Our plan for RHEL/CentOS packaging is that ansible-core 2.14 will be packaged on RHEL using Py3.11; You can go back and watch the Ansible contributor summit video for some explanation about these plans. 2.13 will likely transition to being packaged on RHEL using Python 3.9.
Note that there is also a difference between controller code and target code. Module code still supports Python 2.7, Python 3.5+, and ansible-core 2.11 added support for "module respawn" to allow a module to respawn itself onto a more appropriate python interpreter that contains the libraries the module needs. We also dropped use of the selinux python bindings in ansible-core and switched to ctypes. As far as RPM packaging, RHEL8.6 and 9.0 (planned release in May iirc) will contain ansible-core 2.12, and all required dependencies. The AAP repo contains ansible-core 2.13. CentOS Stream 8 and 9 both contain ansible-core 2.12 as of now: https://git.centos.org/rpms/ansible-core/branches For EL7, it was explicitly decided to drop support for it as an organization as a controller, so Tower (Automation Controller) and AWX don't run there either, or at a minimum aren't tested there. Although I guess an SCL with a newer Python could be used for in house packaging of ansible-core as an RPM for EL7. On Tue, Apr 19, 2022 at 7:58 PM Nico Kadel-Garcia <[email protected]> wrote: > The system python on RHEL 7 and RHEL 8 is now python 3.6, and will be > for the remaining lifespan of RHEL 7 for a few years, and of RHEL 8 > for at least the next 8 years. It's especially hindered by the general > dislike of CentOS 8 and of the multiple yum streams and of > "modularity" for RHEL 8, both of which have been burdens to RHEL and > CentOS users. So I anticipate RHEL 7 being in use for core servers > like ansible servers, or ansible tower or awx, far longer than > anticipated. > > Python 3.8 is available from RedHat for RHEL 8, but not for RHEL 7. > The suite of modules published are incomplete: They lack critical > python modules like python38-resolvelibs and python38-nose. > > I'm game to update my RPM building setups to support python3.8 builds > for ansible, but seems likea lot of work for an individual contributor > when it may be much more easily resolved, and long extend the > supportable integration of a commercially supported project by > encouraging Red Hat employees to support RedHat's commercial operating > systems. > > I don't currently have an Ansible Tower license in hand, and AWX for > RPM based deployment seems to have foundered. Are there no RPM's > being used for a contemporary ansible-core, itself, in that commercial > offering? If it's entirely reliant on doing "pip install", it will > need to be "pip3.8 install" and will only work on RHEL 8 based systems > for Red Hat offering for the foreseeable future. And it won't work on > RHEL 7, which I anticipate many, many current users staying with > rather than facing the unwelcome features of RHEL 8 based systems, > such as "modularity", the multiple and sometimes overlapping yum > streams, and the "CentOS Stream" fiasco. > > If someone's already done the work of RPM bundling ansible-core for > Ansible Tower, I'd appreciate seeing the .spec files. If not, you're > quite welcome to mine, which are based on Fedora work. > > Nico Kadel-Garcia > > -- > You received this message because you are subscribed to the Google Groups > "Ansible Project" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/CAOCN9ryx0YGCUAgVbWENjuwuR2LfpHOWUx8JA_5XFDPsd8rE6w%40mail.gmail.com > . > -- Matt Martz @sivel sivel.net -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAD8N0v_PGwe0sxZo0S4kqc5D4EJhd1QGK8WG1nSxj_s%3Do4CQ9w%40mail.gmail.com.
