Roadmap
Tickets which are necessary before we can truly automate Twisted releases.
See wiki:EDNS0#EDNS0
Removing Python 2.7 support from Twisted.
rodrigc wrote in #9278:
"I did the following to enable more warnings when running trial using Python 3.5 under Fedora 25:
python -Wall -m twisted.trial twisted
I saw a lot of ResourceWarnings for example:
twisted.trial._dist.test.test_disttrial DistTrialRunnerTests test_createLocalWorkers ... [OK] test_launchWorkerProcesses ... [OK] test_minimalWorker ... [OK] /home/vagrant/twisted5/src/twisted/trial/_dist/test/test_disttrial.py:217: ResourceWarning: unclosed file <_io.TextIOWrapper name='/home/vagrant/twisted5/src/_trial_temp/twisted.trial._dist.test.test_di/DistTrialRunnerTests/test_minimalWorker/dlun7z9m/temp/0/out.log' mode='w' encoding='UTF-8'>wisted5/src/_trial_temp/twisted.trial._dist.test.test_di/DistTrialRunnerTests/test_minimalWorker/dlun7z9m/temp/0/err.log' mode='w' encoding='UTF-8'> test_runUntilFailure ... [OK] /home/vagrant/twisted5/src/twisted/trial/_dist/test/test_disttrial.py:397: ResourceWarning: unclosed file <_io.TextIOWrapper name='/home/vagrant/twisted5/src/_trial_temp/twisted.trial._dist.test.test_di/DistTrialRunnerTests/test_runUntilFailure/bzgokndm/temp/0/out.log' mode='w' encoding='UTF-8'> /home/vagrant/twisted5/src/twisted/trial/_dist/test/test_disttrial.py:397: ResourceWarning: unclosed file <_io.TextIOWrapper name='/home/vagrant/twisted5/src/_trial_temp/twisted.trial._dist.test.test_di/DistTrialRunnerTests/test_runUntilFailure/bzgokndm/temp/0/err.log' mode='w' encoding='UTF-8'> test_runUsedDirectory ... [OK] /home/vagrant/twisted5/src/twisted/python/reflect.py:448: ResourceWarning: unclosed file <_io.FileIO name='/home/vagrant/twisted5/src/_trial_temp/twisted.trial._dist.test.test_di/DistTrialRunnerTests/test_runUncleanWarnings/08r9fpn6/temp/0/test.log' mode='wb' closefd=True> /home/vagrant/twisted5/src/twisted/python/reflect.py:448: ResourceWarning: unclosed file <_io.FileIO name='/home/vagrant/twisted5/src/_trial_temp/twisted.trial._dist.test.test_di/DistTrialRunnerTests/test_runUnexpectedError/77x3rje8/temp/0/test.log' mode='wb' closefd=True> /home/vagrant/twisted5/src/twisted/python/reflect.py:448: ResourceWarning: unclosed file <_io.FileIO name='/home/vagrant/twisted5/src/_trial_temp/twisted.trial._dist.test.test_di/DistTrialRunnerTests/test_runUntilFailure/bzgokndm/temp/0/test.log' mode='wb' closefd=True> /home/vagrant/twisted5/src/twisted/trial/_dist/test/test_disttrial.py:208: ResourceWarning: unclosed file <_io.TextIOWrapper name='/home/vagrant/twisted5/src/_trial_temp/twisted.trial._dist.test.test_di/DistTrialRunnerTests/test_runUsedDirectory/8qnv1k8q/temp/_trial_temp-1/3/out.log' mode='w' encoding='UTF-8'> /home/vagrant/twisted5/src/twisted/trial/_dist/test/test_disttrial.py:208: ResourceWarning: unclosed file <_io.TextIOWrapper name='/home/vagrant/twisted5/src/_trial_temp/twisted.trial._dist.test.test_di/DistTrialRunnerTests/test_runUsedDirectory/8qnv1k8q/temp/_trial_temp-1/3/err.log' mode='w' encoding='UTF-8'> /home/vagrant/twisted5/src/twisted/trial/_dist/test/test_disttrial.py:208: ResourceWarning: unclosed file <_io.TextIOWrapper name='/home/vagrant/twisted5/src/_trial_temp/twisted.trial._dist.test.test_di/DistTrialRunnerTests/test_runUsedDirectory/8qnv1k8q/temp/_trial_temp-1/2/out.log' mode='w' encoding='UTF-8'> /home/vagrant/twisted5/src/twisted/trial/_dist/test/test_disttrial.py:208: ResourceWarning: unclosed file <_io.TextIOWrapper name='/home/vagrant/twisted5/src/_trial_temp/twisted.trial._dist.test.test_di/DistTrialRunnerTests/test_runUsedDirectory/8qnv1k8q/temp/_trial_temp-1/2/err.log' mode='w' encoding='UTF-8'> /home/vagrant/twisted5/src/twisted/trial/_dist/test/test_disttrial.py:208: ResourceWarning: unclosed file <_io.TextIOWrapper name='/home/vagrant/twisted5/src/_trial_temp/twisted.trial._dist.test.test_di/DistTrialRunnerTests/test_runUsedDirectory/8qnv1k8q/temp/_trial_temp-1/1/out.log' mode='w' encoding='UTF-8'> /home/vagrant/twisted5/src/twisted/trial/_dist/test/test_disttrial.py:208: ResourceWarning: unclosed file <_io.TextIOWrapper name='/home/vagrant/twisted5/src/_trial_temp/twisted.trial._dist.test.test_di/DistTrialRunnerTests/test_runUsedDirectory/8qnv1k8q/temp/_trial_temp-1/1/err.log' mode='w' en: }}}" These can cause spurious test failures on Python 3 and resource leaks on PyPy. As they're discovered, they should be fixed.
Support PyPy as a platform.
This means getting this buildbot green - http://buildbot.twistedmatrix.com/builders/trusty64-pypy-2.4/ - and adding it to the supported list.
Make Twisted completely compatible with a reasonable Python 3.x release.
Tickets for fixing problems introduced by Python 3.x porting work should also be added to this milestone.
Publish PEP 561 stubs so that folks can type-check against Twisted.