Description
Plagiarizing heavily from the counterpart proposal conda/conda-build#4024:
Python 2.7 reached its end-of-life on 2020-01-01. Currently, conda still supports installation into a Python 2.7 environment, and code, tests, and CI infrastructure are still being developed with Python 2.7 support in mind. I am proposing dropping support for installing conda into a Python 2.7 environment.
At the same time, it would be good to define the minimum Python 3 version for conda's install environment. I am proposing that this minimum be Python 3.6 because:
- Python 3.5 reaches its end of life next month (2020-09-13), which will be before this proposal is implemented.
- NEP 29 recommended dropping Python 3.5 support two months ago (2020-06-23).
- Python 3.6 allow for using new language features and improvements, including f-strings, improved annotations, the
os.PathLike
interface, and thesecrets
module.
The end result would be that future conda releases would require Python 3.6 or newer for installation. The benefits of dropping Python 2.7 and pre-3.6 versions include the ability to simplify the source code using modern Python syntax and features. Additionally, the test matrix would be reduced allowing for quicker feedback and more stability from the CI on PRs.
The scope of this change should result in a major version bump (to 5.0.0).
Note: future conda releases will still be able to create environments containing Python 2.7 and pre-3.6 packages. This proposal would only affect the environment where conda itself it installed.
What do others think?