Skip to content
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

Drop support for Python 2.6 #4343

Merged
merged 16 commits into from
Mar 19, 2017
Merged

Drop support for Python 2.6 #4343

merged 16 commits into from
Mar 19, 2017

Conversation

dstufft
Copy link
Member

@dstufft dstufft commented Mar 18, 2017

Because I'm sure this PR is going to end up being used as justification for other projects to drop support for Python 2.6, here is the numbers currently.

Out of 703,045,938 total downloads in the past 30 days:

Python Version Download Count Percent
2.7 516479922 73%
Unknown 89296485 12%
3.5 39670724 5%
3.4 26387963 3%
2.6 16276653 2%
3.6 12938938 1%
3.3 1472289 0.2%
3.7 275573 0.03%

These numbers may seem a tad bit weird, because we're dropping support for 2.6 before 3.3 even though 3.3 has far less usage. That is largely because 3.3 is still supported by upstream until Sept 2017. For more information on 3.3 see #3796.

@@ -7,8 +7,6 @@ matrix:
- env: TOXENV=pep8
- env: TOXENV=py3pep8
- env: TOXENV=packaging
- python: 2.6 # these are just to make travis's UI a bit prettier

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might want to re-add the comment 😉

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment isn't true anymore either. Later versions of Python need it in order to download the Python version on demand.

@@ -5,7 +5,7 @@
try:
from collections import OrderedDict
except ImportError:
from pip._vendor.ordereddict import OrderedDict
from ordereddict import OrderedDict

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If _vendor.orderdict has also been removed, should this be only the from collections line now?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nah, this comes from html5lib and since we're no longer vendoring it then we leave the import alone.

@dmitrytokarev
Copy link

My 2 cents on downloads stats:
Python 2.6 comes with the OS on older distros. Hence people will not download it since they already have it. So if they would download Python that would one of the latest versions.

Python 2.6 doesn't come with pip so folks will need pip. It'd be nice if get_pip.py would be able to pick latest compatible pip version for a given platform e.g. CenOS 6.8 + Python 2.6.6

justanr pushed a commit to justanr/dateutil that referenced this pull request Jul 29, 2017
I would humbly like to suggest dateutil drop support for Python 2.6.

The last release of Python 2.6 was 2013-10-29, over 3 years ago. It is
no longer receiving security fixes.

https://www.python.org/dev/peps/pep-0361/

The pip project itself has recently dropped support for 2.6. Their
numbers estimate that Python 2.6 accounts for ~2% of their downloads.

pypa/pip#4343

For projects that still use Python 2.6, they can continue to pip install
an older version.

I've tried my best to remove as much 2.6 specific code as I can,
including the 'Programming Language :: Python :: 2.6' trove classifier
from setup.py. I've also removed Travis CI testing, which should result
in faster testing and fewer wasted resources.

Code changed:

- Removed Python2.6 from testing configuration
- setup.py cleanups due to fewer version complications
- Removed unittest2 dependency and monkey patching
- Use set literals
- Use dict comprehension
- Remove total_seconds workaround
- Remove TarFile.open() context manager workaround

Thanks for considering.
jonafato added a commit to jonafato/pipreqs that referenced this pull request Oct 20, 2017
The following versions of Python are no longer supported by the core
developers of Python and pip:

- Python 2.6
    - End of life on 2013-10-29 [1]
    - Dropped from pip on 2017-03-18 [2]
- Python 3.3
    - End of life on 2017-09-29 [3]
    - Dropped from pip on 2017-03-22 [4]

Developers should migrate off of these versions ASAP, as they may be
missing critical security fixes.

[1] https://www.python.org/dev/peps/pep-0361/#release-lifespan
[2] pypa/pip#4343
[3] https://www.python.org/dev/peps/pep-0398/#lifespan
[4] pypa/pip#4355
@lock lock bot added the auto-locked Outdated issues that have been locked by automation label Jun 3, 2019
@lock lock bot locked as resolved and limited conversation to collaborators Jun 3, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
auto-locked Outdated issues that have been locked by automation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants