1417 lines
54 KiB
Plaintext
1417 lines
54 KiB
Plaintext
Ticket numbers in this file can be looked up by visiting
|
|
http://twistedmatrix.com/trac/ticket/<number>
|
|
|
|
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
|
|
|