-
Notifications
You must be signed in to change notification settings - Fork 23.7k
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
Emit warning when running on the controller with a Python older than 3.8 #72467
Conversation
This should be mentioned in the docs as well: |
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.
Warning LGTM, though is this also the time/place to bump python_requires
to 3.8?
@@ -0,0 +1,3 @@ | |||
minor_changes: |
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.
Should this be higher than minor
so it's more prominent in the changelog?
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.
The warning itself is minor
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.
The policy change is major. The changelog & porting guides are reviewed by people before upgrading. Let's make sure we over-communicate these changes.
I'm concerned if we do that, fewer people will ever see the warning. But honestly, since we only plan to package DEB and RPM for 3.8+, I'd be fine with doing it in the python package too. |
@samdoran docs entry added. |
The test
|
If we also add |
Also, |
@webknjaz the primary constraint on 3.8 for Ansible 2.11 is around split controller/remote testing in CI. We're assuming that won't be available until later in the 2.11 dev cycle, so rather than stopping all testing on everything < 3.8 until then, we just decided to do the "packaging/support only" requirement for 2.11. |
setup.py
Outdated
@@ -364,7 +364,7 @@ def get_dynamic_setup_params(): | |||
license='GPLv3+', | |||
# Ansible will also make use of a system copy of python-six and | |||
# python-selectors2 if installed but use a Bundled copy if it's not. | |||
python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*', | |||
python_requires='>=3.8', |
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.
I've gone ahead and added this change now. I can remove it, we can keep it, we can change it later. I'll discuss this with the other architects and confirm our plan.
Thank you, could we have a comment around testing? Just to confirm, would this mean testing for integration move to only py38? |
This comment has been minimized.
This comment has been minimized.
Co-authored-by: Matt Clay <matt@mystile.com>
Co-authored-by: Matt Clay <matt@mystile.com>
Co-authored-by: Matt Clay <matt@mystile.com>
Co-authored-by: Sviatoslav Sydorenko <wk.cvs.github@sydorenko.org.ua>
c060a18
to
9e2cadf
Compare
The big reason we are not making this a hard dep, by changing the code to require Python 3.8, is due to testing. What is on the roadmap for the 2.11 release is to implement split controller testing, where we can have different Python deps for the controller from that of the target. Right now in our CI, the controller and target are the same host. Once ansible-test has this functionality we'll drop support for Python versions older than 3.8. |
I'm merging this as is, without a |
SUMMARY
Emit warning when running on the controller with a Python older than 3.8
Ansible 2.11 will make Python 3.8 a soft dependency for the controller. Ansible 2.12 will require Python3.8 or newer to function on the controller.
This deprecation warning will help inform users of this change.
ISSUE TYPE
COMPONENT NAME
ADDITIONAL INFORMATION