Initial import to Tizen
[profile/ivi/python-twisted.git] / NEWS
1 Ticket numbers in this file can be looked up by visiting
2 http://twistedmatrix.com/trac/ticket/<number>
3
4 Twisted Core 12.1.0 (2012-06-02)
5 ================================
6
7 Features
8 --------
9  - The kqueue reactor has been revived. (#1918)
10  - twisted.python.filepath now provides IFilePath, an interface for
11    file path objects. (#2176)
12  - New gtk3 and gobject-introspection reactors have been added.
13    (#4558)
14  - gtk and glib reactors now run I/O and scheduled events with lower
15    priority, to ensure the UI stays responsive. (#5067)
16  - IReactorTCP.connectTCP() can now accept IPv6 address literals
17    (although not hostnames) in order to support connecting to IPv6
18    hosts. (#5085)
19  - twisted.internet.interfaces.IReactorSocket, a new interface, is now
20    supported by some reactors to listen on sockets set up by external
21    software (eg systemd or launchd). (#5248)
22  - twisted.internet.endpoints.clientFromString now also supports
23    strings in the form of tcp:example.com:80 and ssl:example.com:4321
24    (#5358)
25  - twisted.python.constants.Flags now provides a way to define
26    collections of flags for bitvector-type uses. (#5384)
27  - The epoll(7)-based reactor is now the default reactor on Linux.
28    (#5478)
29  - twisted.python.runtime.platform.isLinux can be used to check if
30    Twisted is running on Linux. (#5491)
31  - twisted.internet.endpoints.serverFromString now recognizes a
32    "systemd" endpoint type, for listening on a server port inherited
33    from systemd. (#5575)
34  - Connections created using twisted.internet.interfaces.IReactorUNIX
35    now support sending and receiving file descriptors between
36    different processes. (#5615)
37  - twisted.internet.endpoints.clientFromString now supports UNIX
38    client endpoint strings with the path argument specified like
39    "unix:/foo/bar" in addition to the old style, "unix:path=/foo/bar".
40    (#5640)
41  - twisted.protocols.amp.Descriptor is a new AMP argument type which
42    supports passing file descriptors as AMP command arguments over
43    UNIX connections. (#5650)
44
45 Bugfixes
46 --------
47  - twisted.internet.abstract.FileDescriptor implements
48    twisted.internet.interfaces.IPushProducer instead of
49    twisted.internet.interfaces.IProducer.
50    twisted.internet.iocpreactor.abstract.FileHandle implements
51    twisted.internet.interfaces.IPushProducer instead of
52    twisted.internet.interfaces.IProducer. (#4386)
53  - The epoll reactor now supports reading/writing to regular files on
54    stdin/stdout. (#4429)
55  - Calling .cancel() on any Twisted-provided client endpoint
56    (TCP4ClientEndpoint, UNIXClientEndpoint, SSL4ClientEndpoint) now
57    works as documented, rather than logging an AlreadyCalledError.
58    (#4710)
59  - A leak of OVERLAPPED structures in some IOCP error cases has been
60    fixed. (#5372)
61  - twisted.internet._pollingfile._PollableWritePipe now checks for
62    outgoing unicode data in write() and writeSequence() instead of
63    checkWork(). (#5412)
64
65 Improved Documentation
66 ----------------------
67  - "Working from Twisted's Subversion repository" links to UQDS and
68    Combinator are now updated. (#5545)
69  - Added tkinterdemo.py, an example of Tkinter integration. (#5631)
70
71 Deprecations and Removals
72 -------------------------
73  - The 'unsigned' flag to twisted.scripts.tap2rpm.MyOptions is now
74    deprecated.  (#4086)
75  - Removed the unreachable _fileUrandom method from
76    twisted.python.randbytes.RandomFactory. (#4530)
77  - twisted.persisted.journal is removed, deprecated since Twisted
78    11.0. (#4805)
79  - Support for pyOpenSSL 0.9 and older is now deprecated.  pyOpenSSL
80    0.10 or newer will soon be required in order to use Twisted's SSL
81    features. (#4974)
82  - backwardsCompatImplements and fixClassImplements are removed from
83    twisted.python.components, deprecated in 2006. (#5034)
84  - twisted.python.reflect.macro was removed, deprecated since Twisted
85    8.2. (#5035)
86  - twisted.python.text.docstringLStrip, deprecated since Twisted
87    10.2.0, has been removed (#5036)
88  - Removed the deprecated dispatch and dispatchWithCallback methods
89    from twisted.python.threadpool.ThreadPool (deprecated since 8.0)
90    (#5037)
91  - twisted.scripts.tapconvert is now deprecated. (#5038)
92  - twisted.python.reflect's Settable, AccessorType, PropertyAccessor,
93    Accessor, OriginalAccessor and Summer are now deprecated.  (#5451)
94  - twisted.python.threadpool.ThreadSafeList (deprecated in 10.1) is
95    removed. (#5473)
96  - twisted.application.app.initialLog, deprecated since Twisted 8.2.0,
97    has been removed. (#5480)
98  - twisted.spread.refpath was deleted, deprecated since Twisted 9.0.
99    (#5482)
100  - twisted.python.otp, deprecated since 9.0, is removed. (#5493)
101  - Removed `dsu`, `moduleMovedForSplit`, and `dict` from
102    twisted.python.util (deprecated since 10.2) (#5516)
103
104 Other
105 -----
106  - #2723, #3114, #3398, #4388, #4489, #5055, #5116, #5242, #5380,
107    #5392, #5447, #5457, #5484, #5489, #5492, #5494, #5512, #5523,
108    #5558, #5572, #5583, #5593, #5620, #5621, #5623, #5625, #5637,
109    #5652, #5653, #5656, #5657, #5660, #5673
110
111
112 Twisted Conch 12.1.0 (2012-06-02)
113 =================================
114
115 Features
116 --------
117  - twisted.conch.tap now supports cred plugins (#4753)
118
119 Bugfixes
120 --------
121  - twisted.conch.client.knownhosts now handles errors encountered
122    parsing hashed entries in a known hosts file. (#5616)
123
124 Improved Documentation
125 ----------------------
126  - Conch examples window.tac and telnet_echo.tac now have better
127    explanations. (#5590)
128
129 Other
130 -----
131  - #5580
132
133
134 Twisted Lore 12.1.0 (2012-06-02)
135 ================================
136
137 Bugfixes
138 --------
139  - twisted.plugins.twisted_lore's MathProcessor plugin is now
140    associated with the correct implementation module. (#5326)
141
142
143 Twisted Mail 12.1.0 (2012-06-02)
144 ================================
145
146 Bugfixes
147 --------
148  - twistd mail --auth, broken in 11.0, now correctly connects
149    authentication to the portal being used (#5219)
150
151 Other
152 -----
153  - #5686
154
155
156 Twisted Names 12.1.0 (2012-06-02)
157 =================================
158
159 Features
160 --------
161  - "twistd dns" secondary server functionality and
162    twisted.names.secondary now support retrieving zone information
163    from a master running on a non-standard DNS port. (#5468)
164
165 Bugfixes
166 --------
167  - twisted.names.dns.DNSProtocol instances no longer throw an
168    exception when disconnecting. (#5471)
169  - twisted.names.tap.makeService (thus also "twistd dns") now makes a
170    DNS server which gives precedence to the hosts file from its
171    configuration over the remote DNS servers from its configuration.
172    (#5524)
173  - twisted.name.cache.CacheResolver now makes sure TTLs on returned
174    results are never negative. (#5579)
175  - twisted.names.cache.CacheResolver entries added via the initializer
176    are now timed out correctly. (#5638)
177
178 Improved Documentation
179 ----------------------
180  - The examples now contain instructions on how to run them and
181    descriptions in the examples index. (#5588)
182
183 Deprecations and Removals
184 -------------------------
185  - The deprecated twisted.names.dns.Record_mx.exchange attribute was
186    removed. (#4549)
187
188
189 Twisted News 12.1.0 (2012-06-02)
190 ================================
191
192 Bugfixes
193 --------
194  - twisted.news.nntp.NNTPServer now has additional test coverage and
195    less redundant implementation code. (#5537)
196
197 Deprecations and Removals
198 -------------------------
199  - The ability to pass a string article to NNTPServer._gotBody and
200    NNTPServer._gotArticle in t.news.nntp has been deprecated for years
201    and is now removed. (#4548)
202
203
204 Twisted Pair 12.1.0 (2012-06-02)
205 ================================
206
207 No significant changes have been made for this release.
208
209
210 Twisted Runner 12.1.0 (2012-06-02)
211 ==================================
212
213 Deprecations and Removals
214 -------------------------
215  - ProcessMonitor.active, consistencyDelay, and consistency in
216    twisted.runner.procmon were deprecated since 10.1 have been
217    removed. (#5517)
218
219
220 Twisted Web 12.1.0 (2012-06-02)
221 ===============================
222
223 Features
224 --------
225  - twisted.web.client.Agent and ProxyAgent now support persistent
226    connections. (#3420)
227  - Added twisted.web.template.renderElement, a function which renders
228    an Element to a response. (#5395)
229  - twisted.web.client.HTTPConnectionPool now ensures that failed
230    queries on persistent connections are retried, when possible.
231    (#5479)
232  - twisted.web.template.XMLFile now supports FilePath objects. (#5509)
233  - twisted.web.template.renderElement takes a doctype keyword
234    argument, which will be written as the first line of the response,
235    defaulting to the HTML5 doctype. (#5560)
236
237 Bugfixes
238 --------
239  - twisted.web.util.formatFailure now quotes all data in its output to
240    avoid it being mistakenly interpreted as markup. (#4896)
241  - twisted.web.distrib now lets distributed servers set the response
242    message. (#5525)
243
244 Deprecations and Removals
245 -------------------------
246  - PHP3Script and PHPScript were removed from twisted.web.twcgi,
247    deprecated since 10.1. Use twcgi.FilteredScript instead. (#5456)
248  - twisted.web.template.XMLFile's support for file objects and
249    filenames is now deprecated.  Use the new support for FilePath
250    objects. (#5509)
251  - twisted.web.server.date_time_string and
252    twisted.web.server.string_date_time are now deprecated in favor of
253    twisted.web.http.datetimeToString and twisted.web.
254    http.stringToDatetime (#5535)
255
256 Other
257 -----
258  - #4966, #5460, #5490, #5591, #5602, #5609, #5612
259
260
261 Twisted Words 12.1.0 (2012-06-02)
262 =================================
263
264 Bugfixes
265 --------
266  - twisted.words.protocols.irc.DccChatFactory.buildProtocol now
267    returns the protocol object that it creates (#3179)
268  - twisted.words.im no longer offers an empty threat of a rewrite on
269    import. (#5598)
270
271 Other
272 -----
273  - #5555, #5595
274
275
276 Twisted Core 12.0.0 (2012-02-10)
277 ================================
278
279 Features
280 --------
281  - The interface argument to IReactorTCP.listenTCP may now be an IPv6
282    address literal, allowing the creation of IPv6 TCP servers. (#5084)
283  - twisted.python.constants.Names now provides a way to define
284    collections of named constants, similar to the "enum type" feature
285    of C or Java. (#5382)
286  - twisted.python.constants.Values now provides a way to define
287    collections of named constants with arbitrary values. (#5383)
288
289 Bugfixes
290 --------
291  - Fixed an obscure case where connectionLost wasn't called on the
292    protocol when using half-close. (#3037)
293  - UDP ports handle socket errors better on Windows. (#3396)
294  - When idle, the gtk2 and glib2 reactors no longer wake up 10 times a
295    second. (#4376)
296  - Prevent a rare situation involving TLS transports, where a producer
297    may be erroneously left unpaused. (#5347)
298  - twisted.internet.iocpreactor.iocpsupport now has fewer 64-bit
299    compile warnings. (#5373)
300  - The GTK2 reactor is now more responsive on Windows. (#5396)
301  - TLS transports now correctly handle producer registration after the
302    connection has been lost. (#5439)
303  - twisted.protocols.htb.Bucket now empties properly with a non-zero
304    drip rate. (#5448)
305  - IReactorSSL and ITCPTransport.startTLS now synchronously propagate
306    errors from the getContext method of context factories, instead of
307    being capturing them and logging them as unhandled. (#5449)
308
309 Improved Documentation
310 ----------------------
311  - The multicast documentation has been expanded. (#4262)
312  - twisted.internet.defer.Deferred now documents more return values.
313    (#5399)
314  - Show a better starting page at
315    http://twistedmatrix.com/documents/current (#5429)
316
317 Deprecations and Removals
318 -------------------------
319  - Remove the deprecated module twisted.enterprise.reflector. (#4108)
320  - Removed the deprecated module twisted.enterprise.row. (#4109)
321  - Remove the deprecated module twisted.enterprise.sqlreflector.
322    (#4110)
323  - Removed the deprecated module twisted.enterprise.util, as well as
324    twisted.enterprise.adbapi.safe. (#4111)
325  - Python 2.4 is no longer supported on any platform. (#5060)
326  - Removed printTraceback and noOperation from twisted.spread.pb,
327    deprecated since Twisted 8.2. (#5370)
328
329 Other
330 -----
331  - #1712, #2725, #5284, #5325, #5331, #5362, #5364, #5371, #5407,
332    #5427, #5430, #5431, #5440, #5441
333
334
335 Twisted Conch 12.0.0 (2012-02-10)
336 =================================
337
338 Features
339 --------
340  - use Python shadow module for authentication if it's available
341    (#3242)
342
343 Bugfixes
344 --------
345  - twisted.conch.ssh.transport.messages no longer ends with with old
346    message IDs on platforms with differing dict() orderings (#5352)
347
348 Other
349 -----
350  - #5225
351
352
353 Twisted Lore 12.0.0 (2012-02-10)
354 ================================
355
356 No significant changes have been made for this release.
357
358
359 Twisted Mail 12.0.0 (2012-02-10)
360 ================================
361
362 No significant changes have been made for this release.
363
364
365 Twisted Names 12.0.0 (2012-02-10)
366 =================================
367
368 Bugfixes
369 --------
370  - twisted.names.dns.Message now sets the `auth` flag on RRHeader
371    instances it creates to reflect the authority of the message
372    itself. (#5421)
373
374
375 Twisted News 12.0.0 (2012-02-10)
376 ================================
377
378 No significant changes have been made for this release.
379
380
381 Twisted Pair 12.0.0 (2012-02-10)
382 ================================
383
384 No significant changes have been made for this release.
385
386
387 Twisted Runner 12.0.0 (2012-02-10)
388 ==================================
389
390 No significant changes have been made for this release.
391
392
393 Twisted Web 12.0.0 (2012-02-10)
394 ===============================
395
396 Features
397 --------
398  - twisted.web.util.redirectTo now raises TypeError if the URL passed
399    to it is a unicode string instead of a byte string. (#5236)
400  - The new class twisted.web.template.CharRef provides support for
401    inserting numeric character references in output generated by
402    twisted.web.template. (#5408)
403
404 Improved Documentation
405 ----------------------
406  - The Twisted Web howto now has a section on proxies and reverse
407    proxies. (#399)
408  - The web client howto now covers ContentDecoderAgent and links to an
409    example of its use. (#5415)
410
411 Other
412 -----
413  - #5404, #5438
414
415
416 Twisted Words 12.0.0 (2012-02-10)
417 =================================
418
419 Improved Documentation
420 ----------------------
421  - twisted.words.im.basechat now has improved API documentation.
422    (#2458)
423
424 Other
425 -----
426  - #5401
427
428
429 Twisted Core 11.1.0 (2011-11-15)
430 ================================
431
432 Features
433 --------
434  - TCP and TLS transports now support abortConnection() which, unlike
435    loseConnection(), always closes the connection immediately. (#78)
436  - Failures received over PB when tracebacks are disabled now display
437    the wrapped exception value when they are printed. (#581)
438  - twistd now has a --logger option, allowing the use of custom log
439    observers. (#638)
440  - The default reactor is now poll(2) on platforms that support it.
441    (#2234)
442  - twisted.internet.defer.inlineCallbacks(f) now raises TypeError when
443    f returns something other than a generator or uses returnValue as a
444    non-generator. (#2501)
445  - twisted.python.usage.Options now supports performing Zsh tab-
446    completion on demand. Tab-completion for Twisted commands is
447    supported out-of-the-box on any recent zsh release. Third-party
448    commands may take advantage of zsh completion by copying the
449    provided stub file. (#3078)
450  - twisted.protocols.portforward now uses flow control between its
451    client and server connections to avoid having to buffer an
452    unbounded amount of data when one connection is slower than the
453    other. (#3350)
454  - On Windows, the select, IOCP, and Gtk2 reactors now implement
455    IReactorWin32Events (most notably adding support for serial ports
456    to these reactors). (#4862)
457  - twisted.python.failure.Failure no longer captures the state of
458    locals and globals of all stack frames by default, because it is
459    expensive to do and rarely used.  You can pass captureVars=True to
460    Failure's constructor if you want to capture this data. (#5011)
461  - twisted.web.client now supports automatic content-decoding via
462    twisted.web.client.ContentDecoderAgent, gzip being supported for
463    now. (#5053)
464  - Protocols may now implement ILoggingContext to customize their
465    logging prefix.  twisted.protocols.policies.ProtocolWrapper and the
466    endpoints wrapper now take advantage of this feature to ensure the
467    application protocol is still reflected in logs. (#5062)
468  - AMP's raw message-parsing performance was increased by
469    approximately 12%. (#5075)
470  - Twisted is now installable on PyPy, because some incompatible C
471    extensions are no longer built. (#5158)
472  - twisted.internet.defer.gatherResults now accepts a consumeErrors
473    parameter, with the same meaning as the corresponding argument for
474    DeferredList. (#5159)
475  - Added RMD (remove directory) support to the FTP client. (#5259)
476  - Server factories may now implement ILoggingContext to customize the
477    name that is logged when the reactor uses one to start listening on
478    a port. (#5292)
479  - The implementations of ITransport.writeSequence will now raise
480    TypeError if passed unicode strings. (#3896)
481  - iocp reactor now operates correctly on 64 bit Python runtimes.
482    (#4669)
483  - twistd ftp now supports the cred plugin. (#4752)
484  - twisted.python.filepath.FilePath now has an API to retrieve the
485    permissions of the underlying file, and two methods to determine
486    whether it is a block device or a socket.  (#4813)
487  - twisted.trial.unittest.TestCase is now compatible with Python 2.7's
488    assertDictEqual method. (#5291)
489
490 Bugfixes
491 --------
492  - The IOCP reactor now does not try to erroneously pause non-
493    streaming producers. (#745)
494  - Unicode print statements no longer blow up when using Twisted's
495    logging system. (#1990)
496  - Process transports on Windows now support the `writeToChild` method
497    (but only for stdin). (#2838)
498  - Zsh tab-completion of Twisted commands no longer relies on
499    statically generated files, but instead generates results on-the-
500    fly - ensuring accurate tab-completion for the version of Twisted
501    actually in use. (#3078)
502  - LogPublishers don't use the global log publisher for reporting
503    broken observers anymore. (#3307)
504  - trial and twistd now add the current directory to sys.path even
505    when running as root or on Windows. mktap, tapconvert, and
506    pyhtmlizer no longer add the current directory to sys.path. (#3526)
507  - twisted.internet.win32eventreactor now stops immediately if
508    reactor.stop() is called from an IWriteDescriptor.doWrite
509    implementation instead of delaying shutdown for an arbitrary period
510    of time. (#3824)
511  - twisted.python.log now handles RuntimeErrors more gracefully, and
512    always restores log observers after an exception is raised. (#4379)
513  - twisted.spread now supports updating new-style RemoteCache
514    instances. (#4447)
515  - twisted.spread.pb.CopiedFailure will no longer be thrown into a
516    generator as a (deprecated) string exception but as a
517    twisted.spread.pb.RemoteException. (#4520)
518  - trial now gracefully handles the presence of objects in sys.modules
519    which respond to attributes being set on them by modifying
520    sys.modules. (#4748)
521  - twisted.python.deprecate.deprecatedModuleAttribute no longer
522    spuriously warns twice when used to deprecate a module within a
523    package.  This should make it easier to write unit tests for
524    deprecated modules. (#4806)
525  - When pyOpenSSL 0.10 or newer is available, SSL support now uses
526    Twisted for all I/O and only relies on OpenSSL for cryptography,
527    avoiding a number of tricky, potentially broken edge cases. (#4854)
528  - IStreamClientEndpointStringParser.parseStreamClient now correctly
529    describes how it will be called by clientFromString (#4956)
530  - twisted.internet.defer.Deferreds are 10 times faster at handling
531    exceptions raised from callbacks, except when setDebugging(True)
532    has been called. (#5011)
533  - twisted.python.filepath.FilePath.copyTo now raises OSError(ENOENT)
534    if the source path being copied does not exist. (#5017)
535  - twisted.python.modules now supports iterating over namespace
536    packages without yielding duplicates. (#5030)
537  - reactor.spawnProcess now uses the resource module to guess the
538    maximum possible open file descriptor when /dev/fd exists but gives
539    incorrect results. (#5052)
540  - The memory BIO TLS/SSL implementation now supports producers
541    correctly. (#5063)
542  - twisted.spread.pb.Broker no longer creates an uncollectable
543    reference cycle when the logout callback holds a reference to the
544    client mind object. (#5079)
545  - twisted.protocols.tls, and SSL/TLS support in general, now do clean
546    TLS close alerts when disconnecting. (#5118)
547  - twisted.persisted.styles no longer uses the deprecated allYourBase
548    function (#5193)
549  - Stream client endpoints now start (doStart) and stop (doStop) the
550    factory passed to the connect method, instead of a different
551    implementation-detail factory. (#5278)
552  - SSL ports now consistently report themselves as SSL rather than TCP
553    when logging their close message. (#5292)
554  - Serial ports now deliver connectionLost to the protocol when
555    closed. (#3690)
556  - win32eventreactor now behaves better in certain rare cases in which
557    it previously would have failed to deliver connection lost
558    notification to a protocol. (#5233)
559
560 Improved Documentation
561 ----------------------
562  - Test driven development with Twisted and Trial is now documented in
563    a how-to. (#2443)
564  - A new howto-style document covering twisted.protocols.amp has been
565    added. (#3476)
566  - Added sample implementation of a Twisted push producer/consumer
567    system. (#3835)
568  - The "Deferred in Depth" tutorial now includes accurate output for
569    the deferred_ex2.py example. (#3941)
570  - The server howto now covers the Factory.buildProtocol method.
571    (#4761)
572  - The testing standard and the trial tutorial now recommend the
573    `assertEqual` form of assertions rather than the `assertEquals` to
574    coincide with the standard library unittest's preference. (#4989)
575  - twisted.python.filepath.FilePath's methods now have more complete
576    API documentation (docstrings). (#5027)
577  - The Clients howto now uses buildProtocol more explicitly, hopefully
578    making it easier to understand where Protocol instances come from.
579    (#5044)
580
581 Deprecations and Removals
582 -------------------------
583  - twisted.internet.interfaces.IFinishableConsumer is now deprecated.
584    (#2661)
585  - twisted.python.zshcomp is now deprecated in favor of the tab-
586    completion system in twisted.python.usage (#3078)
587  - The unzip and unzipIter functions in twisted.python.zipstream are
588    now deprecated. (#3666)
589  - Options.optStrings, deprecated for 7 years, has been removed.  Use
590    Options.optParameters instead. (#4552)
591  - Removed the deprecated twisted.python.dispatch module. (#5023)
592  - Removed the twisted.runner.procutils module that was deprecated in
593    Twisted 2.3. (#5049)
594  - Removed twisted.trial.runner.DocTestSuite, deprecated in Twisted
595    8.0. (#5111)
596  - twisted.scripts.tkunzip is now deprecated. (#5140)
597  - Deprecated option --password-file in twistd ftp (#4752)
598  - mktap, deprecated since Twisted 8.0, has been removed. (#5293)
599
600 Other
601 -----
602  - #1946, #2562, #2674, #3074, #3077, #3776, #4227, #4539, #4587,
603    #4619, #4624, #4629, #4683, #4690, #4702, #4778, #4944, #4945,
604    #4949, #4952, #4957, #4979, #4980, #4987, #4990, #4994, #4995,
605    #4997, #5003, #5008, #5009, #5012, #5019, #5042, #5046, #5051,
606    #5065, #5083, #5088, #5089, #5090, #5101, #5108, #5109, #5112,
607    #5114, #5125, #5128, #5131, #5136, #5139, #5144, #5146, #5147,
608    #5156, #5160, #5165, #5191, #5205, #5215, #5217, #5218, #5223,
609    #5243, #5244, #5250, #5254, #5261, #5266, #5273, #5299, #5301,
610    #5302, #5304, #5308, #5311, #5321, #5322, #5327, #5328, #5332,
611    #5336
612
613
614 Twisted Conch 11.1.0 (2011-11-15)
615 =================================
616
617 Features
618 --------
619  - twisted.conch.ssh.filetransfer.FileTransferClient now handles short
620    status messages, not strictly allowed by the RFC, but sent by some
621    SSH implementations. (#3009)
622  - twisted.conch.manhole now supports CTRL-A and CTRL-E to trigger
623    HOME and END functions respectively. (#5252)
624
625 Bugfixes
626 --------
627  - When run from an unpacked source tarball or a VCS checkout, the
628    bin/conch/ scripts will now use the version of Twisted they are
629    part of. (#3526)
630  - twisted.conch.insults.window.ScrolledArea now passes no extra
631    arguments to object.__init__ (which works on more versions of
632    Python). (#4197)
633  - twisted.conch.telnet.ITelnetProtocol now has the correct signature
634    for its unhandledSubnegotiation() method. (#4751)
635  - twisted.conch.ssh.userauth.SSHUserAuthClient now more closely
636    follows the RFC 4251 definition of boolean values when negotiating
637    for key-based authentication, allowing better interoperability with
638    other SSH implementations. (#5241)
639  - twisted.conch.recvline.RecvLine now ignores certain function keys
640    in its keystrokeReceived method instead of raising an exception.
641    (#5246)
642
643 Deprecations and Removals
644 -------------------------
645  - The --user option to `twistd manhole' has been removed as it was
646    dead code with no functionality associated with it. (#5283)
647
648 Other
649 -----
650  - #5107, #5256, #5349
651
652
653 Twisted Lore 11.1.0 (2011-11-15)
654 ================================
655
656 Bugfixes
657 --------
658  - When run from an unpacked source tarball or a VCS checkout,
659    bin/lore/lore will now use the version of Twisted it is part of.
660    (#3526)
661
662 Deprecations and Removals
663 -------------------------
664  - Removed compareMarkPos and comparePosition from lore.tree,
665    deprecated in Twisted 9.0. (#5127)
666
667
668 Twisted Mail 11.1.0 (2011-11-15)
669 ================================
670
671 Features
672 --------
673  - twisted.mail.smtp.LOGINCredentials now generates challenges with
674    ":" instead of "\0" for interoperability with Microsoft Outlook.
675    (#4692)
676
677 Bugfixes
678 --------
679  - When run from an unpacked source tarball or a VCS checkout,
680    bin/mail/mailmail will now use the version of Twisted it is part
681    of. (#3526)
682
683 Other
684 -----
685  - #4796, #5006
686
687
688 Twisted Names 11.1.0 (2011-11-15)
689 =================================
690
691 Features
692 --------
693  - twisted.names.dns.Message now parses records of unknown type into
694    instances of a new `UnknownType` class. (#4603)
695
696 Bugfixes
697 --------
698  - twisted.names.dns.Name now detects loops in names it is decoding
699    and raises an exception.  Previously it would follow the loop
700    forever, allowing a remote denial of service attack against any
701    twisted.names client or server. (#5064)
702  - twisted.names.hosts.Resolver now supports IPv6 addresses; its
703    lookupAddress method now filters them out and its lookupIPV6Address
704    method is now implemented. (#5098)
705
706
707 Twisted News 11.1.0 (2011-11-15)
708 ================================
709
710 No significant changes have been made for this release.
711
712
713 Twisted Pair 11.1.0 (2011-11-15)
714 ================================
715
716 No significant changes have been made for this release.
717
718
719 Twisted Runner 11.1.0 (2011-11-15)
720 ==================================
721
722 No significant changes have been made for this release.
723
724
725 Twisted Web 11.1.0 (2011-11-15)
726 ===============================
727
728 Features
729 --------
730  - twisted.web.client.ProxyAgent is a new HTTP/1.1 web client which
731    adds proxy support. (#1774)
732  - twisted.web.client.Agent now takes optional connectTimeout and
733    bindAddress arguments which are forwarded to the subsequent
734    connectTCP/connectSSL call. (#3450)
735  - The new class twisted.web.client.FileBodyProducer makes it easy to
736    upload data in HTTP requests made using the Agent client APIs.
737    (#4017)
738  - twisted.web.xmlrpc.XMLRPC now allows its lookupProcedure method to
739    be overridden to change how XML-RPC procedures are dispatched.
740    (#4836)
741  - A new HTTP cookie-aware Twisted Web Agent wrapper is included in
742    twisted.web.client.CookieAgent (#4922)
743  - New class twisted.web.template.TagLoader provides an
744    ITemplateLoader implementation which loads already-created
745    twisted.web.iweb.IRenderable providers. (#5040)
746  - The new class twisted.web.client.RedirectAgent adds redirect
747    support to the HTTP 1.1 client stack. (#5157)
748  - twisted.web.template now supports HTML tags from the HTML5
749    standard, including <canvas> and <video>. (#5306)
750
751 Bugfixes
752 --------
753  - twisted.web.client.getPage and .downloadPage now only fire their
754    result Deferred after the underlying connection they use has been
755    closed. (#3796)
756  - twisted.web.server now omits the default Content-Type header from
757    NOT MODIFIED responses. (#4156)
758  - twisted.web.server now responds correctly to 'Expect: 100-continue'
759    headers, although this is not yet usefully exposed to user code.
760    (#4673)
761  - twisted.web.client.Agent no longer raises an exception if a server
762    responds and closes the connection before the request has been
763    fully transmitted. (#5013)
764  - twisted.web.http_headers.Headers now correctly capitalizes the
765    header names Content-MD5, DNT, ETag, P3P, TE, and X-XSS-Protection.
766    (#5054)
767  - twisted.web.template now escapes more inputs to comments which
768    require escaping in the output. (#5275)
769
770 Improved Documentation
771 ----------------------
772  - The twisted.web.template howto now documents the common idiom of
773    yielding tag clones from a renderer. (#5286)
774  - CookieAgent is now documented in the twisted.web.client how-to.
775    (#5110)
776
777 Deprecations and Removals
778 -------------------------
779  - twisted.web.google is now deprecated. (#5209)
780
781 Other
782 -----
783  - #4951, #5057, #5175, #5288, #5316
784
785
786 Twisted Words 11.1.0 (2011-11-15)
787 =================================
788
789 Features
790 --------
791  - twisted.words.protocols.irc.IRCClient now uses a PING heartbeat as
792    a keepalive to avoid losing an IRC connection without being aware
793    of it. (#5047)
794
795 Bugfixes
796 --------
797  - twisted.words.protocols.irc.IRCClient now replies only once to
798    known CTCP queries per message and not at all to unknown CTCP
799    queries. (#5029)
800  - IRCClient.msg now determines a safe maximum command length,
801    drastically reducing the chance of relayed text being truncated on
802    the server side. (#5176)
803
804 Deprecations and Removals
805 -------------------------
806  - twisted.words.protocols.irc.IRCClient.me was deprecated in Twisted
807    9.0 and has been removed. Use IRCClient.describe instead. (#5059)
808
809 Other
810 -----
811  - #5025, #5330
812
813
814 Twisted Core 11.0.0 (2011-04-01)
815 ================================
816
817 Features
818 --------
819  - The reactor is not restartable, but it would previously fail to
820    complain. Now, when you restart an unrestartable reactor, you get
821    an exception. (#2066)
822  - twisted.plugin now only emits a short log message, rather than a
823    full traceback, if there is a problem writing out the dropin cache
824    file. (#2409)
825  - Added a 'replacement' parameter to the
826    'twisted.python.deprecate.deprecated' decorator.  This allows
827    deprecations to unambiguously specify what they have been
828    deprecated in favor of. (#3047)
829  - Added access methods to FilePath for FilePath.statinfo's st_ino,
830    st_dev, st_nlink, st_uid, and st_gid fields.  This is in
831    preparation for the deprecation of FilePath.statinfo. (#4712)
832  - IPv4Address and UNIXAddress now have a __hash__ method. (#4783)
833  - twisted.protocols.ftp.FTP.ftp_STOR now catches `FTPCmdError`s
834    raised by the file writer, and returns the error back to the
835    client. (#4909)
836
837 Bugfixes
838 --------
839  - twistd will no longer fail if a non-root user passes --uid 'myuid'
840    as a command-line argument. Instead, it will emit an error message.
841    (#3172)
842  - IOCPReactor now sends immediate completions to the main loop
843    (#3233)
844  - trial can now load test methods from multiple classes, even if the
845    methods all happen to be inherited from the same base class.
846    (#3383)
847  - twisted.web.server will now produce a correct Allow header when a
848    particular render_FOO method is missing. (#3678)
849  - HEAD requests made to resources whose HEAD handling defaults to
850    calling render_GET now always receive a response with no body.
851    (#3684)
852  - trial now loads decorated test methods whether or not the decorator
853    preserves the original method name. (#3909)
854  - t.p.amp.AmpBox.serialize will now correctly consistently complain
855    when being fed Unicode. (#3931)
856  - twisted.internet.wxreactor now supports stopping more reliably.
857    (#3948)
858  - reactor.spawnProcess on Windows can now handle ASCII-encodable
859    Unicode strings in the system environment (#3964)
860  - When C-extensions are not complied for twisted, on python2.4, skip
861    a test in twisted.internet.test.test_process that may hang due to a
862    SIGCHLD related problem. Running 'python setup.py build_ext
863    --inplace' will compile the extension and cause the test to both
864    run and pass. (#4331)
865  - twisted.python.logfile.LogFile now raises a descriptive exception
866    when passed a log  directoy which does not exist. (#4701)
867  - Fixed a bug where Inotify will fail to add a filepatch to watchlist
868    after it has been added/ignored previously. (#4708)
869  - IPv4Address and UNIXAddress object comparison operators fixed
870    (#4817)
871  - twisted.internet.task.Clock now sorts the list of pending calls
872    before and after processing each call (#4823)
873  - ConnectionLost is now in twisted.internet.error.__all__ instead of
874    twisted.words.protocols.jabber.xmlstream.__all__. (#4856)
875  - twisted.internet.process now detects the most appropriate mechanism
876    to use for detecting the open file descriptors on a system, getting
877    Twisted working on FreeBSD even when fdescfs is not mounted.
878    (#4881)
879  - twisted.words.services referenced nonexistent
880    twisted.words.protocols.irc.IRC_NOSUCHCHANNEL. This has been fixed.
881    Related code has also received test cases. (#4915)
882
883 Improved Documentation
884 ----------------------
885  - The INSTALL file now lists all of Twisted's dependencies. (#967)
886  - Added the stopService and startService methods to all finger
887    example files. (#3375)
888  - Missing reactor.run() calls were added in the UDP and client howto
889    documents. (#3834)
890  - The maxRetries attribute of
891    twisted.internet.protocols.RetryingClientFactory now has API
892    documentation. (#4618)
893  - Lore docs pointed to a template that no longer existed, this has
894    been fixed. (#4682)
895  - The `servers` argument to `twisted.names.client.createResolver` now
896    has more complete API documentation. (#4713)
897  - Linked to the Twisted endpoints tutorial from the Twisted core
898    howto list.  (#4773)
899  - The Endpoints howto now links to the API documentation. (#4774)
900  - The Quotes howto is now more clear in its PYTHONPATH setup
901    instructions. (#4785)
902  - The API documentation for DeferredList's fireOnOneCallback
903    parameter now gives the correct order of the elements of the result
904    tuple. (#4882)
905
906 Deprecations and Removals
907 -------------------------
908  - returning a value other than None from IProtocol.dataReceived was
909    deprecated (#2491)
910  - Deprecated the --extra option in trial.  (#3372)
911  - twisted.protocols._c_urlarg has been removed. (#4162)
912  - Remove the --report-profile option for twistd, deprecated since
913    2007. (#4236)
914  - Deprecated twisted.persisted.journal.  This library is no longer
915    maintained.  (#4298)
916  - Removed twisted.protocols.loopback.loopback, which has been
917    deprecated since Twisted 2.5. (#4547)
918  - __getitem__ __getslice__ and __eq__ (tuple comparison, indexing)
919    removed from twisted.internet.address.IPv4Address and
920    twisted.internet.address.UNIXAddress classes UNIXAddress and
921    IPv4Address properties _bwHack are now deprecated in
922    twisted.internet.address (#4817)
923  - twisted.python.reflect.allYourBase is now no longer used, replaced
924    with inspect.getmro (#4928)
925  - allYourBase and accumulateBases are now deprecated in favor of
926    inspect.getmro. (#4946)
927
928 Other
929 -----
930
931 - #555, #1982, #2618, #2665, #2666, #4035, #4247, #4567, #4636,
932   #4717, #4733, #4750, #4821, #4842, #4846, #4853, #4857, #4858,
933   #4863, #4864, #4865, #4866, #4867, #4868, #4869, #4870, #4871,
934   #4872, #4873, #4874, #4875, #4876, #4877, #4878, #4879, #4905,
935   #4906, #4908, #4934, #4955, #4960
936
937
938 Twisted Conch 11.0.0 (2011-04-01)
939 =================================
940
941 Bugfixes
942 --------
943  - The transport for subsystem protocols now declares that it
944    implements ITransport and implements the getHost and getPeer
945    methods. (#2453)
946  - twisted.conch.ssh.transport.SSHTransportBase now responds to key
947    exchange messages at any time during a connection (instead of only
948    at connection setup).  It also queues non-key exchange messages
949    sent during key exchange to avoid corrupting the connection state.
950    (#4395)
951  - Importing twisted.conch.ssh.common no longer breaks pow(base, exp[,
952    modulus]) when the gmpy package is installed and base is not an
953    integer. (#4803)
954  - twisted.conch.ls.lsLine now returns a time string which does not
955    consider the locale. (#4937)
956
957 Improved Documentation
958 ----------------------
959  - Changed the man page for ckeygen to accurately reflect what it
960    does, and corrected its synposis so that a second "ckeygen" is not
961    a required part of the ckeygen command line.  (#4738)
962
963 Other
964 -----
965  - #2112
966
967
968 Twisted Lore 11.0.0 (2011-04-01)
969 ================================
970
971 No significant changes have been made for this release.
972
973
974 Twisted Mail 11.0.0 (2011-04-01)
975 ================================
976
977 Features
978 --------
979  - The `twistd mail` command line now accepts endpoint descriptions
980    for POP3 and SMTP servers. (#4739)
981  - The twistd mail plugin now accepts new authentication options via
982    strcred.AuthOptionMixin.  These include --auth, --auth-help, and
983    authentication type-specific help options. (#4740)
984
985 Bugfixes
986 --------
987  - twisted.mail.imap4.IMAP4Server now generates INTERNALDATE strings
988    which do not consider the locale. (#4937)
989
990 Improved Documentation
991 ----------------------
992  - Added a simple SMTP example, showing how to use sendmail. (#4042)
993
994 Other
995 -----
996
997  - #4162
998
999
1000 Twisted Names 11.0.0 (2011-04-01)
1001 =================================
1002
1003 No significant changes have been made for this release.
1004
1005
1006 Twisted News 11.0.0 (2011-04-01)
1007 ================================
1008
1009 No significant changes have been made for this release.
1010
1011 Other
1012 -----
1013  - #4580
1014
1015
1016 Twisted Pair 11.0.0 (2011-04-01)
1017 ================================
1018
1019 No significant changes have been made for this release.
1020
1021
1022 Twisted Runner 11.0.0 (2011-04-01)
1023 ==================================
1024
1025 No significant changes have been made for this release.
1026
1027
1028 Twisted Web 11.0.0 (2011-04-01)
1029 ===============================
1030
1031 Features
1032 --------
1033  - twisted.web._newclient.HTTPParser (and therefore Agent) now handles
1034    HTTP headers delimited by bare LF newlines. (#3833)
1035  - twisted.web.client.downloadPage now accepts the `afterFoundGet`
1036    parameter, with the same meaning as the `getPage` parameter of the
1037    same name. (#4364)
1038  - twisted.web.xmlrpc.Proxy constructor now takes additional 'timeout'
1039    and 'reactor' arguments. The 'timeout' argument defaults to 30
1040    seconds. (#4741)
1041  - Twisted Web now has a templating system, twisted.web.template,
1042    which is a direct, simplified derivative of Divmod Nevow. (#4939)
1043
1044 Bugfixes
1045 --------
1046  - HTTPPageGetter now adds the port to the host header if it is not
1047    the default for that scheme. (#3857)
1048  - twisted.web.http.Request.write now raises an exception if it is
1049    called after response generation has already finished. (#4317)
1050  - twisted.web.client.HTTPPageGetter and twisted.web.client.getPage
1051    now no longer make two requests when using afterFoundGet. (#4760)
1052  - twisted.web.twcgi no longer adds an extra "content-type" header to
1053    CGI responses. (#4786)
1054  - twisted.web will now properly specify an encoding (UTF-8) on error,
1055    redirect, and directory listing pages, so that IE7 and previous
1056    will not improperly guess the 'utf7' encoding in these cases.
1057    Please note that Twisted still sets a *default* content-type of
1058    'text/html', and you shouldn't rely on that: you should set the
1059    encoding appropriately in your application. (#4900)
1060  - twisted.web.http.Request.setHost now sets the port in the host
1061    header if it is not the default. (#4918)
1062  - default NOT_IMPLEMENTED and NOT_ALLOWED pages now quote the request
1063    method and URI respectively, to protect against browsers which
1064    don't quote those values for us. (#4978)
1065
1066 Improved Documentation
1067 ----------------------
1068  - The XML-RPC howto now includes an example demonstrating how to
1069    access the HTTP request object in a server-side XML-RPC method.
1070    (#4732)
1071  - The Twisted Web client howto now uses the correct, public name for
1072    twisted.web.client.Response. (#4769)
1073  - Some broken links were fixed, descriptions were updated, and new
1074    API links were added in the Resource Templating documentation
1075    (resource-templates.xhtml) (#4968)
1076
1077 Other
1078 -----
1079  - #2271, #2386, #4162, #4733, #4855, #4911, #4973
1080
1081
1082 Twisted Words 11.0.0 (2011-04-01)
1083 =================================
1084
1085 Features
1086 --------
1087  - twisted.words.protocols.irc.IRCClient now has an invite method.
1088    (#4820)
1089
1090 Bugfixes
1091 --------
1092  - twisted.words.protocols.irc.IRCClient.say is once again able to
1093    send messages when using the default value for the length limit
1094    argument. (#4758)
1095  - twisted.words.protocols.jabber.jstrports is once again able to
1096    parse jstrport description strings. (#4771)
1097  - twisted.words.protocols.msn.NotificationClient now calls the
1098    loginFailure callback when it is unable to connect to the Passport
1099    server due to missing SSL dependencies. (#4801)
1100  - twisted.words.protocols.jabber.xmpp_stringprep now always uses
1101    Unicode version 3.2 for stringprep normalization. (#4850)
1102
1103 Improved Documentation
1104 ----------------------
1105  - Removed the non-working AIM bot example, depending on the obsolete
1106    twisted.words.protocols.toc functionality. (#4007)
1107  - Outdated GUI-related information was removed from the IM howto.
1108    (#4054)
1109
1110 Deprecations and Removals
1111 -------------------------
1112  - Remove twisted.words.protocols.toc, that was largely non-working
1113    and useless since AOL disabled TOC on their AIM network. (#4363)
1114
1115 Other
1116 -----
1117  - #4733, #4902
1118
1119
1120 Twisted Core 10.2.0 (2010-11-29)
1121 ================================
1122
1123 Features
1124 --------
1125  - twisted.internet.cfreactor has been significantly improved.  It now
1126    runs, and passes, the test suite.  Many, many bugs in it have been
1127    fixed, including several segfaults, as it now uses PyObjC and
1128    longer requires C code in Twisted. (#1833)
1129  - twisted.protocols.ftp.FTPRealm now accepts a parameter to override
1130    "/home" as the container for user directories.  The new
1131    BaseFTPRealm class in the same module also allows easy
1132    implementation of custom user directory schemes. (#2179)
1133  - twisted.python.filepath.FilePath and twisted.python.zippath.ZipPath
1134    now have a descendant method to simplify code which calls the child
1135    method repeatedly. (#3169)
1136  - twisted.python.failure._Frame objects now support fake f_locals
1137    attribute. (#4045)
1138  - twisted.internet.endpoints now has 'serverFromString' and
1139    'clientFromString' APIs for constructing endpoints from descriptive
1140    strings. (#4473)
1141  - The default trial reporter now combines reporting of tests with the
1142    same result to shorten its summary output. (#4487)
1143  - The new class twisted.protocols.ftp.SystemFTPRealm implements an
1144    FTP realm which uses system accounts to select home directories.
1145    (#4494)
1146  - twisted.internet.reactor.spawnProcess now wastes less time trying
1147    to close non-existent file descriptors on POSIX platforms. (#4522)
1148  - twisted.internet.win32eventreactor now declares that it implements
1149    a new twisted.internet.interfaces.IReactorWin32Events interface.
1150    (#4523)
1151  - twisted.application.service.IProcess now documents its attributes
1152    using zope.interface.Attribute. (#4534)
1153  - twisted.application.app.ReactorSelectionMixin now saves the value
1154    of the --reactor option in the "reactor" key of the options object.
1155    (#4563)
1156  - twisted.internet.endpoints.serverFromString and clientFromString,
1157    and therefore also twisted.application.strports.service, now
1158    support plugins, so third parties may implement their own endpoint
1159    types. (#4695)
1160
1161 Bugfixes
1162 --------
1163  - twisted.internet.defer.Deferred now handles chains iteratively
1164    instead of recursively, preventing RuntimeError due to excessive
1165    recursion when handling long Deferred chains. (#411)
1166  - twisted.internet.cfreactor now works with trial. (#2556)
1167  - twisted.enterprise.adbapi.ConnectionPool.close may now be called
1168    even if the connection pool has not yet been started.  This will
1169    prevent the pool from ever starting. (#2680)
1170  - twisted.protocols.basic.NetstringReceiver raises
1171    NetstringParseErrors for  invalid netstrings now. It handles empty
1172    netstrings ("0:,") correctly, and  the performance for receiving
1173    netstrings has been improved. (#4378)
1174  - reactor.listenUDP now returns an object which declares that it
1175    implements IListeningPort. (#4462)
1176  - twisted.python.randbytes no longer uses PyCrypto as a secure random
1177    number source (since it is not one). (#4468)
1178  - twisted.internet.main.installReactor now blocks installation of
1179    another reactor when using python -O (#4476)
1180  - twisted.python.deprecate.deprecatedModuleAttribute now emits only
1181    one warning when used to deprecate a package attribute which is a
1182    module. (#4492)
1183  - The "brief" mode of twisted.python.failure.Failure.getTraceback now
1184    handles exceptions raised by the underlying exception's __str__
1185    method. (#4501)
1186  - twisted.words.xish.domish now correctly parses XML with namespaces
1187    which include whitespace. (#4503)
1188  - twisted.names.authority.FileAuthority now generates correct
1189    negative caching hints, marks its referral NS RRs as non-
1190    authoritative, and correctly generates referrals for ALL_RECORDS
1191    requests. (#4513)
1192  - twisted.internet.test.reactormixins.ReactorBuilder's attribute
1193    `requiredInterface` (which should an interface) is now
1194    `requiredInterfaces` (a list of interfaces) as originally described
1195    per the documentation. (#4527)
1196  - twisted.python.zippath.ZipPath.__repr__ now correctly formats paths
1197    with ".." in them (by including it). (#4535)
1198  - twisted.names.hosts.searchFileFor has been fixed against
1199    refcounting dependency. (#4540)
1200  - The POSIX process transports now declare that they implement
1201    IProcessTransport. (#4585)
1202  - Twisted can now be built with the LLVM clang compiler, with
1203    'CC=clang python setup.py build'.  C code that caused errors with
1204    this compiler has been removed. (#4652)
1205  - trial now puts coverage data in the path specified by --temp-
1206    directory, even if that option comes after --coverage on the
1207    command line. (#4657)
1208  - The unregisterProducer method of connection-oriented transports
1209    will now cause the connection to be closed if there was a prior
1210    call to loseConnection. (#4719)
1211  - Fixed an issue where the new StreamServerEndpointService didn't log
1212    listen errors.  (This was a bug not present in any previous
1213    releases, as this class is new.) (#4731)
1214
1215 Improved Documentation
1216 ----------------------
1217  - The trial man page now documents the meaning of the final line of
1218    output of the default reporter. (#1384)
1219  - The API documentation for twisted.internet.defer.DeferredList now
1220    goes into more depth about the effects each of the __init__ flags
1221    that class accepts. (#3595)
1222  - There is now narrative documentation for the endpoints APIs, in the
1223    'endpoints' core howto, as well as modifications to the 'writing
1224    clients' and 'writing servers' core howto documents to indicate
1225    that endpoints are now the preferred style of listening and
1226    connecting. (#4478)
1227  - trial's man page now documents the --disablegc option in more
1228    detail. (#4511)
1229  - trial's coverage output format is now documented in the trial man
1230    page. (#4512)
1231  - Broken links and spelling errors in the finger tutorial are now
1232    fixed. (#4516)
1233  - twisted.internet.threads.blockingCallFromThread's docstring is now
1234    explicit about Deferred support. (#4517)
1235  - twisted.python.zippath.ZipPath.child now documents its handling of
1236    ".." (which is not special, making it different from
1237    FilePath.child). (#4535)
1238  - The API docs for twisted.internet.defer.Deferred now cover several
1239    more of its (less interesting) attributes. (#4538)
1240  - LineReceiver, NetstringReceiver, and IntNStringReceiver from
1241    twisted.protocols.basic now have improved API documentation for
1242    read callbacks and write methods. (#4542)
1243  - Tidied up the Twisted Conch documentation for easier conversion.
1244    (#4566)
1245  - Use correct Twisted version for when cancellation was introduced in
1246    the Deferred docstring. (#4614)
1247  - The logging howto is now more clear about how the standard library
1248    logging module and twisted.python.log can be integrated. (#4642)
1249  - The finger tutorial still had references to .tap files. This
1250    reference has now been removed. The documentation clarifies
1251    "finger.tap" is a module and not a filename. (#4679)
1252  - The finger tutorial had a broken link to the
1253    twisted.application.service.Service class, which is now fixed.
1254    Additionally, a minor typo ('verison') was fixed.  (#4681)
1255  - twisted.protocols.policies.TimeoutMixin now has clearer API
1256    documentation. (#4684)
1257
1258 Deprecations and Removals
1259 -------------------------
1260  - twisted.internet.defer.Deferred.setTimeout has been removed, after
1261    being deprecated since Twisted 2.0. (#1702)
1262  - twisted.internet.interfaces.IReactorTime.cancelCallLater
1263    (deprecated since  2007) and
1264    twisted.internet.interfaces.base.ReactorBase.cancelCallLater
1265    (deprecated since 2002) have been removed. (#4076)
1266  - Removed twisted.cred.util.py, which has been deprecated since
1267    Twisted 8.3. (#4107)
1268  - twisted.python.text.docstringLStrip was deprecated. (#4328)
1269  - The module attributes `LENGTH`, `DATA`, `COMMA`, and `NUMBER` of
1270    twisted.protocols.basic (previously used by `NetstringReceiver`)
1271    are now deprecated. (#4541)
1272  - twisted.protocols.basic.SafeNetstringReceiver, deprecated since
1273    2001 (before Twisted 2.0), was removed. (#4546)
1274  - twisted.python.threadable.whenThreaded, deprecated since Twisted
1275    2.2.0, has been removed. (#4550)
1276  - twisted.python.timeoutqueue, deprecated since Twisted 8.0, has been
1277    removed. (#4551)
1278  - iocpreactor transports can no longer be pickled. (#4617)
1279
1280 Other
1281 -----
1282  - #4300, #4475, #4477, #4504, #4556, #4562, #4564, #4569, #4608,
1283    #4616, #4617, #4626, #4630, #4650, #4705
1284
1285
1286 Twisted Conch 10.2.0 (2010-11-29)
1287 =================================
1288
1289 Bugfixes
1290 --------
1291  - twisted.conch.ssh.factory.SSHFactory no longer disables coredumps.
1292    (#2715)
1293  - The Deferred returned by twisted.conch.telnet.TelnetTransport.will
1294    now fires with an OptionRefused failure if the peer responds with a
1295    refusal for the option negotiation. (#4231)
1296  - SSHServerTransport and SSHClientTransport in
1297    twisted.conch.ssh.transport no longer use PyCrypto to generate
1298    random numbers for DH KEX.  They also now generate values from the
1299    full valid range, rather than only half of it. (#4469)
1300  - twisted.conch.ssh.connection.SSHConnection now errbacks leftover
1301    request deferreds on connection shutdown. (#4483)
1302
1303 Other
1304 -----
1305  - #4677
1306
1307
1308 Twisted Lore 10.2.0 (2010-11-29)
1309 ================================
1310
1311 No significant changes have been made for this release.
1312
1313 Other
1314 -----
1315  - #4571
1316
1317
1318 Twisted Mail 10.2.0 (2010-11-29)
1319 ================================
1320
1321 Improved Documentation
1322 ----------------------
1323  - The email server example now demonstrates how to set up
1324    authentication and authorization using twisted.cred. (#4609)
1325
1326 Deprecations and Removals
1327 -------------------------
1328  - twisted.mail.smtp.sendEmail, deprecated since mid 2003 (before
1329    Twisted 2.0), has been removed. (#4529)
1330
1331 Other
1332 -----
1333  - #4038, #4572
1334
1335
1336 Twisted Names 10.2.0 (2010-11-29)
1337 =================================
1338
1339 Features
1340 --------
1341  - twisted.names.server can now serve SPF resource records using
1342    twisted.names.dns.Record_SPF.  twisted.names.client can query for
1343    them using lookupSenderPolicy.   (#3928)
1344
1345 Bugfixes
1346 --------
1347  - twisted.names.common.extractRecords doesn't try to close the
1348    transport anymore in case of recursion, as it's done by the
1349    Resolver itself now. (#3998)
1350
1351 Improved Documentation
1352 ----------------------
1353  - Tidied up the Twisted Names documentation for easier conversion.
1354    (#4573)
1355
1356
1357 Twisted News 10.2.0 (2010-11-29)
1358 ================================
1359
1360 Bugfixes
1361 --------
1362  - twisted.news.database.PickleStorage now invokes the email APIs
1363    correctly, allowing it to actually send moderation emails. (#4528)
1364
1365
1366 Twisted Pair 10.2.0 (2010-11-29)
1367 ================================
1368
1369 No significant changes have been made for this release.
1370
1371
1372 Twisted Runner 10.2.0 (2010-11-29)
1373 ==================================
1374
1375 No significant changes have been made for this release.
1376
1377
1378 Twisted Web 10.2.0 (2010-11-29)
1379 ===============================
1380
1381 Features
1382 --------
1383  - twisted.web.xmlrpc.XMLRPC.xmlrpc_* methods can now be decorated
1384    using withRequest to cause them to be passed the HTTP request
1385    object. (#3073)
1386
1387 Bugfixes
1388 --------
1389  - twisted.web.xmlrpc.QueryProtocol.handleResponse now disconnects
1390    from the server, meaning that Twisted XML-RPC clients disconnect
1391    from the server as soon as they receive a response, rather than
1392    relying on the server to disconnect. (#2518)
1393  - twisted.web.twcgi now generates responses containing all
1394    occurrences of duplicate headers produced by CGI scripts, not just
1395    the last value. (#4742)
1396
1397 Deprecations and Removals
1398 -------------------------
1399  - twisted.web.trp, which has been deprecated since Twisted 9.0, was
1400    removed. (#4299)
1401
1402 Other
1403 -----
1404  - #4576, #4577, #4709, #4723
1405
1406
1407 Twisted Words 10.2.0 (2010-11-29)
1408 =================================
1409
1410 Features
1411 --------
1412  - twisted.words.protocols.irc.IRCClient.msg now enforces a maximum
1413    length for messages, splitting up messages that are too long.
1414    (#4416)
1415
1416 Bugfixes
1417 --------
1418  - twisted.words.protocols.irc.IRCClient no longer invokes privmsg()
1419    in the default noticed() implementation. (#4419)
1420  - twisted.words.im.ircsupport.IRCProto now sends the correct name in
1421    the USER command. (#4641)
1422
1423 Deprecations and Removals
1424 -------------------------
1425  - Remove twisted.words.im.proxyui and twisted.words.im.tap. (#1823)
1426
1427
1428 Twisted Core 10.1.0 (2010-06-27)
1429 ================================
1430
1431 Features
1432 --------
1433  - Add linux inotify support, allowing monitoring of file system
1434    events. (#972)
1435  - Deferreds now support cancellation. (#990)
1436  - Added new "endpoint" interfaces in twisted.internet.interfaces,
1437    which abstractly describe stream transport endpoints which can be
1438    listened on or connected to.  Implementations for TCP and SSL
1439    clients and servers are present in twisted.internet.endpoints.
1440    Notably, client endpoints' connect() methods return cancellable
1441    Deferreds, so code written to use them can bypass the awkward
1442    "ClientFactory.clientConnectionFailed" and
1443    "Connector.stopConnecting" methods, and handle errbacks from or
1444    cancel the returned deferred, respectively. (#1442)
1445  - twisted.protocols.amp.Integer's documentation now clarifies that
1446    integers of arbitrary size are supported and that the wire format
1447    is a base-10 representation. (#2650)
1448  - twisted.protocols.amp now includes support for transferring
1449    timestamps (amp.DateTime) and decimal values (amp.Decimal). (#2651)
1450  - twisted.protocol.ftp.IWriteFile now has a close() method, which can
1451    return a Deferred. Previously a STOR command would finish
1452    immediately upon the receipt of the last byte of the uploaded file.
1453    With close(), the backend can delay the finish until it has
1454    performed some other slow action (like storing the data to a
1455    virtual filesystem). (#3462)
1456  - FilePath now calls os.stat() only when new status information is
1457    required, rather than immediately when anything changes.  For some
1458    applications this may result in fewer stat() calls.  Additionally,
1459    FilePath has a new method, 'changed', which applications may use to
1460    indicate that the FilePath may have been changed on disk and
1461    therefore the next status information request must  fetch a new
1462    stat result.  This is useful if external systems, such as C
1463    libraries, may have changed files that Twisted applications are
1464    referencing via a FilePath. (#4130)
1465  - Documentation improvements are now summarized in the NEWS file.
1466    (#4224)
1467  - twisted.internet.task.deferLater now returns a cancellable
1468    Deferred. (#4318)
1469  - The connect methods of twisted.internet.protocol.ClientCreator now
1470    return cancellable Deferreds. (#4329)
1471  - twisted.spread.pb now has documentation covering some of its
1472    limitations. (#4402)
1473  - twisted.spread.jelly now supports jellying and unjellying classes
1474    defined with slots if they also implement __getstate__ and
1475    __setstate__. (#4430)
1476  - twisted.protocols.amp.ListOf arguments can now be specified as
1477    optional. (#4474)
1478
1479 Bugfixes
1480 --------
1481  - On POSIX platforms, reactors now support child processes in a way
1482    which doesn't cause other syscalls to sometimes fail with EINTR (if
1483    running on Python 2.6 or if Twisted's extension modules have been
1484    built). (#733)
1485  - Substrings are escaped before being passed to a regular expression
1486    for searching to ensure that they don't get interpreted as part of
1487    the expression. (#1893)
1488  - twisted.internet.stdio now supports stdout being redirected to a
1489    normal file (except when using epollreactor). (#2259)
1490  -  (#2367)
1491  - The tap2rpm script now works with modern versions of RPM. (#3292)
1492  - twisted.python.modules.walkModules will now handle packages
1493    explicitly precluded from importing by a None placed in
1494    sys.modules. (#3419)
1495  - ConnectedDatagramPort now uses stopListening when a connection
1496    fails instead of the deprecated loseConnection. (#3425)
1497  - twisted.python.filepath.FilePath.setContent is now safe for
1498    multiple processes to use concurrently. (#3694)
1499  - The mode argument to the methods of
1500    twisted.internet.interfaces.IReactorUNIX is no longer deprecated.
1501    (#4078)
1502  - Do not include blacklisted projects when generating NEWS. (#4190)
1503  - When generating NEWS for a project that had no significant changes,
1504    include a section for that project and say that there were no
1505    interesting changes. (#4191)
1506  - Redundant 'b' mode is no longer passed to calls to FilePath.open
1507    and FilePath.open itself now corrects the mode when multiple 'b'
1508    characters are present, ensuring only one instance of 'b' is
1509    provided, as a workaround for http://bugs.python.org/issue7686.
1510    (#4207)
1511  - HTML tags inside <pre> tags in the code snippets are now escaped.
1512    (#4336)
1513  - twisted.protocols.amp.CommandLocator now allows subclasses to
1514    override responders inherited from base classes. (#4343)
1515  - Fix a bunch of small but important defects in the INSTALL, README
1516    and so forth. (#4346)
1517  - The poll, epoll, glib2, and gtk2 reactors now all support half-
1518    close in the twisted.internet.stdio.StandardIO transport. (#4352)
1519  - twisted.application.internet no longer generates an extra and
1520    invalid entry in its __all__ list for the nonexistent
1521    MulticastClient. (#4373)
1522  - Choosing a reactor documentation now says that only the select-
1523    based reactor is a truly cross-platform reactor. (#4384)
1524  - twisted.python.filepath.FilePath now no longer leaves files open,
1525    to be closed by the garbage collector, when an exception is raised
1526    in the implementation of setContent, getContent, or copyTo. (#4400)
1527  - twisted.test.proto_helpers.StringTransport's getHost and getPeer
1528    methods now return IPv4Address instances by default. (#4401)
1529  - twisted.protocols.amp.BinaryBoxProtocol will no longer deliver an
1530    empty string to a switched-to protocol's dataReceived method when
1531    the BinaryBoxProtocol's buffer happened to be empty at the time of
1532    the protocol switch. (#4405)
1533  - IReactorUNIX.listenUNIX implementations now support abstract
1534    namespace sockets on Linux. (#4421)
1535  - Files opened with FilePath.create() (and therefore also files
1536    opened via FilePath.open() on a path with alwaysCreate=True) will
1537    now be opened in binary mode as advertised, so that they will
1538    behave portably across platforms. (#4453)
1539  - The subunit reporter now correctly reports import errors as errors,
1540    rather than by crashing with an unrelated error. (#4496)
1541
1542 Improved Documentation
1543 ----------------------
1544  - The finger tutorial example which introduces services now avoids
1545    double-starting the loop to re-read its users file. (#4420)
1546  - twisted.internet.defer.Deferred.callback's docstring now mentions
1547    the implicit chaining feature. (#4439)
1548  - doc/core/howto/listing/pb/chatclient.py can now actually send a
1549    group message. (#4459)
1550
1551 Deprecations and Removals
1552 -------------------------
1553  - twisted.internet.interfaces.IReactorArbitrary,
1554    twisted.application.internet.GenericServer, and
1555    twisted.application.internet.GenericClient are now deprecated.
1556    (#367)
1557  - twisted.internet.gtkreactor is now deprecated. (#2833)
1558  - twisted.trial.util.findObject has been deprecated. (#3108)
1559  - twisted.python.threadpool.ThreadSafeList is deprecated and Jython
1560    platform detection in Twisted core removed (#3725)
1561  - twisted.internet.interfaces.IUDPConnectedTransport has been removed
1562    (deprecated since Twisted 9.0). (#4077)
1563  - Removed twisted.application.app.runWithProfiler, which has been
1564    deprecated since Twisted 8.0. (#4090)
1565  - Removed twisted.application.app.runWithHotshot, which has been
1566    deprecated since Twisted 8.0. (#4091)
1567  - Removed twisted.application.app.ApplicationRunner.startLogging,
1568    which has been deprecated (doesn't say since when), as well as
1569    support for the legacy
1570    twisted.application.app.ApplicationRunner.getLogObserver method.
1571    (#4092)
1572  - twisted.application.app.reportProfile has been removed. (#4093)
1573  - twisted.application.app.getLogFile has been removed. (#4094)
1574  - Removed twisted.cred.util.py, which has been deprecated since
1575    Twisted 8.3. (#4107)
1576  - twisted.python.util.dsu is now deprecated. (#4339)
1577  - In twisted.trial.util: FailureError, DirtyReactorWarning,
1578    DirtyReactorError, and PendingTimedCallsError, which have all been
1579    deprecated since Twisted 8.0, have been removed. (#4505)
1580
1581 Other
1582 -----
1583  - #1363, #1742, #3170, #3359, #3431, #3738, #4088, #4206, #4221,
1584    #4239, #4257, #4272, #4274, #4287, #4291, #4293, #4309, #4316,
1585    #4319, #4324, #4332, #4335, #4348, #4358, #4394, #4399, #4409,
1586    #4418, #4443, #4449, #4479, #4485, #4486, #4497
1587
1588
1589 Twisted Conch 10.1.0 (2010-06-27)
1590 =================================
1591
1592 Features
1593 --------
1594  - twisted.conch.ssh.transport.SSHTransportBase now allows supported
1595    ssh protocol versions to be overriden. (#4428)
1596
1597 Bugfixes
1598 --------
1599  - SSHSessionProcessProtocol now doesn't close the session when stdin
1600    is closed, but instead when both stdout and stderr are. (#4350)
1601  - The 'cftp' command-line tool will no longer encounter an
1602    intermittent error, crashing at startup with a ZeroDivisionError
1603    while trying to report progress. (#4463)
1604  - twisted.conch.ssh.connection.SSHConnection now replies to requests
1605    to open an unknown channel with a OPEN_UNKNOWN_CHANNEL_TYPE message
1606    instead of closing the connection. (#4490)
1607
1608 Deprecations and Removals
1609 -------------------------
1610  - twisted.conch.insults.client was deprecated. (#4095)
1611  - twisted.conch.insults.colors has been deprecated.  Please use
1612    twisted.conch.insults.helper instead. (#4096)
1613  - Removed twisted.conch.ssh.asn1, which has been deprecated since
1614    Twisted 9.0. (#4097)
1615  - Removed twisted.conch.ssh.common.Entropy, as Entropy.get_bytes has
1616    been  deprecated since 2007 and Entropy.get_bytes was the only
1617    attribute of Entropy. (#4098)
1618  - Removed twisted.conch.ssh.keys.getPublicKeyString, which has been
1619    deprecated since 2007.  Also updated the conch examples
1620    sshsimpleserver.py and sshsimpleclient.py to reflect this removal.
1621    (#4099)
1622  - Removed twisted.conch.ssh.keys.makePublicKeyString, which has been
1623    deprecated since 2007. (#4100)
1624  - Removed twisted.conch.ssh.keys.getPublicKeyObject, which has been
1625    deprecated since 2007. (#4101)
1626  - Removed twisted.conch.ssh.keys.getPrivateKeyObject, which has been
1627    deprecated since 2007.  Also updated the conch examples to reflect
1628    this removal. (#4102)
1629  - Removed twisted.conch.ssh.keys.makePrivateKeyString, which has been
1630    deprecated since 2007. (#4103)
1631  - Removed twisted.conch.ssh.keys.makePublicKeyBlob, which has been
1632    deprecated since 2007. (#4104)
1633  - Removed twisted.conch.ssh.keys.signData,
1634    twisted.conch.ssh.keys.verifySignature, and
1635    twisted.conch.ssh.keys.printKey, which have been deprecated since
1636    2007.   (#4105)
1637
1638 Other
1639 -----
1640  - #3849, #4408, #4454
1641
1642
1643 Twisted Lore 10.1.0 (2010-06-27)
1644 ================================
1645
1646 No significant changes have been made for this release.
1647
1648
1649 Twisted Mail 10.1.0 (2010-06-27)
1650 ================================
1651
1652 Bugfixes
1653 --------
1654  - twisted.mail.imap4.IMAP4Server no longer fails on search queries
1655    that contain wildcards. (#2278)
1656  - A case which would cause twisted.mail.imap4.IMAP4Server to loop
1657    indefinitely when handling a search command has been fixed. (#4385)
1658
1659 Other
1660 -----
1661  - #4069, #4271, #4467
1662
1663
1664 Twisted Names 10.1.0 (2010-06-27)
1665 =================================
1666
1667 Features
1668 --------
1669  - twisted.names.dns.Message now uses a specially constructed
1670    dictionary for looking up record types.  This yields a significant
1671    performance improvement on PyPy. (#4283)
1672
1673
1674 Twisted News 10.1.0 (2010-06-27)
1675 ================================
1676
1677 No significant changes have been made for this release.
1678
1679
1680 Twisted Pair 10.1.0 (2010-06-27)
1681 ================================
1682
1683 No significant changes have been made for this release.
1684
1685
1686 Twisted Runner 10.1.0 (2010-06-27)
1687 ==================================
1688
1689 Features
1690 --------
1691  - twistd now has a procmon subcommand plugin - a convenient way to
1692    monitor and automatically restart another process. (#4356)
1693
1694 Deprecations and Removals
1695 -------------------------
1696  - twisted.runner.procmon.ProcessMonitor's active, consistency, and
1697    consistencyDelay attributes are now deprecated. (#1763)
1698
1699 Other
1700 -----
1701  - #3775
1702
1703
1704 Twisted Web 10.1.0 (2010-06-27)
1705 ===============================
1706
1707 Features
1708 --------
1709  - twisted.web.xmlrpc.XMLRPC and twisted.web.xmlrpc.Proxy now expose
1710    xmlrpclib's support of datetime.datetime objects if useDateTime is
1711    set to True. (#3219)
1712  - HTTP11ClientProtocol now has an abort() method for cancelling an
1713    outstanding request by closing the connection before receiving the
1714    entire response. (#3811)
1715  - twisted.web.http_headers.Headers initializer now rejects
1716    incorrectly structured dictionaries. (#4022)
1717  - twisted.web.client.Agent now supports HTTPS URLs. (#4023)
1718  - twisted.web.xmlrpc.Proxy.callRemote now returns a Deferred which
1719    can be cancelled to abort the attempted XML-RPC call. (#4377)
1720
1721 Bugfixes
1722 --------
1723  - twisted.web.guard now logs out avatars even if a request completes
1724    with an error. (#4411)
1725  - twisted.web.xmlrpc.XMLRPC will now no longer trigger a RuntimeError
1726    by trying to write responses to closed connections. (#4423)
1727
1728 Improved Documentation
1729 ----------------------
1730  - Fix broken links to deliverBody and iweb.UNKNOWN_LENGTH in
1731    doc/web/howto/client.xhtml. (#4507)
1732
1733 Deprecations and Removals
1734 -------------------------
1735  - twisted.web.twcgi.PHP3Script and twisted.web.twcgi.PHPScript are
1736    now deprecated. (#516)
1737
1738 Other
1739 -----
1740  - #4403, #4452
1741
1742
1743 Twisted Words 10.1.0 (2010-06-27)
1744 =================================
1745
1746 Bugfixes
1747 --------
1748  - twisted.words.im.basechat.ChatUI now has a functional
1749    contactChangedNick with unit tests. (#229)
1750  - twisted.words.protocols.jabber.error.StanzaError now correctly sets
1751    a default error type and code for the remote-server-timeout
1752    condition (#4311)
1753  - twisted.words.protocols.jabber.xmlstream.ListenAuthenticator now
1754    uses unicode objects for session identifiers (#4345)
1755
1756
1757 Twisted Core 10.0.0 (2010-03-01)
1758 ================================
1759
1760 Features
1761 --------
1762  - The twistd man page now has a SIGNALS section. (#689)
1763
1764  - reactor.spawnProcess now will not emit a PotentialZombieWarning
1765    when called before reactor.run, and there will be no potential for
1766    zombie processes in this case. (#2078)
1767
1768  - High-throughput applications based on Perspective Broker should now
1769    run noticably faster thanks to the use of a more efficient decoding
1770    function in Twisted Spread. (#2310)
1771
1772  - Documentation for trac-post-commit-hook functionality in svn-dev
1773    policy. (#3867)
1774
1775  - twisted.protocols.socks.SOCKSv4 now supports the SOCKSv4a protocol.
1776    (#3886)
1777
1778  - Trial can now output test results according to the subunit
1779    protocol, as long as Subunit is installed (see
1780    https://launchpad.net/subunit). (#4004)
1781
1782  - twisted.protocols.amp now provides a ListOf argument type which can
1783    be composed with some other argument types to create a zero or more
1784    element sequence of that type. (#4116)
1785
1786  - If returnValue is invoked outside of a function decorated with
1787    @inlineCallbacks, but causes a function thusly decorated to exit, a
1788    DeprecationWarning will be emitted explaining this potentially
1789    confusing behavior.  In a future release, this will cause an
1790    exception. (#4157)
1791
1792  - twisted.python.logfile.BaseLogFile now has a reopen method allowing
1793    you to use an external logrotate mechanism. (#4255)
1794
1795 Bugfixes
1796 --------
1797  - FTP.ftp_NLST now handles requests on invalid paths in a way
1798    consistent with RFC 959. (#1342)
1799
1800  - twisted.python.util.initgroups now calls the low-level C initgroups
1801    by default if available: the python version can create lots of I/O
1802    with certain authentication setup to retrieve all the necessary
1803    information. (#3226)
1804
1805  - startLogging now does nothing on subsequent invocations, thus
1806    fixing a terrible infinite recursion bug that's only on edge case.
1807    (#3289)
1808
1809  - Stringify non-string data to NetstringReceiver.sendString before
1810    calculating the length so that the calculated length is equal to
1811    the actual length of the transported data. (#3299)
1812
1813  - twisted.python.win32.cmdLineQuote now correctly quotes empty
1814    strings arguments (#3876)
1815
1816  - Change the behavior of the Gtk2Reactor to register only one source
1817    watch for each file descriptor, instead of one for reading and one
1818    for writing. In particular, it fixes a bug with Glib under Windows
1819    where we failed to notify when a client is connected. (#3925)
1820
1821  - Twisted Trial no longer crashes if it can't remove an old
1822    _trial_temp directory.  (#4020)
1823
1824  - The optional _c_urlarg extension now handles unquote("") correctly
1825    on platforms where malloc(0) returns NULL, such as AIX.  It also
1826    compiles with less warnings. (#4142)
1827
1828  - On POSIX, child processes created with reactor.spawnProcess will no
1829    longer automatically ignore the signals which the parent process
1830    has set to be ignored. (#4199)
1831
1832  - All SOCKSv4a tests now use a dummy reactor with a deterministic
1833    resolve method. (#4275)
1834
1835  - Prevent extraneous server, date and content-type headers in proxy
1836    responses. (#4277)
1837
1838 Deprecations and Removals
1839 -------------------------
1840  - twisted.internet.error.PotentialZombieWarning is now deprecated.
1841    (#2078)
1842
1843  - twisted.test.time_helpers is now deprecated. (#3719)
1844
1845  - The deprecated connectUDP method of IReactorUDP has now been
1846    removed. (#4075)
1847
1848  - twisted.trial.unittest.TestCase now ignores the previously
1849    deprecated setUpClass and tearDownClass methods. (#4175)
1850
1851 Other
1852 -----
1853  - #917, #2406, #2481, #2608, #2689, #2884, #3056, #3082, #3199,
1854    #3480, #3592, #3718, #3935, #4066, #4083, #4154, #4166, #4169,
1855    #4176, #4183, #4186, #4188, #4189, #4194, #4201, #4204, #4209,
1856    #4222, #4234, #4235, #4238, #4240, #4245, #4251, #4264, #4268,
1857    #4269, #4282
1858
1859
1860 Twisted Conch 10.0.0 (2010-03-01)
1861 =================================
1862
1863 Bugfixes
1864 --------
1865  - twisted.conch.checkers.SSHPublicKeyDatabase now looks in the
1866    correct user directory for authorized_keys files. (#3984)
1867  - twisted.conch.ssh.SSHUserAuthClient now honors preferredOrder when
1868    authenticating. (#4266)
1869
1870 Other
1871 -----
1872  - #2391, #4203, #4265
1873
1874
1875 Twisted Lore 10.0.0 (2010-03-01)
1876 ================================
1877
1878 Other
1879 -----
1880  - #4241
1881
1882
1883 Twisted Mail 10.0.0 (2010-03-01)
1884 ================================
1885
1886 Bugfixes
1887 --------
1888  - twisted.mail.smtp.ESMTPClient and
1889    twisted.mail.smtp.LOGINAuthenticator now implement the (obsolete)
1890    LOGIN SASL mechanism according to the draft specification. (#4031)
1891
1892  - twisted.mail.imap4.IMAP4Client will no longer misparse all html-
1893    formatted message bodies received in response to a fetch command.
1894    (#4049)
1895
1896  - The regression in IMAP4 search handling of "OR" and "NOT" terms has
1897    been fixed. (#4178)
1898
1899 Other
1900 -----
1901  - #4028, #4170, #4200
1902
1903
1904 Twisted Names 10.0.0 (2010-03-01)
1905 =================================
1906
1907 Bugfixes
1908 --------
1909  - twisted.names.root.Resolver no longer leaks UDP sockets while
1910    resolving names. (#970)
1911
1912 Deprecations and Removals
1913 -------------------------
1914  - Several top-level functions in twisted.names.root are now
1915    deprecated. (#970)
1916
1917 Other
1918 -----
1919  - #4066
1920
1921
1922 Twisted Pair 10.0.0 (2010-03-01)
1923 ================================
1924
1925 Other
1926 -----
1927  - #4170
1928
1929
1930 Twisted Runner 10.0.0 (2010-03-01)
1931 ==================================
1932
1933 Other
1934 -----
1935  - #3961
1936
1937
1938 Twisted Web 10.0.0 (2010-03-01)
1939 ===============================
1940
1941 Features
1942 --------
1943  - Twisted Web in 60 Seconds, a series of short tutorials with self-
1944    contained examples on a range of common web topics, is now a part
1945    of the Twisted Web howto documentation. (#4192)
1946
1947 Bugfixes
1948 --------
1949  - Data and File from twisted.web.static and
1950    twisted.web.distrib.UserDirectory will now only generate a 200
1951    response for GET or HEAD requests.
1952    twisted.web.client.HTTPPageGetter will no longer ignore the case of
1953    a request method when considering whether to apply special HEAD
1954    processing to a response. (#446)
1955
1956  - twisted.web.http.HTTPClient now supports multi-line headers.
1957    (#2062)
1958
1959  - Resources served via twisted.web.distrib will no longer encounter a
1960    Banana error when writing more than 640kB at once to the request
1961    object. (#3212)
1962
1963  - The Error, PageRedirect, and InfiniteRedirection exception in
1964    twisted.web now initialize an empty message parameter by mapping
1965    the HTTP status code parameter to a descriptive string. Previously
1966    the lookup would always fail, leaving message empty.  (#3806)
1967
1968  - The 'wsgi.input' WSGI environment object now supports -1 and None
1969    as arguments to the read and readlines methods. (#4114)
1970
1971  - twisted.web.wsgi doesn't unquote QUERY_STRING anymore, thus
1972    complying with the WSGI reference implementation. (#4143)
1973
1974  - The HTTP proxy will no longer pass on keep-alive request headers
1975    from the client, preventing pages from loading then "hanging"
1976    (leaving the connection open with no hope of termination). (#4179)
1977
1978 Deprecations and Removals
1979 -------------------------
1980  - Remove '--static' option from twistd web, that served as an alias
1981    for the '--path' option. (#3907)
1982
1983 Other
1984 -----
1985  - #3784, #4216, #4242
1986
1987
1988 Twisted Words 10.0.0 (2010-03-01)
1989 =================================
1990
1991 Features
1992 --------
1993  - twisted.words.protocols.irc.IRCClient.irc_MODE now takes ISUPPORT
1994    parameters into account when parsing mode messages with arguments
1995    that take parameters (#3296)
1996
1997 Bugfixes
1998 --------
1999  - When twisted.words.protocols.irc.IRCClient's versionNum and
2000    versionEnv attributes are set to None, they will no longer be
2001    included in the client's response to CTCP VERSION queries. (#3660)
2002
2003  - twisted.words.protocols.jabber.xmlstream.hashPassword now only
2004    accepts unicode as input (#3741, #3742, #3847)
2005
2006 Other
2007 -----
2008  - #2503, #4066, #4261
2009
2010
2011 Twisted Core 9.0.0 (2009-11-24)
2012 ===============================
2013
2014 Features
2015 --------
2016  - LineReceiver.clearLineBuffer now returns the bytes that it cleared (#3573)
2017  - twisted.protocols.amp now raises InvalidSignature when bad arguments are
2018    passed to Command.makeArguments (#2808)
2019  - IArgumentType was added to represent an existing but previously unspecified
2020    interface in amp (#3468)
2021  - Obscure python tricks have been removed from the finger tutorials (#2110)
2022  - The digest auth implementations in twisted.web and twisted.protocolos.sip
2023    have been merged together in twisted.cred (#3575)
2024  - FilePath and ZipPath now has a parents() method which iterates up all of its
2025    parents (#3588)
2026  - reactors which support threads now have a getThreadPool method (#3591)
2027  - The MemCache client implementation now allows arguments to the "stats"
2028    command (#3661)
2029  - The MemCache client now has a getMultiple method which allows fetching of
2030    multiple values (#3171)
2031  - twisted.spread.jelly can now unserialize some new-style classes (#2950)
2032  - twisted.protocols.loopback.loopbackAsync now accepts a parameter to control
2033    the data passed between client and server (#3820)
2034  - The IOCP reactor now supports SSL (#593)
2035  - Tasks in a twisted.internet.task.Cooperator can now be paused, resumed, and
2036    cancelled (#2712)
2037  - AmpList arguments can now be made optional (#3891)
2038  - The syslog output observer now supports log levels (#3300)
2039  - LoopingCall now supports reporting the number of intervals missed if it
2040    isn't able to schedule calls fast enough (#3671)
2041
2042 Fixes
2043 -----
2044  - The deprecated md5 and sha modules are no longer used if the stdlib hashlib
2045    module is available (#2763)
2046  - An obscure deadlock involving waking up the reactor within signal handlers
2047    in particular threads was fixed (#1997)
2048  - The passivePortRange attribute of FTPFactory is now honored (#3593)
2049  - TestCase.flushWarnings now flushes warnings even if they were produced by a
2050    file that was renamed since it was byte compiled (#3598)
2051  - Some internal file descriptors are now marked as close-on-exec, so these will
2052    no longer be leaked to child processes (#3576)
2053  - twisted.python.zipstream now correctly extracts the first file in a directory
2054    as a file, and not an empty directory (#3625)
2055  - proxyForInterface now returns classes which correctly *implement* interfaces
2056    rather than *providing* them (#3646)
2057  - SIP Via header parameters should now be correctly generated (#2194)
2058  - The Deferred returned by stopListening would sometimes previously never fire
2059    if an exception was raised by the underlying file descriptor's connectionLost
2060    method. Now the Deferred will fire with a failure (#3654)
2061  - The command-line tool "manhole" should now work with newer versions of pygtk
2062    (#2464)
2063  - When a DefaultOpenSSLContextFactory is instantiated with invalid parameters,
2064    it will now raise an exception immediately instead of waiting for the first
2065    connection (#3700)
2066  - Twisted command line scripts should now work when installed in a virtualenv
2067    (#3750)
2068  - Trial will no longer delete temp directories which it did not create (#3481)
2069  - Processes started on Windows should now be cleaned up properly in more cases
2070    (#3893)
2071  - Certain misbehaving importers will no longer cause twisted.python.modules
2072    (and thus trial) to raise an exception, but rather issue a warning (#3913)
2073  - MemCache client protocol methods will now fail when the transport has been
2074    disconnected (#3643)
2075  - In the AMP method callRemoteString, the requiresAnswer parameter is now
2076    honored (#3999)
2077  - Spawning a "script" (a file which starts with a #! line) on Windows running
2078    Python 2.6 will now work instead of raising an exception about file mode
2079    "ru" (#3567)
2080  - FilePath's walk method now calls its "descend" parameter even on the first
2081    level of children, instead of only on grandchildren. This allows for better
2082    symlink cycle detection (#3911)
2083  - Attempting to write unicode data to process pipes on Windows will no longer
2084    result in arbitrarily encoded messages being written to the pipe, but instead
2085    will immediately raise an error (#3930)
2086  - The various twisted command line utilities will no longer print
2087    ModuleType.__doc__ when Twisted was installed with setuptools (#4030)
2088  - A Failure object will now be passed to connectionLost on stdio connections
2089    on Windows, instead of an Exception object (#3922)
2090
2091 Deprecations and Removals
2092 -------------------------
2093  - twisted.persisted.marmalade was deleted after a long period of deprecation
2094    (#876)
2095  - Some remaining references to the long-gone plugins.tml system were removed
2096    (#3246)
2097  - SSLv2 is now disabled by default, but it can be re-enabled explicitly
2098    (#3330)
2099  - twisted.python.plugin has been removed (#1911)
2100  - reactor.run will now raise a ReactorAlreadyRunning exception when it is
2101    called reentrantly instead of warning a DeprecationWarning (#1785)
2102  - twisted.spread.refpath is now deprecated because it is unmaintained,
2103    untested, and has dubious value (#3723)
2104  - The unused --quiet flag has been removed from the twistd command (#3003)
2105
2106 Other
2107 -----
2108  - #3545, #3490, #3544, #3537, #3455, #3315, #2281, #3564, #3570, #3571, #3486,
2109    #3241, #3599, #3220, #1522, #3611, #3596, #3606, #3609, #3602, #3637, #3647,
2110    #3632, #3675, #3673, #3686, #2217, #3685, #3688, #2456, #506, #3635, #2153,
2111    #3581, #3708, #3714, #3717, #3698, #3747, #3704, #3707, #3713, #3720, #3692,
2112    #3376, #3652, #3695, #3735, #3786, #3783, #3699, #3340, #3810, #3822, #3817,
2113    #3791, #3859, #2459, #3677, #3883, #3894, #3861, #3822, #3852, #3875, #2722,
2114    #3768, #3914, #3885, #2719, #3905, #3942, #2820, #3990, #3954, #1627, #2326,
2115    #2972, #3253, #3937, #4058, #1200, #3639, #4079, #4063, #4050
2116
2117
2118 Twisted Conch 9.0.0 (2009-11-24)
2119 ================================
2120
2121 Fixes
2122 -----
2123  - The SSH key parser has been removed and conch now uses pyASN1 to parse keys.
2124    This should fix a number of cases where parsing a key would fail, but it now
2125    requires users to have pyASN1 installed (#3391)
2126  - The time field on SFTP file listings should now be correct (#3503)
2127  - The day field on SFTP file listings should now be correct on Windows (#3503)
2128  - The "cftp" sftp client now truncates files it is uploading over (#2519)
2129  - The telnet server protocol can now properly respond to subnegotiation
2130    requests (#3655)
2131  - Tests and factoring of the SSHv2 server implementation are now much better
2132    (#2682)
2133  - The SSHv2 server now sends "exit-signal" messages to the client, instead of
2134    raising an exception, when a process dies due to a signal (#2687)
2135  - cftp's client-side "exec" command now uses /bin/sh if the current user has
2136    no shell (#3914)
2137
2138 Deprecations and Removals
2139 -------------------------
2140  - The buggy SSH connection sharing feature of the SSHv2 client was removed
2141    (#3498)
2142  - Use of strings and PyCrypto objects to represent keys is deprecated in favor
2143    of using Conch Key objects (#2682)
2144
2145 Other
2146 -----
2147  - #3548, #3537, #3551, #3220, #3568, #3689, #3709, #3809, #2763, #3540, #3750,
2148    #3897, #3813, #3871, #3916, #4047, #3940, #4050
2149
2150
2151 Twisted Lore 9.0.0 (2009-11-24)
2152 ===============================
2153
2154 Features
2155 --------
2156  - Python source listings now include line numbers (#3486)
2157
2158 Fixes
2159 -----
2160  - Lore now uses minidom instead of Twisted's microdom, which incidentally
2161    fixes some Lore bugs such as throwing away certain whitespace
2162    (#3560, #414, #3619)
2163  - Lore's "lint" command should no longer break on documents with links in them
2164    (#4051, #4115)
2165
2166 Deprecations and Removals
2167 -------------------------
2168  - Lore no longer uses the ancient "tml" Twisted plugin system (#1911)
2169
2170 Other
2171 -----
2172  - #3565, #3246, #3540, #3750, #4050
2173
2174
2175 Twisted Mail 9.0.0 (2009-11-24)
2176 ===============================
2177
2178 Features
2179 --------
2180  - maildir.StringListMailbox, an in-memory maildir mailbox, now supports
2181    deletion, undeletion, and syncing (#3547)
2182  - SMTPClient's callbacks are now more completely documented (#684)
2183
2184 Fixes
2185 -----
2186  - Parse UNSEEN response data and include it in the result of
2187    IMAP4Client.examine (#3550)
2188  - The IMAP4 client now delivers more unsolicited server responses to callbacks
2189    rather than ignoring them, and also won't ignore solicited responses that
2190    arrive on the same line as an unsolicited one (#1105)
2191  - Several bugs in the SMTP client's idle timeout support were fixed (#3641,
2192    #1219)
2193  - A case where the SMTP client could skip some recipients when retrying
2194    delivery has been fixed (#3638)
2195  - Errors during certain data transfers will no longer be swallowed. They will
2196    now bubble up to the higher-level API (such as the sendmail function) (#3642)
2197  - Escape sequences inside quoted strings in IMAP4 should now be parsed
2198    correctly by the IMAP4 server protocol (#3659)
2199  - The "imap4-utf-7" codec that is registered by twisted.mail.imap4 had a number
2200    of fixes that allow it to work better with the Python codecs system, and to
2201    actually work (#3663)
2202  - The Maildir implementation now ensures time-based ordering of filenames so
2203    that the lexical sorting of messages matches the order in which they were
2204    received (#3812)
2205  - SASL PLAIN credentials generated by the IMAP4 protocol implementations
2206    (client and server) should now be RFC-compliant (#3939)
2207  - Searching for a set of sequences using the IMAP4 "SEARCH" command should 
2208    now work on the IMAP4 server protocol implementation. This at least improves
2209    support for the Pine mail client (#1977)
2210
2211 Other
2212 -----
2213  - #2763, #3647, #3750, #3819, #3540, #3846, #2023, #4050
2214
2215
2216 Twisted Names 9.0.0 (2009-11-24)
2217 ================================
2218
2219 Deprecations and Removals
2220 -------------------------
2221  - client.ThreadedResolver is deprecated in favor of
2222    twisted.internet.base.ThreadedResolver (#3710)
2223
2224 Other
2225 -----
2226  - #3540, #3560, #3712, #3750, #3990
2227
2228
2229 Twisted News 9.0.0 (2009-11-24)
2230 ===============================
2231
2232 Other
2233 -----
2234  - #2763, #3540
2235
2236
2237 Twisted Pair 9.0.0 (2009-11-24)
2238 ===============================
2239
2240 Other
2241 -----
2242  - #3540, #4050
2243
2244
2245 Twisted Runner 9.0.0 (2009-11-24)
2246 =================================
2247
2248 Features
2249 --------
2250  - procmon.ProcessMonitor.addProcess now accepts an 'env' parameter which allows
2251    users to specify the environment in which a process will be run (#3691)
2252
2253 Other
2254 -----
2255  - #3540
2256
2257
2258 Twisted Web 9.0.0 (2009-11-24)
2259 ==============================
2260
2261 Features
2262 --------
2263  - There is now an iweb.IRequest interface which specifies the interface that
2264    request objects provide (#3416)
2265  - downloadPage now supports the same cookie, redirect, and timeout features
2266    that getPage supports (#2971)
2267  - A chapter about WSGI has been added to the twisted.web documentation (#3510)
2268  - The HTTP auth support in the web server now allows anonymous sessions by
2269    logging in with ANONYMOUS credentials when no Authorization header is
2270    provided in a request (#3924, #3936)
2271  - HTTPClientFactory now accepts a parameter to enable a common deviation from
2272    the HTTP 1.1 standard by responding to redirects in a POSTed request with a
2273    GET instead of another POST (#3624)
2274  - A new basic HTTP/1.1 client API is included in twisted.web.client.Agent
2275    (#886, #3987)
2276
2277 Fixes
2278 -----
2279  - Requests for "insecure" children of a static.File (such as paths containing
2280    encoded directory separators) will now result in a 404 instead of a 500
2281    (#3549, #3469)
2282  - When specifying a followRedirect argument to the getPage function, the state
2283    of redirect-following for other getPage calls should now be unaffected.  It
2284    was previously overwriting a class attribute which would affect outstanding
2285    getPage calls (#3192)
2286  - Downloading an URL of the form "http://example.com:/" will now work,
2287    ignoring the extraneous colon (#2402)
2288  - microdom's appendChild method will no longer issue a spurious warning, and
2289    microdom's methods in general should now issue more meaningful exceptions
2290    when invalid parameters are passed (#3421)
2291  - WSGI applications will no longer have spurious Content-Type headers added to
2292    their responses by the twisted.web server. In addition, WSGI applications
2293    will no longer be able to specify the server-restricted headers Server and
2294    Date (#3569)
2295  - http_headers.Headers now normalizes the case of raw headers passed directly
2296    to it in the same way that it normalizes the headers passed to setRawHeaders
2297    (#3557)
2298  - The distrib module no longer relies on the deprecated woven package (#3559)
2299  - twisted.web.domhelpers now works with both microdom and minidom (#3600)
2300  - twisted.web servers will now ignore invalid If-Modified-Since headers instead
2301    of returning a 500 error (#3601)
2302  - Certain request-bound memory and file resources are cleaned up slightly
2303    sooner by the request when the connection is lost (#1621, #3176)
2304  - xmlrpclib.DateTime objects should now correctly round-trip over twisted.web's
2305    XMLRPC support in all supported versions of Python, and errors during error
2306    serialization will no longer hang a twisted.web XMLRPC response (#2446)
2307  - request.content should now always be seeked to the beginning when
2308    request.process is called, so application code should never need to seek 
2309    back manually (#3585)
2310  - Fetching a child of static.File with a double-slash in the URL (such as
2311    "example//foo.html") should now return a 404 instead of a traceback and
2312    500 error (#3631)
2313  - downloadPage will now fire a Failure on its returned Deferred instead of
2314    indicating success when the connection is prematurely lost (#3645)
2315  - static.File will now provide a 404 instead of a 500 error when it was
2316    constructed with a non-existent file (#3634)
2317  - microdom should now serialize namespaces correctly (#3672)
2318  - The HTTP Auth support resource wrapper should no longer corrupt requests and
2319    cause them to skip a segment in the request path (#3679)
2320  - The twisted.web WSGI support should now include leading slashes in PATH_INFO,
2321    and SCRIPT_NAME will be empty if the application is at the root of the
2322    resource tree. This means that WSGI applications should no longer generate
2323    URLs with double-slashes in them even if they naively concatenate the values
2324    (#3721)
2325  - WSGI applications should now receive the requesting client's IP in the
2326    REMOTE_ADDR environment variable (#3730)
2327  - The distrib module should work again. It was unfortunately broken with the
2328    refactoring of twisted.web's header support (#3697)
2329  - static.File now supports multiple ranges specified in the Range header
2330    (#3574)
2331  - static.File should now generate a correct Content-Length value when the
2332    requested Range value doesn't fit entirely within the file's contents (#3814)
2333  - Attempting to call request.finish() after the connection has been lost will
2334    now immediately raise a RuntimeError (#4013)
2335  - An HTTP-auth resource should now be able to directly render the wrapped
2336    avatar, whereas before it would only allow retrieval of child resources
2337    (#4014)
2338  - twisted.web's wsgi support should no longer attempt to call request.finish
2339    twice, which would cause errors in certain cases (#4025)
2340  - WSGI applications should now be able to handle requests with large bodies
2341    (#4029)
2342  - Exceptions raised from WSGI applications should now more reliably be turned
2343    into 500 errors on the HTTP level (#4019)
2344  - DeferredResource now correctly passes through exceptions raised from the
2345    wrapped resource, instead of turning them all into 500 errors (#3932)
2346  - Agent.request now generates a Host header when no headers are passed at
2347    (#4131)
2348
2349 Deprecations and Removals
2350 -------------------------
2351  - The unmaintained and untested twisted.web.monitor module was removed (#2763)
2352  - The twisted.web.woven package has been removed (#1522)
2353  - All of the error resources in twisted.web.error are now in
2354    twisted.web.resource, and accessing them through twisted.web.error is now
2355    deprecated (#3035)
2356  - To facilitate a simplification of the timeout logic in server.Session,
2357    various things have been deprecated (#3457)
2358    - the loopFactory attribute is now ignored
2359    - the checkExpired method now does nothing
2360    - the lifetime parameter to startCheckingExpiration is now ignored
2361  - The twisted.web.trp module is now deprecated (#2030)
2362
2363 Other
2364 -----
2365  - #2763, #3540, #3575, #3610, #3605, #1176, #3539, #3750, #3761, #3779, #2677,
2366    #3782, #3904, #3919, #3418, #3990, #1404, #4050
2367
2368
2369 Twisted Words 9.0.0 (2009-11-24)
2370 ================================
2371
2372 Features
2373 --------
2374  - IRCClient.describe is a new method meant to replace IRCClient.me to send
2375    CTCP ACTION messages with less confusing behavior (#3910)
2376  - The XMPP client protocol implementation now supports ANONYMOUS SASL
2377    authentication (#4067)
2378  - The IRC client protocol implementation now has better support for the
2379    ISUPPORT server->client message, storing the data in a new
2380    ServerSupportedFeatures object accessible via IRCClient.supported (#3285)
2381
2382 Fixes
2383 -----
2384  - The twisted.words IRC server now always sends an MOTD, which at least makes
2385    Pidgin able to successfully connect to a twisted.words IRC server (#2385)
2386  - The IRC client will now dispatch "RPL MOTD" messages received before a
2387    "RPL MOTD START" instead of raising an exception (#3676)
2388  - The IRC client protocol implementation no longer updates its 'nickname'
2389    attribute directly; instead, that attribute will be updated when the server
2390    acknowledges the change (#3377)
2391  - The IRC client protocol implementation now supports falling back to another
2392    nickname when a nick change request fails (#3377, #4010)
2393
2394 Deprecations and Removals
2395 -------------------------
2396  - The TOC protocol implementation is now deprecated, since the protocol itself
2397    has been deprecated and obselete for quite a long time (#3580)
2398  - The gui "im" application has been removed, since it relied on GTK1, which is
2399    hard to find these days (#3699, #3340)
2400
2401 Other
2402 -----
2403  - #2763, #3540, #3647, #3750, #3895, #3968, #4050
2404
2405
2406 Core 8.2.0 (2008-12-16)
2407 =======================
2408
2409 Features
2410 --------
2411  - Reactors are slowly but surely becoming more isolated, thus improving
2412    testability (#3198)
2413  - FilePath has gained a realpath method, and FilePath.walk no longer infinitely
2414    recurses in the case of a symlink causing a self-recursing filesystem tree
2415    (#3098)
2416  - FilePath's moveTo and copyTo methods now have an option to disable following
2417    of symlinks (#3105)
2418  - Private APIs are now included in the API documentation (#3268)
2419  - hotshot is now the default profiler for the twistd --profile parameter and
2420    using cProfile is now documented (#3355, #3356)
2421  - Process protocols can now implement a processExited method, which is
2422    distinct from processEnded in that it is called immediately when the child
2423    has died, instead of waiting for all the file descriptors to be closed
2424    (#1291)
2425  - twistd now has a --umask option (#966, #3024)
2426  - A new deferToThreadPool function exists in twisted.internet.threads (#2845)
2427  - There is now an example of writing an FTP server in examples/ftpserver.py
2428    (#1579)
2429  - A new runAsEffectiveUser function has been added to twisted.python.util
2430    (#2607)
2431  - twisted.internet.utils.getProcessOutput now offers a mechanism for
2432    waiting for the process to actually end, in the event of data received on
2433    stderr (#3239)
2434  - A fullyQualifiedName function has been added to twisted.python.reflect
2435    (#3254)
2436  - strports now defaults to managing access to a UNIX socket with a lock;
2437    lockfile=0 can be included in the strports specifier to disable this
2438    behavior (#2295)
2439  - FTPClient now has a 'rename' method (#3335)
2440  - FTPClient now has a 'makeDirectory' method (#3500)
2441  - FTPClient now has a 'removeFile' method (#3491)
2442  - flushWarnings, A new Trial method for testing warnings, has been added
2443    (#3487, #3427, #3506)
2444  - The log observer can now be configured in .tac files (#3534)
2445
2446 Fixes
2447 -----
2448  - TLS Session Tickets are now disabled by default, allowing connections to
2449    certain servers which hang when an empty session ticket is received (like
2450    GTalk) (#3463)
2451  - twisted.enterprise.adbapi.ConnectionPool's noisy attribute now defaults to
2452    False, as documented (#1806)
2453  - Error handling and logging in adbapi is now much improved (#3244)
2454  - TCP listeners can now be restarted (#2913)
2455  - Doctests can now be rerun with trial's --until-failure option (#2713)
2456  - Some memory leaks have been fixed in trial's --until-failure
2457    implementation (#3119, #3269)
2458  - Trial's summary reporter now prints correct runtime information and handles
2459    the case of 0 tests (#3184)
2460  - Trial and any other user of the 'namedAny' function now has better error
2461    reporting in the case of invalid module names (#3259)
2462  - Multiple instances of trial can now run in parallel in the same directory
2463    by creating _trial_temp directories with an incremental suffix (#2338)
2464  - Trial's failUnlessWarns method now works on Python 2.6 (#3223)
2465  - twisted.python.log now hooks into the warnings system in a way compatible
2466    with Python 2.6 (#3211)
2467  - The GTK2 reactor is now better supported on Windows, but still not passing
2468    the entire test suite (#3203)
2469  - low-level failure handling in spawnProcess has been improved and no longer
2470    leaks file descriptors (#2305, #1410)
2471  - Perspective Broker avatars now have their logout functions called in more
2472    cases (#392)
2473  - Log observers which raise exceptions are no longer removed (#1069)
2474  - transport.getPeer now always includes an IP address in the Address returned
2475    instead of a hostname (#3059)
2476  - Functions in twisted.internet.utils which spawn processes now avoid calling
2477    chdir in the case where no working directory is passed, to avoid some
2478    obscure permission errors (#3159)
2479  - twisted.spread.publish.Publishable no longer corrupts line endings on
2480    Windows (#2327)
2481  - SelectReactor now properly detects when a TLS/TCP connection has been
2482    disconnected (#3218)
2483  - twisted.python.lockfile no longer raises an EEXIST OSError and is much
2484    better supported on Windows (#3367)
2485  - When ITLSTransport.startTLS is called while there is data in the write
2486    buffer, TLS negotiation will now be delayed instead of the method raising
2487    an exception (#686)
2488  - The userAnonymous argument to FTPFactory is now honored (#3390)
2489  - twisted.python.modules no longer tries to "fix" sys.modules after an import
2490    error, which was just causing problems (#3388)
2491  - setup.py no longer attempts to build extension modules when run with Jython
2492    (#3410)
2493  - AMP boxes can now be sent in IBoxReceiver.startReceivingBoxes (#3477)
2494  - AMP connections are closed as soon as a key length larger than 255 is
2495    received (#3478)
2496  - Log events with timezone offsets between -1 and -59 minutes are now
2497    correctly reported as negative (#3515)
2498
2499 Deprecations and Removals
2500 -------------------------
2501  - Trial's setUpClass and tearDownClass methods are now deprecated (#2903)
2502  - problemsFromTransport has been removed in favor of the argument passed to
2503    connectionLost (#2874)
2504  - The mode parameter to methods of IReactorUNIX and IReactorUNIXDatagram are
2505    deprecated in favor of applications taking other security precautions, since
2506    the mode of a Unix socket is often not respected (#1068)
2507  - Index access on instances of twisted.internet.defer.FirstError has been
2508    removed in favor of the subFailure attribute (#3298)
2509  - The 'changeDirectory' method of FTPClient has been deprecated in favor of
2510    the 'cwd' method (#3491)
2511
2512 Other
2513 -----
2514
2515  - #3202, #2869, #3225, #2955, #3237, #3196, #2355, #2881, #3054, #2374, #2918,
2516    #3210, #3052, #3267, #3288, #2985, #3295, #3297, #2512, #3302, #1222, #2631,
2517    #3306, #3116, #3215, #1489, #3319, #3320, #3321, #1255, #2169, #3182, #3323,
2518    #3301, #3318, #3029, #3338, #3346, #1144, #3173, #3165, #685, #3357, #2582,
2519    #3370, #2438, #1253, #637, #1971, #2208, #979, #1790, #1888, #1882, #1793,
2520    #754, #1890, #1931, #1246, #1025, #3177, #2496, #2567, #3400, #2213, #2027,
2521    #3415, #1262, #3422, #2500, #3414, #3045, #3111, #2974, #2947, #3222, #2878,
2522    #3402, #2909, #3423, #1328, #1852, #3382, #3393, #2029, #3489, #1853, #2026,
2523    #2375, #3502, #3482, #3504, #3505, #3507, #2605, #3519, #3520, #3121, #3484,
2524    #3439, #3216, #3511, #3524, #3521, #3197, #2486, #2449, #2748, #3381, #3236,
2525    #671
2526
2527
2528 Conch 8.2.0 (2008-12-16)
2529 ========================
2530
2531 Features
2532 --------
2533  - The type of the protocols instantiated by SSHFactory is now parameterized
2534    (#3443)
2535
2536 Fixes
2537 -----
2538  - A file descriptor leak has been fixed (#3213, #1789)
2539  - "File Already Exists" errors are now handled more correctly (#3033)
2540  - Handling of CR IAC in TelnetClient is now improved (#3305)
2541  - SSHAgent is no longer completely unusable (#3332)
2542  - The performance of insults.ClientProtocol is now greatly increased by
2543    delivering more than one byte at a time to application code (#3386)
2544  - Manhole and the conch server no longer need to be run as root when not
2545    necessary (#2607)
2546  - The value of FILEXFER_ATTR_ACMODTIME has been corrected (#2902)
2547  - The management of known_hosts and host key verification has been overhauled
2548    (#1376, #1301, #3494, #3496, #1292, #3499)
2549
2550 Other
2551 -----
2552  - #3193, #1633
2553
2554
2555 Lore 8.2.0 (2008-12-16)
2556 =======================
2557
2558 Other
2559 -----
2560  - #2207, #2514
2561
2562
2563 Mail 8.2.0 (2008-12-16)
2564 =======================
2565
2566 Fixes
2567 -----
2568  - The mailmail tool now provides better error messages for usage errors (#3339)
2569  - The SMTP protocol implementation now works on PyPy (#2976)
2570
2571 Other
2572 -----
2573  - #3475
2574
2575
2576 Names 8.2.0 (2008-12-16)
2577 ========================
2578
2579 Features
2580 --------
2581  - The NAPTR record type is now supported (#2276)
2582
2583 Fixes
2584 -----
2585  - Make client.Resolver less vulnerable to the Birthday Paradox attack by
2586    avoiding sending duplicate queries when it's not necessary (#3347)
2587  - client.Resolver now uses a random source port for each DNS request (#3342)
2588  - client.Resolver now uses a full 16 bits of randomness for message IDs,
2589    instead of 10 which it previously used (#3342)
2590  - All record types now have value-based equality and a string representation
2591    (#2935)
2592
2593 Other
2594 -----
2595  - #1622, #3424
2596
2597
2598 Web 8.2.0 (2008-12-16)
2599 ======================
2600
2601 Features
2602 --------
2603  - The web server can now deal with multi-value headers in the new attributes of
2604    Request, requestHeaders and responseHeaders (#165)
2605  - There is now a resource-wrapper which implements HTTP Basic and Digest auth
2606    in terms of twisted.cred (#696)
2607  - It's now possible to limit the number of redirects that client.getPage will
2608    follow (#2412)
2609  - The directory-listing code no longer uses Woven (#3257)
2610  - static.File now supports Range headers with a single range (#1493)
2611  - twisted.web now has a rudimentary WSGI container (#2753)
2612  - The web server now supports chunked encoding in requests (#3385)
2613
2614 Fixes
2615 -----
2616  - The xmlrpc client now raises an error when the server sends an empty
2617    response (#3399)
2618  - HTTPPageGetter no longer duplicates default headers when they're explicitly
2619    overridden in the headers parameter (#1382)
2620  - The server will no longer timeout clients which are still sending request
2621    data (#1903)
2622  - microdom's isEqualToNode now returns False when the nodes aren't equal
2623    (#2542)
2624
2625 Deprecations and Removals
2626 -------------------------
2627
2628  - Request.headers and Request.received_headers are not quite deprecated, but
2629    they are discouraged in favor of requestHeaders and responseHeaders (#165)
2630
2631 Other
2632 -----
2633  - #909, #687, #2938, #1152, #2930, #2025, #2683, #3471
2634
2635
2636 Web2 8.2.0 (2008-12-16)
2637 =======================
2638
2639 Note: Twisted Web2 is being phased out in preference for Twisted Web, but some
2640 maintenance changes have been made.
2641
2642 Fixes
2643 -----
2644  - The main twisted.web2 docstring now indicates the current state of the
2645    project (#2028)
2646  - Headers which require unusual bytes are now quoted (#2346)
2647  - Some links in the introduction documentation have been fixed (#2552)
2648
2649
2650 Words 8.2.0 (2008-12-16)
2651 ========================
2652
2653 Feature
2654 -------
2655  - There is now a standalone XMPP router included in twisted.words: it can be
2656    used with the 'twistd xmpp-router' command line (#3407)
2657  - A server factory for Jabber XML Streams has been added (#3435)
2658  - Domish now allows for iterating child elements with specific qualified names
2659    (#2429)
2660  - IRCClient now has a 'back' method which removes the away status (#3366)
2661  - IRCClient now has a 'whois' method (#3133)
2662
2663 Fixes
2664 -----
2665  - The IRC Client implementation can now deal with compound mode changes (#3230)
2666  - The MSN protocol implementation no longer requires the CVR0 protocol to
2667    be included in the VER command (#3394)
2668  - In the IRC server implementation, topic messages will no longer be sent for
2669    a group which has no topic (#2204)
2670  - An infinite loop (which caused infinite memory usage) in irc.split has been
2671    fixed.  This was triggered any time a message that starts with a delimiter
2672    was sent (#3446)
2673  - Jabber's toResponse now generates a valid stanza even when stanzaType is not
2674    specified (#3467)
2675  - The lifetime of authenticator instances in XmlStreamServerFactory is no
2676    longer artificially extended (#3464)
2677
2678 Other
2679 -----
2680  - #3365
2681
2682
2683 Core 8.1.0 (2008-05-18)
2684 =======================
2685
2686 Features
2687 --------
2688
2689  - twisted.internet.error.ConnectionClosed is a new exception which is the
2690    superclass of ConnectionLost and ConnectionDone (#3137)
2691  - Trial's CPU and memory performance should be better now (#3034)
2692  - twisted.python.filepath.FilePath now has a chmod method (#3124)
2693
2694 Fixes
2695 -----
2696
2697  - Some reactor re-entrancy regressions were fixed (#3146, #3168)
2698  - A regression was fixed whereby constructing a Failure for an exception and
2699    traceback raised out of a Pyrex extension would fail (#3132)
2700  - CopyableFailures in PB can again be created from CopiedFailures (#3174)
2701  - FilePath.remove, when called on a FilePath representing a symlink to a
2702    directory, no longer removes the contents of the targeted directory, and
2703    instead removes the symlink (#3097)
2704  - FilePath now has a linkTo method for creating new symlinks (#3122)
2705  - The docstring for Trial's addCleanup method now correctly specifies when
2706    cleanup functions are run (#3131)
2707  - assertWarns now deals better with multiple identical warnings (#2904)
2708  - Various windows installer bugs were fixed (#3115, #3144, #3150, #3151, #3164)
2709  - API links in the howto documentation have been corrected (#3130)
2710  - The Win32 Process transport object now has a pid attribute (#1836)
2711  - A doc bug in the twistd plugin howto which would inevitably lead to
2712    confusion was fixed (#3183)
2713  - A regression breaking IOCP introduced after the last release was fixed
2714    (#3200)
2715
2716 Deprecations and Removals
2717 -------------------------
2718
2719  - mktap is now fully deprecated, and will emit DeprecationWarnings when used
2720    (#3127)
2721
2722 Other
2723 -----
2724  - #3079, #3118, #3120, #3145, #3069, #3149, #3186, #3208, #2762
2725
2726
2727 Conch 8.1.0 (2008-05-18)
2728 ========================
2729
2730 Fixes
2731 -----
2732  - A regression was fixed whereby the publicKeys and privateKeys attributes of
2733    SSHFactory would not be interpreted as strings (#3141)
2734  - The sshsimpleserver.py example had a minor bug fix (#3135)
2735  - The deprecated mktap API is no longer used (#3127)
2736  - An infelicity was fixed whereby a NameError would be raised in certain
2737    circumstances during authentication when a ConchError should have been
2738    (#3154)
2739  - A workaround was added to conch.insults for a bug in gnome-terminal whereby
2740    it would not scroll correctly (#3189)
2741
2742
2743 Lore 8.1.0 (2008-05-18)
2744 =======================
2745
2746 Fixes
2747 -----
2748  - The deprecated mktap API is no longer used (#3127)
2749
2750
2751 News 8.1.0 (2008-05-18)
2752 =======================
2753
2754 Fixes
2755 -----
2756  - The deprecated mktap API is no longer used (#3127)
2757
2758
2759 Web 8.1.0 (2008-05-18)
2760 ======================
2761
2762 Fixes
2763 -----
2764  - Fixed an XMLRPC bug whereby sometimes a callRemote Deferred would
2765    accidentally be fired twice when a connection was lost during the handling of
2766    a response (#3152)
2767  - Fixed a bug in the "Using Twisted Web" document which prevented an example
2768    resource from being renderable (#3147)
2769  - The deprecated mktap API is no longer used (#3127)
2770
2771
2772 Words 8.1.0 (2008-05-18)
2773 ========================
2774
2775 Features
2776 --------
2777  - JID objects now have a nice __repr__ (#3156)
2778  - Extending XMPP protocols is now easier (#2178)
2779
2780 Fixes
2781 -----
2782  - The deprecated mktap API is no longer used (#3127)
2783  - A bug whereby one-time XMPP observers would be enabled permanently was fixed
2784    (#3066)
2785
2786
2787 Mail 8.1.0 (2008-05-18)
2788 =======================
2789
2790 Fixes
2791 -----
2792  - The deprecated mktap API is no longer used (#3127)
2793
2794
2795 Names 8.1.0 (2008-05-18)
2796 ========================
2797
2798 Fixes
2799 -----
2800  - The deprecated mktap API is no longer used (#3127)
2801
2802
2803 Web2 8.1.0 (2008-05-18)
2804 =======================
2805
2806 Fixes
2807 -----
2808  - The deprecated mktap API is no longer used (#3127)
2809
2810
2811 Core 8.0.1 (2008-03-26)
2812 =======================
2813
2814 Fixes
2815 -----
2816  - README no longer refers to obsolete trial command line option
2817  - twistd no longer causes a bizarre DeprecationWarning about mktap
2818
2819
2820 Core 8.0.0 (2008-03-17)
2821 =======================
2822
2823 Features
2824 --------
2825
2826  - The IOCP reactor has had many changes and is now greatly improved
2827    (#1760, #3055)
2828  - The main Twisted distribution is now easy_installable (#1286, #3110)
2829  - twistd can now profile with cProfile (#2469)
2830  - twisted.internet.defer contains a DeferredFilesystemLock which gives a
2831    Deferred interface to lock file acquisition (#2180)
2832  - twisted.python.modules is a new system for representing and manipulating
2833    module paths (i.e. sys.path) (#1951)
2834  - twisted.internet.fdesc now contains a writeToFD function, along with other
2835    minor fixes (#2419)
2836  - twisted.python.usage now allows optional type enforcement (#739)
2837  - The reactor now has a blockingCallFromThread method for non-reactor threads
2838    to use to wait for a reactor-scheduled call to return a result (#1042, #3030)
2839  - Exceptions raised inside of inlineCallbacks-using functions now have a
2840    better chance of coming with a meaningful traceback (#2639, #2803)
2841  - twisted.python.randbytes now contains code for generating secure random
2842    bytes (#2685)
2843  - The classes in twisted.application.internet now accept a reactor parameter
2844    for specifying the reactor to use for underlying calls to allow for better
2845    testability (#2937)
2846  - LoopingCall now allows you to specify the reactor to use to schedule new
2847    calls, allowing much better testing techniques (#2633, #2634)
2848  - twisted.internet.task.deferLater is a new API for scheduling calls and
2849    getting deferreds which are fired with their results (#1875)
2850  - objgrep now knows how to search through deque objects (#2323)
2851  - twisted.python.log now contains a Twisted log observer which can forward
2852    messages to the Python logging system (#1351)
2853  - Log files now include seconds in the timestamps (#867)
2854  - It is now possible to limit the number of log files to create during log
2855    rotation (#1095)
2856  - The interface required by the log context system is now documented as
2857    ILoggingContext, and abstract.FileDescriptor now declares that it implements
2858    it (#1272)
2859  - There is now an example cred checker that uses a database via adbapi (#460)
2860  - The epoll reactor is now documented in the choosing-reactors howto (#2539)
2861  - There were improvements to the client howto (#222)
2862  - Int8Receiver was added (#2315)
2863  - Various refactorings to AMP introduced better testability and public
2864    interfaces (#2657, #2667, #2656, #2664, #2810)
2865  - twisted.protocol.policies.TrafficLoggingFactory now has a resetCounter
2866    method (#2757)
2867  - The FTP client can be told which port range within which to bind passive
2868    transfer ports (#1904)
2869  - twisted.protocols.memcache contains a new asynchronous memcache client
2870    (#2506, #2957)
2871  - PB now supports anonymous login (#439, #2312)
2872  - twisted.spread.jelly now supports decimal objects (#2920)
2873  - twisted.spread.jelly now supports all forms of sets (#2958)
2874  - There is now an interface describing the API that process protocols must
2875    provide (#3020)
2876  - Trial reporting to core unittest TestResult objects has been improved (#2495)
2877  - Trial's TestCase now has an addCleanup method which allows easy setup of
2878    tear-down code (#2610, #2899)
2879  - Trial's TestCase now has an assertIsInstance method (#2749)
2880  - Trial's memory footprint and speed are greatly improved (#2275)
2881  - At the end of trial runs, "PASSED" and "FAILED" messages are now colorized
2882    (#2856)
2883  - Tests which leave global state around in the reactor will now fail in
2884    trial. A new option, --unclean-warnings, will convert these errors back into
2885    warnings (#2091)
2886  - Trial now has a --without-module command line for testing code in an
2887    environment that lacks a particular Python module (#1795)
2888  - Error reporting of failed assertEquals assertions now has much nicer
2889    formatting (#2893)
2890  - Trial now has methods for monkey-patching (#2598)
2891  - Trial now has an ITestCase (#2898, #1950)
2892  - The trial reporter API now has a 'done' method which is called at the end of
2893    a test run (#2883)
2894  - TestCase now has an assertWarns method which allows testing that functions
2895    emit warnings (#2626, #2703)
2896  - There are now no string exceptions in the entire Twisted code base (#2063)
2897  - There is now a system for specifying credentials checkers with a string
2898    (#2570)
2899
2900 Fixes
2901 -----
2902
2903  - Some tests which were asserting the value of stderr have been changed
2904    because Python uncontrollably writes bytes to stderr (#2405)
2905  - Log files handle time zones with DST better (#2404)
2906  - Subprocesses using PTYs on OS X that are handled by Twisted will now be able
2907    to more reliably write the final bytes before they exit, allowing Twisted
2908    code to more reliably receive them (#2371, #2858)
2909  - Trial unit test reporting has been improved (#1901)
2910  - The kqueue reactor handles connection failures better (#2172)
2911  - It's now possible to run "trial foo/bar/" without an exception: trailing
2912    slashes no longer cause problems (#2005)
2913  - cred portals now better deal with implementations of inherited interfaces
2914    (#2523)
2915  - FTP error handling has been improved (#1160, 1107)
2916  - Trial behaves better with respect to file locking on Windows (#2482)
2917  - The FTP server now gives a better error when STOR is attempted during an
2918    anonymous session (#1575)
2919  - Trial now behaves better with tests that use the reactor's threadpool (#1832)
2920  - twisted.python.reload now behaves better with new-style objects (#2297)
2921  - LogFile's defaultMode parameter is now better implemented, preventing
2922    potential security exploits (#2586)
2923  - A minor obscure leak in thread pools was corrected (#1134)
2924  - twisted.internet.task.Clock now returns the correct DelayedCall from
2925    callLater, instead of returning the one scheduled for the furthest in the
2926    future (#2691)
2927  - twisted.spread.util.FilePager no longer unnecessarily buffers data in
2928    memory (#1843, 2321)
2929  - Asking for twistd or trial to use an unavailable reactor no longer prints a
2930    traceback (#2457)
2931  - System event triggers have fewer obscure bugs (#2509)
2932  - Plugin discovery code is much better behaved, allowing multiple
2933    installations of a package with plugins (#2339, #2769)
2934  - Process and PTYProcess have been merged and some minor bugs have been fixed
2935    (#2341)
2936  - The reactor has less global state (#2545)
2937  - Failure can now correctly represent and format errors caused by string
2938    exceptions (#2830)
2939  - The epoll reactor now has better error handling which now avoids the bug
2940    causing 100% CPU usage in some cases (#2809)
2941  - Errors raised during trial setUp or tearDown methods are now handled better
2942    (#2837)
2943  - A problem when deferred callbacks add new callbacks to the deferred that
2944    they are a callback of was fixed (#2849)
2945  - Log messages that are emitted during connectionMade now have the protocol
2946    prefix correctly set (#2813)
2947  - The string representation of a TCP Server connection now contains the actual
2948    port that it's bound to when it was configured to listen on port 0 (#2826)
2949  - There is better reporting of error codes for TCP failures on Windows (#2425)
2950  - Process spawning has been made slightly more robust by disabling garbage
2951    collection temporarily immediately after forking so that finalizers cannot
2952    be executed in an unexpected environment (#2483)
2953  - namedAny now detects import errors better (#698)
2954  - Many fixes and improvements to the twisted.python.zipstream module have
2955    been made (#2996)
2956  - FilePager no longer blows up on empty files (#3023)
2957  - twisted.python.util.FancyEqMixin has been improved to cooperate with objects
2958    of other types (#2944)
2959  - twisted.python.FilePath.exists now restats to prevent incorrect result
2960    (#2896)
2961  - twisted.python.util.mergeFunctionMetadata now also merges the __module__
2962    attribute (#3049)
2963  - It is now possible to call transport.pauseProducing within connectionMade on
2964    TCP transports without it being ignored (#1780)
2965  - twisted.python.versions now understands new SVN metadata format for fetching
2966    the SVN revision number (#3058)
2967  - It's now possible to use reactor.callWhenRunning(reactor.stop) on gtk2 and
2968    glib2 reactors (#3011)
2969
2970 Deprecations and removals
2971 -------------------------
2972  - twisted.python.timeoutqueue is now deprecated (#2536)
2973  - twisted.enterprise.row and twisted.enterprise.reflector are now deprecated
2974    (#2387)
2975  - twisted.enterprise.util is now deprecated (#3022)
2976  - The dispatch and dispatchWithCallback methods of ThreadPool are now
2977    deprecated (#2684)
2978  - Starting the same reactor multiple times is now deprecated (#1785)
2979  - The visit method of various test classes in trial has been deprecated (#2897)
2980  - The --report-profile option to twistd and twisted.python.dxprofile are
2981    deprecated (#2908)
2982  - The upDownError method of Trial reporters is deprecated (#2883)
2983
2984 Other
2985 -----
2986
2987  - #2396, #2211, #1921, #2378, #2247, #1603, #2463, #2530, #2426, #2356, #2574,
2988  - #1844, #2575, #2655, #2640, #2670, #2688, #2543, #2743, #2744, #2745, #2746,
2989  - #2742, #2741, #1730, #2831, #2216, #1192, #2848, #2767, #1220, #2727, #2643,
2990  - #2669, #2866, #2867, #1879, #2766, #2855, #2547, #2857, #2862, #1264, #2735,
2991  - #942, #2885, #2739, #2901, #2928, #2954, #2906, #2925, #2942, #2894, #2793,
2992  - #2761, #2977, #2968, #2895, #3000, #2990, #2919, #2969, #2921, #3005, #421,
2993  - #3031, #2940, #1181, #2783, #1049, #3053, #2847, #2941, #2876, #2886, #3086,
2994  - #3095, #3109
2995
2996
2997 Conch 8.0.0 (2008-03-17)
2998 ========================
2999
3000 Features
3001 --------
3002  - Add DEC private mode manipulation methods to ITerminalTransport. (#2403)
3003
3004 Fixes
3005 -----
3006  - Parameterize the scheduler function used by the insults TopWindow widget.
3007    This change breaks backwards compatibility in the TopWindow initializer.
3008    (#2413)
3009  - Notify subsystems, like SFTP, of connection close. (#2421)
3010  - Change the process file descriptor "connection lost" code to reverse the
3011    setNonBlocking operation done during initialization. (#2371)
3012  - Change ConsoleManhole to wait for connectionLost notification before
3013    stopping the reactor. (#2123, #2371)
3014  - Make SSHUserAuthServer.ssh_USERAUTH_REQUEST return a Deferred. (#2528)
3015  - Manhole's initializer calls its parent class's initializer with its
3016    namespace argument. (#2587)
3017  - Handle ^C during input line continuation in manhole by updating the prompt
3018    and line buffer correctly. (#2663)
3019  - Make twisted.conch.telnet.Telnet by default reject all attempts to enable
3020    options. (#1967)
3021  - Reduce the number of calls into application code to deliver application-level
3022    data in twisted.conch.telnet.Telnet.dataReceived (#2107)
3023  - Fix definition and management of extended attributes in conch file transfer.
3024    (#3010)
3025  - Fix parsing of OpenSSH-generated RSA keys with differing ASN.1 packing style.
3026    (#3008)
3027  - Fix handling of missing $HOME in twisted.conch.client.unix. (#3061)
3028
3029 Misc
3030 ----
3031  - #2267, #2378, #2604, #2707, #2341, #2685, #2679, #2912, #2977, #2678, #2709
3032    #2063, #2847
3033
3034
3035 Lore 8.0.0 (2008-03-17)
3036 =======================
3037
3038 Fixes
3039 -----
3040  - Change twisted.lore.tree.setIndexLin so that it removes node with index-link
3041    class when the specified index filename is None. (#812)
3042  - Fix the conversion of the list of options in man pages to Lore format.
3043    (#3017)
3044  - Fix conch man pages generation. (#3075)
3045  - Fix management of the interactive command tag in man2lore. (#3076)
3046
3047 Misc
3048 ----
3049  - #2847
3050
3051
3052 News 8.0.0 (2008-03-17)
3053 =======================
3054
3055 Misc
3056 ----
3057  - Remove all "API Stability" markers (#2847)
3058
3059
3060 Runner 8.0.0 (2008-03-17)
3061 =========================
3062
3063 Misc
3064 ----
3065  - Remove all "API Stability" markers (#2847)
3066
3067
3068 Web 8.0.0 (2008-03-17)
3069 ======================
3070
3071 Features
3072 --------
3073  - Add support to twisted.web.client.getPage for the HTTP HEAD method. (#2750)
3074
3075 Fixes
3076 -----
3077  - Set content-type in xmlrpc responses to "text/xml" (#2430)
3078  - Add more error checking in the xmlrpc.XMLRPC render method, and enforce
3079    POST requests. (#2505)
3080  - Reject unicode input to twisted.web.client._parse to reject invalid
3081    unicode URLs early. (#2628)
3082  - Correctly re-quote URL path segments when generating an URL string to
3083    return from Request.prePathURL. (#2934)
3084  - Make twisted.web.proxy.ProxyClientFactory close the connection when
3085    reporting a 501 error. (#1089)
3086  - Fix twisted.web.proxy.ReverseProxyResource to specify the port in the
3087    host header if different from 80. (#1117)
3088  - Change twisted.web.proxy.ReverseProxyResource so that it correctly encodes
3089    the request URI it sends on to the server for which it is a proxy. (#3013)
3090  - Make "twistd web --personal" use PBServerFactory (#2681)
3091
3092 Misc
3093 ----
3094  - #1996, #2382, #2211, #2633, #2634, #2640, #2752, #238, #2905
3095
3096
3097 Words 8.0.0 (2008-03-17)
3098 ========================
3099
3100 Features
3101 --------
3102  - Provide function for creating XMPP response stanzas. (#2614, #2614)
3103  - Log exceptions raised in Xish observers. (#2616)
3104  - Add 'and' and 'or' operators for Xish XPath expressions. (#2502)
3105  - Make JIDs hashable. (#2770)
3106
3107 Fixes
3108 -----
3109  - Respect the hostname and servername parameters to IRCClient.register. (#1649)
3110  - Make EventDispatcher remove empty callback lists. (#1652)
3111  - Use legacy base64 API to support Python 2.3 (#2461)
3112  - Fix support of DIGEST-MD5 challenge parsing with multi-valued directives.
3113    (#2606)
3114  - Fix reuse of dict of prefixes in domish.Element.toXml (#2609)
3115  - Properly process XMPP stream headers (#2615)
3116  - Use proper namespace for XMPP stream errors. (#2630)
3117  - Properly parse XMPP stream errors. (#2771)
3118  - Fix toResponse for XMPP stanzas without an id attribute. (#2773)
3119  - Move XMPP stream header procesing to authenticators. (#2772)
3120
3121 Misc
3122 ----
3123  - #2617, #2640, #2741, #2063, #2570, #2847
3124
3125
3126 Mail 8.0.0 (2008-03-17)
3127 =======================
3128
3129 Features
3130 --------
3131  - Support CAPABILITY responses that include atoms of the form "FOO" and
3132    "FOO=BAR" in IMAP4 (#2695)
3133  - Parameterize error handling behavior of imap4.encoder and imap4.decoder.
3134    (#2929)
3135
3136 Fixes
3137 -----
3138  - Handle empty passwords in SMTP auth. (#2521)
3139  - Fix IMAP4Client's parsing of literals which are not preceeded by whitespace.
3140    (#2700)
3141  - Handle MX lookup suceeding without answers. (#2807)
3142  - Fix issues with aliases(5) process support. (#2729)
3143
3144 Misc
3145 ----
3146  - #2371, #2123, #2378, #739, #2640, #2746, #1917, #2266, #2864, #2832, #2063,
3147    #2865, #2847
3148
3149
3150 Names 8.0.0 (2008-03-17)
3151 ========================
3152
3153 Fixes
3154 -----
3155
3156  - Refactor DNSDatagramProtocol and DNSProtocol to use same base class (#2414)
3157  - Change Resolver to query specified nameservers in specified order, instead
3158    of reverse order. (#2290)
3159  - Make SRVConnector work with bad results and NXDOMAIN responses.
3160    (#1908, #2777)
3161  - Handle write errors happening in dns queries, to have correct deferred
3162    failures. (#2492)
3163  - Fix the value of OP_NOTIFY and add a definition for OP_UPDATE. (#2945)
3164
3165 Misc
3166 ----
3167  - #2685, #2936, #2581, #2847
3168