[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

What should Debian do about Python 2? (was Re: next version of csvkit)



On Apr 01, 2017, at 05:12 PM, Ghislain Vaillant wrote:

>Pasting the relevant quotes below:
>
>"The 2.x series of Python is due for deprecation and will not be maintained
>past 2020 so it is recommended that Python 2 modules are not packaged unless
>necessary."

It's true that upstream will almost certainly end bug fix support for Python
2.7 (and thus the 2.x series) in 2020, with the exact date still TBD.  It's
not unlikely that source-only security fixes will continue upstream for some
indeterminate time after that, but it depends on quite a few factors, not the
least of which is core developers and an RM still interested in working on
Python 2.  Keep in mind that 2.7 will be *10 years old* at that point!

Distributions with long term support releases will also be continuing to
support Python 2.7 in some capacity after that.  Ubuntu's 16.04 LTS release
will live until 2021.  Other distros may have longer commitments.  I am hoping
that in Ubuntu, we will be able to demote Python 2.7 for the 18.04 LTS release
so that we won't be committed to supporting it until 2023, but we'll see about
that.

As for Debian, I do think we need to plan on how and when we're going to
downgrade our commitment to Python 2.  Yes, there will probably be Python 2
code bases for effectively forever, but that doesn't necessarily mean Debian's
commitment to it also has to be open ended.  It's not an easy decision or
transition, but I think it's inevitable.  Already we are seeing upstream
library authors beginning to drop Python 2 support, so I suspect at some point
we may have to split source packages if we think we still want to maintain
Python 2 and 3 for some packages.

>"The idea is to basically stop uploading new Python 2 only libraries,
>port things on the critical path, and swap leaf packages to Python 3."

I think we should be very strict about leaf packages.  If they support Python
3 we should not allow them to enter Debian as Python 2 applications, and all
new uploads of leaf applications should use Python 3 if at all possible.

For libraries that already support 2 and 3, I don't think we necessarily need
to actively drop Python 2 yet.  We have great tools, so it's usually just as
easy to continue supporting both.  I'm on the fence for new library packages,
but I suppose if it's also just as easy to support both, we might as well go
through NEW for both, since it's easier to drop binary packages than add them.

I think we should strongly discourage (or even reject?) new Python 2-only
library packages, and I think that's the scenario that the lintian tag is
trying to support.

>csvkit definitely qualifies as such leaf package, since it is a
>collection of command-line tools, not a Python library.

Does it support Python 3?  If so, then why not make them Python 3
applications?

Debian's long term plans for Python 2 would be a great topic to discuss at
Debconf.

-Barry


Reply to: