[Twisted-Python] A Proposal for reducing the burden of developing on Twisted by dropping Python 2 support

Amber Brown hawkowl at atleastfornow.net
Mon Mar 25 04:15:22 MDT 2019

Hi everyone,

Since the Python 2 EOL date is rapidly approaching, I thought it was 
time we consider dropping Python 2 support.

I personally find that Python 2 compat adds a huge amount of overhead 
when working on and maintaining Twisted, and think that with the current 
maintainer availability, dropping it sooner rather than later would have 
a beneficial effect on how much work we spend on shims/compat, 
complexity, and our ability to ship new features, as well as onboarding 
people who are interested in the project, but have no interest (or 
experience!) in Python 2.7.

It is basically summed up by doing a feature freeze on an agreed-upon 
version of Twisted, that will be the last version released for 2.7. It 
would be abnormal in that it would get security fixes (our current 
policy is to only release them for current versions) and critical 
bugfixes, but would otherwise be frozen.

One of my rationales is that from some analysis of PyPI download 
statistics, the vast majority of Python 2 users are using old versions 
of Twisted, while nearly all our Python 3 users are on the latest 
version. As such, I believe freezing a version that will get security 
updates but no new features would not be a massive loss to those stuck 
on Python 2 for whatever reason.

Twisted's compatibility policy would still apply, ensuring that Python 
2/3 compatible software using Twisted would be able to use the older 
Twisted version on Python 2, and the newer version on Python 3, as you 
would usually expect.

You can find the proposal here, in this handy-dandy Google Doc: 

Comments are welcome, as well as which timeline seems reasonable.

- Amber

More information about the Twisted-Python mailing list