Twisted 10.1.0

Milestone information

Project:
Twisted
Series:
main
Version:
10.1.0
Released:
 
Registrant:
Jonathan Lange
Release registered:
Active:
Yes. Drivers can target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
No users assigned to blueprints and bugs.
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
No bugs are targeted to this milestone.

Download files for this release

File Description Downloads

Release notes 

Highlights include:

 * Deferreds now support cancellation

 * A new "endpoint" interface which can abstractly describe stream transport endpoints such as TCP and SSL

 * inotify support for Linux, which allows monitoring of file system events.

 * AMP supports transferring timestamps

Note also that this is the *last* supported release of Twisted for Python 2.4 on Windows.

For more information, see the NEWS file.

It's stable, backwards compatible, well tested and in every way an improvement. Download it now from:

 http://tmrc.mit.edu/mirror/twisted/Twisted/10.1/Twisted-10.1.0.tar.bz2
 http://tmrc.mit.edu/mirror/twisted/Twisted/10.1/Twisted-10.1.0.winxp32-py2.5.msi
 http://tmrc.mit.edu/mirror/twisted/Twisted/10.1/Twisted-10.1.0.winxp32-py2.6.msi

Many thanks to Glyph Lefkowitz, who helped do the release preparation, and the PyCon 2010 sprinters, who did so much of the work for this release.

Changelog 

View the full changelog

Ticket numbers in this file can be looked up by visiting
http://twistedmatrix.com/trac/ticket/<number>

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)

0 blueprints and 0 bugs targeted

There are no feature specifications or bug tasks targeted to this milestone. The project's maintainer, driver, or bug supervisor can target specifications and bug tasks to this milestone to track the things that are expected to be completed for the release.

This milestone contains Public information
Everyone can see this information.