-
Notifications
You must be signed in to change notification settings - Fork 9
Ansible 5: raise python requirement from >=2.7 to >=3.8 #54
Comments
We should ensure this is clear in the release announcements as well as major_change in release notes/porting_guide |
An alternative would be to change the ansible-core requirement to |
The release announcement for 5.0.0 mentions the following:
It's also at the top of the ansible-core changelog as well as in the porting guide. |
This is something we can consider doing as well. It should be relatively safe to assume (though we should check) that collections are already testing against both 2.11 and 2.12 by now. I would had liked to find this issue before the release of 5.0.0 because it's not an insignificant change to do post-release. Oh well... We should think ahead to see what this would look like for Ansible 6 and beyond... some key dates:
With that in mind, we could (in theory) continue requiring ansible-core>=2.11 for both Ansible 5 and Ansible 6 which would delay lifting the requirement on >=python3.8 of the ansible package itself for a year or so. I probably wouldn't continue longer than that at the risk of increasing maintenance burden too much. |
In preparation for discussing this at the meeting, unless mistaken I see two potential outcomes that we can vote on:
|
Im +1 for keeping the ansible-core>=2.12 requirement, and adding a python >= 3.8 requirement to the Ansible package. We did introduce the |
I prefer 2 so folks aren't surprised, but think we should include a clear notice in 5 and plan to raise it for 6 (not 7) ETA: The porting guide notice from 4.0 satisfies my user notification concerns https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_4.html#other |
I prefer option 1, it is a major release so a change in core version + python version is not out of place. If we haven't should we state in the future, major releases of the ansible pkg will require the most recent version of ansible-core? (if we haven't previously) This could help avoid the issue in the future |
We discussed the issue during the community meeting and while we would appreciate feedback from additional steering committee members (ping @ssbarnea, @acozine , @thaumos, @Ompragash, @gundalow) we had the following results:
|
I am also +1 on raising the Python requirement. |
The above is missing a -0 by @jamescassell and a +1 by @samccann. Also @Ompragash is so far not a steering committee member (but of course you can still voice your opinion :) ). |
My arguments for +1:
|
Indeed, their vote came later and I failed at copy/paste -- edited my comment.
Offtopic: we should update https://github.com/orgs/ansible-community/teams/steering-committee/members so it's accurate. |
+1 for ansible 5.0.0 keep P.S. IMHO, that may be even better if able to keep as |
+1, but agree that only ubuntu 20.04 and debian 11 are able to support ansible-core 2.12 as of today (the same will go for ansible 5.0.0). Despite centos-stream shipping python38, it;s not really usable because of missing libselinux bindings that are kind of required for ansible. |
+1
@felixfontein @dmsimard |
+1 For raising python requirements to 3.8+ |
+1 for Keep Ansible 5 requirement on ansible-core>=2.12 and raise the python requirement to >=3.8 (up from >=2.7) Plenty of good reasoning already mentioned, plus from a comms point of view, it's clearer to share the message "python >=3.8 for Ansible 5" than to sink into confused messaging of different -core versions as previously communicated, and we might have a repeated drama à la Ansible 3/core/base |
ansible 5.0.1 (hotfix with python>=3.8 requirement) has been released: https://groups.google.com/g/ansible-announce/c/t0JoB6evpt8/m/krFCR5o9CgAJ I've yanked 5.0.0 and confirmed that py<3.8 correctly falls back to ansible 4.9.0 instead of erroring out. We also now provide a galaxy-requirements.yaml file and can suggest it as an alternative for users to continue using ansible-core 2.11 while getting the set of collections that we ship in ansible 5. Another alternative that we can also consider in the future was proposed by bcoca: https://github.com/bcoca/acd. |
Heh, I'm starting to get a lot of support requests across a ton of repos for users of CentOS7/RHEL7, Debian 10, etc. who are now running into installation issues (regardless of 5.0.0 / 5.0.1). It might be nice to have some place to point people towards with instructions for either (a) installing Ansible 'community' 4.x, or (b) how to upgrade to a newer Python on the most popular Linux distros. |
@geerlingguy I don't really think upgrade system default Python >= 3.8 could be simple for most legacy LTS OS (see ansible/ansible#76257 (comment)). One the other hand, since ansible 5.0.1 released with enforce IMHO we could lower
|
@geerlingguy thanks for the feedback. Could you link to some of those issues you are seeing ? I've also seen ansible/ansible#76458 in addition to the one I mentioned at the beginning of this issue.
I'll ask around. |
@dmsimard - It seems like most of those support requests were coming in before 5.0.1 came out (and maybe 5.0.0 is still there on pywheels or something?). I just re-tested everything on a few fresh installs of Pi OS and Debian (before posting Install Python 3.9 on Raspberry Pi OS or Debian 10 (for Ansible or other uses), and it seems that |
I'm going to re-open this for the time being, it's being reported that 5.0.0 is still problematic with older releases of pip: https://twitter.com/zhenech/status/1467592374981378052 I've asked about it in #ansible-community, it looks like we may need to do something more than just yanking 5.0.0. |
Yanking a package on PyPI was implemented back in 2019 (thanks @tadeboro). That explains why pip versions older than 19.2 don't "follow" the yank. There is so far a consensus that deleting 5.0.0 is the right thing to do since PyPI wouldn't let us re-upload a "new" 5.0.0.
We can afford to wait until tomorrow so more people can weigh in. |
+1 delete Ansible 5.0.0, which align with why Ansible 5.0.1 got released. |
+1 for deleting 5.0.0. |
Yanking 5.0.0 is no brainer, the reason why 5.0.1 was released was to fix a serious packaging mistake in 5.0.0 in the end. Some projects would have decided to do it in a 5.0.0post1 version. Go for it, I doubt anyone would benefit from having 5.0.0 on pypi. |
+1 for deleting a 5.0.0 |
+1 to delete 5.0.0 |
1 similar comment
+1 to delete 5.0.0 |
@ssbarnea we already yanked 5.0.0 end of last week; the problem is that pip < 19.2 does not know about yanking and will still try to install 5.0.0 - that's why we want to actually delete the 5.0.0 release instead of just keeping it marked as yanked. This will cause installations which pinned to 5.0.0 to fail in the future, but will resolve all the problems with older pip versions (assuming they can handle |
+1 to delete - let's make it a better user experience for everyone |
5.0.0 has been deleted and I've sent an email out about it: https://groups.google.com/g/ansible-announce/c/t0JoB6evpt8/m/UHzmz8-2CgAJ |
Closing since this has been implemented. |
Summary
As reported in issue ansible/ansible#76414, currently attempting to install
ansible=5.0.0
with less than python3.8 will result in an error because ansible-core now requires >=3.8:We are currently requiring >=2.7 in setup.py:
We should raise the requirement to python3.8 to match ansible-core and thus avoid the error -- pip dependency solving should allow for the installation of Ansible 4.
We might need to yank 5.0.0 once an eventual 5.0.1 is released with the new requirement.
The text was updated successfully, but these errors were encountered: