> On Jun 1, 2017, at 1:09 PM, Barry Warsaw <ba...@python.org> wrote:
> 
> On Jun 02, 2017, at 02:14 AM, Chris Angelico wrote:
> 
>> But it also includes people on stable Linux distros, where they have
>> automatic updates provided by Red Hat or Debian or whomever, so a change like
>> this WILL propagate - particularly (a) as the window is three entire years,
>> and (b) if the change is considered important by the distro managers, which
>> is a smaller group of people to convince than the users themselves.
> [...]
>> So I'd be in the "yes" category. Across the next few years, I strongly
>> suspect that 2.7.14 will propagate reasonably well.
> 
> I'm not so sure about that, given long term support releases.  For Ubuntu, LTS
> releases live for 5 years:
> 
> https://www.ubuntu.com/info/release-end-of-life
> 
> By 2020, only Ubuntu 16.04 and 18.04 will still be maintained, so while 18.04
> will likely contain whatever the latest 2.7 is available at that time, 16.04
> won't track upstream point releases, but instead will get select cherry
> picks.  For good reason, there's a lot of overhead to backporting fixes into
> stable releases, and something as big as being suggested here would, in my
> best guess, have a very low chance of showing up in stable releases.
> 


Using 2.7.9 as a sort of benchmark here, currently 26% of downloads from PyPI 
are using a version of Python older than 2.7.9, 2 months ago that number was 
31%. (That’s total across all Python versions). Python >= 2.7.9, <3 is at 43% 
(previously 53%).

So in ~2.5 years 2.7.9+ has become > 50% of all downloads from PyPI while older 
versions of Python 2.7 are down to only ~25% of the total number of downloads 
made by pip. I was also curious about how this had changed over the past year 
instead of just the past two months, a year ago >=2.7,<2.7.9 accounted for 
almost 50% of all downloads from PyPI (compared to the 25% today). It *looks* 
like on average we’re dropping somewhere between 1.5% and 2% each month so a 
conservative estimate if these numbers hold, we’re be looking at single digit 
numbers for >=2.7,<2.7.9 in roughly 11 months, or 3.5 years after the release 
of 2.7.9.

If we assume that the hypothetical 2.7.14 w/ MemoryBio support would follow a 
similar adoption curve, we would expect to be able to mandate it for pip/etc in 
at a worst case scenario, 3-4 years after release.

In addition to that, pip 9 comes with a new feature that makes it easier to 
sunset support for versions of Python without breaking the world [1]. The 
likely scenario is that while pip 9+ is increasing in share Python <2.7.14 will 
be decreasing, and that would mean that we could *likely* start mandating it 
earlier, maybe at the 2 year mark or so.


[1] An astute reader might ask, why could you not use this same mechanism to 
simply move on to only supporting Python 3? It’s true we could do that, however 
as a rule we generally try to keep support for Pythons until the usage drops 
below some threshold, where that threshold varies based on how hard it is to 
continue supporting that version of Python and what the “win” is in terms of 
dropping it. Since we’re still at 90% of downloads from PyPI being done using 
Python 2, that suggests the threshold for Python 3.x is very far away and will 
extend beyond 2020 (I mean, we’re just *now* finally able to drop support for 
Python 2.6).

In case it’s not obvious, I am very much in support of this PEP.

—
Donald Stufft



_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to