Pytest: deprecate python 2.7 and 3.4 support

Created on 10 Jan 2019  路  19Comments  路  Source: pytest-dev/pytest

i just noticed pip do this for py3.4 and i believe its nice to have that kind of warning (preferably without chaning exit codes)

backward compatibility deprecation

All 19 comments

Weird, I don't see any warnings when using pip 18.1 with py34... can you post the warning pip emits just to get an idea?

Thanks!

What's the timeline for dropping Python 2.7? If it's no later than 2020, you could consider joining the pledge at https://python3statement.org.


For info, here's three years of pytest downloads from PyPI, showing a big drop off for Python 2.7 last year, and Python 3.4 has quite a low share.

image

https://medium.com/@hugovk/python-version-share-over-time-3-1a2f2449efb2

Here's the pip installs for pytest from PyPI for December 2018:

| category | percent | downloads |
|----------|--------:|----------:|
| 3.6 | 50.20% | 3,066,088 |
| 2.7 | 30.31% | 1,851,425 |
| 3.5 | 8.13% | 496,704 |
| 3.7 | 6.68% | 407,986 |
| 3.4 | 2.68% | 163,663 |
| null | 1.86% | 113,501 |
| 2.6 | 0.10% | 5,953 |
| 3.3 | 0.02% | 1,157 |
| 3.8 | 0.01% | 800 |
| 3.2 | 0.00% | 39 |
| 2.8 | 0.00% | 16 |
| Total | | 6,107,332 |

Source: pypistats python_minor --last-month pytest

@hugovk current plan is to drop support from the mainline together with 3.4 mid 2020 and move the maintenance branch for 2.x support from core team managed to community managed core only doing releases at 2.7 eol

move the maintenance branch for 2.x support from core team managed to community managed core only doing releases at 2.7 eol

Actually I thought the core team would be porting bug fixes to the maintenance branch until 2020, and only after 2020 it would become community managed.

@nicoddemus thats what i meant to say, i'm sorry if it came out confusing

Ahh OK.

We should add a page to the docs somewhere stating our current plans btw.

In case you want to drop it before mid-2020, Python 3.4 is EOL in just two months. And pip is dropping it in version 19.2 (https://github.com/pypa/pip/pull/6123), due in July 2019 (https://github.com/pypa/pip/pull/5324).

Python | EOL
-- | --
2.7 | 2020-01-01
3.4 | 2019-03-16
3.5 | 2020-09-13

python 2.7 and 3.4 will be dropped at the same time

Here's the warning users on Python 2 see using pip 19:

位 pip install -U -e .
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. 
Please upgrade your Python as Python 2.7 won't be maintained after that 
date. A future version of pip will drop support for Python 2.7.

closing as fixed by #4690 -- 4.2 is unblocked by this :+1:

It would be nice to be able to disable this with some environment variable when you don't have a choice, is that possible?

Hmm good point. I wonder if pip does this?

Pip doesn't, but you can do something like:

PYTHONWARNINGS=ignore:Please.upgrade::pip._internal.cli.base_command

https://github.com/pypa/pip/pull/6147#issuecomment-457910432

They have a feature request to be able to selectivity silence any logged message:

https://github.com/pypa/pip/pull/6147#issuecomment-456820919
https://github.com/pypa/pip/issues/6119

Oh that's an actual Python warning? I'm surprised, didn't look like one.

I implemented it differently, it just writes the message to the terminal, which I like because it won't cause test suites that turn warnings into errors to fail.

Anyway I would be happy to implement a mechanism to disable that, we just have to agree on the how.

We should do that in a separate issue though, I think.

can you open one?

Was this page helpful?
0 / 5 - 0 ratings