| Ticket numbers in this file can be looked up by visiting |
| http://twistedmatrix.com/trac/ticket/<number> |
| |
| Twisted Core 10.2.0 (2010-11-29) |
| ================================ |
| |
| Features |
| -------- |
| - twisted.internet.cfreactor has been significantly improved. It now |
| runs, and passes, the test suite. Many, many bugs in it have been |
| fixed, including several segfaults, as it now uses PyObjC and |
| longer requires C code in Twisted. (#1833) |
| - twisted.protocols.ftp.FTPRealm now accepts a parameter to override |
| "/home" as the container for user directories. The new |
| BaseFTPRealm class in the same module also allows easy |
| implementation of custom user directory schemes. (#2179) |
| - twisted.python.filepath.FilePath and twisted.python.zippath.ZipPath |
| now have a descendant method to simplify code which calls the child |
| method repeatedly. (#3169) |
| - twisted.python.failure._Frame objects now support fake f_locals |
| attribute. (#4045) |
| - twisted.internet.endpoints now has 'serverFromString' and |
| 'clientFromString' APIs for constructing endpoints from descriptive |
| strings. (#4473) |
| - The default trial reporter now combines reporting of tests with the |
| same result to shorten its summary output. (#4487) |
| - The new class twisted.protocols.ftp.SystemFTPRealm implements an |
| FTP realm which uses system accounts to select home directories. |
| (#4494) |
| - twisted.internet.reactor.spawnProcess now wastes less time trying |
| to close non-existent file descriptors on POSIX platforms. (#4522) |
| - twisted.internet.win32eventreactor now declares that it implements |
| a new twisted.internet.interfaces.IReactorWin32Events interface. |
| (#4523) |
| - twisted.application.service.IProcess now documents its attributes |
| using zope.interface.Attribute. (#4534) |
| - twisted.application.app.ReactorSelectionMixin now saves the value |
| of the --reactor option in the "reactor" key of the options object. |
| (#4563) |
| - twisted.internet.endpoints.serverFromString and clientFromString, |
| and therefore also twisted.application.strports.service, now |
| support plugins, so third parties may implement their own endpoint |
| types. (#4695) |
| |
| Bugfixes |
| -------- |
| - twisted.internet.defer.Deferred now handles chains iteratively |
| instead of recursively, preventing RuntimeError due to excessive |
| recursion when handling long Deferred chains. (#411) |
| - twisted.internet.cfreactor now works with trial. (#2556) |
| - twisted.enterprise.adbapi.ConnectionPool.close may now be called |
| even if the connection pool has not yet been started. This will |
| prevent the pool from ever starting. (#2680) |
| - twisted.protocols.basic.NetstringReceiver raises |
| NetstringParseErrors for invalid netstrings now. It handles empty |
| netstrings ("0:,") correctly, and the performance for receiving |
| netstrings has been improved. (#4378) |
| - reactor.listenUDP now returns an object which declares that it |
| implements IListeningPort. (#4462) |
| - twisted.python.randbytes no longer uses PyCrypto as a secure random |
| number source (since it is not one). (#4468) |
| - twisted.internet.main.installReactor now blocks installation of |
| another reactor when using python -O (#4476) |
| - twisted.python.deprecate.deprecatedModuleAttribute now emits only |
| one warning when used to deprecate a package attribute which is a |
| module. (#4492) |
| - The "brief" mode of twisted.python.failure.Failure.getTraceback now |
| handles exceptions raised by the underlying exception's __str__ |
| method. (#4501) |
| - twisted.words.xish.domish now correctly parses XML with namespaces |
| which include whitespace. (#4503) |
| - twisted.names.authority.FileAuthority now generates correct |
| negative caching hints, marks its referral NS RRs as non- |
| authoritative, and correctly generates referrals for ALL_RECORDS |
| requests. (#4513) |
| - twisted.internet.test.reactormixins.ReactorBuilder's attribute |
| `requiredInterface` (which should an interface) is now |
| `requiredInterfaces` (a list of interfaces) as originally described |
| per the documentation. (#4527) |
| - twisted.python.zippath.ZipPath.__repr__ now correctly formats paths |
| with ".." in them (by including it). (#4535) |
| - twisted.names.hosts.searchFileFor has been fixed against |
| refcounting dependency. (#4540) |
| - The POSIX process transports now declare that they implement |
| IProcessTransport. (#4585) |
| - Twisted can now be built with the LLVM clang compiler, with |
| 'CC=clang python setup.py build'. C code that caused errors with |
| this compiler has been removed. (#4652) |
| - trial now puts coverage data in the path specified by --temp- |
| directory, even if that option comes after --coverage on the |
| command line. (#4657) |
| - The unregisterProducer method of connection-oriented transports |
| will now cause the connection to be closed if there was a prior |
| call to loseConnection. (#4719) |
| - Fixed an issue where the new StreamServerEndpointService didn't log |
| listen errors. (This was a bug not present in any previous |
| releases, as this class is new.) (#4731) |
| |
| Improved Documentation |
| ---------------------- |
| - The trial man page now documents the meaning of the final line of |
| output of the default reporter. (#1384) |
| - The API documentation for twisted.internet.defer.DeferredList now |
| goes into more depth about the effects each of the __init__ flags |
| that class accepts. (#3595) |
| - There is now narrative documentation for the endpoints APIs, in the |
| 'endpoints' core howto, as well as modifications to the 'writing |
| clients' and 'writing servers' core howto documents to indicate |
| that endpoints are now the preferred style of listening and |
| connecting. (#4478) |
| - trial's man page now documents the --disablegc option in more |
| detail. (#4511) |
| - trial's coverage output format is now documented in the trial man |
| page. (#4512) |
| - Broken links and spelling errors in the finger tutorial are now |
| fixed. (#4516) |
| - twisted.internet.threads.blockingCallFromThread's docstring is now |
| explicit about Deferred support. (#4517) |
| - twisted.python.zippath.ZipPath.child now documents its handling of |
| ".." (which is not special, making it different from |
| FilePath.child). (#4535) |
| - The API docs for twisted.internet.defer.Deferred now cover several |
| more of its (less interesting) attributes. (#4538) |
| - LineReceiver, NetstringReceiver, and IntNStringReceiver from |
| twisted.protocols.basic now have improved API documentation for |
| read callbacks and write methods. (#4542) |
| - Tidied up the Twisted Conch documentation for easier conversion. |
| (#4566) |
| - Use correct Twisted version for when cancellation was introduced in |
| the Deferred docstring. (#4614) |
| - The logging howto is now more clear about how the standard library |
| logging module and twisted.python.log can be integrated. (#4642) |
| - The finger tutorial still had references to .tap files. This |
| reference has now been removed. The documentation clarifies |
| "finger.tap" is a module and not a filename. (#4679) |
| - The finger tutorial had a broken link to the |
| twisted.application.service.Service class, which is now fixed. |
| Additionally, a minor typo ('verison') was fixed. (#4681) |
| - twisted.protocols.policies.TimeoutMixin now has clearer API |
| documentation. (#4684) |
| |
| Deprecations and Removals |
| ------------------------- |
| - twisted.internet.defer.Deferred.setTimeout has been removed, after |
| being deprecated since Twisted 2.0. (#1702) |
| - twisted.internet.interfaces.IReactorTime.cancelCallLater |
| (deprecated since 2007) and |
| twisted.internet.interfaces.base.ReactorBase.cancelCallLater |
| (deprecated since 2002) have been removed. (#4076) |
| - Removed twisted.cred.util.py, which has been deprecated since |
| Twisted 8.3. (#4107) |
| - twisted.python.text.docstringLStrip was deprecated. (#4328) |
| - The module attributes `LENGTH`, `DATA`, `COMMA`, and `NUMBER` of |
| twisted.protocols.basic (previously used by `NetstringReceiver`) |
| are now deprecated. (#4541) |
| - twisted.protocols.basic.SafeNetstringReceiver, deprecated since |
| 2001 (before Twisted 2.0), was removed. (#4546) |
| - twisted.python.threadable.whenThreaded, deprecated since Twisted |
| 2.2.0, has been removed. (#4550) |
| - twisted.python.timeoutqueue, deprecated since Twisted 8.0, has been |
| removed. (#4551) |
| - iocpreactor transports can no longer be pickled. (#4617) |
| |
| Other |
| ----- |
| - #4300, #4475, #4477, #4504, #4556, #4562, #4564, #4569, #4608, |
| #4616, #4617, #4626, #4630, #4650, #4705 |
| |
| |
| Twisted Conch 10.2.0 (2010-11-29) |
| ================================= |
| |
| Bugfixes |
| -------- |
| - twisted.conch.ssh.factory.SSHFactory no longer disables coredumps. |
| (#2715) |
| - The Deferred returned by twisted.conch.telnet.TelnetTransport.will |
| now fires with an OptionRefused failure if the peer responds with a |
| refusal for the option negotiation. (#4231) |
| - SSHServerTransport and SSHClientTransport in |
| twisted.conch.ssh.transport no longer use PyCrypto to generate |
| random numbers for DH KEX. They also now generate values from the |
| full valid range, rather than only half of it. (#4469) |
| - twisted.conch.ssh.connection.SSHConnection now errbacks leftover |
| request deferreds on connection shutdown. (#4483) |
| |
| Other |
| ----- |
| - #4677 |
| |
| |
| Twisted Lore 10.2.0 (2010-11-29) |
| ================================ |
| |
| No significant changes have been made for this release. |
| |
| Other |
| ----- |
| - #4571 |
| |
| |
| Twisted Mail 10.2.0 (2010-11-29) |
| ================================ |
| |
| Improved Documentation |
| ---------------------- |
| - The email server example now demonstrates how to set up |
| authentication and authorization using twisted.cred. (#4609) |
| |
| Deprecations and Removals |
| ------------------------- |
| - twisted.mail.smtp.sendEmail, deprecated since mid 2003 (before |
| Twisted 2.0), has been removed. (#4529) |
| |
| Other |
| ----- |
| - #4038, #4572 |
| |
| |
| Twisted Names 10.2.0 (2010-11-29) |
| ================================= |
| |
| Features |
| -------- |
| - twisted.names.server can now serve SPF resource records using |
| twisted.names.dns.Record_SPF. twisted.names.client can query for |
| them using lookupSenderPolicy. (#3928) |
| |
| Bugfixes |
| -------- |
| - twisted.names.common.extractRecords doesn't try to close the |
| transport anymore in case of recursion, as it's done by the |
| Resolver itself now. (#3998) |
| |
| Improved Documentation |
| ---------------------- |
| - Tidied up the Twisted Names documentation for easier conversion. |
| (#4573) |
| |
| |
| Twisted News 10.2.0 (2010-11-29) |
| ================================ |
| |
| Bugfixes |
| -------- |
| - twisted.news.database.PickleStorage now invokes the email APIs |
| correctly, allowing it to actually send moderation emails. (#4528) |
| |
| |
| Twisted Pair 10.2.0 (2010-11-29) |
| ================================ |
| |
| No significant changes have been made for this release. |
| |
| |
| Twisted Runner 10.2.0 (2010-11-29) |
| ================================== |
| |
| No significant changes have been made for this release. |
| |
| |
| Twisted Web 10.2.0 (2010-11-29) |
| =============================== |
| |
| Features |
| -------- |
| - twisted.web.xmlrpc.XMLRPC.xmlrpc_* methods can now be decorated |
| using withRequest to cause them to be passed the HTTP request |
| object. (#3073) |
| |
| Bugfixes |
| -------- |
| - twisted.web.xmlrpc.QueryProtocol.handleResponse now disconnects |
| from the server, meaning that Twisted XML-RPC clients disconnect |
| from the server as soon as they receive a response, rather than |
| relying on the server to disconnect. (#2518) |
| - twisted.web.twcgi now generates responses containing all |
| occurrences of duplicate headers produced by CGI scripts, not just |
| the last value. (#4742) |
| |
| Deprecations and Removals |
| ------------------------- |
| - twisted.web.trp, which has been deprecated since Twisted 9.0, was |
| removed. (#4299) |
| |
| Other |
| ----- |
| - #4576, #4577, #4709, #4723 |
| |
| |
| Twisted Words 10.2.0 (2010-11-29) |
| ================================= |
| |
| Features |
| -------- |
| - twisted.words.protocols.irc.IRCClient.msg now enforces a maximum |
| length for messages, splitting up messages that are too long. |
| (#4416) |
| |
| Bugfixes |
| -------- |
| - twisted.words.protocols.irc.IRCClient no longer invokes privmsg() |
| in the default noticed() implementation. (#4419) |
| - twisted.words.im.ircsupport.IRCProto now sends the correct name in |
| the USER command. (#4641) |
| |
| Deprecations and Removals |
| ------------------------- |
| - Remove twisted.words.im.proxyui and twisted.words.im.tap. (#1823) |
| |
| |
| Twisted Core 10.1.0 (2010-06-27) |
| ================================ |
| |
| Features |
| -------- |
| - Add linux inotify support, allowing monitoring of file system |
| events. (#972) |
| - Deferreds now support cancellation. (#990) |
| - Added new "endpoint" interfaces in twisted.internet.interfaces, |
| which abstractly describe stream transport endpoints which can be |
| listened on or connected to. Implementations for TCP and SSL |
| clients and servers are present in twisted.internet.endpoints. |
| Notably, client endpoints' connect() methods return cancellable |
| Deferreds, so code written to use them can bypass the awkward |
| "ClientFactory.clientConnectionFailed" and |
| "Connector.stopConnecting" methods, and handle errbacks from or |
| cancel the returned deferred, respectively. (#1442) |
| - twisted.protocols.amp.Integer's documentation now clarifies that |
| integers of arbitrary size are supported and that the wire format |
| is a base-10 representation. (#2650) |
| - twisted.protocols.amp now includes support for transferring |
| timestamps (amp.DateTime) and decimal values (amp.Decimal). (#2651) |
| - twisted.protocol.ftp.IWriteFile now has a close() method, which can |
| return a Deferred. Previously a STOR command would finish |
| immediately upon the receipt of the last byte of the uploaded file. |
| With close(), the backend can delay the finish until it has |
| performed some other slow action (like storing the data to a |
| virtual filesystem). (#3462) |
| - FilePath now calls os.stat() only when new status information is |
| required, rather than immediately when anything changes. For some |
| applications this may result in fewer stat() calls. Additionally, |
| FilePath has a new method, 'changed', which applications may use to |
| indicate that the FilePath may have been changed on disk and |
| therefore the next status information request must fetch a new |
| stat result. This is useful if external systems, such as C |
| libraries, may have changed files that Twisted applications are |
| referencing via a FilePath. (#4130) |
| - Documentation improvements are now summarized in the NEWS file. |
| (#4224) |
| - twisted.internet.task.deferLater now returns a cancellable |
| Deferred. (#4318) |
| - The connect methods of twisted.internet.protocol.ClientCreator now |
| return cancellable Deferreds. (#4329) |
| - twisted.spread.pb now has documentation covering some of its |
| limitations. (#4402) |
| - twisted.spread.jelly now supports jellying and unjellying classes |
| defined with slots if they also implement __getstate__ and |
| __setstate__. (#4430) |
| - twisted.protocols.amp.ListOf arguments can now be specified as |
| optional. (#4474) |
| |
| Bugfixes |
| -------- |
| - On POSIX platforms, reactors now support child processes in a way |
| which doesn't cause other syscalls to sometimes fail with EINTR (if |
| running on Python 2.6 or if Twisted's extension modules have been |
| built). (#733) |
| - Substrings are escaped before being passed to a regular expression |
| for searching to ensure that they don't get interpreted as part of |
| the expression. (#1893) |
| - twisted.internet.stdio now supports stdout being redirected to a |
| normal file (except when using epollreactor). (#2259) |
| - (#2367) |
| - The tap2rpm script now works with modern versions of RPM. (#3292) |
| - twisted.python.modules.walkModules will now handle packages |
| explicitly precluded from importing by a None placed in |
| sys.modules. (#3419) |
| - ConnectedDatagramPort now uses stopListening when a connection |
| fails instead of the deprecated loseConnection. (#3425) |
| - twisted.python.filepath.FilePath.setContent is now safe for |
| multiple processes to use concurrently. (#3694) |
| - The mode argument to the methods of |
| twisted.internet.interfaces.IReactorUNIX is no longer deprecated. |
| (#4078) |
| - Do not include blacklisted projects when generating NEWS. (#4190) |
| - When generating NEWS for a project that had no significant changes, |
| include a section for that project and say that there were no |
| interesting changes. (#4191) |
| - Redundant 'b' mode is no longer passed to calls to FilePath.open |
| and FilePath.open itself now corrects the mode when multiple 'b' |
| characters are present, ensuring only one instance of 'b' is |
| provided, as a workaround for http://bugs.python.org/issue7686. |
| (#4207) |
| - HTML tags inside <pre> tags in the code snippets are now escaped. |
| (#4336) |
| - twisted.protocols.amp.CommandLocator now allows subclasses to |
| override responders inherited from base classes. (#4343) |
| - Fix a bunch of small but important defects in the INSTALL, README |
| and so forth. (#4346) |
| - The poll, epoll, glib2, and gtk2 reactors now all support half- |
| close in the twisted.internet.stdio.StandardIO transport. (#4352) |
| - twisted.application.internet no longer generates an extra and |
| invalid entry in its __all__ list for the nonexistent |
| MulticastClient. (#4373) |
| - Choosing a reactor documentation now says that only the select- |
| based reactor is a truly cross-platform reactor. (#4384) |
| - twisted.python.filepath.FilePath now no longer leaves files open, |
| to be closed by the garbage collector, when an exception is raised |
| in the implementation of setContent, getContent, or copyTo. (#4400) |
| - twisted.test.proto_helpers.StringTransport's getHost and getPeer |
| methods now return IPv4Address instances by default. (#4401) |
| - twisted.protocols.amp.BinaryBoxProtocol will no longer deliver an |
| empty string to a switched-to protocol's dataReceived method when |
| the BinaryBoxProtocol's buffer happened to be empty at the time of |
| the protocol switch. (#4405) |
| - IReactorUNIX.listenUNIX implementations now support abstract |
| namespace sockets on Linux. (#4421) |
| - Files opened with FilePath.create() (and therefore also files |
| opened via FilePath.open() on a path with alwaysCreate=True) will |
| now be opened in binary mode as advertised, so that they will |
| behave portably across platforms. (#4453) |
| - The subunit reporter now correctly reports import errors as errors, |
| rather than by crashing with an unrelated error. (#4496) |
| |
| Improved Documentation |
| ---------------------- |
| - The finger tutorial example which introduces services now avoids |
| double-starting the loop to re-read its users file. (#4420) |
| - twisted.internet.defer.Deferred.callback's docstring now mentions |
| the implicit chaining feature. (#4439) |
| - doc/core/howto/listing/pb/chatclient.py can now actually send a |
| group message. (#4459) |
| |
| Deprecations and Removals |
| ------------------------- |
| - twisted.internet.interfaces.IReactorArbitrary, |
| twisted.application.internet.GenericServer, and |
| twisted.application.internet.GenericClient are now deprecated. |
| (#367) |
| - twisted.internet.gtkreactor is now deprecated. (#2833) |
| - twisted.trial.util.findObject has been deprecated. (#3108) |
| - twisted.python.threadpool.ThreadSafeList is deprecated and Jython |
| platform detection in Twisted core removed (#3725) |
| - twisted.internet.interfaces.IUDPConnectedTransport has been removed |
| (deprecated since Twisted 9.0). (#4077) |
| - Removed twisted.application.app.runWithProfiler, which has been |
| deprecated since Twisted 8.0. (#4090) |
| - Removed twisted.application.app.runWithHotshot, which has been |
| deprecated since Twisted 8.0. (#4091) |
| - Removed twisted.application.app.ApplicationRunner.startLogging, |
| which has been deprecated (doesn't say since when), as well as |
| support for the legacy |
| twisted.application.app.ApplicationRunner.getLogObserver method. |
| (#4092) |
| - twisted.application.app.reportProfile has been removed. (#4093) |
| - twisted.application.app.getLogFile has been removed. (#4094) |
| - Removed twisted.cred.util.py, which has been deprecated since |
| Twisted 8.3. (#4107) |
| - twisted.python.util.dsu is now deprecated. (#4339) |
| - In twisted.trial.util: FailureError, DirtyReactorWarning, |
| DirtyReactorError, and PendingTimedCallsError, which have all been |
| deprecated since Twisted 8.0, have been removed. (#4505) |
| |
| Other |
| ----- |
| - #1363, #1742, #3170, #3359, #3431, #3738, #4088, #4206, #4221, |
| #4239, #4257, #4272, #4274, #4287, #4291, #4293, #4309, #4316, |
| #4319, #4324, #4332, #4335, #4348, #4358, #4394, #4399, #4409, |
| #4418, #4443, #4449, #4479, #4485, #4486, #4497 |
| |
| |
| Twisted Conch 10.1.0 (2010-06-27) |
| ================================= |
| |
| Features |
| -------- |
| - twisted.conch.ssh.transport.SSHTransportBase now allows supported |
| ssh protocol versions to be overriden. (#4428) |
| |
| Bugfixes |
| -------- |
| - SSHSessionProcessProtocol now doesn't close the session when stdin |
| is closed, but instead when both stdout and stderr are. (#4350) |
| - The 'cftp' command-line tool will no longer encounter an |
| intermittent error, crashing at startup with a ZeroDivisionError |
| while trying to report progress. (#4463) |
| - twisted.conch.ssh.connection.SSHConnection now replies to requests |
| to open an unknown channel with a OPEN_UNKNOWN_CHANNEL_TYPE message |
| instead of closing the connection. (#4490) |
| |
| Deprecations and Removals |
| ------------------------- |
| - twisted.conch.insults.client was deprecated. (#4095) |
| - twisted.conch.insults.colors has been deprecated. Please use |
| twisted.conch.insults.helper instead. (#4096) |
| - Removed twisted.conch.ssh.asn1, which has been deprecated since |
| Twisted 9.0. (#4097) |
| - Removed twisted.conch.ssh.common.Entropy, as Entropy.get_bytes has |
| been deprecated since 2007 and Entropy.get_bytes was the only |
| attribute of Entropy. (#4098) |
| - Removed twisted.conch.ssh.keys.getPublicKeyString, which has been |
| deprecated since 2007. Also updated the conch examples |
| sshsimpleserver.py and sshsimpleclient.py to reflect this removal. |
| (#4099) |
| - Removed twisted.conch.ssh.keys.makePublicKeyString, which has been |
| deprecated since 2007. (#4100) |
| - Removed twisted.conch.ssh.keys.getPublicKeyObject, which has been |
| deprecated since 2007. (#4101) |
| - Removed twisted.conch.ssh.keys.getPrivateKeyObject, which has been |
| deprecated since 2007. Also updated the conch examples to reflect |
| this removal. (#4102) |
| - Removed twisted.conch.ssh.keys.makePrivateKeyString, which has been |
| deprecated since 2007. (#4103) |
| - Removed twisted.conch.ssh.keys.makePublicKeyBlob, which has been |
| deprecated since 2007. (#4104) |
| - Removed twisted.conch.ssh.keys.signData, |
| twisted.conch.ssh.keys.verifySignature, and |
| twisted.conch.ssh.keys.printKey, which have been deprecated since |
| 2007. (#4105) |
| |
| Other |
| ----- |
| - #3849, #4408, #4454 |
| |
| |
| Twisted Lore 10.1.0 (2010-06-27) |
| ================================ |
| |
| No significant changes have been made for this release. |
| |
| |
| Twisted Mail 10.1.0 (2010-06-27) |
| ================================ |
| |
| Bugfixes |
| -------- |
| - twisted.mail.imap4.IMAP4Server no longer fails on search queries |
| that contain wildcards. (#2278) |
| - A case which would cause twisted.mail.imap4.IMAP4Server to loop |
| indefinitely when handling a search command has been fixed. (#4385) |
| |
| Other |
| ----- |
| - #4069, #4271, #4467 |
| |
| |
| Twisted Names 10.1.0 (2010-06-27) |
| ================================= |
| |
| Features |
| -------- |
| - twisted.names.dns.Message now uses a specially constructed |
| dictionary for looking up record types. This yields a significant |
| performance improvement on PyPy. (#4283) |
| |
| |
| Twisted News 10.1.0 (2010-06-27) |
| ================================ |
| |
| No significant changes have been made for this release. |
| |
| |
| Twisted Pair 10.1.0 (2010-06-27) |
| ================================ |
| |
| No significant changes have been made for this release. |
| |
| |
| Twisted Runner 10.1.0 (2010-06-27) |
| ================================== |
| |
| Features |
| -------- |
| - twistd now has a procmon subcommand plugin - a convenient way to |
| monitor and automatically restart another process. (#4356) |
| |
| Deprecations and Removals |
| ------------------------- |
| - twisted.runner.procmon.ProcessMonitor's active, consistency, and |
| consistencyDelay attributes are now deprecated. (#1763) |
| |
| Other |
| ----- |
| - #3775 |
| |
| |
| Twisted Web 10.1.0 (2010-06-27) |
| =============================== |
| |
| Features |
| -------- |
| - twisted.web.xmlrpc.XMLRPC and twisted.web.xmlrpc.Proxy now expose |
| xmlrpclib's support of datetime.datetime objects if useDateTime is |
| set to True. (#3219) |
| - HTTP11ClientProtocol now has an abort() method for cancelling an |
| outstanding request by closing the connection before receiving the |
| entire response. (#3811) |
| - twisted.web.http_headers.Headers initializer now rejects |
| incorrectly structured dictionaries. (#4022) |
| - twisted.web.client.Agent now supports HTTPS URLs. (#4023) |
| - twisted.web.xmlrpc.Proxy.callRemote now returns a Deferred which |
| can be cancelled to abort the attempted XML-RPC call. (#4377) |
| |
| Bugfixes |
| -------- |
| - twisted.web.guard now logs out avatars even if a request completes |
| with an error. (#4411) |
| - twisted.web.xmlrpc.XMLRPC will now no longer trigger a RuntimeError |
| by trying to write responses to closed connections. (#4423) |
| |
| Improved Documentation |
| ---------------------- |
| - Fix broken links to deliverBody and iweb.UNKNOWN_LENGTH in |
| doc/web/howto/client.xhtml. (#4507) |
| |
| Deprecations and Removals |
| ------------------------- |
| - twisted.web.twcgi.PHP3Script and twisted.web.twcgi.PHPScript are |
| now deprecated. (#516) |
| |
| Other |
| ----- |
| - #4403, #4452 |
| |
| |
| Twisted Words 10.1.0 (2010-06-27) |
| ================================= |
| |
| Bugfixes |
| -------- |
| - twisted.words.im.basechat.ChatUI now has a functional |
| contactChangedNick with unit tests. (#229) |
| - twisted.words.protocols.jabber.error.StanzaError now correctly sets |
| a default error type and code for the remote-server-timeout |
| condition (#4311) |
| - twisted.words.protocols.jabber.xmlstream.ListenAuthenticator now |
| uses unicode objects for session identifiers (#4345) |
| |
| |
| Twisted Core 10.0.0 (2010-03-01) |
| ================================ |
| |
| Features |
| -------- |
| - The twistd man page now has a SIGNALS section. (#689) |
| |
| - reactor.spawnProcess now will not emit a PotentialZombieWarning |
| when called before reactor.run, and there will be no potential for |
| zombie processes in this case. (#2078) |
| |
| - High-throughput applications based on Perspective Broker should now |
| run noticably faster thanks to the use of a more efficient decoding |
| function in Twisted Spread. (#2310) |
| |
| - Documentation for trac-post-commit-hook functionality in svn-dev |
| policy. (#3867) |
| |
| - twisted.protocols.socks.SOCKSv4 now supports the SOCKSv4a protocol. |
| (#3886) |
| |
| - Trial can now output test results according to the subunit |
| protocol, as long as Subunit is installed (see |
| https://launchpad.net/subunit). (#4004) |
| |
| - twisted.protocols.amp now provides a ListOf argument type which can |
| be composed with some other argument types to create a zero or more |
| element sequence of that type. (#4116) |
| |
| - If returnValue is invoked outside of a function decorated with |
| @inlineCallbacks, but causes a function thusly decorated to exit, a |
| DeprecationWarning will be emitted explaining this potentially |
| confusing behavior. In a future release, this will cause an |
| exception. (#4157) |
| |
| - twisted.python.logfile.BaseLogFile now has a reopen method allowing |
| you to use an external logrotate mechanism. (#4255) |
| |
| Bugfixes |
| -------- |
| - FTP.ftp_NLST now handles requests on invalid paths in a way |
| consistent with RFC 959. (#1342) |
| |
| - twisted.python.util.initgroups now calls the low-level C initgroups |
| by default if available: the python version can create lots of I/O |
| with certain authentication setup to retrieve all the necessary |
| information. (#3226) |
| |
| - startLogging now does nothing on subsequent invocations, thus |
| fixing a terrible infinite recursion bug that's only on edge case. |
| (#3289) |
| |
| - Stringify non-string data to NetstringReceiver.sendString before |
| calculating the length so that the calculated length is equal to |
| the actual length of the transported data. (#3299) |
| |
| - twisted.python.win32.cmdLineQuote now correctly quotes empty |
| strings arguments (#3876) |
| |
| - Change the behavior of the Gtk2Reactor to register only one source |
| watch for each file descriptor, instead of one for reading and one |
| for writing. In particular, it fixes a bug with Glib under Windows |
| where we failed to notify when a client is connected. (#3925) |
| |
| - Twisted Trial no longer crashes if it can't remove an old |
| _trial_temp directory. (#4020) |
| |
| - The optional _c_urlarg extension now handles unquote("") correctly |
| on platforms where malloc(0) returns NULL, such as AIX. It also |
| compiles with less warnings. (#4142) |
| |
| - On POSIX, child processes created with reactor.spawnProcess will no |
| longer automatically ignore the signals which the parent process |
| has set to be ignored. (#4199) |
| |
| - All SOCKSv4a tests now use a dummy reactor with a deterministic |
| resolve method. (#4275) |
| |
| - Prevent extraneous server, date and content-type headers in proxy |
| responses. (#4277) |
| |
| Deprecations and Removals |
| ------------------------- |
| - twisted.internet.error.PotentialZombieWarning is now deprecated. |
| (#2078) |
| |
| - twisted.test.time_helpers is now deprecated. (#3719) |
| |
| - The deprecated connectUDP method of IReactorUDP has now been |
| removed. (#4075) |
| |
| - twisted.trial.unittest.TestCase now ignores the previously |
| deprecated setUpClass and tearDownClass methods. (#4175) |
| |
| Other |
| ----- |
| - #917, #2406, #2481, #2608, #2689, #2884, #3056, #3082, #3199, |
| #3480, #3592, #3718, #3935, #4066, #4083, #4154, #4166, #4169, |
| #4176, #4183, #4186, #4188, #4189, #4194, #4201, #4204, #4209, |
| #4222, #4234, #4235, #4238, #4240, #4245, #4251, #4264, #4268, |
| #4269, #4282 |
| |
| |
| Twisted Conch 10.0.0 (2010-03-01) |
| ================================= |
| |
| Bugfixes |
| -------- |
| - twisted.conch.checkers.SSHPublicKeyDatabase now looks in the |
| correct user directory for authorized_keys files. (#3984) |
| - twisted.conch.ssh.SSHUserAuthClient now honors preferredOrder when |
| authenticating. (#4266) |
| |
| Other |
| ----- |
| - #2391, #4203, #4265 |
| |
| |
| Twisted Lore 10.0.0 (2010-03-01) |
| ================================ |
| |
| Other |
| ----- |
| - #4241 |
| |
| |
| Twisted Mail 10.0.0 (2010-03-01) |
| ================================ |
| |
| Bugfixes |
| -------- |
| - twisted.mail.smtp.ESMTPClient and |
| twisted.mail.smtp.LOGINAuthenticator now implement the (obsolete) |
| LOGIN SASL mechanism according to the draft specification. (#4031) |
| |
| - twisted.mail.imap4.IMAP4Client will no longer misparse all html- |
| formatted message bodies received in response to a fetch command. |
| (#4049) |
| |
| - The regression in IMAP4 search handling of "OR" and "NOT" terms has |
| been fixed. (#4178) |
| |
| Other |
| ----- |
| - #4028, #4170, #4200 |
| |
| |
| Twisted Names 10.0.0 (2010-03-01) |
| ================================= |
| |
| Bugfixes |
| -------- |
| - twisted.names.root.Resolver no longer leaks UDP sockets while |
| resolving names. (#970) |
| |
| Deprecations and Removals |
| ------------------------- |
| - Several top-level functions in twisted.names.root are now |
| deprecated. (#970) |
| |
| Other |
| ----- |
| - #4066 |
| |
| |
| Twisted Pair 10.0.0 (2010-03-01) |
| ================================ |
| |
| Other |
| ----- |
| - #4170 |
| |
| |
| Twisted Runner 10.0.0 (2010-03-01) |
| ================================== |
| |
| Other |
| ----- |
| - #3961 |
| |
| |
| Twisted Web 10.0.0 (2010-03-01) |
| =============================== |
| |
| Features |
| -------- |
| - Twisted Web in 60 Seconds, a series of short tutorials with self- |
| contained examples on a range of common web topics, is now a part |
| of the Twisted Web howto documentation. (#4192) |
| |
| Bugfixes |
| -------- |
| - Data and File from twisted.web.static and |
| twisted.web.distrib.UserDirectory will now only generate a 200 |
| response for GET or HEAD requests. |
| twisted.web.client.HTTPPageGetter will no longer ignore the case of |
| a request method when considering whether to apply special HEAD |
| processing to a response. (#446) |
| |
| - twisted.web.http.HTTPClient now supports multi-line headers. |
| (#2062) |
| |
| - Resources served via twisted.web.distrib will no longer encounter a |
| Banana error when writing more than 640kB at once to the request |
| object. (#3212) |
| |
| - The Error, PageRedirect, and InfiniteRedirection exception in |
| twisted.web now initialize an empty message parameter by mapping |
| the HTTP status code parameter to a descriptive string. Previously |
| the lookup would always fail, leaving message empty. (#3806) |
| |
| - The 'wsgi.input' WSGI environment object now supports -1 and None |
| as arguments to the read and readlines methods. (#4114) |
| |
| - twisted.web.wsgi doesn't unquote QUERY_STRING anymore, thus |
| complying with the WSGI reference implementation. (#4143) |
| |
| - The HTTP proxy will no longer pass on keep-alive request headers |
| from the client, preventing pages from loading then "hanging" |
| (leaving the connection open with no hope of termination). (#4179) |
| |
| Deprecations and Removals |
| ------------------------- |
| - Remove '--static' option from twistd web, that served as an alias |
| for the '--path' option. (#3907) |
| |
| Other |
| ----- |
| - #3784, #4216, #4242 |
| |
| |
| Twisted Words 10.0.0 (2010-03-01) |
| ================================= |
| |
| Features |
| -------- |
| - twisted.words.protocols.irc.IRCClient.irc_MODE now takes ISUPPORT |
| parameters into account when parsing mode messages with arguments |
| that take parameters (#3296) |
| |
| Bugfixes |
| -------- |
| - When twisted.words.protocols.irc.IRCClient's versionNum and |
| versionEnv attributes are set to None, they will no longer be |
| included in the client's response to CTCP VERSION queries. (#3660) |
| |
| - twisted.words.protocols.jabber.xmlstream.hashPassword now only |
| accepts unicode as input (#3741, #3742, #3847) |
| |
| Other |
| ----- |
| - #2503, #4066, #4261 |
| |
| |
| Twisted Core 9.0.0 (2009-11-24) |
| =============================== |
| |
| Features |
| -------- |
| - LineReceiver.clearLineBuffer now returns the bytes that it cleared (#3573) |
| - twisted.protocols.amp now raises InvalidSignature when bad arguments are |
| passed to Command.makeArguments (#2808) |
| - IArgumentType was added to represent an existing but previously unspecified |
| interface in amp (#3468) |
| - Obscure python tricks have been removed from the finger tutorials (#2110) |
| - The digest auth implementations in twisted.web and twisted.protocolos.sip |
| have been merged together in twisted.cred (#3575) |
| - FilePath and ZipPath now has a parents() method which iterates up all of its |
| parents (#3588) |
| - reactors which support threads now have a getThreadPool method (#3591) |
| - The MemCache client implementation now allows arguments to the "stats" |
| command (#3661) |
| - The MemCache client now has a getMultiple method which allows fetching of |
| multiple values (#3171) |
| - twisted.spread.jelly can now unserialize some new-style classes (#2950) |
| - twisted.protocols.loopback.loopbackAsync now accepts a parameter to control |
| the data passed between client and server (#3820) |
| - The IOCP reactor now supports SSL (#593) |
| - Tasks in a twisted.internet.task.Cooperator can now be paused, resumed, and |
| cancelled (#2712) |
| - AmpList arguments can now be made optional (#3891) |
| - The syslog output observer now supports log levels (#3300) |
| - LoopingCall now supports reporting the number of intervals missed if it |
| isn't able to schedule calls fast enough (#3671) |
| |
| Fixes |
| ----- |
| - The deprecated md5 and sha modules are no longer used if the stdlib hashlib |
| module is available (#2763) |
| - An obscure deadlock involving waking up the reactor within signal handlers |
| in particular threads was fixed (#1997) |
| - The passivePortRange attribute of FTPFactory is now honored (#3593) |
| - TestCase.flushWarnings now flushes warnings even if they were produced by a |
| file that was renamed since it was byte compiled (#3598) |
| - Some internal file descriptors are now marked as close-on-exec, so these will |
| no longer be leaked to child processes (#3576) |
| - twisted.python.zipstream now correctly extracts the first file in a directory |
| as a file, and not an empty directory (#3625) |
| - proxyForInterface now returns classes which correctly *implement* interfaces |
| rather than *providing* them (#3646) |
| - SIP Via header parameters should now be correctly generated (#2194) |
| - The Deferred returned by stopListening would sometimes previously never fire |
| if an exception was raised by the underlying file descriptor's connectionLost |
| method. Now the Deferred will fire with a failure (#3654) |
| - The command-line tool "manhole" should now work with newer versions of pygtk |
| (#2464) |
| - When a DefaultOpenSSLContextFactory is instantiated with invalid parameters, |
| it will now raise an exception immediately instead of waiting for the first |
| connection (#3700) |
| - Twisted command line scripts should now work when installed in a virtualenv |
| (#3750) |
| - Trial will no longer delete temp directories which it did not create (#3481) |
| - Processes started on Windows should now be cleaned up properly in more cases |
| (#3893) |
| - Certain misbehaving importers will no longer cause twisted.python.modules |
| (and thus trial) to raise an exception, but rather issue a warning (#3913) |
| - MemCache client protocol methods will now fail when the transport has been |
| disconnected (#3643) |
| - In the AMP method callRemoteString, the requiresAnswer parameter is now |
| honored (#3999) |
| - Spawning a "script" (a file which starts with a #! line) on Windows running |
| Python 2.6 will now work instead of raising an exception about file mode |
| "ru" (#3567) |
| - FilePath's walk method now calls its "descend" parameter even on the first |
| level of children, instead of only on grandchildren. This allows for better |
| symlink cycle detection (#3911) |
| - Attempting to write unicode data to process pipes on Windows will no longer |
| result in arbitrarily encoded messages being written to the pipe, but instead |
| will immediately raise an error (#3930) |
| - The various twisted command line utilities will no longer print |
| ModuleType.__doc__ when Twisted was installed with setuptools (#4030) |
| - A Failure object will now be passed to connectionLost on stdio connections |
| on Windows, instead of an Exception object (#3922) |
| |
| Deprecations and Removals |
| ------------------------- |
| - twisted.persisted.marmalade was deleted after a long period of deprecation |
| (#876) |
| - Some remaining references to the long-gone plugins.tml system were removed |
| (#3246) |
| - SSLv2 is now disabled by default, but it can be re-enabled explicitly |
| (#3330) |
| - twisted.python.plugin has been removed (#1911) |
| - reactor.run will now raise a ReactorAlreadyRunning exception when it is |
| called reentrantly instead of warning a DeprecationWarning (#1785) |
| - twisted.spread.refpath is now deprecated because it is unmaintained, |
| untested, and has dubious value (#3723) |
| - The unused --quiet flag has been removed from the twistd command (#3003) |
| |
| Other |
| ----- |
| - #3545, #3490, #3544, #3537, #3455, #3315, #2281, #3564, #3570, #3571, #3486, |
| #3241, #3599, #3220, #1522, #3611, #3596, #3606, #3609, #3602, #3637, #3647, |
| #3632, #3675, #3673, #3686, #2217, #3685, #3688, #2456, #506, #3635, #2153, |
| #3581, #3708, #3714, #3717, #3698, #3747, #3704, #3707, #3713, #3720, #3692, |
| #3376, #3652, #3695, #3735, #3786, #3783, #3699, #3340, #3810, #3822, #3817, |
| #3791, #3859, #2459, #3677, #3883, #3894, #3861, #3822, #3852, #3875, #2722, |
| #3768, #3914, #3885, #2719, #3905, #3942, #2820, #3990, #3954, #1627, #2326, |
| #2972, #3253, #3937, #4058, #1200, #3639, #4079, #4063, #4050 |
| |
| |
| Twisted Conch 9.0.0 (2009-11-24) |
| ================================ |
| |
| Fixes |
| ----- |
| - The SSH key parser has been removed and conch now uses pyASN1 to parse keys. |
| This should fix a number of cases where parsing a key would fail, but it now |
| requires users to have pyASN1 installed (#3391) |
| - The time field on SFTP file listings should now be correct (#3503) |
| - The day field on SFTP file listings should now be correct on Windows (#3503) |
| - The "cftp" sftp client now truncates files it is uploading over (#2519) |
| - The telnet server protocol can now properly respond to subnegotiation |
| requests (#3655) |
| - Tests and factoring of the SSHv2 server implementation are now much better |
| (#2682) |
| - The SSHv2 server now sends "exit-signal" messages to the client, instead of |
| raising an exception, when a process dies due to a signal (#2687) |
| - cftp's client-side "exec" command now uses /bin/sh if the current user has |
| no shell (#3914) |
| |
| Deprecations and Removals |
| ------------------------- |
| - The buggy SSH connection sharing feature of the SSHv2 client was removed |
| (#3498) |
| - Use of strings and PyCrypto objects to represent keys is deprecated in favor |
| of using Conch Key objects (#2682) |
| |
| Other |
| ----- |
| - #3548, #3537, #3551, #3220, #3568, #3689, #3709, #3809, #2763, #3540, #3750, |
| #3897, #3813, #3871, #3916, #4047, #3940, #4050 |
| |
| |
| Twisted Lore 9.0.0 (2009-11-24) |
| =============================== |
| |
| Features |
| -------- |
| - Python source listings now include line numbers (#3486) |
| |
| Fixes |
| ----- |
| - Lore now uses minidom instead of Twisted's microdom, which incidentally |
| fixes some Lore bugs such as throwing away certain whitespace |
| (#3560, #414, #3619) |
| - Lore's "lint" command should no longer break on documents with links in them |
| (#4051, #4115) |
| |
| Deprecations and Removals |
| ------------------------- |
| - Lore no longer uses the ancient "tml" Twisted plugin system (#1911) |
| |
| Other |
| ----- |
| - #3565, #3246, #3540, #3750, #4050 |
| |
| |
| Twisted Mail 9.0.0 (2009-11-24) |
| =============================== |
| |
| Features |
| -------- |
| - maildir.StringListMailbox, an in-memory maildir mailbox, now supports |
| deletion, undeletion, and syncing (#3547) |
| - SMTPClient's callbacks are now more completely documented (#684) |
| |
| Fixes |
| ----- |
| - Parse UNSEEN response data and include it in the result of |
| IMAP4Client.examine (#3550) |
| - The IMAP4 client now delivers more unsolicited server responses to callbacks |
| rather than ignoring them, and also won't ignore solicited responses that |
| arrive on the same line as an unsolicited one (#1105) |
| - Several bugs in the SMTP client's idle timeout support were fixed (#3641, |
| #1219) |
| - A case where the SMTP client could skip some recipients when retrying |
| delivery has been fixed (#3638) |
| - Errors during certain data transfers will no longer be swallowed. They will |
| now bubble up to the higher-level API (such as the sendmail function) (#3642) |
| - Escape sequences inside quoted strings in IMAP4 should now be parsed |
| correctly by the IMAP4 server protocol (#3659) |
| - The "imap4-utf-7" codec that is registered by twisted.mail.imap4 had a number |
| of fixes that allow it to work better with the Python codecs system, and to |
| actually work (#3663) |
| - The Maildir implementation now ensures time-based ordering of filenames so |
| that the lexical sorting of messages matches the order in which they were |
| received (#3812) |
| - SASL PLAIN credentials generated by the IMAP4 protocol implementations |
| (client and server) should now be RFC-compliant (#3939) |
| - Searching for a set of sequences using the IMAP4 "SEARCH" command should |
| now work on the IMAP4 server protocol implementation. This at least improves |
| support for the Pine mail client (#1977) |
| |
| Other |
| ----- |
| - #2763, #3647, #3750, #3819, #3540, #3846, #2023, #4050 |
| |
| |
| Twisted Names 9.0.0 (2009-11-24) |
| ================================ |
| |
| Deprecations and Removals |
| ------------------------- |
| - client.ThreadedResolver is deprecated in favor of |
| twisted.internet.base.ThreadedResolver (#3710) |
| |
| Other |
| ----- |
| - #3540, #3560, #3712, #3750, #3990 |
| |
| |
| Twisted News 9.0.0 (2009-11-24) |
| =============================== |
| |
| Other |
| ----- |
| - #2763, #3540 |
| |
| |
| Twisted Pair 9.0.0 (2009-11-24) |
| =============================== |
| |
| Other |
| ----- |
| - #3540, #4050 |
| |
| |
| Twisted Runner 9.0.0 (2009-11-24) |
| ================================= |
| |
| Features |
| -------- |
| - procmon.ProcessMonitor.addProcess now accepts an 'env' parameter which allows |
| users to specify the environment in which a process will be run (#3691) |
| |
| Other |
| ----- |
| - #3540 |
| |
| |
| Twisted Web 9.0.0 (2009-11-24) |
| ============================== |
| |
| Features |
| -------- |
| - There is now an iweb.IRequest interface which specifies the interface that |
| request objects provide (#3416) |
| - downloadPage now supports the same cookie, redirect, and timeout features |
| that getPage supports (#2971) |
| - A chapter about WSGI has been added to the twisted.web documentation (#3510) |
| - The HTTP auth support in the web server now allows anonymous sessions by |
| logging in with ANONYMOUS credentials when no Authorization header is |
| provided in a request (#3924, #3936) |
| - HTTPClientFactory now accepts a parameter to enable a common deviation from |
| the HTTP 1.1 standard by responding to redirects in a POSTed request with a |
| GET instead of another POST (#3624) |
| - A new basic HTTP/1.1 client API is included in twisted.web.client.Agent |
| (#886, #3987) |
| |
| Fixes |
| ----- |
| - Requests for "insecure" children of a static.File (such as paths containing |
| encoded directory separators) will now result in a 404 instead of a 500 |
| (#3549, #3469) |
| - When specifying a followRedirect argument to the getPage function, the state |
| of redirect-following for other getPage calls should now be unaffected. It |
| was previously overwriting a class attribute which would affect outstanding |
| getPage calls (#3192) |
| - Downloading an URL of the form "http://example.com:/" will now work, |
| ignoring the extraneous colon (#2402) |
| - microdom's appendChild method will no longer issue a spurious warning, and |
| microdom's methods in general should now issue more meaningful exceptions |
| when invalid parameters are passed (#3421) |
| - WSGI applications will no longer have spurious Content-Type headers added to |
| their responses by the twisted.web server. In addition, WSGI applications |
| will no longer be able to specify the server-restricted headers Server and |
| Date (#3569) |
| - http_headers.Headers now normalizes the case of raw headers passed directly |
| to it in the same way that it normalizes the headers passed to setRawHeaders |
| (#3557) |
| - The distrib module no longer relies on the deprecated woven package (#3559) |
| - twisted.web.domhelpers now works with both microdom and minidom (#3600) |
| - twisted.web servers will now ignore invalid If-Modified-Since headers instead |
| of returning a 500 error (#3601) |
| - Certain request-bound memory and file resources are cleaned up slightly |
| sooner by the request when the connection is lost (#1621, #3176) |
| - xmlrpclib.DateTime objects should now correctly round-trip over twisted.web's |
| XMLRPC support in all supported versions of Python, and errors during error |
| serialization will no longer hang a twisted.web XMLRPC response (#2446) |
| - request.content should now always be seeked to the beginning when |
| request.process is called, so application code should never need to seek |
| back manually (#3585) |
| - Fetching a child of static.File with a double-slash in the URL (such as |
| "example//foo.html") should now return a 404 instead of a traceback and |
| 500 error (#3631) |
| - downloadPage will now fire a Failure on its returned Deferred instead of |
| indicating success when the connection is prematurely lost (#3645) |
| - static.File will now provide a 404 instead of a 500 error when it was |
| constructed with a non-existent file (#3634) |
| - microdom should now serialize namespaces correctly (#3672) |
| - The HTTP Auth support resource wrapper should no longer corrupt requests and |
| cause them to skip a segment in the request path (#3679) |
| - The twisted.web WSGI support should now include leading slashes in PATH_INFO, |
| and SCRIPT_NAME will be empty if the application is at the root of the |
| resource tree. This means that WSGI applications should no longer generate |
| URLs with double-slashes in them even if they naively concatenate the values |
| (#3721) |
| - WSGI applications should now receive the requesting client's IP in the |
| REMOTE_ADDR environment variable (#3730) |
| - The distrib module should work again. It was unfortunately broken with the |
| refactoring of twisted.web's header support (#3697) |
| - static.File now supports multiple ranges specified in the Range header |
| (#3574) |
| - static.File should now generate a correct Content-Length value when the |
| requested Range value doesn't fit entirely within the file's contents (#3814) |
| - Attempting to call request.finish() after the connection has been lost will |
| now immediately raise a RuntimeError (#4013) |
| - An HTTP-auth resource should now be able to directly render the wrapped |
| avatar, whereas before it would only allow retrieval of child resources |
| (#4014) |
| - twisted.web's wsgi support should no longer attempt to call request.finish |
| twice, which would cause errors in certain cases (#4025) |
| - WSGI applications should now be able to handle requests with large bodies |
| (#4029) |
| - Exceptions raised from WSGI applications should now more reliably be turned |
| into 500 errors on the HTTP level (#4019) |
| - DeferredResource now correctly passes through exceptions raised from the |
| wrapped resource, instead of turning them all into 500 errors (#3932) |
| - Agent.request now generates a Host header when no headers are passed at |
| (#4131) |
| |
| Deprecations and Removals |
| ------------------------- |
| - The unmaintained and untested twisted.web.monitor module was removed (#2763) |
| - The twisted.web.woven package has been removed (#1522) |
| - All of the error resources in twisted.web.error are now in |
| twisted.web.resource, and accessing them through twisted.web.error is now |
| deprecated (#3035) |
| - To facilitate a simplification of the timeout logic in server.Session, |
| various things have been deprecated (#3457) |
| - the loopFactory attribute is now ignored |
| - the checkExpired method now does nothing |
| - the lifetime parameter to startCheckingExpiration is now ignored |
| - The twisted.web.trp module is now deprecated (#2030) |
| |
| Other |
| ----- |
| - #2763, #3540, #3575, #3610, #3605, #1176, #3539, #3750, #3761, #3779, #2677, |
| #3782, #3904, #3919, #3418, #3990, #1404, #4050 |
| |
| |
| Twisted Words 9.0.0 (2009-11-24) |
| ================================ |
| |
| Features |
| -------- |
| - IRCClient.describe is a new method meant to replace IRCClient.me to send |
| CTCP ACTION messages with less confusing behavior (#3910) |
| - The XMPP client protocol implementation now supports ANONYMOUS SASL |
| authentication (#4067) |
| - The IRC client protocol implementation now has better support for the |
| ISUPPORT server->client message, storing the data in a new |
| ServerSupportedFeatures object accessible via IRCClient.supported (#3285) |
| |
| Fixes |
| ----- |
| - The twisted.words IRC server now always sends an MOTD, which at least makes |
| Pidgin able to successfully connect to a twisted.words IRC server (#2385) |
| - The IRC client will now dispatch "RPL MOTD" messages received before a |
| "RPL MOTD START" instead of raising an exception (#3676) |
| - The IRC client protocol implementation no longer updates its 'nickname' |
| attribute directly; instead, that attribute will be updated when the server |
| acknowledges the change (#3377) |
| - The IRC client protocol implementation now supports falling back to another |
| nickname when a nick change request fails (#3377, #4010) |
| |
| Deprecations and Removals |
| ------------------------- |
| - The TOC protocol implementation is now deprecated, since the protocol itself |
| has been deprecated and obselete for quite a long time (#3580) |
| - The gui "im" application has been removed, since it relied on GTK1, which is |
| hard to find these days (#3699, #3340) |
| |
| Other |
| ----- |
| - #2763, #3540, #3647, #3750, #3895, #3968, #4050 |
| |
| |
| Core 8.2.0 (2008-12-16) |
| ======================= |
| |
| Features |
| -------- |
| - Reactors are slowly but surely becoming more isolated, thus improving |
| testability (#3198) |
| - FilePath has gained a realpath method, and FilePath.walk no longer infinitely |
| recurses in the case of a symlink causing a self-recursing filesystem tree |
| (#3098) |
| - FilePath's moveTo and copyTo methods now have an option to disable following |
| of symlinks (#3105) |
| - Private APIs are now included in the API documentation (#3268) |
| - hotshot is now the default profiler for the twistd --profile parameter and |
| using cProfile is now documented (#3355, #3356) |
| - Process protocols can now implement a processExited method, which is |
| distinct from processEnded in that it is called immediately when the child |
| has died, instead of waiting for all the file descriptors to be closed |
| (#1291) |
| - twistd now has a --umask option (#966, #3024) |
| - A new deferToThreadPool function exists in twisted.internet.threads (#2845) |
| - There is now an example of writing an FTP server in examples/ftpserver.py |
| (#1579) |
| - A new runAsEffectiveUser function has been added to twisted.python.util |
| (#2607) |
| - twisted.internet.utils.getProcessOutput now offers a mechanism for |
| waiting for the process to actually end, in the event of data received on |
| stderr (#3239) |
| - A fullyQualifiedName function has been added to twisted.python.reflect |
| (#3254) |
| - strports now defaults to managing access to a UNIX socket with a lock; |
| lockfile=0 can be included in the strports specifier to disable this |
| behavior (#2295) |
| - FTPClient now has a 'rename' method (#3335) |
| - FTPClient now has a 'makeDirectory' method (#3500) |
| - FTPClient now has a 'removeFile' method (#3491) |
| - flushWarnings, A new Trial method for testing warnings, has been added |
| (#3487, #3427, #3506) |
| - The log observer can now be configured in .tac files (#3534) |
| |
| Fixes |
| ----- |
| - TLS Session Tickets are now disabled by default, allowing connections to |
| certain servers which hang when an empty session ticket is received (like |
| GTalk) (#3463) |
| - twisted.enterprise.adbapi.ConnectionPool's noisy attribute now defaults to |
| False, as documented (#1806) |
| - Error handling and logging in adbapi is now much improved (#3244) |
| - TCP listeners can now be restarted (#2913) |
| - Doctests can now be rerun with trial's --until-failure option (#2713) |
| - Some memory leaks have been fixed in trial's --until-failure |
| implementation (#3119, #3269) |
| - Trial's summary reporter now prints correct runtime information and handles |
| the case of 0 tests (#3184) |
| - Trial and any other user of the 'namedAny' function now has better error |
| reporting in the case of invalid module names (#3259) |
| - Multiple instances of trial can now run in parallel in the same directory |
| by creating _trial_temp directories with an incremental suffix (#2338) |
| - Trial's failUnlessWarns method now works on Python 2.6 (#3223) |
| - twisted.python.log now hooks into the warnings system in a way compatible |
| with Python 2.6 (#3211) |
| - The GTK2 reactor is now better supported on Windows, but still not passing |
| the entire test suite (#3203) |
| - low-level failure handling in spawnProcess has been improved and no longer |
| leaks file descriptors (#2305, #1410) |
| - Perspective Broker avatars now have their logout functions called in more |
| cases (#392) |
| - Log observers which raise exceptions are no longer removed (#1069) |
| - transport.getPeer now always includes an IP address in the Address returned |
| instead of a hostname (#3059) |
| - Functions in twisted.internet.utils which spawn processes now avoid calling |
| chdir in the case where no working directory is passed, to avoid some |
| obscure permission errors (#3159) |
| - twisted.spread.publish.Publishable no longer corrupts line endings on |
| Windows (#2327) |
| - SelectReactor now properly detects when a TLS/TCP connection has been |
| disconnected (#3218) |
| - twisted.python.lockfile no longer raises an EEXIST OSError and is much |
| better supported on Windows (#3367) |
| - When ITLSTransport.startTLS is called while there is data in the write |
| buffer, TLS negotiation will now be delayed instead of the method raising |
| an exception (#686) |
| - The userAnonymous argument to FTPFactory is now honored (#3390) |
| - twisted.python.modules no longer tries to "fix" sys.modules after an import |
| error, which was just causing problems (#3388) |
| - setup.py no longer attempts to build extension modules when run with Jython |
| (#3410) |
| - AMP boxes can now be sent in IBoxReceiver.startReceivingBoxes (#3477) |
| - AMP connections are closed as soon as a key length larger than 255 is |
| received (#3478) |
| - Log events with timezone offsets between -1 and -59 minutes are now |
| correctly reported as negative (#3515) |
| |
| Deprecations and Removals |
| ------------------------- |
| - Trial's setUpClass and tearDownClass methods are now deprecated (#2903) |
| - problemsFromTransport has been removed in favor of the argument passed to |
| connectionLost (#2874) |
| - The mode parameter to methods of IReactorUNIX and IReactorUNIXDatagram are |
| deprecated in favor of applications taking other security precautions, since |
| the mode of a Unix socket is often not respected (#1068) |
| - Index access on instances of twisted.internet.defer.FirstError has been |
| removed in favor of the subFailure attribute (#3298) |
| - The 'changeDirectory' method of FTPClient has been deprecated in favor of |
| the 'cwd' method (#3491) |
| |
| Other |
| ----- |
| |
| - #3202, #2869, #3225, #2955, #3237, #3196, #2355, #2881, #3054, #2374, #2918, |
| #3210, #3052, #3267, #3288, #2985, #3295, #3297, #2512, #3302, #1222, #2631, |
| #3306, #3116, #3215, #1489, #3319, #3320, #3321, #1255, #2169, #3182, #3323, |
| #3301, #3318, #3029, #3338, #3346, #1144, #3173, #3165, #685, #3357, #2582, |
| #3370, #2438, #1253, #637, #1971, #2208, #979, #1790, #1888, #1882, #1793, |
| #754, #1890, #1931, #1246, #1025, #3177, #2496, #2567, #3400, #2213, #2027, |
| #3415, #1262, #3422, #2500, #3414, #3045, #3111, #2974, #2947, #3222, #2878, |
| #3402, #2909, #3423, #1328, #1852, #3382, #3393, #2029, #3489, #1853, #2026, |
| #2375, #3502, #3482, #3504, #3505, #3507, #2605, #3519, #3520, #3121, #3484, |
| #3439, #3216, #3511, #3524, #3521, #3197, #2486, #2449, #2748, #3381, #3236, |
| #671 |
| |
| |
| Conch 8.2.0 (2008-12-16) |
| ======================== |
| |
| Features |
| -------- |
| - The type of the protocols instantiated by SSHFactory is now parameterized |
| (#3443) |
| |
| Fixes |
| ----- |
| - A file descriptor leak has been fixed (#3213, #1789) |
| - "File Already Exists" errors are now handled more correctly (#3033) |
| - Handling of CR IAC in TelnetClient is now improved (#3305) |
| - SSHAgent is no longer completely unusable (#3332) |
| - The performance of insults.ClientProtocol is now greatly increased by |
| delivering more than one byte at a time to application code (#3386) |
| - Manhole and the conch server no longer need to be run as root when not |
| necessary (#2607) |
| - The value of FILEXFER_ATTR_ACMODTIME has been corrected (#2902) |
| - The management of known_hosts and host key verification has been overhauled |
| (#1376, #1301, #3494, #3496, #1292, #3499) |
| |
| Other |
| ----- |
| - #3193, #1633 |
| |
| |
| Lore 8.2.0 (2008-12-16) |
| ======================= |
| |
| Other |
| ----- |
| - #2207, #2514 |
| |
| |
| Mail 8.2.0 (2008-12-16) |
| ======================= |
| |
| Fixes |
| ----- |
| - The mailmail tool now provides better error messages for usage errors (#3339) |
| - The SMTP protocol implementation now works on PyPy (#2976) |
| |
| Other |
| ----- |
| - #3475 |
| |
| |
| Names 8.2.0 (2008-12-16) |
| ======================== |
| |
| Features |
| -------- |
| - The NAPTR record type is now supported (#2276) |
| |
| Fixes |
| ----- |
| - Make client.Resolver less vulnerable to the Birthday Paradox attack by |
| avoiding sending duplicate queries when it's not necessary (#3347) |
| - client.Resolver now uses a random source port for each DNS request (#3342) |
| - client.Resolver now uses a full 16 bits of randomness for message IDs, |
| instead of 10 which it previously used (#3342) |
| - All record types now have value-based equality and a string representation |
| (#2935) |
| |
| Other |
| ----- |
| - #1622, #3424 |
| |
| |
| Web 8.2.0 (2008-12-16) |
| ====================== |
| |
| Features |
| -------- |
| - The web server can now deal with multi-value headers in the new attributes of |
| Request, requestHeaders and responseHeaders (#165) |
| - There is now a resource-wrapper which implements HTTP Basic and Digest auth |
| in terms of twisted.cred (#696) |
| - It's now possible to limit the number of redirects that client.getPage will |
| follow (#2412) |
| - The directory-listing code no longer uses Woven (#3257) |
| - static.File now supports Range headers with a single range (#1493) |
| - twisted.web now has a rudimentary WSGI container (#2753) |
| - The web server now supports chunked encoding in requests (#3385) |
| |
| Fixes |
| ----- |
| - The xmlrpc client now raises an error when the server sends an empty |
| response (#3399) |
| - HTTPPageGetter no longer duplicates default headers when they're explicitly |
| overridden in the headers parameter (#1382) |
| - The server will no longer timeout clients which are still sending request |
| data (#1903) |
| - microdom's isEqualToNode now returns False when the nodes aren't equal |
| (#2542) |
| |
| Deprecations and Removals |
| ------------------------- |
| |
| - Request.headers and Request.received_headers are not quite deprecated, but |
| they are discouraged in favor of requestHeaders and responseHeaders (#165) |
| |
| Other |
| ----- |
| - #909, #687, #2938, #1152, #2930, #2025, #2683, #3471 |
| |
| |
| Web2 8.2.0 (2008-12-16) |
| ======================= |
| |
| Note: Twisted Web2 is being phased out in preference for Twisted Web, but some |
| maintenance changes have been made. |
| |
| Fixes |
| ----- |
| - The main twisted.web2 docstring now indicates the current state of the |
| project (#2028) |
| - Headers which require unusual bytes are now quoted (#2346) |
| - Some links in the introduction documentation have been fixed (#2552) |
| |
| |
| Words 8.2.0 (2008-12-16) |
| ======================== |
| |
| Feature |
| ------- |
| - There is now a standalone XMPP router included in twisted.words: it can be |
| used with the 'twistd xmpp-router' command line (#3407) |
| - A server factory for Jabber XML Streams has been added (#3435) |
| - Domish now allows for iterating child elements with specific qualified names |
| (#2429) |
| - IRCClient now has a 'back' method which removes the away status (#3366) |
| - IRCClient now has a 'whois' method (#3133) |
| |
| Fixes |
| ----- |
| - The IRC Client implementation can now deal with compound mode changes (#3230) |
| - The MSN protocol implementation no longer requires the CVR0 protocol to |
| be included in the VER command (#3394) |
| - In the IRC server implementation, topic messages will no longer be sent for |
| a group which has no topic (#2204) |
| - An infinite loop (which caused infinite memory usage) in irc.split has been |
| fixed. This was triggered any time a message that starts with a delimiter |
| was sent (#3446) |
| - Jabber's toResponse now generates a valid stanza even when stanzaType is not |
| specified (#3467) |
| - The lifetime of authenticator instances in XmlStreamServerFactory is no |
| longer artificially extended (#3464) |
| |
| Other |
| ----- |
| - #3365 |
| |
| |
| Core 8.1.0 (2008-05-18) |
| ======================= |
| |
| Features |
| -------- |
| |
| - twisted.internet.error.ConnectionClosed is a new exception which is the |
| superclass of ConnectionLost and ConnectionDone (#3137) |
| - Trial's CPU and memory performance should be better now (#3034) |
| - twisted.python.filepath.FilePath now has a chmod method (#3124) |
| |
| Fixes |
| ----- |
| |
| - Some reactor re-entrancy regressions were fixed (#3146, #3168) |
| - A regression was fixed whereby constructing a Failure for an exception and |
| traceback raised out of a Pyrex extension would fail (#3132) |
| - CopyableFailures in PB can again be created from CopiedFailures (#3174) |
| - FilePath.remove, when called on a FilePath representing a symlink to a |
| directory, no longer removes the contents of the targeted directory, and |
| instead removes the symlink (#3097) |
| - FilePath now has a linkTo method for creating new symlinks (#3122) |
| - The docstring for Trial's addCleanup method now correctly specifies when |
| cleanup functions are run (#3131) |
| - assertWarns now deals better with multiple identical warnings (#2904) |
| - Various windows installer bugs were fixed (#3115, #3144, #3150, #3151, #3164) |
| - API links in the howto documentation have been corrected (#3130) |
| - The Win32 Process transport object now has a pid attribute (#1836) |
| - A doc bug in the twistd plugin howto which would inevitably lead to |
| confusion was fixed (#3183) |
| - A regression breaking IOCP introduced after the last release was fixed |
| (#3200) |
| |
| Deprecations and Removals |
| ------------------------- |
| |
| - mktap is now fully deprecated, and will emit DeprecationWarnings when used |
| (#3127) |
| |
| Other |
| ----- |
| - #3079, #3118, #3120, #3145, #3069, #3149, #3186, #3208, #2762 |
| |
| |
| Conch 8.1.0 (2008-05-18) |
| ======================== |
| |
| Fixes |
| ----- |
| - A regression was fixed whereby the publicKeys and privateKeys attributes of |
| SSHFactory would not be interpreted as strings (#3141) |
| - The sshsimpleserver.py example had a minor bug fix (#3135) |
| - The deprecated mktap API is no longer used (#3127) |
| - An infelicity was fixed whereby a NameError would be raised in certain |
| circumstances during authentication when a ConchError should have been |
| (#3154) |
| - A workaround was added to conch.insults for a bug in gnome-terminal whereby |
| it would not scroll correctly (#3189) |
| |
| |
| Lore 8.1.0 (2008-05-18) |
| ======================= |
| |
| Fixes |
| ----- |
| - The deprecated mktap API is no longer used (#3127) |
| |
| |
| News 8.1.0 (2008-05-18) |
| ======================= |
| |
| Fixes |
| ----- |
| - The deprecated mktap API is no longer used (#3127) |
| |
| |
| Web 8.1.0 (2008-05-18) |
| ====================== |
| |
| Fixes |
| ----- |
| - Fixed an XMLRPC bug whereby sometimes a callRemote Deferred would |
| accidentally be fired twice when a connection was lost during the handling of |
| a response (#3152) |
| - Fixed a bug in the "Using Twisted Web" document which prevented an example |
| resource from being renderable (#3147) |
| - The deprecated mktap API is no longer used (#3127) |
| |
| |
| Words 8.1.0 (2008-05-18) |
| ======================== |
| |
| Features |
| -------- |
| - JID objects now have a nice __repr__ (#3156) |
| - Extending XMPP protocols is now easier (#2178) |
| |
| Fixes |
| ----- |
| - The deprecated mktap API is no longer used (#3127) |
| - A bug whereby one-time XMPP observers would be enabled permanently was fixed |
| (#3066) |
| |
| |
| Mail 8.1.0 (2008-05-18) |
| ======================= |
| |
| Fixes |
| ----- |
| - The deprecated mktap API is no longer used (#3127) |
| |
| |
| Names 8.1.0 (2008-05-18) |
| ======================== |
| |
| Fixes |
| ----- |
| - The deprecated mktap API is no longer used (#3127) |
| |
| |
| Web2 8.1.0 (2008-05-18) |
| ======================= |
| |
| Fixes |
| ----- |
| - The deprecated mktap API is no longer used (#3127) |
| |
| |
| Core 8.0.1 (2008-03-26) |
| ======================= |
| |
| Fixes |
| ----- |
| - README no longer refers to obsolete trial command line option |
| - twistd no longer causes a bizarre DeprecationWarning about mktap |
| |
| |
| Core 8.0.0 (2008-03-17) |
| ======================= |
| |
| Features |
| -------- |
| |
| - The IOCP reactor has had many changes and is now greatly improved |
| (#1760, #3055) |
| - The main Twisted distribution is now easy_installable (#1286, #3110) |
| - twistd can now profile with cProfile (#2469) |
| - twisted.internet.defer contains a DeferredFilesystemLock which gives a |
| Deferred interface to lock file acquisition (#2180) |
| - twisted.python.modules is a new system for representing and manipulating |
| module paths (i.e. sys.path) (#1951) |
| - twisted.internet.fdesc now contains a writeToFD function, along with other |
| minor fixes (#2419) |
| - twisted.python.usage now allows optional type enforcement (#739) |
| - The reactor now has a blockingCallFromThread method for non-reactor threads |
| to use to wait for a reactor-scheduled call to return a result (#1042, #3030) |
| - Exceptions raised inside of inlineCallbacks-using functions now have a |
| better chance of coming with a meaningful traceback (#2639, #2803) |
| - twisted.python.randbytes now contains code for generating secure random |
| bytes (#2685) |
| - The classes in twisted.application.internet now accept a reactor parameter |
| for specifying the reactor to use for underlying calls to allow for better |
| testability (#2937) |
| - LoopingCall now allows you to specify the reactor to use to schedule new |
| calls, allowing much better testing techniques (#2633, #2634) |
| - twisted.internet.task.deferLater is a new API for scheduling calls and |
| getting deferreds which are fired with their results (#1875) |
| - objgrep now knows how to search through deque objects (#2323) |
| - twisted.python.log now contains a Twisted log observer which can forward |
| messages to the Python logging system (#1351) |
| - Log files now include seconds in the timestamps (#867) |
| - It is now possible to limit the number of log files to create during log |
| rotation (#1095) |
| - The interface required by the log context system is now documented as |
| ILoggingContext, and abstract.FileDescriptor now declares that it implements |
| it (#1272) |
| - There is now an example cred checker that uses a database via adbapi (#460) |
| - The epoll reactor is now documented in the choosing-reactors howto (#2539) |
| - There were improvements to the client howto (#222) |
| - Int8Receiver was added (#2315) |
| - Various refactorings to AMP introduced better testability and public |
| interfaces (#2657, #2667, #2656, #2664, #2810) |
| - twisted.protocol.policies.TrafficLoggingFactory now has a resetCounter |
| method (#2757) |
| - The FTP client can be told which port range within which to bind passive |
| transfer ports (#1904) |
| - twisted.protocols.memcache contains a new asynchronous memcache client |
| (#2506, #2957) |
| - PB now supports anonymous login (#439, #2312) |
| - twisted.spread.jelly now supports decimal objects (#2920) |
| - twisted.spread.jelly now supports all forms of sets (#2958) |
| - There is now an interface describing the API that process protocols must |
| provide (#3020) |
| - Trial reporting to core unittest TestResult objects has been improved (#2495) |
| - Trial's TestCase now has an addCleanup method which allows easy setup of |
| tear-down code (#2610, #2899) |
| - Trial's TestCase now has an assertIsInstance method (#2749) |
| - Trial's memory footprint and speed are greatly improved (#2275) |
| - At the end of trial runs, "PASSED" and "FAILED" messages are now colorized |
| (#2856) |
| - Tests which leave global state around in the reactor will now fail in |
| trial. A new option, --unclean-warnings, will convert these errors back into |
| warnings (#2091) |
| - Trial now has a --without-module command line for testing code in an |
| environment that lacks a particular Python module (#1795) |
| - Error reporting of failed assertEquals assertions now has much nicer |
| formatting (#2893) |
| - Trial now has methods for monkey-patching (#2598) |
| - Trial now has an ITestCase (#2898, #1950) |
| - The trial reporter API now has a 'done' method which is called at the end of |
| a test run (#2883) |
| - TestCase now has an assertWarns method which allows testing that functions |
| emit warnings (#2626, #2703) |
| - There are now no string exceptions in the entire Twisted code base (#2063) |
| - There is now a system for specifying credentials checkers with a string |
| (#2570) |
| |
| Fixes |
| ----- |
| |
| - Some tests which were asserting the value of stderr have been changed |
| because Python uncontrollably writes bytes to stderr (#2405) |
| - Log files handle time zones with DST better (#2404) |
| - Subprocesses using PTYs on OS X that are handled by Twisted will now be able |
| to more reliably write the final bytes before they exit, allowing Twisted |
| code to more reliably receive them (#2371, #2858) |
| - Trial unit test reporting has been improved (#1901) |
| - The kqueue reactor handles connection failures better (#2172) |
| - It's now possible to run "trial foo/bar/" without an exception: trailing |
| slashes no longer cause problems (#2005) |
| - cred portals now better deal with implementations of inherited interfaces |
| (#2523) |
| - FTP error handling has been improved (#1160, 1107) |
| - Trial behaves better with respect to file locking on Windows (#2482) |
| - The FTP server now gives a better error when STOR is attempted during an |
| anonymous session (#1575) |
| - Trial now behaves better with tests that use the reactor's threadpool (#1832) |
| - twisted.python.reload now behaves better with new-style objects (#2297) |
| - LogFile's defaultMode parameter is now better implemented, preventing |
| potential security exploits (#2586) |
| - A minor obscure leak in thread pools was corrected (#1134) |
| - twisted.internet.task.Clock now returns the correct DelayedCall from |
| callLater, instead of returning the one scheduled for the furthest in the |
| future (#2691) |
| - twisted.spread.util.FilePager no longer unnecessarily buffers data in |
| memory (#1843, 2321) |
| - Asking for twistd or trial to use an unavailable reactor no longer prints a |
| traceback (#2457) |
| - System event triggers have fewer obscure bugs (#2509) |
| - Plugin discovery code is much better behaved, allowing multiple |
| installations of a package with plugins (#2339, #2769) |
| - Process and PTYProcess have been merged and some minor bugs have been fixed |
| (#2341) |
| - The reactor has less global state (#2545) |
| - Failure can now correctly represent and format errors caused by string |
| exceptions (#2830) |
| - The epoll reactor now has better error handling which now avoids the bug |
| causing 100% CPU usage in some cases (#2809) |
| - Errors raised during trial setUp or tearDown methods are now handled better |
| (#2837) |
| - A problem when deferred callbacks add new callbacks to the deferred that |
| they are a callback of was fixed (#2849) |
| - Log messages that are emitted during connectionMade now have the protocol |
| prefix correctly set (#2813) |
| - The string representation of a TCP Server connection now contains the actual |
| port that it's bound to when it was configured to listen on port 0 (#2826) |
| - There is better reporting of error codes for TCP failures on Windows (#2425) |
| - Process spawning has been made slightly more robust by disabling garbage |
| collection temporarily immediately after forking so that finalizers cannot |
| be executed in an unexpected environment (#2483) |
| - namedAny now detects import errors better (#698) |
| - Many fixes and improvements to the twisted.python.zipstream module have |
| been made (#2996) |
| - FilePager no longer blows up on empty files (#3023) |
| - twisted.python.util.FancyEqMixin has been improved to cooperate with objects |
| of other types (#2944) |
| - twisted.python.FilePath.exists now restats to prevent incorrect result |
| (#2896) |
| - twisted.python.util.mergeFunctionMetadata now also merges the __module__ |
| attribute (#3049) |
| - It is now possible to call transport.pauseProducing within connectionMade on |
| TCP transports without it being ignored (#1780) |
| - twisted.python.versions now understands new SVN metadata format for fetching |
| the SVN revision number (#3058) |
| - It's now possible to use reactor.callWhenRunning(reactor.stop) on gtk2 and |
| glib2 reactors (#3011) |
| |
| Deprecations and removals |
| ------------------------- |
| - twisted.python.timeoutqueue is now deprecated (#2536) |
| - twisted.enterprise.row and twisted.enterprise.reflector are now deprecated |
| (#2387) |
| - twisted.enterprise.util is now deprecated (#3022) |
| - The dispatch and dispatchWithCallback methods of ThreadPool are now |
| deprecated (#2684) |
| - Starting the same reactor multiple times is now deprecated (#1785) |
| - The visit method of various test classes in trial has been deprecated (#2897) |
| - The --report-profile option to twistd and twisted.python.dxprofile are |
| deprecated (#2908) |
| - The upDownError method of Trial reporters is deprecated (#2883) |
| |
| Other |
| ----- |
| |
| - #2396, #2211, #1921, #2378, #2247, #1603, #2463, #2530, #2426, #2356, #2574, |
| - #1844, #2575, #2655, #2640, #2670, #2688, #2543, #2743, #2744, #2745, #2746, |
| - #2742, #2741, #1730, #2831, #2216, #1192, #2848, #2767, #1220, #2727, #2643, |
| - #2669, #2866, #2867, #1879, #2766, #2855, #2547, #2857, #2862, #1264, #2735, |
| - #942, #2885, #2739, #2901, #2928, #2954, #2906, #2925, #2942, #2894, #2793, |
| - #2761, #2977, #2968, #2895, #3000, #2990, #2919, #2969, #2921, #3005, #421, |
| - #3031, #2940, #1181, #2783, #1049, #3053, #2847, #2941, #2876, #2886, #3086, |
| - #3095, #3109 |
| |
| |
| Conch 8.0.0 (2008-03-17) |
| ======================== |
| |
| Features |
| -------- |
| - Add DEC private mode manipulation methods to ITerminalTransport. (#2403) |
| |
| Fixes |
| ----- |
| - Parameterize the scheduler function used by the insults TopWindow widget. |
| This change breaks backwards compatibility in the TopWindow initializer. |
| (#2413) |
| - Notify subsystems, like SFTP, of connection close. (#2421) |
| - Change the process file descriptor "connection lost" code to reverse the |
| setNonBlocking operation done during initialization. (#2371) |
| - Change ConsoleManhole to wait for connectionLost notification before |
| stopping the reactor. (#2123, #2371) |
| - Make SSHUserAuthServer.ssh_USERAUTH_REQUEST return a Deferred. (#2528) |
| - Manhole's initializer calls its parent class's initializer with its |
| namespace argument. (#2587) |
| - Handle ^C during input line continuation in manhole by updating the prompt |
| and line buffer correctly. (#2663) |
| - Make twisted.conch.telnet.Telnet by default reject all attempts to enable |
| options. (#1967) |
| - Reduce the number of calls into application code to deliver application-level |
| data in twisted.conch.telnet.Telnet.dataReceived (#2107) |
| - Fix definition and management of extended attributes in conch file transfer. |
| (#3010) |
| - Fix parsing of OpenSSH-generated RSA keys with differing ASN.1 packing style. |
| (#3008) |
| - Fix handling of missing $HOME in twisted.conch.client.unix. (#3061) |
| |
| Misc |
| ---- |
| - #2267, #2378, #2604, #2707, #2341, #2685, #2679, #2912, #2977, #2678, #2709 |
| #2063, #2847 |
| |
| |
| Lore 8.0.0 (2008-03-17) |
| ======================= |
| |
| Fixes |
| ----- |
| - Change twisted.lore.tree.setIndexLin so that it removes node with index-link |
| class when the specified index filename is None. (#812) |
| - Fix the conversion of the list of options in man pages to Lore format. |
| (#3017) |
| - Fix conch man pages generation. (#3075) |
| - Fix management of the interactive command tag in man2lore. (#3076) |
| |
| Misc |
| ---- |
| - #2847 |
| |
| |
| News 8.0.0 (2008-03-17) |
| ======================= |
| |
| Misc |
| ---- |
| - Remove all "API Stability" markers (#2847) |
| |
| |
| Runner 8.0.0 (2008-03-17) |
| ========================= |
| |
| Misc |
| ---- |
| - Remove all "API Stability" markers (#2847) |
| |
| |
| Web 8.0.0 (2008-03-17) |
| ====================== |
| |
| Features |
| -------- |
| - Add support to twisted.web.client.getPage for the HTTP HEAD method. (#2750) |
| |
| Fixes |
| ----- |
| - Set content-type in xmlrpc responses to "text/xml" (#2430) |
| - Add more error checking in the xmlrpc.XMLRPC render method, and enforce |
| POST requests. (#2505) |
| - Reject unicode input to twisted.web.client._parse to reject invalid |
| unicode URLs early. (#2628) |
| - Correctly re-quote URL path segments when generating an URL string to |
| return from Request.prePathURL. (#2934) |
| - Make twisted.web.proxy.ProxyClientFactory close the connection when |
| reporting a 501 error. (#1089) |
| - Fix twisted.web.proxy.ReverseProxyResource to specify the port in the |
| host header if different from 80. (#1117) |
| - Change twisted.web.proxy.ReverseProxyResource so that it correctly encodes |
| the request URI it sends on to the server for which it is a proxy. (#3013) |
| - Make "twistd web --personal" use PBServerFactory (#2681) |
| |
| Misc |
| ---- |
| - #1996, #2382, #2211, #2633, #2634, #2640, #2752, #238, #2905 |
| |
| |
| Words 8.0.0 (2008-03-17) |
| ======================== |
| |
| Features |
| -------- |
| - Provide function for creating XMPP response stanzas. (#2614, #2614) |
| - Log exceptions raised in Xish observers. (#2616) |
| - Add 'and' and 'or' operators for Xish XPath expressions. (#2502) |
| - Make JIDs hashable. (#2770) |
| |
| Fixes |
| ----- |
| - Respect the hostname and servername parameters to IRCClient.register. (#1649) |
| - Make EventDispatcher remove empty callback lists. (#1652) |
| - Use legacy base64 API to support Python 2.3 (#2461) |
| - Fix support of DIGEST-MD5 challenge parsing with multi-valued directives. |
| (#2606) |
| - Fix reuse of dict of prefixes in domish.Element.toXml (#2609) |
| - Properly process XMPP stream headers (#2615) |
| - Use proper namespace for XMPP stream errors. (#2630) |
| - Properly parse XMPP stream errors. (#2771) |
| - Fix toResponse for XMPP stanzas without an id attribute. (#2773) |
| - Move XMPP stream header procesing to authenticators. (#2772) |
| |
| Misc |
| ---- |
| - #2617, #2640, #2741, #2063, #2570, #2847 |
| |
| |
| Mail 8.0.0 (2008-03-17) |
| ======================= |
| |
| Features |
| -------- |
| - Support CAPABILITY responses that include atoms of the form "FOO" and |
| "FOO=BAR" in IMAP4 (#2695) |
| - Parameterize error handling behavior of imap4.encoder and imap4.decoder. |
| (#2929) |
| |
| Fixes |
| ----- |
| - Handle empty passwords in SMTP auth. (#2521) |
| - Fix IMAP4Client's parsing of literals which are not preceeded by whitespace. |
| (#2700) |
| - Handle MX lookup suceeding without answers. (#2807) |
| - Fix issues with aliases(5) process support. (#2729) |
| |
| Misc |
| ---- |
| - #2371, #2123, #2378, #739, #2640, #2746, #1917, #2266, #2864, #2832, #2063, |
| #2865, #2847 |
| |
| |
| Names 8.0.0 (2008-03-17) |
| ======================== |
| |
| Fixes |
| ----- |
| |
| - Refactor DNSDatagramProtocol and DNSProtocol to use same base class (#2414) |
| - Change Resolver to query specified nameservers in specified order, instead |
| of reverse order. (#2290) |
| - Make SRVConnector work with bad results and NXDOMAIN responses. |
| (#1908, #2777) |
| - Handle write errors happening in dns queries, to have correct deferred |
| failures. (#2492) |
| - Fix the value of OP_NOTIFY and add a definition for OP_UPDATE. (#2945) |
| |
| Misc |
| ---- |
| - #2685, #2936, #2581, #2847 |
| |