Skip to content

Remove support for Python 3.6? #372

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

Closed
8 tasks done
tomschr opened this issue Nov 17, 2022 · 2 comments
Closed
8 tasks done

Remove support for Python 3.6? #372

tomschr opened this issue Nov 17, 2022 · 2 comments
Assignees
Labels
Enhancement Not a bug, but increases or improves in value, quality, desirability, or attractiveness Question Unclear or open issue subject for debate Release_3.x.y Only for the major release 3

Comments

@tomschr
Copy link
Member

tomschr commented Nov 17, 2022

Situation

Python 3.6 has reached its end of life and isn't available for download in https://www.python.org/downloads/ anymore. At the time of writing (Nov 2022), the lowest version is 3.7.

Possible Solution/Idea

Remove support for Python 3.6 for semver3. Alternative would be to remove it in semver3.1.
After we get a clearer picture from the poll below we will act accordingly.

To remove support for Python 3.6, we need to adapt the following files:

  • setup.cfg in classifiers and python_requires
  • .github/workflows/python-testing.yml
  • pyproject.toml
  • tox.ini
  • README.rst
  • CONTRIBUTING.rst
  • Review documentation (examples that point to Python 3.6 needs an update)
  • Is setup.py still needed? Can it be removed? Yes, was only needed for compatibility reasons with Python 3.6.

Additional context


Hi @tlaferriere, any opinion? 🙂

@tomschr tomschr added Release_3.x.y Only for the major release 3 Enhancement Not a bug, but increases or improves in value, quality, desirability, or attractiveness labels Nov 17, 2022
@tlaferriere
Copy link
Contributor

I think we should drop support for python 3.6 in the next release.
Dropping support for python 3.6 does not mean all the previous versions published on PyPI will be removed and unavailable, so the impact for users on python 3.6 will not be felt if they do not upgrade the package indiscriminately. Also to prevent accidental upgrades, I think we can set the minimum python version in the setup.(py|cfg)and that should prevent python 3.6 users from installing it. Usually, users of eol python versions generally do not actively develop their applications, therefore would not want to use new features just for the sake of it.

Otherwise, I think dropping support for an eol python version on its own would not warrant a major version release for two reasons. First, it is not a public API change, which is what semver compatibility is all about. This would make it a patch release, since it is an implementation change (that may break dependencies of they depended on the"buggy" implementation). Second, there are other mechanisms to preserve compatibility on the python interpreter level in this context.

For these reasons, limited impact on the community and the fact that it is not a public API change, I think we should not think twice about dropping support for eol python versions, but make sure that users of eol python versions can't upgrade by using the appropriate configuration for our PyPI deployment.

@tomschr tomschr added the Question Unclear or open issue subject for debate label Nov 17, 2022
@tomschr
Copy link
Member Author

tomschr commented Nov 17, 2022

Thanks Thomas for your opinions. 👍 I had similar thoughts, but you summed it up perfectly.

I will leave the poll open for some time. If the majority agrees, I'll remove 3.6 and increase the minimum Python version to 3.7.

Thanks!

@tomschr tomschr self-assigned this Nov 17, 2022
tomschr added a commit to tomschr/python-semver that referenced this issue Dec 18, 2022
Python 3.6 reached its end of life and isn't supported anymore.
At the time of writing (Dec 2022), the lowest version is 3.7.
tomschr added a commit to tomschr/python-semver that referenced this issue Dec 18, 2022
Python 3.6 reached its end of life and isn't supported anymore.
At the time of writing (Dec 2022), the lowest version is 3.7.
tomschr added a commit that referenced this issue Dec 18, 2022
tomschr added a commit that referenced this issue Dec 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement Not a bug, but increases or improves in value, quality, desirability, or attractiveness Question Unclear or open issue subject for debate Release_3.x.y Only for the major release 3
Projects
None yet
Development

No branches or pull requests

2 participants