[Twisted-Python] Removing support for old Python 3 versions

Amber Brown hawkowl at atleastfornow.net
Mon Feb 20 14:46:51 MST 2017


Hi everyone!

Currently, Twisted supports five Python versions. These are 2.7, 3.3, 3.4,
3.5, and now 3.6. This is more Python versions than Twisted has ever really
supported in the past, and even though it is great to support a lot of
runtimes, it is becoming a greater burden on Twisted to support so many.

The major reasons for this is that newer Python 3 versions include useful
features (such as % formatting for bytes) that earlier ones do not. This
leads us to having two, or sometimes three, ways of doing something - the
Python 2 way, the early Python 3 way, and the new Python 3 way. This
introduces complexity (and bugs!) and means we can't really take advantage
of anything nice Python 3 gives us in the future, as we still remain
compatible with 3.3 and 3.4.

As such, I would like to remove support for these Python versions. Using
recent statistics (https://langui.sh/2016/12/09/data-driven-decisions/) we
can infer that Python 3.3 is on the whole uncommon, despite it being the
default Python 3 for Ubuntu 14.04 LTS. We can further infer that adoption
of new major versions of Python 3 (Python 3.5 was barely a year old by the
time of these stats and yet dwarfed 3.4) is rapid, and so it seems only the
latest two or so are worth supporting.

The other rationale I have for this is that we no longer have the problem
of CentOS 6-style Python 2.6 being put into new production because it's
what people ran -- the Brave New World of Docker and containerisation puts
us in a different position than we were with Python 2.6. Although this is
purely anecdotal, it appears lots of Python 3 installations are not through
the operating system (due to how slow the cycles are, and the proliferation
of PPAs and Docker containers), and therefore being tied to whatever
current OSs support is not doing any Python 3 users a real service.

With this rationale, I propose that the next version of Twisted (most
likely 17.3) will be the last to support Python 3.3. The question of Python
3.4 support is something that will need further discussion (where 3.3 just
plain has the writing on the wall), but I believe a removal of support not
long after is reasonable, considering the 3.4 installed base is smaller
than that of 2.6.

Thoughts?

- Amber Brown, Release Owl
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://twistedmatrix.com/pipermail/twisted-python/attachments/20170221/41838b2d/attachment.html>


More information about the Twisted-Python mailing list