Twisted 22.8.0.rc1 (2022-08-28)
Features
- twisted.internet.defer.maybeDeferred will now schedule a coroutine result as asynchronous operation and return a Deferred that fires with the result of the coroutine. (#10327)
- Twisted now works with Cryptography versions 37 and above, and as a result its minimum TLS protocol version has been upgraded to TLSv1.2. (#10377)
Bugfixes
twisted.internet.base.DelayedCall.__repr__
will no longer raiseAttributeError
if theDelayedCall
was created before debug mode was enabled. As a side-effect,twisted.internet.base.DelayedCall.creator
is now defined asNone
in cases where previously it was undefined. (#8306)- twisted.internet.iocpreactor.udp now properly re-queues its listener when there is a failure condition on the read from the socket. (#10052)
- twisted.internet.defer.inlineCallbacks no longer causes confusing StopIteration tracebacks to be added to the top of tracebacks originating in triggered callbacks (#10260)
- The typing of twisted.internet.task.react no longer constrains the type of argv. (#10289)
ContextVar.reset()
now works correctly insideinlineCallbacks
functions and coroutines. (#10301)- Implement twisted.python.failure._Code.co_positions for compatibility with Python 3.11. (#10336)
- twisted.pair.tuntap._TUNSETIFF and ._TUNGETIFF values are now correct parisc, powerpc and sparc architectures. (#10339)
Improved Documentation
- The release process documentation was updated to include information about
doing a security release. (#10324) - The development and policy documentation pages were moved into the same
directory that is now placed inside the documentation root directory. (#11575)
Deprecations and Removals
- Python 3.6 is no longer supported.
Twisted 22.4.0 was the last version with support for Python 3.6. (#10304)
Misc
- #9437, #9495, #10066, #10275, #10318, #10325, #10328, #10329, #10331, #10349, #10350, #10352, #10353, #11561, #11564, #11567, #11569, #11585, #11592, #11600, #11606, #11610, #11612, #11614
Conch
Bugfixes
- twisted.conch.checkers.UNIXAuthorizedKeysFiles now uses the filesystem encoding to decode usernames before looking them up in the password database, so it works on Python 3. (#10286)
- twisted.conch.ssh.SSHSession.request_env no longer gives a warning if the session does not implement ISessionSetEnv. (#10347)
- The cftp command line (and `twisted.conch.scripts.cftp.SSHSession.extReceived`) no longer raises an unhandled error when receiving data on stderr from the server. (#10351)
Misc
~~~~
- #10330
Web
---
Features
- twisted.web.template.renderElement now combines consecutive, sychronously-available bytes up to a fixed size limit into a single string to pass to
IRequest.write
instead of passing them all separately. This greatly reduces the number of chunks in the response. (#10348)
Misc
- #11604
Mail
----
Bugfixes
- twisted.mail.maildir.MaildirMessage now use byte header to avoid incompatibility with the FileMessage which writes bytes not strings lines to a message file (#10244)
Words
Bugfixes
- twisted.words.protocols.irc.IRCClient now splits overly long NOTICEs and NOTICEs containing \n before sending. (#10285)
Names
-----
Bugfixes
- twisted.names.dns logs unparsable messages rather than generating a Failure instance (#9723)
Trial
Features
- ``trial --jobs=N --exitfirst`` is now supported. (#9654)
Bugfixes
trial --jobs=N --until-failure ...
now reports the correct number of tests run after each iteration. (#10311)trial -jN ...
will now pass errors and failures toIReporter
methods as instances ofWorkerException
instead ofstr
. (#10333)
Misc
- #0, #10319, #10338, #11571