Skip to content

Commit

Permalink
Revert "Run towncrier 21.2.0-rc1"
Browse files Browse the repository at this point in the history
This reverts commit d6c6cb8.
  • Loading branch information
rodrigc committed Feb 28, 2021
1 parent 865fe65 commit 30ec938
Show file tree
Hide file tree
Showing 226 changed files with 82 additions and 183 deletions.
183 changes: 0 additions & 183 deletions NEWS.rst
Expand Up @@ -3,189 +3,6 @@ http://twistedmatrix.com/trac/ticket/<number>

.. towncrier release notes start
Twisted 21.2.0.rc1 (2021-02-14)
===============================

Features
--------

- The enableSessions argument to twisted.internet.ssl.CertificateOptions now
actually enables/disables OpenSSL's session cache. Also, due to
session-related bugs, it defaults to False. (#9583)
- twisted.internet.defer.inlineCallbacks and ensureDeferred will now associate a contextvars.Context with the coroutines they run, meaning that ContextVar objects will maintain their value within the same coroutine, similarly to asyncio Tasks. This functionality requires Python 3.7+, or the contextvars PyPI backport to be installed for Python 3.5-3.6. (#9719, #9826)
- twisted.internet.defer.Deferred.fromCoroutine has been added. This is similar to the existing ensureDeferred function, but is named more consistently inside Twisted and does not pass through Deferreds. (#9825)
- trial now allows the @unittest.skipIf decorator to specify that an entire test class should be skipped. (#9829)
- The twisted.python.deprecate.deprecatedKeywordParameter decorator can be used to mark a keyword paramater of a function or method as deprecated. (#9844)
- Projects using Twisted can now perform type checking against a Twisted
installation, for example using mypy. (#9908)
- twisted.python.util.InsensitiveDict now fully implements MutableMapping. (#9919)
- Python 3.8 is now tested and supported. (#9955)
- Support a coroutine function in twisted.internet.task.react (#9974)


Bugfixes
--------

- twisted.web.twcgi.CGIProcessProtocol.processEnded(...) now handles an already-finished request, for example when request.connectionLost(...) was called previously. (#9468)
- Twisted's dependency on PyHamcrest has been moved from the base package to the new "test" extra. Consequently the test extra must be installed for Twisted's test suite to pass. (#9509)
- Fixed serialization of timedelta, date, and time objects in twisted.spread. (#9716)
- twisted.internet.asyncioreactor.AsyncioSelectorReactor now raises an exception if instantiated with an event loop which is not compatible with asyncio.SelectorEventLoop. This fixes the AsyncioSelectorReactor in Python 3.8+ on Windows, where in bp-34687 the default Windows asyncio event loop was changed to ProactorEventLoop. Applications that use AsyncioSelectorReactor on Windows with Python 3.8+ must call asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) before instantiating and running AsyncioSelectorReactor. (#9766)
- twisted.internet.process.registerReapProcessHandler and ._BaseProcess.reapProcess will no longer raise a TypeError when processing a None PID (#9775)
- INotify will close its file descriptor if a directory is automatically removed by twisted from the watchlist because it's deleted, avoiding orphaned filedescriptors. (#9777)
- DelayedCall.reset() is now working properly with asyncioreactor (#9780)
- AsyncioSelectorReactor.seconds() now correctly returns an epoch time. (#9787)
- The _connDone parameter has been removed from twisted.internet.abstract.FileDescriptor.loseConnection()'s signature in order to match the signature in the base class twisted.internet._newtls.ConnectionMixin loseConnection(). (#9849)
- The Gtk3 reactor now runs on Wayland-only sessions (#9904)
- Descriptive error messages from twisted.internet.error are now present when running with 'python -OO'. (#9918)
- Comparator methods such as __eq__() now always return NotImplemented for uncomparable types. (#9919)


Improved Documentation
----------------------

- The narrative docs now contains the associated Twisted version and the date
when they were generated. (#3945)
- The "Writing a twistd plugin" howto now explains how to deploy twistd plugins using Python packaging and pip (#9243)
- (#9868, #9873, #9874)
- Fix a typo in "Introduction to Deferreds" document. (#9948)
- The Twisted Coding Standard has been changed to refer to The Black code style for guidelines regarding whitespace and line lengths. (#9957)
- Exempt ``__repr__``, ``__slots__`` and other ``@attrs.define`` related changes from compatibility policy. (#9982)
- Fix many docstring mistakes flagged by new sanity checks in pydoctor. (#10021)
- Fix a few dozen broken links to API documentation pages. (#10057)


Deprecations and Removals
-------------------------

- twisted.cred.credentials.UsernameHashedPassword is now deprecated because it doesn't hash the password, causing it to return the wrong result. (#8368)
- twisted.news is now removed from the codebase. (This module was never installed on Python 3.) (#9782)
- Support for Python 2.7 has been removed. Twisted now supports only Python versions 3.5/3.6/3.7. (#9790)
- twisted.pair.ethernet.IEthernetProtocol.addProto()'s interface was changed to match the existing implementations in the Twisted source code. (#9877)
- twisted.python.filepath.FilePath.statinfo was deprecated in Twisted 15.0.0 and has now been removed. (#9881)
- The parameters to twisted.internet.base.ReactorBase.addSystemEventTrigger(), twisted.internet.base.ReactorBase.callWhenRunning(), twisted.internet.base.ReactorBase.callLater(), twisted.internet.task.Clock.callLater() have been renamed to match the parameters defined in the following interfaces: twisted.internet.interfaces.IReactorCore, twisted.internet.interfaces.IReactorTime. (#9897)
- Functions and types in twisted.python.compat that existed to support the transition from Python 2 to 3 have been deprecated. (#9922)
- twisted.logger.LoggingFile.softspace has been deprecated. (#10042)
- twisted.python.win32.WindowsError and FakeWindowsError have been deprecated. (#10053)
- twisted.mail.pop3client has been renamed to twisted.mail._pop3client, since it has always been a private implementation module. (#10054)


Misc
----

- #5356, #6903, #6986, #7945, #9306, #9512, #9531, #9622, #9652, #9718, #9744, #9768, #9773, #9776, #9778, #9781, #9784, #9785, #9788, #9789, #9791, #9793, #9795, #9796, #9797, #9798, #9800, #9802, #9803, #9808, #9809, #9810, #9811, #9812, #9820, #9823, #9827, #9833, #9837, #9840, #9842, #9846, #9847, #9848, #9850, #9851, #9852, #9854, #9855, #9856, #9857, #9858, #9861, #9862, #9863, #9864, #9865, #9866, #9867, #9869, #9870, #9871, #9872, #9876, #9878, #9879, #9880, #9882, #9883, #9884, #9886, #9889, #9890, #9891, #9892, #9895, #9896, #9898, #9899, #9902, #9903, #9916, #9917, #9921, #9924, #9927, #9928, #9936, #9953, #9954, #9956, #9959, #9960, #9969, #9970, #9971, #9975, #9976, #9977, #9978, #9979, #9980, #9981, #9983, #9985, #9986, #9987, #9988, #9989, #9991, #9992, #9995, #9999, #10000, #10002, #10009, #10010, #10011, #10014, #10015, #10018, #10025, #10027, #10029, #10032, #10033, #10034, #10036, #10038, #10043, #10044, #10046, #10054, #10059, #10060, #10061, #10063, #10064, #10065, #10069, #10080


Conch
-----

Features
~~~~~~~~

- twisted.conch.ssh now supports Ed25519 keys (requires OpenSSL >= 1.1.1b). (#8966)
- twisted.conch.ssh.session.SSHSession can now accept environment variables sent by the client, if the SSH avatar implements the new ISessionSetEnv interface. (#9315)
- twisted.conch.ssh.keys.Key.fromString and twisted.conch.ssh.keys.Key.toString now normalize Unicode passphrases as required by NIST 800-63B. (#9736)
- twisted.conch.telnet now implements EOR (End of Record) command (RFC 885) (#9875)


Bugfixes
~~~~~~~~

- t.c.ssh.filetransfer.FileTransferClient now errbacks any outstanding requests if the connection is lost before a reply is received. (#9571)
- t.c.ssh.filetransfer.FileTransferClient immediately errbacks any attempt to send a request on a closed channel. (#9572)
- twisted.conch.ssh.session.SSHSession now accepts environment variables also for multiplexed SSH session. (#10016)


Improved Documentation
~~~~~~~~~~~~~~~~~~~~~~

- construct and assign portal and checkers consistently in ssh server example (#9578)


Misc
~~~~

- #6446, #9571, #9831, #9913


Web
---

Bugfixes
~~~~~~~~

- twisted.web.http.Request.getRequestHostname now supports IPv6 literal hostnames
in HTTP host headers. (#6014)
- Fixed unexpected exception by handling subclass of TaskFinished when FileBodyProducer's task stopped twice. (#6528)
- Importing twisted.web.client no longer has the side effect of initializing the reactor. (#9774)
- Ensure that all calls to connectionLost use a Failure instance in the HTTP 2 code. (#9817)
- twisted.web.util.ParentRedirect has been fixed and documented. It was broken by a security fix in Twisted 19.2.0. (#9835)
- xmlrpc's Proxy class now verifies HTTPS certificates against the system bundle. (#9836)
- twisted.web.twcgi can now handle url parameters in python 3 (#9887)
- defer reactor import in twisted.web.xmlrpc (#9931)
- twisted.web.RedirectAgent now supports 308 redirects (#9940)
- Fixed an error where twisted.web.http.requestReceived() tries to encode a NoneType returned by cgi.parse_multipart when a multipart body does not contain a "content-disposition" definition. (#10084)


Improved Documentation
~~~~~~~~~~~~~~~~~~~~~~

- xmlrpc's QueryFactory class is now public, more explanation for xmlrpc's queryFactory, and new xmlrpc-debug.py example script for debugging raw XML-RPC traffic. (#9350)
- twisted.web.client.ContentDecoderAgent's documentation has been corrected and improved. (#9742)


Misc
~~~~

- #6446, #9758, #9801, #9831, #9834, #9841


Mail
----

Bugfixes
~~~~~~~~

- twisted.mail.smtp.ESMTPSender no longer forces TLSv1.0 when used without explicit context factory. (#9740)


Misc
~~~~

- #6446, #9831, #9832, #9900, #9910


Words
-----

Misc
~~~~

- #9901


Names
-----

Features
~~~~~~~~

- twisted.names.hosts.Resolver and twisted.names.hosts.searchFileForAll() now ignore malformed lines in hosts files like /etc/hosts (#9752)
- New interface IEncodableRecord combines IEncodable and IRecord, which is useful when using type annotations. (#9920)


Bugfixes
~~~~~~~~

- twistd -n dns --pyzone example-domain.com will no longer throw an exception on startup with Python 3. (#9783)
- twist dns --pyzone example-domain.com now works on Python 3. (#9786)


Misc
~~~~

- #9749


Twisted 20.3.0 (2020-03-13)
===========================

Expand Down
1 change: 1 addition & 0 deletions src/twisted/conch/newsfragments/10016.bugfix
@@ -0,0 +1 @@
twisted.conch.ssh.session.SSHSession now accepts environment variables also for multiplexed SSH session.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/conch/newsfragments/8966.feature
@@ -0,0 +1 @@
twisted.conch.ssh now supports Ed25519 keys (requires OpenSSL >= 1.1.1b).
1 change: 1 addition & 0 deletions src/twisted/conch/newsfragments/9315.feature
@@ -0,0 +1 @@
twisted.conch.ssh.session.SSHSession can now accept environment variables sent by the client, if the SSH avatar implements the new ISessionSetEnv interface.
1 change: 1 addition & 0 deletions src/twisted/conch/newsfragments/9571.bugfix
@@ -0,0 +1 @@
t.c.ssh.filetransfer.FileTransferClient now errbacks any outstanding requests if the connection is lost before a reply is received.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/conch/newsfragments/9572.bugfix
@@ -0,0 +1 @@
t.c.ssh.filetransfer.FileTransferClient immediately errbacks any attempt to send a request on a closed channel.
1 change: 1 addition & 0 deletions src/twisted/conch/newsfragments/9578.doc
@@ -0,0 +1 @@
construct and assign portal and checkers consistently in ssh server example
1 change: 1 addition & 0 deletions src/twisted/conch/newsfragments/9736.feature
@@ -0,0 +1 @@
twisted.conch.ssh.keys.Key.fromString and twisted.conch.ssh.keys.Key.toString now normalize Unicode passphrases as required by NIST 800-63B.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/conch/newsfragments/9875.feature
@@ -0,0 +1 @@
twisted.conch.telnet now implements EOR (End of Record) command (RFC 885)
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/mail/newsfragments/9740.bugfix
@@ -0,0 +1 @@
twisted.mail.smtp.ESMTPSender no longer forces TLSv1.0 when used without explicit context factory.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/names/newsfragments/9752.feature
@@ -0,0 +1 @@
twisted.names.hosts.Resolver and twisted.names.hosts.searchFileForAll() now ignore malformed lines in hosts files like /etc/hosts
1 change: 1 addition & 0 deletions src/twisted/names/newsfragments/9783.bugfix
@@ -0,0 +1 @@
twistd -n dns --pyzone example-domain.com will no longer throw an exception on startup with Python 3.
1 change: 1 addition & 0 deletions src/twisted/names/newsfragments/9786.bugfix
@@ -0,0 +1 @@
twist dns --pyzone example-domain.com now works on Python 3.
1 change: 1 addition & 0 deletions src/twisted/names/newsfragments/9920.feature
@@ -0,0 +1 @@
New interface IEncodableRecord combines IEncodable and IRecord, which is useful when using type annotations.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/10000.misc
@@ -0,0 +1 @@

Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/10021.doc
@@ -0,0 +1 @@
Fix many docstring mistakes flagged by new sanity checks in pydoctor.
Empty file.
Empty file.
2 changes: 2 additions & 0 deletions src/twisted/newsfragments/10029.misc
@@ -0,0 +1,2 @@
twisted.internet.iocpreactor.iocpsupport was moved to a separate package.
With this change the main Twisted package is a OS independent wheel.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/10034.misc
@@ -0,0 +1 @@
Update the release process documentation.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/10042.removal
@@ -0,0 +1 @@
twisted.logger.LoggingFile.softspace has been deprecated.
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/10053.removal
@@ -0,0 +1 @@
twisted.python.win32.WindowsError and FakeWindowsError have been deprecated.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/10054.removal
@@ -0,0 +1 @@
twisted.mail.pop3client has been renamed to twisted.mail._pop3client, since it has always been a private implementation module.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/10057.doc
@@ -0,0 +1 @@
Fix a few dozen broken links to API documentation pages.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
2 changes: 2 additions & 0 deletions src/twisted/newsfragments/3945.doc
@@ -0,0 +1,2 @@
The narrative docs now contains the associated Twisted version and the date
when they were generated.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/6986.misc
@@ -0,0 +1 @@

Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/8368.removal
@@ -0,0 +1 @@
twisted.cred.credentials.UsernameHashedPassword is now deprecated because it doesn't hash the password, causing it to return the wrong result.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9243.doc
@@ -0,0 +1 @@
The "Writing a twistd plugin" howto now explains how to deploy twistd plugins using Python packaging and pip
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9306.misc
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions src/twisted/newsfragments/9468.bugfix
@@ -0,0 +1 @@
twisted.web.twcgi.CGIProcessProtocol.processEnded(...) now handles an already-finished request, for example when request.connectionLost(...) was called previously.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9509.bugfix
@@ -0,0 +1 @@
Twisted's dependency on PyHamcrest has been moved from the base package to the new "test" extra. Consequently the test extra must be installed for Twisted's test suite to pass.
Empty file.
Empty file.
3 changes: 3 additions & 0 deletions src/twisted/newsfragments/9583.feature
@@ -0,0 +1,3 @@
The enableSessions argument to twisted.internet.ssl.CertificateOptions now
actually enables/disables OpenSSL's session cache. Also, due to
session-related bugs, it defaults to False.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9652.misc
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions src/twisted/newsfragments/9716.bugfix
@@ -0,0 +1 @@
Fixed serialization of timedelta, date, and time objects in twisted.spread.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9719.feature
@@ -0,0 +1 @@
twisted.internet.defer.inlineCallbacks and ensureDeferred will now associate a contextvars.Context with the coroutines they run, meaning that ContextVar objects will maintain their value within the same coroutine, similarly to asyncio Tasks. This functionality requires Python 3.7+, or the contextvars PyPI backport to be installed for Python 3.5-3.6.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9766.bugfix
@@ -0,0 +1 @@
twisted.internet.asyncioreactor.AsyncioSelectorReactor now raises an exception if instantiated with an event loop which is not compatible with asyncio.SelectorEventLoop. This fixes the AsyncioSelectorReactor in Python 3.8+ on Windows, where in bp-34687 the default Windows asyncio event loop was changed to ProactorEventLoop. Applications that use AsyncioSelectorReactor on Windows with Python 3.8+ must call asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) before instantiating and running AsyncioSelectorReactor.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9773.misc
@@ -0,0 +1 @@
Use twisted.logger in conch instead of legacy logger
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9775.bugfix
@@ -0,0 +1 @@
twisted.internet.process.registerReapProcessHandler and ._BaseProcess.reapProcess will no longer raise a TypeError when processing a None PID
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9777.bugfix
@@ -0,0 +1 @@
INotify will close its file descriptor if a directory is automatically removed by twisted from the watchlist because it's deleted, avoiding orphaned filedescriptors.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9780.bugfix
@@ -0,0 +1 @@
DelayedCall.reset() is now working properly with asyncioreactor
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9782.removal
@@ -0,0 +1 @@
twisted.news is now removed from the codebase. (This module was never installed on Python 3.)
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9787.bugfix
@@ -0,0 +1 @@
AsyncioSelectorReactor.seconds() now correctly returns an epoch time.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9790.removal
@@ -0,0 +1 @@
Support for Python 2.7 has been removed. Twisted now supports only Python versions 3.5/3.6/3.7.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9798.misc
@@ -0,0 +1 @@

Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9825.feature
@@ -0,0 +1 @@
twisted.internet.defer.Deferred.fromCoroutine has been added. This is similar to the existing ensureDeferred function, but is named more consistently inside Twisted and does not pass through Deferreds.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9826.feature
@@ -0,0 +1 @@
twisted.internet.defer.inlineCallbacks and ensureDeferred will now associate a contextvars.Context with the coroutines they run, meaning that ContextVar objects will maintain their value within the same coroutine, similarly to asyncio Tasks. This functionality requires Python 3.7+, or the contextvars PyPI backport to be installed for Python 3.5-3.6.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9829.feature
@@ -0,0 +1 @@
trial now allows the @unittest.skipIf decorator to specify that an entire test class should be skipped.
Empty file.
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9844.feature
@@ -0,0 +1 @@
The twisted.python.deprecate.deprecatedKeywordParameter decorator can be used to mark a keyword paramater of a function or method as deprecated.
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9849.bugfix
@@ -0,0 +1 @@
The _connDone parameter has been removed from twisted.internet.abstract.FileDescriptor.loseConnection()'s signature in order to match the signature in the base class twisted.internet._newtls.ConnectionMixin loseConnection().
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9877.removal
@@ -0,0 +1 @@
twisted.pair.ethernet.IEthernetProtocol.addProto()'s interface was changed to match the existing implementations in the Twisted source code.
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9881.removal
@@ -0,0 +1 @@
twisted.python.filepath.FilePath.statinfo was deprecated in Twisted 15.0.0 and has now been removed.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9897.removal
@@ -0,0 +1 @@
The parameters to twisted.internet.base.ReactorBase.addSystemEventTrigger(), twisted.internet.base.ReactorBase.callWhenRunning(), twisted.internet.base.ReactorBase.callLater(), twisted.internet.task.Clock.callLater() have been renamed to match the parameters defined in the following interfaces: twisted.internet.interfaces.IReactorCore, twisted.internet.interfaces.IReactorTime.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9902.misc
@@ -0,0 +1 @@

Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9904.bugfix
@@ -0,0 +1 @@
The Gtk3 reactor now runs on Wayland-only sessions
2 changes: 2 additions & 0 deletions src/twisted/newsfragments/9908.feature
@@ -0,0 +1,2 @@
Projects using Twisted can now perform type checking against a Twisted
installation, for example using mypy.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9918.bugfix
@@ -0,0 +1 @@
Descriptive error messages from twisted.internet.error are now present when running with 'python -OO'.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9919.bugfix
@@ -0,0 +1 @@
Comparator methods such as __eq__() now always return NotImplemented for uncomparable types.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9919.feature
@@ -0,0 +1 @@
twisted.python.util.InsensitiveDict now fully implements MutableMapping.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9922.removal
@@ -0,0 +1 @@
Functions and types in twisted.python.compat that existed to support the transition from Python 2 to 3 have been deprecated.
Empty file.
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9948.doc
@@ -0,0 +1 @@
Fix a typo in "Introduction to Deferreds" document.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9955.feature
@@ -0,0 +1 @@
Python 3.8 is now tested and supported.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9957.doc
@@ -0,0 +1 @@
The Twisted Coding Standard has been changed to refer to The Black code style for guidelines regarding whitespace and line lengths.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9969.misc
@@ -0,0 +1 @@
The .gitignore now contains .idea/ to support PyCharm users.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9974.feature
@@ -0,0 +1 @@
Support a coroutine function in twisted.internet.task.react
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9980.misc
@@ -0,0 +1 @@
Fix Read The Docs build and enabled PR builds.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/newsfragments/9982.doc
@@ -0,0 +1 @@
Exempt ``__repr__``, ``__slots__`` and other ``@attrs.define`` related changes from compatibility policy.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/web/newsfragments/10084.bugfix
@@ -0,0 +1 @@
Fixed an error where twisted.web.http.requestReceived() tries to encode a NoneType returned by cgi.parse_multipart when a multipart body does not contain a "content-disposition" definition.
2 changes: 2 additions & 0 deletions src/twisted/web/newsfragments/6014.bugfix
@@ -0,0 +1,2 @@
twisted.web.http.Request.getRequestHostname now supports IPv6 literal hostnames
in HTTP host headers.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/web/newsfragments/6528.bugfix
@@ -0,0 +1 @@
Fixed unexpected exception by handling subclass of TaskFinished when FileBodyProducer's task stopped twice.
1 change: 1 addition & 0 deletions src/twisted/web/newsfragments/9350.doc
@@ -0,0 +1 @@
xmlrpc's QueryFactory class is now public, more explanation for xmlrpc's queryFactory, and new xmlrpc-debug.py example script for debugging raw XML-RPC traffic.
1 change: 1 addition & 0 deletions src/twisted/web/newsfragments/9742.doc
@@ -0,0 +1 @@
twisted.web.client.ContentDecoderAgent's documentation has been corrected and improved.
1 change: 1 addition & 0 deletions src/twisted/web/newsfragments/9758.misc
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions src/twisted/web/newsfragments/9774.bugfix
@@ -0,0 +1 @@
Importing twisted.web.client no longer has the side effect of initializing the reactor.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/web/newsfragments/9817.bugfix
@@ -0,0 +1 @@
Ensure that all calls to connectionLost use a Failure instance in the HTTP 2 code.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/web/newsfragments/9835.bugfix
@@ -0,0 +1 @@
twisted.web.util.ParentRedirect has been fixed and documented. It was broken by a security fix in Twisted 19.2.0.
1 change: 1 addition & 0 deletions src/twisted/web/newsfragments/9836.bugfix
@@ -0,0 +1 @@
xmlrpc's Proxy class now verifies HTTPS certificates against the system bundle.
Empty file.
1 change: 1 addition & 0 deletions src/twisted/web/newsfragments/9887.bugfix
@@ -0,0 +1 @@
twisted.web.twcgi can now handle url parameters in python 3
1 change: 1 addition & 0 deletions src/twisted/web/newsfragments/9931.bugfix
@@ -0,0 +1 @@
defer reactor import in twisted.web.xmlrpc
1 change: 1 addition & 0 deletions src/twisted/web/newsfragments/9940.bugfix
@@ -0,0 +1 @@
twisted.web.RedirectAgent now supports 308 redirects
Empty file.

0 comments on commit 30ec938

Please sign in to comment.