~ntt-pf-lab/nova/monkey_patch_notification

« back to all changes in this revision

Viewing changes to vendor/Twisted-10.0.0/NEWS

  • Committer: Jesse Andrews
  • Date: 2010-05-28 06:05:26 UTC
  • Revision ID: git-v1:bf6e6e718cdc7488e2da87b21e258ccc065fe499
initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Ticket numbers in this file can be looked up by visiting
 
2
http://twistedmatrix.com/trac/ticket/<number>
 
3
 
 
4
Twisted Core 10.0.0 (2010-03-01)
 
5
================================
 
6
 
 
7
Features
 
8
--------
 
9
 - The twistd man page now has a SIGNALS section. (#689)
 
10
 
 
11
 - reactor.spawnProcess now will not emit a PotentialZombieWarning
 
12
   when called before reactor.run, and there will be no potential for
 
13
   zombie processes in this case. (#2078)
 
14
 
 
15
 - High-throughput applications based on Perspective Broker should now
 
16
   run noticably faster thanks to the use of a more efficient decoding
 
17
   function in Twisted Spread. (#2310)
 
18
 
 
19
 - Documentation for trac-post-commit-hook functionality in svn-dev
 
20
   policy. (#3867)
 
21
 
 
22
 - twisted.protocols.socks.SOCKSv4 now supports the SOCKSv4a protocol.
 
23
   (#3886)
 
24
 
 
25
 - Trial can now output test results according to the subunit
 
26
   protocol, as long as Subunit is installed (see
 
27
   https://launchpad.net/subunit). (#4004)
 
28
 
 
29
 - twisted.protocols.amp now provides a ListOf argument type which can
 
30
   be composed with some other argument types to create a zero or more
 
31
   element sequence of that type. (#4116)
 
32
 
 
33
 - If returnValue is invoked outside of a function decorated with
 
34
   @inlineCallbacks, but causes a function thusly decorated to exit, a
 
35
   DeprecationWarning will be emitted explaining this potentially
 
36
   confusing behavior.  In a future release, this will cause an
 
37
   exception. (#4157)
 
38
 
 
39
 - twisted.python.logfile.BaseLogFile now has a reopen method allowing
 
40
   you to use an external logrotate mechanism. (#4255)
 
41
 
 
42
Bugfixes
 
43
--------
 
44
 - FTP.ftp_NLST now handles requests on invalid paths in a way
 
45
   consistent with RFC 959. (#1342)
 
46
 
 
47
 - twisted.python.util.initgroups now calls the low-level C initgroups
 
48
   by default if available: the python version can create lots of I/O
 
49
   with certain authentication setup to retrieve all the necessary
 
50
   information. (#3226)
 
51
 
 
52
 - startLogging now does nothing on subsequent invocations, thus
 
53
   fixing a terrible infinite recursion bug that's only on edge case.
 
54
   (#3289)
 
55
 
 
56
 - Stringify non-string data to NetstringReceiver.sendString before
 
57
   calculating the length so that the calculated length is equal to
 
58
   the actual length of the transported data. (#3299)
 
59
 
 
60
 - twisted.python.win32.cmdLineQuote now correctly quotes empty
 
61
   strings arguments (#3876)
 
62
 
 
63
 - Change the behavior of the Gtk2Reactor to register only one source
 
64
   watch for each file descriptor, instead of one for reading and one
 
65
   for writing. In particular, it fixes a bug with Glib under Windows
 
66
   where we failed to notify when a client is connected. (#3925)
 
67
 
 
68
 - Twisted Trial no longer crashes if it can't remove an old
 
69
   _trial_temp directory.  (#4020)
 
70
 
 
71
 - The optional _c_urlarg extension now handles unquote("") correctly
 
72
   on platforms where malloc(0) returns NULL, such as AIX.  It also
 
73
   compiles with less warnings. (#4142)
 
74
 
 
75
 - On POSIX, child processes created with reactor.spawnProcess will no
 
76
   longer automatically ignore the signals which the parent process
 
77
   has set to be ignored. (#4199)
 
78
 
 
79
 - All SOCKSv4a tests now use a dummy reactor with a deterministic
 
80
   resolve method. (#4275)
 
81
 
 
82
 - Prevent extraneous server, date and content-type headers in proxy
 
83
   responses. (#4277)
 
84
 
 
85
Deprecations and Removals
 
86
-------------------------
 
87
 - twisted.internet.error.PotentialZombieWarning is now deprecated.
 
88
   (#2078)
 
89
 
 
90
 - twisted.test.time_helpers is now deprecated. (#3719)
 
91
 
 
92
 - The deprecated connectUDP method of IReactorUDP has now been
 
93
   removed. (#4075)
 
94
 
 
95
 - twisted.trial.unittest.TestCase now ignores the previously
 
96
   deprecated setUpClass and tearDownClass methods. (#4175)
 
97
 
 
98
Other
 
99
-----
 
100
 - #917, #2406, #2481, #2608, #2689, #2884, #3056, #3082, #3199,
 
101
   #3480, #3592, #3718, #3935, #4066, #4083, #4154, #4166, #4169,
 
102
   #4176, #4183, #4186, #4188, #4189, #4194, #4201, #4204, #4209,
 
103
   #4222, #4234, #4235, #4238, #4240, #4245, #4251, #4264, #4268,
 
104
   #4269, #4282
 
105
 
 
106
 
 
107
Twisted Conch 10.0.0 (2010-03-01)
 
108
=================================
 
109
 
 
110
Bugfixes
 
111
--------
 
112
 - twisted.conch.checkers.SSHPublicKeyDatabase now looks in the
 
113
   correct user directory for authorized_keys files. (#3984)
 
114
 
 
115
 - twisted.conch.ssh.SSHUserAuthClient now honors preferredOrder when
 
116
   authenticating. (#4266)
 
117
 
 
118
Other
 
119
-----
 
120
 - #2391, #4203, #4265
 
121
 
 
122
 
 
123
Twisted Lore 10.0.0 (2010-03-01)
 
124
================================
 
125
 
 
126
Other
 
127
-----
 
128
 - #4241
 
129
 
 
130
 
 
131
Twisted Mail 10.0.0 (2010-03-01)
 
132
================================
 
133
 
 
134
Bugfixes
 
135
--------
 
136
 - twisted.mail.smtp.ESMTPClient and
 
137
   twisted.mail.smtp.LOGINAuthenticator now implement the (obsolete)
 
138
   LOGIN SASL mechanism according to the draft specification. (#4031)
 
139
 
 
140
 - twisted.mail.imap4.IMAP4Client will no longer misparse all html-
 
141
   formatted message bodies received in response to a fetch command.
 
142
   (#4049)
 
143
 
 
144
 - The regression in IMAP4 search handling of "OR" and "NOT" terms has
 
145
   been fixed. (#4178)
 
146
 
 
147
Other
 
148
-----
 
149
 - #4028, #4170, #4200
 
150
 
 
151
 
 
152
Twisted Names 10.0.0 (2010-03-01)
 
153
=================================
 
154
 
 
155
Bugfixes
 
156
--------
 
157
 - twisted.names.root.Resolver no longer leaks UDP sockets while
 
158
   resolving names. (#970)
 
159
 
 
160
Deprecations and Removals
 
161
-------------------------
 
162
 - Several top-level functions in twisted.names.root are now
 
163
   deprecated. (#970)
 
164
 
 
165
Other
 
166
-----
 
167
 - #4066
 
168
 
 
169
 
 
170
Twisted Pair 10.0.0 (2010-03-01)
 
171
================================
 
172
 
 
173
Other
 
174
-----
 
175
 - #4170
 
176
 
 
177
 
 
178
Twisted Runner 10.0.0 (2010-03-01)
 
179
==================================
 
180
 
 
181
Other
 
182
-----
 
183
 - #3961
 
184
 
 
185
 
 
186
Twisted Web 10.0.0 (2010-03-01)
 
187
===============================
 
188
 
 
189
Features
 
190
--------
 
191
 - Twisted Web in 60 Seconds, a series of short tutorials with self-
 
192
   contained examples on a range of common web topics, is now a part
 
193
   of the Twisted Web howto documentation. (#4192)
 
194
 
 
195
Bugfixes
 
196
--------
 
197
 - Data and File from twisted.web.static and
 
198
   twisted.web.distrib.UserDirectory will now only generate a 200
 
199
   response for GET or HEAD requests.
 
200
   twisted.web.client.HTTPPageGetter will no longer ignore the case of
 
201
   a request method when considering whether to apply special HEAD
 
202
   processing to a response. (#446)
 
203
 
 
204
 - twisted.web.http.HTTPClient now supports multi-line headers.
 
205
   (#2062)
 
206
 
 
207
 - Resources served via twisted.web.distrib will no longer encounter a
 
208
   Banana error when writing more than 640kB at once to the request
 
209
   object. (#3212)
 
210
 
 
211
 - The Error, PageRedirect, and InfiniteRedirection exception in
 
212
   twisted.web now initialize an empty message parameter by mapping
 
213
   the HTTP status code parameter to a descriptive string. Previously
 
214
   the lookup would always fail, leaving message empty.  (#3806)
 
215
 
 
216
 - The 'wsgi.input' WSGI environment object now supports -1 and None
 
217
   as arguments to the read and readlines methods. (#4114)
 
218
 
 
219
 - twisted.web.wsgi doesn't unquote QUERY_STRING anymore, thus
 
220
   complying with the WSGI reference implementation. (#4143)
 
221
 
 
222
 - The HTTP proxy will no longer pass on keep-alive request headers
 
223
   from the client, preventing pages from loading then "hanging"
 
224
   (leaving the connection open with no hope of termination). (#4179)
 
225
 
 
226
Deprecations and Removals
 
227
-------------------------
 
228
 - Remove '--static' option from twistd web, that served as an alias
 
229
   for the '--path' option. (#3907)
 
230
 
 
231
Other
 
232
-----
 
233
 - #3784, #4216, #4242
 
234
 
 
235
 
 
236
Twisted Words 10.0.0 (2010-03-01)
 
237
=================================
 
238
 
 
239
Features
 
240
--------
 
241
 - twisted.words.protocols.irc.IRCClient.irc_MODE now takes ISUPPORT
 
242
   parameters into account when parsing mode messages with arguments
 
243
   that take parameters (#3296)
 
244
 
 
245
Bugfixes
 
246
--------
 
247
 - When twisted.words.protocols.irc.IRCClient's versionNum and
 
248
   versionEnv attributes are set to None, they will no longer be
 
249
   included in the client's response to CTCP VERSION queries. (#3660)
 
250
 
 
251
 - twisted.words.protocols.jabber.xmlstream.hashPassword now only
 
252
   accepts unicode as input (#3741, #3742, #3847)
 
253
 
 
254
Other
 
255
-----
 
256
 - #2503, #4066, #4261
 
257
 
 
258
 
 
259
Twisted Core 9.0.0 (2009-11-24)
 
260
===============================
 
261
 
 
262
Features
 
263
--------
 
264
 - LineReceiver.clearLineBuffer now returns the bytes that it cleared (#3573)
 
265
 - twisted.protocols.amp now raises InvalidSignature when bad arguments are
 
266
   passed to Command.makeArguments (#2808)
 
267
 - IArgumentType was added to represent an existing but previously unspecified
 
268
   interface in amp (#3468)
 
269
 - Obscure python tricks have been removed from the finger tutorials (#2110)
 
270
 - The digest auth implementations in twisted.web and twisted.protocolos.sip
 
271
   have been merged together in twisted.cred (#3575)
 
272
 - FilePath and ZipPath now has a parents() method which iterates up all of its
 
273
   parents (#3588)
 
274
 - reactors which support threads now have a getThreadPool method (#3591)
 
275
 - The MemCache client implementation now allows arguments to the "stats"
 
276
   command (#3661)
 
277
 - The MemCache client now has a getMultiple method which allows fetching of
 
278
   multiple values (#3171)
 
279
 - twisted.spread.jelly can now unserialize some new-style classes (#2950)
 
280
 - twisted.protocols.loopback.loopbackAsync now accepts a parameter to control
 
281
   the data passed between client and server (#3820)
 
282
 - The IOCP reactor now supports SSL (#593)
 
283
 - Tasks in a twisted.internet.task.Cooperator can now be paused, resumed, and
 
284
   cancelled (#2712)
 
285
 - AmpList arguments can now be made optional (#3891)
 
286
 - The syslog output observer now supports log levels (#3300)
 
287
 - LoopingCall now supports reporting the number of intervals missed if it
 
288
   isn't able to schedule calls fast enough (#3671)
 
289
 
 
290
Fixes
 
291
-----
 
292
 - The deprecated md5 and sha modules are no longer used if the stdlib hashlib
 
293
   module is available (#2763)
 
294
 - An obscure deadlock involving waking up the reactor within signal handlers
 
295
   in particular threads was fixed (#1997)
 
296
 - The passivePortRange attribute of FTPFactory is now honored (#3593)
 
297
 - TestCase.flushWarnings now flushes warnings even if they were produced by a
 
298
   file that was renamed since it was byte compiled (#3598)
 
299
 - Some internal file descriptors are now marked as close-on-exec, so these will
 
300
   no longer be leaked to child processes (#3576)
 
301
 - twisted.python.zipstream now correctly extracts the first file in a directory
 
302
   as a file, and not an empty directory (#3625)
 
303
 - proxyForInterface now returns classes which correctly *implement* interfaces
 
304
   rather than *providing* them (#3646)
 
305
 - SIP Via header parameters should now be correctly generated (#2194)
 
306
 - The Deferred returned by stopListening would sometimes previously never fire
 
307
   if an exception was raised by the underlying file descriptor's connectionLost
 
308
   method. Now the Deferred will fire with a failure (#3654)
 
309
 - The command-line tool "manhole" should now work with newer versions of pygtk
 
310
   (#2464)
 
311
 - When a DefaultOpenSSLContextFactory is instantiated with invalid parameters,
 
312
   it will now raise an exception immediately instead of waiting for the first
 
313
   connection (#3700)
 
314
 - Twisted command line scripts should now work when installed in a virtualenv
 
315
   (#3750)
 
316
 - Trial will no longer delete temp directories which it did not create (#3481)
 
317
 - Processes started on Windows should now be cleaned up properly in more cases
 
318
   (#3893)
 
319
 - Certain misbehaving importers will no longer cause twisted.python.modules
 
320
   (and thus trial) to raise an exception, but rather issue a warning (#3913)
 
321
 - MemCache client protocol methods will now fail when the transport has been
 
322
   disconnected (#3643)
 
323
 - In the AMP method callRemoteString, the requiresAnswer parameter is now
 
324
   honored (#3999)
 
325
 - Spawning a "script" (a file which starts with a #! line) on Windows running
 
326
   Python 2.6 will now work instead of raising an exception about file mode
 
327
   "ru" (#3567)
 
328
 - FilePath's walk method now calls its "descend" parameter even on the first
 
329
   level of children, instead of only on grandchildren. This allows for better
 
330
   symlink cycle detection (#3911)
 
331
 - Attempting to write unicode data to process pipes on Windows will no longer
 
332
   result in arbitrarily encoded messages being written to the pipe, but instead
 
333
   will immediately raise an error (#3930)
 
334
 - The various twisted command line utilities will no longer print
 
335
   ModuleType.__doc__ when Twisted was installed with setuptools (#4030)
 
336
 - A Failure object will now be passed to connectionLost on stdio connections
 
337
   on Windows, instead of an Exception object (#3922)
 
338
 
 
339
Deprecations and Removals
 
340
-------------------------
 
341
 - twisted.persisted.marmalade was deleted after a long period of deprecation
 
342
   (#876)
 
343
 - Some remaining references to the long-gone plugins.tml system were removed
 
344
   (#3246)
 
345
 - SSLv2 is now disabled by default, but it can be re-enabled explicitly
 
346
   (#3330)
 
347
 - twisted.python.plugin has been removed (#1911)
 
348
 - reactor.run will now raise a ReactorAlreadyRunning exception when it is
 
349
   called reentrantly instead of warning a DeprecationWarning (#1785)
 
350
 - twisted.spread.refpath is now deprecated because it is unmaintained,
 
351
   untested, and has dubious value (#3723)
 
352
 - The unused --quiet flag has been removed from the twistd command (#3003)
 
353
 
 
354
Other
 
355
-----
 
356
 - #3545, #3490, #3544, #3537, #3455, #3315, #2281, #3564, #3570, #3571, #3486,
 
357
   #3241, #3599, #3220, #1522, #3611, #3596, #3606, #3609, #3602, #3637, #3647,
 
358
   #3632, #3675, #3673, #3686, #2217, #3685, #3688, #2456, #506, #3635, #2153,
 
359
   #3581, #3708, #3714, #3717, #3698, #3747, #3704, #3707, #3713, #3720, #3692,
 
360
   #3376, #3652, #3695, #3735, #3786, #3783, #3699, #3340, #3810, #3822, #3817,
 
361
   #3791, #3859, #2459, #3677, #3883, #3894, #3861, #3822, #3852, #3875, #2722,
 
362
   #3768, #3914, #3885, #2719, #3905, #3942, #2820, #3990, #3954, #1627, #2326,
 
363
   #2972, #3253, #3937, #4058, #1200, #3639, #4079, #4063, #4050
 
364
 
 
365
 
 
366
Twisted Conch 9.0.0 (2009-11-24)
 
367
================================
 
368
 
 
369
Fixes
 
370
-----
 
371
 - The SSH key parser has been removed and conch now uses pyASN1 to parse keys.
 
372
   This should fix a number of cases where parsing a key would fail, but it now
 
373
   requires users to have pyASN1 installed (#3391)
 
374
 - The time field on SFTP file listings should now be correct (#3503)
 
375
 - The day field on SFTP file listings should now be correct on Windows (#3503)
 
376
 - The "cftp" sftp client now truncates files it is uploading over (#2519)
 
377
 - The telnet server protocol can now properly respond to subnegotiation
 
378
   requests (#3655)
 
379
 - Tests and factoring of the SSHv2 server implementation are now much better
 
380
   (#2682)
 
381
 - The SSHv2 server now sends "exit-signal" messages to the client, instead of
 
382
   raising an exception, when a process dies due to a signal (#2687)
 
383
 - cftp's client-side "exec" command now uses /bin/sh if the current user has
 
384
   no shell (#3914)
 
385
 
 
386
Deprecations and Removals
 
387
-------------------------
 
388
 - The buggy SSH connection sharing feature of the SSHv2 client was removed
 
389
   (#3498)
 
390
 - Use of strings and PyCrypto objects to represent keys is deprecated in favor
 
391
   of using Conch Key objects (#2682)
 
392
 
 
393
Other
 
394
-----
 
395
 - #3548, #3537, #3551, #3220, #3568, #3689, #3709, #3809, #2763, #3540, #3750,
 
396
   #3897, #3813, #3871, #3916, #4047, #3940, #4050
 
397
 
 
398
 
 
399
Twisted Lore 9.0.0 (2009-11-24)
 
400
===============================
 
401
 
 
402
Features
 
403
--------
 
404
 - Python source listings now include line numbers (#3486)
 
405
 
 
406
Fixes
 
407
-----
 
408
 - Lore now uses minidom instead of Twisted's microdom, which incidentally
 
409
   fixes some Lore bugs such as throwing away certain whitespace
 
410
   (#3560, #414, #3619)
 
411
 - Lore's "lint" command should no longer break on documents with links in them
 
412
   (#4051, #4115)
 
413
 
 
414
Deprecations and Removals
 
415
-------------------------
 
416
 - Lore no longer uses the ancient "tml" Twisted plugin system (#1911)
 
417
 
 
418
Other
 
419
-----
 
420
 - #3565, #3246, #3540, #3750, #4050
 
421
 
 
422
 
 
423
Twisted Mail 9.0.0 (2009-11-24)
 
424
===============================
 
425
 
 
426
Features
 
427
--------
 
428
 - maildir.StringListMailbox, an in-memory maildir mailbox, now supports
 
429
   deletion, undeletion, and syncing (#3547)
 
430
 - SMTPClient's callbacks are now more completely documented (#684)
 
431
 
 
432
Fixes
 
433
-----
 
434
 - Parse UNSEEN response data and include it in the result of
 
435
   IMAP4Client.examine (#3550)
 
436
 - The IMAP4 client now delivers more unsolicited server responses to callbacks
 
437
   rather than ignoring them, and also won't ignore solicited responses that
 
438
   arrive on the same line as an unsolicited one (#1105)
 
439
 - Several bugs in the SMTP client's idle timeout support were fixed (#3641,
 
440
   #1219)
 
441
 - A case where the SMTP client could skip some recipients when retrying
 
442
   delivery has been fixed (#3638)
 
443
 - Errors during certain data transfers will no longer be swallowed. They will
 
444
   now bubble up to the higher-level API (such as the sendmail function) (#3642)
 
445
 - Escape sequences inside quoted strings in IMAP4 should now be parsed
 
446
   correctly by the IMAP4 server protocol (#3659)
 
447
 - The "imap4-utf-7" codec that is registered by twisted.mail.imap4 had a number
 
448
   of fixes that allow it to work better with the Python codecs system, and to
 
449
   actually work (#3663)
 
450
 - The Maildir implementation now ensures time-based ordering of filenames so
 
451
   that the lexical sorting of messages matches the order in which they were
 
452
   received (#3812)
 
453
 - SASL PLAIN credentials generated by the IMAP4 protocol implementations
 
454
   (client and server) should now be RFC-compliant (#3939)
 
455
 - Searching for a set of sequences using the IMAP4 "SEARCH" command should 
 
456
   now work on the IMAP4 server protocol implementation. This at least improves
 
457
   support for the Pine mail client (#1977)
 
458
 
 
459
Other
 
460
-----
 
461
 - #2763, #3647, #3750, #3819, #3540, #3846, #2023, #4050
 
462
 
 
463
 
 
464
Twisted Names 9.0.0 (2009-11-24)
 
465
================================
 
466
 
 
467
Deprecations and Removals
 
468
-------------------------
 
469
 - client.ThreadedResolver is deprecated in favor of
 
470
   twisted.internet.base.ThreadedResolver (#3710)
 
471
 
 
472
Other
 
473
-----
 
474
 - #3540, #3560, #3712, #3750, #3990
 
475
 
 
476
 
 
477
Twisted News 9.0.0 (2009-11-24)
 
478
===============================
 
479
 
 
480
Other
 
481
-----
 
482
 - #2763, #3540
 
483
 
 
484
 
 
485
Twisted Pair 9.0.0 (2009-11-24)
 
486
===============================
 
487
 
 
488
Other
 
489
-----
 
490
 - #3540, #4050
 
491
 
 
492
 
 
493
Twisted Runner 9.0.0 (2009-11-24)
 
494
=================================
 
495
 
 
496
Features
 
497
--------
 
498
 - procmon.ProcessMonitor.addProcess now accepts an 'env' parameter which allows
 
499
   users to specify the environment in which a process will be run (#3691)
 
500
 
 
501
Other
 
502
-----
 
503
 - #3540
 
504
 
 
505
 
 
506
Twisted Web 9.0.0 (2009-11-24)
 
507
==============================
 
508
 
 
509
Features
 
510
--------
 
511
 - There is now an iweb.IRequest interface which specifies the interface that
 
512
   request objects provide (#3416)
 
513
 - downloadPage now supports the same cookie, redirect, and timeout features
 
514
   that getPage supports (#2971)
 
515
 - A chapter about WSGI has been added to the twisted.web documentation (#3510)
 
516
 - The HTTP auth support in the web server now allows anonymous sessions by
 
517
   logging in with ANONYMOUS credentials when no Authorization header is
 
518
   provided in a request (#3924, #3936)
 
519
 - HTTPClientFactory now accepts a parameter to enable a common deviation from
 
520
   the HTTP 1.1 standard by responding to redirects in a POSTed request with a
 
521
   GET instead of another POST (#3624)
 
522
 - A new basic HTTP/1.1 client API is included in twisted.web.client.Agent
 
523
   (#886, #3987)
 
524
 
 
525
Fixes
 
526
-----
 
527
 - Requests for "insecure" children of a static.File (such as paths containing
 
528
   encoded directory separators) will now result in a 404 instead of a 500
 
529
   (#3549, #3469)
 
530
 - When specifying a followRedirect argument to the getPage function, the state
 
531
   of redirect-following for other getPage calls should now be unaffected.  It
 
532
   was previously overwriting a class attribute which would affect outstanding
 
533
   getPage calls (#3192)
 
534
 - Downloading an URL of the form "http://example.com:/" will now work,
 
535
   ignoring the extraneous colon (#2402)
 
536
 - microdom's appendChild method will no longer issue a spurious warning, and
 
537
   microdom's methods in general should now issue more meaningful exceptions
 
538
   when invalid parameters are passed (#3421)
 
539
 - WSGI applications will no longer have spurious Content-Type headers added to
 
540
   their responses by the twisted.web server. In addition, WSGI applications
 
541
   will no longer be able to specify the server-restricted headers Server and
 
542
   Date (#3569)
 
543
 - http_headers.Headers now normalizes the case of raw headers passed directly
 
544
   to it in the same way that it normalizes the headers passed to setRawHeaders
 
545
   (#3557)
 
546
 - The distrib module no longer relies on the deprecated woven package (#3559)
 
547
 - twisted.web.domhelpers now works with both microdom and minidom (#3600)
 
548
 - twisted.web servers will now ignore invalid If-Modified-Since headers instead
 
549
   of returning a 500 error (#3601)
 
550
 - Certain request-bound memory and file resources are cleaned up slightly
 
551
   sooner by the request when the connection is lost (#1621, #3176)
 
552
 - xmlrpclib.DateTime objects should now correctly round-trip over twisted.web's
 
553
   XMLRPC support in all supported versions of Python, and errors during error
 
554
   serialization will no longer hang a twisted.web XMLRPC response (#2446)
 
555
 - request.content should now always be seeked to the beginning when
 
556
   request.process is called, so application code should never need to seek 
 
557
   back manually (#3585)
 
558
 - Fetching a child of static.File with a double-slash in the URL (such as
 
559
   "example//foo.html") should now return a 404 instead of a traceback and
 
560
   500 error (#3631)
 
561
 - downloadPage will now fire a Failure on its returned Deferred instead of
 
562
   indicating success when the connection is prematurely lost (#3645)
 
563
 - static.File will now provide a 404 instead of a 500 error when it was
 
564
   constructed with a non-existent file (#3634)
 
565
 - microdom should now serialize namespaces correctly (#3672)
 
566
 - The HTTP Auth support resource wrapper should no longer corrupt requests and
 
567
   cause them to skip a segment in the request path (#3679)
 
568
 - The twisted.web WSGI support should now include leading slashes in PATH_INFO,
 
569
   and SCRIPT_NAME will be empty if the application is at the root of the
 
570
   resource tree. This means that WSGI applications should no longer generate
 
571
   URLs with double-slashes in them even if they naively concatenate the values
 
572
   (#3721)
 
573
 - WSGI applications should now receive the requesting client's IP in the
 
574
   REMOTE_ADDR environment variable (#3730)
 
575
 - The distrib module should work again. It was unfortunately broken with the
 
576
   refactoring of twisted.web's header support (#3697)
 
577
 - static.File now supports multiple ranges specified in the Range header
 
578
   (#3574)
 
579
 - static.File should now generate a correct Content-Length value when the
 
580
   requested Range value doesn't fit entirely within the file's contents (#3814)
 
581
 - Attempting to call request.finish() after the connection has been lost will
 
582
   now immediately raise a RuntimeError (#4013)
 
583
 - An HTTP-auth resource should now be able to directly render the wrapped
 
584
   avatar, whereas before it would only allow retrieval of child resources
 
585
   (#4014)
 
586
 - twisted.web's wsgi support should no longer attempt to call request.finish
 
587
   twice, which would cause errors in certain cases (#4025)
 
588
 - WSGI applications should now be able to handle requests with large bodies
 
589
   (#4029)
 
590
 - Exceptions raised from WSGI applications should now more reliably be turned
 
591
   into 500 errors on the HTTP level (#4019)
 
592
 - DeferredResource now correctly passes through exceptions raised from the
 
593
   wrapped resource, instead of turning them all into 500 errors (#3932)
 
594
 - Agent.request now generates a Host header when no headers are passed at
 
595
   (#4131)
 
596
 
 
597
Deprecations and Removals
 
598
-------------------------
 
599
 - The unmaintained and untested twisted.web.monitor module was removed (#2763)
 
600
 - The twisted.web.woven package has been removed (#1522)
 
601
 - All of the error resources in twisted.web.error are now in
 
602
   twisted.web.resource, and accessing them through twisted.web.error is now
 
603
   deprecated (#3035)
 
604
 - To facilitate a simplification of the timeout logic in server.Session,
 
605
   various things have been deprecated (#3457)
 
606
   - the loopFactory attribute is now ignored
 
607
   - the checkExpired method now does nothing
 
608
   - the lifetime parameter to startCheckingExpiration is now ignored
 
609
 - The twisted.web.trp module is now deprecated (#2030)
 
610
 
 
611
Other
 
612
-----
 
613
 - #2763, #3540, #3575, #3610, #3605, #1176, #3539, #3750, #3761, #3779, #2677,
 
614
   #3782, #3904, #3919, #3418, #3990, #1404, #4050
 
615
 
 
616
 
 
617
Twisted Words 9.0.0 (2009-11-24)
 
618
================================
 
619
 
 
620
Features
 
621
--------
 
622
 - IRCClient.describe is a new method meant to replace IRCClient.me to send
 
623
   CTCP ACTION messages with less confusing behavior (#3910)
 
624
 - The XMPP client protocol implementation now supports ANONYMOUS SASL
 
625
   authentication (#4067)
 
626
 - The IRC client protocol implementation now has better support for the
 
627
   ISUPPORT server->client message, storing the data in a new
 
628
   ServerSupportedFeatures object accessible via IRCClient.supported (#3285)
 
629
 
 
630
Fixes
 
631
-----
 
632
 - The twisted.words IRC server now always sends an MOTD, which at least makes
 
633
   Pidgin able to successfully connect to a twisted.words IRC server (#2385)
 
634
 - The IRC client will now dispatch "RPL MOTD" messages received before a
 
635
   "RPL MOTD START" instead of raising an exception (#3676)
 
636
 - The IRC client protocol implementation no longer updates its 'nickname'
 
637
   attribute directly; instead, that attribute will be updated when the server
 
638
   acknowledges the change (#3377)
 
639
 - The IRC client protocol implementation now supports falling back to another
 
640
   nickname when a nick change request fails (#3377, #4010)
 
641
 
 
642
Deprecations and Removals
 
643
-------------------------
 
644
 - The TOC protocol implementation is now deprecated, since the protocol itself
 
645
   has been deprecated and obselete for quite a long time (#3580)
 
646
 - The gui "im" application has been removed, since it relied on GTK1, which is
 
647
   hard to find these days (#3699, #3340)
 
648
 
 
649
Other
 
650
-----
 
651
 - #2763, #3540, #3647, #3750, #3895, #3968, #4050
 
652
 
 
653
 
 
654
Core 8.2.0 (2008-12-16)
 
655
=======================
 
656
 
 
657
Features
 
658
--------
 
659
 - Reactors are slowly but surely becoming more isolated, thus improving
 
660
   testability (#3198)
 
661
 - FilePath has gained a realpath method, and FilePath.walk no longer infinitely
 
662
   recurses in the case of a symlink causing a self-recursing filesystem tree
 
663
   (#3098)
 
664
 - FilePath's moveTo and copyTo methods now have an option to disable following
 
665
   of symlinks (#3105)
 
666
 - Private APIs are now included in the API documentation (#3268)
 
667
 - hotshot is now the default profiler for the twistd --profile parameter and
 
668
   using cProfile is now documented (#3355, #3356)
 
669
 - Process protocols can now implement a processExited method, which is
 
670
   distinct from processEnded in that it is called immediately when the child
 
671
   has died, instead of waiting for all the file descriptors to be closed
 
672
   (#1291)
 
673
 - twistd now has a --umask option (#966, #3024)
 
674
 - A new deferToThreadPool function exists in twisted.internet.threads (#2845)
 
675
 - There is now an example of writing an FTP server in examples/ftpserver.py
 
676
   (#1579)
 
677
 - A new runAsEffectiveUser function has been added to twisted.python.util
 
678
   (#2607)
 
679
 - twisted.internet.utils.getProcessOutput now offers a mechanism for
 
680
   waiting for the process to actually end, in the event of data received on
 
681
   stderr (#3239)
 
682
 - A fullyQualifiedName function has been added to twisted.python.reflect
 
683
   (#3254)
 
684
 - strports now defaults to managing access to a UNIX socket with a lock;
 
685
   lockfile=0 can be included in the strports specifier to disable this
 
686
   behavior (#2295)
 
687
 - FTPClient now has a 'rename' method (#3335)
 
688
 - FTPClient now has a 'makeDirectory' method (#3500)
 
689
 - FTPClient now has a 'removeFile' method (#3491)
 
690
 - flushWarnings, A new Trial method for testing warnings, has been added
 
691
   (#3487, #3427, #3506)
 
692
 - The log observer can now be configured in .tac files (#3534)
 
693
 
 
694
Fixes
 
695
-----
 
696
 - TLS Session Tickets are now disabled by default, allowing connections to
 
697
   certain servers which hang when an empty session ticket is received (like
 
698
   GTalk) (#3463)
 
699
 - twisted.enterprise.adbapi.ConnectionPool's noisy attribute now defaults to
 
700
   False, as documented (#1806)
 
701
 - Error handling and logging in adbapi is now much improved (#3244)
 
702
 - TCP listeners can now be restarted (#2913)
 
703
 - Doctests can now be rerun with trial's --until-failure option (#2713)
 
704
 - Some memory leaks have been fixed in trial's --until-failure
 
705
   implementation (#3119, #3269)
 
706
 - Trial's summary reporter now prints correct runtime information and handles
 
707
   the case of 0 tests (#3184)
 
708
 - Trial and any other user of the 'namedAny' function now has better error
 
709
   reporting in the case of invalid module names (#3259)
 
710
 - Multiple instances of trial can now run in parallel in the same directory
 
711
   by creating _trial_temp directories with an incremental suffix (#2338)
 
712
 - Trial's failUnlessWarns method now works on Python 2.6 (#3223)
 
713
 - twisted.python.log now hooks into the warnings system in a way compatible
 
714
   with Python 2.6 (#3211)
 
715
 - The GTK2 reactor is now better supported on Windows, but still not passing
 
716
   the entire test suite (#3203)
 
717
 - low-level failure handling in spawnProcess has been improved and no longer
 
718
   leaks file descriptors (#2305, #1410)
 
719
 - Perspective Broker avatars now have their logout functions called in more
 
720
   cases (#392)
 
721
 - Log observers which raise exceptions are no longer removed (#1069)
 
722
 - transport.getPeer now always includes an IP address in the Address returned
 
723
   instead of a hostname (#3059)
 
724
 - Functions in twisted.internet.utils which spawn processes now avoid calling
 
725
   chdir in the case where no working directory is passed, to avoid some
 
726
   obscure permission errors (#3159)
 
727
 - twisted.spread.publish.Publishable no longer corrupts line endings on
 
728
   Windows (#2327)
 
729
 - SelectReactor now properly detects when a TLS/TCP connection has been
 
730
   disconnected (#3218)
 
731
 - twisted.python.lockfile no longer raises an EEXIST OSError and is much
 
732
   better supported on Windows (#3367)
 
733
 - When ITLSTransport.startTLS is called while there is data in the write
 
734
   buffer, TLS negotiation will now be delayed instead of the method raising
 
735
   an exception (#686)
 
736
 - The userAnonymous argument to FTPFactory is now honored (#3390)
 
737
 - twisted.python.modules no longer tries to "fix" sys.modules after an import
 
738
   error, which was just causing problems (#3388)
 
739
 - setup.py no longer attempts to build extension modules when run with Jython
 
740
   (#3410)
 
741
 - AMP boxes can now be sent in IBoxReceiver.startReceivingBoxes (#3477)
 
742
 - AMP connections are closed as soon as a key length larger than 255 is
 
743
   received (#3478)
 
744
 - Log events with timezone offsets between -1 and -59 minutes are now
 
745
   correctly reported as negative (#3515)
 
746
 
 
747
Deprecations and Removals
 
748
-------------------------
 
749
 - Trial's setUpClass and tearDownClass methods are now deprecated (#2903)
 
750
 - problemsFromTransport has been removed in favor of the argument passed to
 
751
   connectionLost (#2874)
 
752
 - The mode parameter to methods of IReactorUNIX and IReactorUNIXDatagram are
 
753
   deprecated in favor of applications taking other security precautions, since
 
754
   the mode of a Unix socket is often not respected (#1068)
 
755
 - Index access on instances of twisted.internet.defer.FirstError has been
 
756
   removed in favor of the subFailure attribute (#3298)
 
757
 - The 'changeDirectory' method of FTPClient has been deprecated in favor of
 
758
   the 'cwd' method (#3491)
 
759
 
 
760
Other
 
761
-----
 
762
 
 
763
 - #3202, #2869, #3225, #2955, #3237, #3196, #2355, #2881, #3054, #2374, #2918,
 
764
   #3210, #3052, #3267, #3288, #2985, #3295, #3297, #2512, #3302, #1222, #2631,
 
765
   #3306, #3116, #3215, #1489, #3319, #3320, #3321, #1255, #2169, #3182, #3323,
 
766
   #3301, #3318, #3029, #3338, #3346, #1144, #3173, #3165, #685, #3357, #2582,
 
767
   #3370, #2438, #1253, #637, #1971, #2208, #979, #1790, #1888, #1882, #1793,
 
768
   #754, #1890, #1931, #1246, #1025, #3177, #2496, #2567, #3400, #2213, #2027,
 
769
   #3415, #1262, #3422, #2500, #3414, #3045, #3111, #2974, #2947, #3222, #2878,
 
770
   #3402, #2909, #3423, #1328, #1852, #3382, #3393, #2029, #3489, #1853, #2026,
 
771
   #2375, #3502, #3482, #3504, #3505, #3507, #2605, #3519, #3520, #3121, #3484,
 
772
   #3439, #3216, #3511, #3524, #3521, #3197, #2486, #2449, #2748, #3381, #3236,
 
773
   #671
 
774
 
 
775
 
 
776
Conch 8.2.0 (2008-12-16)
 
777
========================
 
778
 
 
779
Features
 
780
--------
 
781
 - The type of the protocols instantiated by SSHFactory is now parameterized
 
782
   (#3443)
 
783
 
 
784
Fixes
 
785
-----
 
786
 - A file descriptor leak has been fixed (#3213, #1789)
 
787
 - "File Already Exists" errors are now handled more correctly (#3033)
 
788
 - Handling of CR IAC in TelnetClient is now improved (#3305)
 
789
 - SSHAgent is no longer completely unusable (#3332)
 
790
 - The performance of insults.ClientProtocol is now greatly increased by
 
791
   delivering more than one byte at a time to application code (#3386)
 
792
 - Manhole and the conch server no longer need to be run as root when not
 
793
   necessary (#2607)
 
794
 - The value of FILEXFER_ATTR_ACMODTIME has been corrected (#2902)
 
795
 - The management of known_hosts and host key verification has been overhauled
 
796
   (#1376, #1301, #3494, #3496, #1292, #3499)
 
797
 
 
798
Other
 
799
-----
 
800
 - #3193, #1633
 
801
 
 
802
 
 
803
Lore 8.2.0 (2008-12-16)
 
804
=======================
 
805
 
 
806
Other
 
807
-----
 
808
 - #2207, #2514
 
809
 
 
810
 
 
811
Mail 8.2.0 (2008-12-16)
 
812
=======================
 
813
 
 
814
Fixes
 
815
-----
 
816
 - The mailmail tool now provides better error messages for usage errors (#3339)
 
817
 - The SMTP protocol implementation now works on PyPy (#2976)
 
818
 
 
819
Other
 
820
-----
 
821
 - #3475
 
822
 
 
823
 
 
824
Names 8.2.0 (2008-12-16)
 
825
========================
 
826
 
 
827
Features
 
828
--------
 
829
 - The NAPTR record type is now supported (#2276)
 
830
 
 
831
Fixes
 
832
-----
 
833
 - Make client.Resolver less vulnerable to the Birthday Paradox attack by
 
834
   avoiding sending duplicate queries when it's not necessary (#3347)
 
835
 - client.Resolver now uses a random source port for each DNS request (#3342)
 
836
 - client.Resolver now uses a full 16 bits of randomness for message IDs,
 
837
   instead of 10 which it previously used (#3342)
 
838
 - All record types now have value-based equality and a string representation
 
839
   (#2935)
 
840
 
 
841
Other
 
842
-----
 
843
 - #1622, #3424
 
844
 
 
845
 
 
846
Web 8.2.0 (2008-12-16)
 
847
======================
 
848
 
 
849
Features
 
850
--------
 
851
 - The web server can now deal with multi-value headers in the new attributes of
 
852
   Request, requestHeaders and responseHeaders (#165)
 
853
 - There is now a resource-wrapper which implements HTTP Basic and Digest auth
 
854
   in terms of twisted.cred (#696)
 
855
 - It's now possible to limit the number of redirects that client.getPage will
 
856
   follow (#2412)
 
857
 - The directory-listing code no longer uses Woven (#3257)
 
858
 - static.File now supports Range headers with a single range (#1493)
 
859
 - twisted.web now has a rudimentary WSGI container (#2753)
 
860
 - The web server now supports chunked encoding in requests (#3385)
 
861
 
 
862
Fixes
 
863
-----
 
864
 - The xmlrpc client now raises an error when the server sends an empty
 
865
   response (#3399)
 
866
 - HTTPPageGetter no longer duplicates default headers when they're explicitly
 
867
   overridden in the headers parameter (#1382)
 
868
 - The server will no longer timeout clients which are still sending request
 
869
   data (#1903)
 
870
 - microdom's isEqualToNode now returns False when the nodes aren't equal
 
871
   (#2542)
 
872
 
 
873
Deprecations and Removals
 
874
-------------------------
 
875
 
 
876
 - Request.headers and Request.received_headers are not quite deprecated, but
 
877
   they are discouraged in favor of requestHeaders and responseHeaders (#165)
 
878
 
 
879
Other
 
880
-----
 
881
 - #909, #687, #2938, #1152, #2930, #2025, #2683, #3471
 
882
 
 
883
 
 
884
Web2 8.2.0 (2008-12-16)
 
885
=======================
 
886
 
 
887
Note: Twisted Web2 is being phased out in preference for Twisted Web, but some
 
888
maintenance changes have been made.
 
889
 
 
890
Fixes
 
891
-----
 
892
 - The main twisted.web2 docstring now indicates the current state of the
 
893
   project (#2028)
 
894
 - Headers which require unusual bytes are now quoted (#2346)
 
895
 - Some links in the introduction documentation have been fixed (#2552)
 
896
 
 
897
 
 
898
Words 8.2.0 (2008-12-16)
 
899
========================
 
900
 
 
901
Feature
 
902
-------
 
903
 - There is now a standalone XMPP router included in twisted.words: it can be
 
904
   used with the 'twistd xmpp-router' command line (#3407)
 
905
 - A server factory for Jabber XML Streams has been added (#3435)
 
906
 - Domish now allows for iterating child elements with specific qualified names
 
907
   (#2429)
 
908
 - IRCClient now has a 'back' method which removes the away status (#3366)
 
909
 - IRCClient now has a 'whois' method (#3133)
 
910
 
 
911
Fixes
 
912
-----
 
913
 - The IRC Client implementation can now deal with compound mode changes (#3230)
 
914
 - The MSN protocol implementation no longer requires the CVR0 protocol to
 
915
   be included in the VER command (#3394)
 
916
 - In the IRC server implementation, topic messages will no longer be sent for
 
917
   a group which has no topic (#2204)
 
918
 - An infinite loop (which caused infinite memory usage) in irc.split has been
 
919
   fixed.  This was triggered any time a message that starts with a delimiter
 
920
   was sent (#3446)
 
921
 - Jabber's toResponse now generates a valid stanza even when stanzaType is not
 
922
   specified (#3467)
 
923
 - The lifetime of authenticator instances in XmlStreamServerFactory is no
 
924
   longer artificially extended (#3464)
 
925
 
 
926
Other
 
927
-----
 
928
 - #3365
 
929
 
 
930
 
 
931
Core 8.1.0 (2008-05-18)
 
932
=======================
 
933
 
 
934
Features
 
935
--------
 
936
 
 
937
 - twisted.internet.error.ConnectionClosed is a new exception which is the
 
938
   superclass of ConnectionLost and ConnectionDone (#3137)
 
939
 - Trial's CPU and memory performance should be better now (#3034)
 
940
 - twisted.python.filepath.FilePath now has a chmod method (#3124)
 
941
 
 
942
Fixes
 
943
-----
 
944
 
 
945
 - Some reactor re-entrancy regressions were fixed (#3146, #3168)
 
946
 - A regression was fixed whereby constructing a Failure for an exception and
 
947
   traceback raised out of a Pyrex extension would fail (#3132)
 
948
 - CopyableFailures in PB can again be created from CopiedFailures (#3174)
 
949
 - FilePath.remove, when called on a FilePath representing a symlink to a
 
950
   directory, no longer removes the contents of the targeted directory, and
 
951
   instead removes the symlink (#3097)
 
952
 - FilePath now has a linkTo method for creating new symlinks (#3122)
 
953
 - The docstring for Trial's addCleanup method now correctly specifies when
 
954
   cleanup functions are run (#3131)
 
955
 - assertWarns now deals better with multiple identical warnings (#2904)
 
956
 - Various windows installer bugs were fixed (#3115, #3144, #3150, #3151, #3164)
 
957
 - API links in the howto documentation have been corrected (#3130)
 
958
 - The Win32 Process transport object now has a pid attribute (#1836)
 
959
 - A doc bug in the twistd plugin howto which would inevitably lead to
 
960
   confusion was fixed (#3183)
 
961
 - A regression breaking IOCP introduced after the last release was fixed
 
962
   (#3200)
 
963
 
 
964
Deprecations and Removals
 
965
-------------------------
 
966
 
 
967
 - mktap is now fully deprecated, and will emit DeprecationWarnings when used
 
968
   (#3127)
 
969
 
 
970
Other
 
971
-----
 
972
 - #3079, #3118, #3120, #3145, #3069, #3149, #3186, #3208, #2762
 
973
 
 
974
 
 
975
Conch 8.1.0 (2008-05-18)
 
976
========================
 
977
 
 
978
Fixes
 
979
-----
 
980
 - A regression was fixed whereby the publicKeys and privateKeys attributes of
 
981
   SSHFactory would not be interpreted as strings (#3141)
 
982
 - The sshsimpleserver.py example had a minor bug fix (#3135)
 
983
 - The deprecated mktap API is no longer used (#3127)
 
984
 - An infelicity was fixed whereby a NameError would be raised in certain
 
985
   circumstances during authentication when a ConchError should have been
 
986
   (#3154)
 
987
 - A workaround was added to conch.insults for a bug in gnome-terminal whereby
 
988
   it would not scroll correctly (#3189)
 
989
 
 
990
 
 
991
Lore 8.1.0 (2008-05-18)
 
992
=======================
 
993
 
 
994
Fixes
 
995
-----
 
996
 - The deprecated mktap API is no longer used (#3127)
 
997
 
 
998
 
 
999
News 8.1.0 (2008-05-18)
 
1000
=======================
 
1001
 
 
1002
Fixes
 
1003
-----
 
1004
 - The deprecated mktap API is no longer used (#3127)
 
1005
 
 
1006
 
 
1007
Web 8.1.0 (2008-05-18)
 
1008
======================
 
1009
 
 
1010
Fixes
 
1011
-----
 
1012
 - Fixed an XMLRPC bug whereby sometimes a callRemote Deferred would
 
1013
   accidentally be fired twice when a connection was lost during the handling of
 
1014
   a response (#3152)
 
1015
 - Fixed a bug in the "Using Twisted Web" document which prevented an example
 
1016
   resource from being renderable (#3147)
 
1017
 - The deprecated mktap API is no longer used (#3127)
 
1018
 
 
1019
 
 
1020
Words 8.1.0 (2008-05-18)
 
1021
========================
 
1022
 
 
1023
Features
 
1024
--------
 
1025
 - JID objects now have a nice __repr__ (#3156)
 
1026
 - Extending XMPP protocols is now easier (#2178)
 
1027
 
 
1028
Fixes
 
1029
-----
 
1030
 - The deprecated mktap API is no longer used (#3127)
 
1031
 - A bug whereby one-time XMPP observers would be enabled permanently was fixed
 
1032
   (#3066)
 
1033
 
 
1034
 
 
1035
Mail 8.1.0 (2008-05-18)
 
1036
=======================
 
1037
 
 
1038
Fixes
 
1039
-----
 
1040
 - The deprecated mktap API is no longer used (#3127)
 
1041
 
 
1042
 
 
1043
Names 8.1.0 (2008-05-18)
 
1044
========================
 
1045
 
 
1046
Fixes
 
1047
-----
 
1048
 - The deprecated mktap API is no longer used (#3127)
 
1049
 
 
1050
 
 
1051
Web2 8.1.0 (2008-05-18)
 
1052
=======================
 
1053
 
 
1054
Fixes
 
1055
-----
 
1056
 - The deprecated mktap API is no longer used (#3127)
 
1057
 
 
1058
 
 
1059
Core 8.0.1 (2008-03-26)
 
1060
=======================
 
1061
 
 
1062
Fixes
 
1063
-----
 
1064
 - README no longer refers to obsolete trial command line option
 
1065
 - twistd no longer causes a bizarre DeprecationWarning about mktap
 
1066
 
 
1067
 
 
1068
Core 8.0.0 (2008-03-17)
 
1069
=======================
 
1070
 
 
1071
Features
 
1072
--------
 
1073
 
 
1074
 - The IOCP reactor has had many changes and is now greatly improved
 
1075
   (#1760, #3055)
 
1076
 - The main Twisted distribution is now easy_installable (#1286, #3110)
 
1077
 - twistd can now profile with cProfile (#2469)
 
1078
 - twisted.internet.defer contains a DeferredFilesystemLock which gives a
 
1079
   Deferred interface to lock file acquisition (#2180)
 
1080
 - twisted.python.modules is a new system for representing and manipulating
 
1081
   module paths (i.e. sys.path) (#1951)
 
1082
 - twisted.internet.fdesc now contains a writeToFD function, along with other
 
1083
   minor fixes (#2419)
 
1084
 - twisted.python.usage now allows optional type enforcement (#739)
 
1085
 - The reactor now has a blockingCallFromThread method for non-reactor threads
 
1086
   to use to wait for a reactor-scheduled call to return a result (#1042, #3030)
 
1087
 - Exceptions raised inside of inlineCallbacks-using functions now have a
 
1088
   better chance of coming with a meaningful traceback (#2639, #2803)
 
1089
 - twisted.python.randbytes now contains code for generating secure random
 
1090
   bytes (#2685)
 
1091
 - The classes in twisted.application.internet now accept a reactor parameter
 
1092
   for specifying the reactor to use for underlying calls to allow for better
 
1093
   testability (#2937)
 
1094
 - LoopingCall now allows you to specify the reactor to use to schedule new
 
1095
   calls, allowing much better testing techniques (#2633, #2634)
 
1096
 - twisted.internet.task.deferLater is a new API for scheduling calls and
 
1097
   getting deferreds which are fired with their results (#1875)
 
1098
 - objgrep now knows how to search through deque objects (#2323)
 
1099
 - twisted.python.log now contains a Twisted log observer which can forward
 
1100
   messages to the Python logging system (#1351)
 
1101
 - Log files now include seconds in the timestamps (#867)
 
1102
 - It is now possible to limit the number of log files to create during log
 
1103
   rotation (#1095)
 
1104
 - The interface required by the log context system is now documented as
 
1105
   ILoggingContext, and abstract.FileDescriptor now declares that it implements
 
1106
   it (#1272)
 
1107
 - There is now an example cred checker that uses a database via adbapi (#460)
 
1108
 - The epoll reactor is now documented in the choosing-reactors howto (#2539)
 
1109
 - There were improvements to the client howto (#222)
 
1110
 - Int8Receiver was added (#2315)
 
1111
 - Various refactorings to AMP introduced better testability and public
 
1112
   interfaces (#2657, #2667, #2656, #2664, #2810)
 
1113
 - twisted.protocol.policies.TrafficLoggingFactory now has a resetCounter
 
1114
   method (#2757)
 
1115
 - The FTP client can be told which port range within which to bind passive
 
1116
   transfer ports (#1904)
 
1117
 - twisted.protocols.memcache contains a new asynchronous memcache client
 
1118
   (#2506, #2957)
 
1119
 - PB now supports anonymous login (#439, #2312)
 
1120
 - twisted.spread.jelly now supports decimal objects (#2920)
 
1121
 - twisted.spread.jelly now supports all forms of sets (#2958)
 
1122
 - There is now an interface describing the API that process protocols must
 
1123
   provide (#3020)
 
1124
 - Trial reporting to core unittest TestResult objects has been improved (#2495)
 
1125
 - Trial's TestCase now has an addCleanup method which allows easy setup of
 
1126
   tear-down code (#2610, #2899)
 
1127
 - Trial's TestCase now has an assertIsInstance method (#2749)
 
1128
 - Trial's memory footprint and speed are greatly improved (#2275)
 
1129
 - At the end of trial runs, "PASSED" and "FAILED" messages are now colorized
 
1130
   (#2856)
 
1131
 - Tests which leave global state around in the reactor will now fail in
 
1132
   trial. A new option, --unclean-warnings, will convert these errors back into
 
1133
   warnings (#2091)
 
1134
 - Trial now has a --without-module command line for testing code in an
 
1135
   environment that lacks a particular Python module (#1795)
 
1136
 - Error reporting of failed assertEquals assertions now has much nicer
 
1137
   formatting (#2893)
 
1138
 - Trial now has methods for monkey-patching (#2598)
 
1139
 - Trial now has an ITestCase (#2898, #1950)
 
1140
 - The trial reporter API now has a 'done' method which is called at the end of
 
1141
   a test run (#2883)
 
1142
 - TestCase now has an assertWarns method which allows testing that functions
 
1143
   emit warnings (#2626, #2703)
 
1144
 - There are now no string exceptions in the entire Twisted code base (#2063)
 
1145
 - There is now a system for specifying credentials checkers with a string
 
1146
   (#2570)
 
1147
 
 
1148
Fixes
 
1149
-----
 
1150
 
 
1151
 - Some tests which were asserting the value of stderr have been changed
 
1152
   because Python uncontrollably writes bytes to stderr (#2405)
 
1153
 - Log files handle time zones with DST better (#2404)
 
1154
 - Subprocesses using PTYs on OS X that are handled by Twisted will now be able
 
1155
   to more reliably write the final bytes before they exit, allowing Twisted
 
1156
   code to more reliably receive them (#2371, #2858)
 
1157
 - Trial unit test reporting has been improved (#1901)
 
1158
 - The kqueue reactor handles connection failures better (#2172)
 
1159
 - It's now possible to run "trial foo/bar/" without an exception: trailing
 
1160
   slashes no longer cause problems (#2005)
 
1161
 - cred portals now better deal with implementations of inherited interfaces
 
1162
   (#2523)
 
1163
 - FTP error handling has been improved (#1160, 1107)
 
1164
 - Trial behaves better with respect to file locking on Windows (#2482)
 
1165
 - The FTP server now gives a better error when STOR is attempted during an
 
1166
   anonymous session (#1575)
 
1167
 - Trial now behaves better with tests that use the reactor's threadpool (#1832)
 
1168
 - twisted.python.reload now behaves better with new-style objects (#2297)
 
1169
 - LogFile's defaultMode parameter is now better implemented, preventing
 
1170
   potential security exploits (#2586)
 
1171
 - A minor obscure leak in thread pools was corrected (#1134)
 
1172
 - twisted.internet.task.Clock now returns the correct DelayedCall from
 
1173
   callLater, instead of returning the one scheduled for the furthest in the
 
1174
   future (#2691)
 
1175
 - twisted.spread.util.FilePager no longer unnecessarily buffers data in
 
1176
   memory (#1843, 2321)
 
1177
 - Asking for twistd or trial to use an unavailable reactor no longer prints a
 
1178
   traceback (#2457)
 
1179
 - System event triggers have fewer obscure bugs (#2509)
 
1180
 - Plugin discovery code is much better behaved, allowing multiple
 
1181
   installations of a package with plugins (#2339, #2769)
 
1182
 - Process and PTYProcess have been merged and some minor bugs have been fixed
 
1183
   (#2341)
 
1184
 - The reactor has less global state (#2545)
 
1185
 - Failure can now correctly represent and format errors caused by string
 
1186
   exceptions (#2830)
 
1187
 - The epoll reactor now has better error handling which now avoids the bug
 
1188
   causing 100% CPU usage in some cases (#2809)
 
1189
 - Errors raised during trial setUp or tearDown methods are now handled better
 
1190
   (#2837)
 
1191
 - A problem when deferred callbacks add new callbacks to the deferred that
 
1192
   they are a callback of was fixed (#2849)
 
1193
 - Log messages that are emitted during connectionMade now have the protocol
 
1194
   prefix correctly set (#2813)
 
1195
 - The string representation of a TCP Server connection now contains the actual
 
1196
   port that it's bound to when it was configured to listen on port 0 (#2826)
 
1197
 - There is better reporting of error codes for TCP failures on Windows (#2425)
 
1198
 - Process spawning has been made slightly more robust by disabling garbage
 
1199
   collection temporarily immediately after forking so that finalizers cannot
 
1200
   be executed in an unexpected environment (#2483)
 
1201
 - namedAny now detects import errors better (#698)
 
1202
 - Many fixes and improvements to the twisted.python.zipstream module have
 
1203
   been made (#2996)
 
1204
 - FilePager no longer blows up on empty files (#3023)
 
1205
 - twisted.python.util.FancyEqMixin has been improved to cooperate with objects
 
1206
   of other types (#2944)
 
1207
 - twisted.python.FilePath.exists now restats to prevent incorrect result
 
1208
   (#2896)
 
1209
 - twisted.python.util.mergeFunctionMetadata now also merges the __module__
 
1210
   attribute (#3049)
 
1211
 - It is now possible to call transport.pauseProducing within connectionMade on
 
1212
   TCP transports without it being ignored (#1780)
 
1213
 - twisted.python.versions now understands new SVN metadata format for fetching
 
1214
   the SVN revision number (#3058)
 
1215
 - It's now possible to use reactor.callWhenRunning(reactor.stop) on gtk2 and
 
1216
   glib2 reactors (#3011)
 
1217
 
 
1218
Deprecations and removals
 
1219
-------------------------
 
1220
 - twisted.python.timeoutqueue is now deprecated (#2536)
 
1221
 - twisted.enterprise.row and twisted.enterprise.reflector are now deprecated
 
1222
   (#2387)
 
1223
 - twisted.enterprise.util is now deprecated (#3022)
 
1224
 - The dispatch and dispatchWithCallback methods of ThreadPool are now
 
1225
   deprecated (#2684)
 
1226
 - Starting the same reactor multiple times is now deprecated (#1785)
 
1227
 - The visit method of various test classes in trial has been deprecated (#2897)
 
1228
 - The --report-profile option to twistd and twisted.python.dxprofile are
 
1229
   deprecated (#2908)
 
1230
 - The upDownError method of Trial reporters is deprecated (#2883)
 
1231
 
 
1232
Other
 
1233
-----
 
1234
 
 
1235
 - #2396, #2211, #1921, #2378, #2247, #1603, #2463, #2530, #2426, #2356, #2574,
 
1236
 - #1844, #2575, #2655, #2640, #2670, #2688, #2543, #2743, #2744, #2745, #2746,
 
1237
 - #2742, #2741, #1730, #2831, #2216, #1192, #2848, #2767, #1220, #2727, #2643,
 
1238
 - #2669, #2866, #2867, #1879, #2766, #2855, #2547, #2857, #2862, #1264, #2735,
 
1239
 - #942, #2885, #2739, #2901, #2928, #2954, #2906, #2925, #2942, #2894, #2793,
 
1240
 - #2761, #2977, #2968, #2895, #3000, #2990, #2919, #2969, #2921, #3005, #421,
 
1241
 - #3031, #2940, #1181, #2783, #1049, #3053, #2847, #2941, #2876, #2886, #3086,
 
1242
 - #3095, #3109
 
1243
 
 
1244
 
 
1245
Conch 8.0.0 (2008-03-17)
 
1246
========================
 
1247
 
 
1248
Features
 
1249
--------
 
1250
 - Add DEC private mode manipulation methods to ITerminalTransport. (#2403)
 
1251
 
 
1252
Fixes
 
1253
-----
 
1254
 - Parameterize the scheduler function used by the insults TopWindow widget.
 
1255
   This change breaks backwards compatibility in the TopWindow initializer.
 
1256
   (#2413)
 
1257
 - Notify subsystems, like SFTP, of connection close. (#2421)
 
1258
 - Change the process file descriptor "connection lost" code to reverse the
 
1259
   setNonBlocking operation done during initialization. (#2371)
 
1260
 - Change ConsoleManhole to wait for connectionLost notification before
 
1261
   stopping the reactor. (#2123, #2371)
 
1262
 - Make SSHUserAuthServer.ssh_USERAUTH_REQUEST return a Deferred. (#2528)
 
1263
 - Manhole's initializer calls its parent class's initializer with its
 
1264
   namespace argument. (#2587)
 
1265
 - Handle ^C during input line continuation in manhole by updating the prompt
 
1266
   and line buffer correctly. (#2663)
 
1267
 - Make twisted.conch.telnet.Telnet by default reject all attempts to enable
 
1268
   options. (#1967)
 
1269
 - Reduce the number of calls into application code to deliver application-level
 
1270
   data in twisted.conch.telnet.Telnet.dataReceived (#2107)
 
1271
 - Fix definition and management of extended attributes in conch file transfer.
 
1272
   (#3010)
 
1273
 - Fix parsing of OpenSSH-generated RSA keys with differing ASN.1 packing style.
 
1274
   (#3008)
 
1275
 - Fix handling of missing $HOME in twisted.conch.client.unix. (#3061)
 
1276
 
 
1277
Misc
 
1278
----
 
1279
 - #2267, #2378, #2604, #2707, #2341, #2685, #2679, #2912, #2977, #2678, #2709
 
1280
   #2063, #2847
 
1281
 
 
1282
 
 
1283
Lore 8.0.0 (2008-03-17)
 
1284
=======================
 
1285
 
 
1286
Fixes
 
1287
-----
 
1288
 - Change twisted.lore.tree.setIndexLin so that it removes node with index-link
 
1289
   class when the specified index filename is None. (#812)
 
1290
 - Fix the conversion of the list of options in man pages to Lore format.
 
1291
   (#3017)
 
1292
 - Fix conch man pages generation. (#3075)
 
1293
 - Fix management of the interactive command tag in man2lore. (#3076)
 
1294
 
 
1295
Misc
 
1296
----
 
1297
 - #2847
 
1298
 
 
1299
 
 
1300
News 8.0.0 (2008-03-17)
 
1301
=======================
 
1302
 
 
1303
Misc
 
1304
----
 
1305
 - Remove all "API Stability" markers (#2847)
 
1306
 
 
1307
 
 
1308
Runner 8.0.0 (2008-03-17)
 
1309
=========================
 
1310
 
 
1311
Misc
 
1312
----
 
1313
 - Remove all "API Stability" markers (#2847)
 
1314
 
 
1315
 
 
1316
Web 8.0.0 (2008-03-17)
 
1317
======================
 
1318
 
 
1319
Features
 
1320
--------
 
1321
 - Add support to twisted.web.client.getPage for the HTTP HEAD method. (#2750)
 
1322
 
 
1323
Fixes
 
1324
-----
 
1325
 - Set content-type in xmlrpc responses to "text/xml" (#2430)
 
1326
 - Add more error checking in the xmlrpc.XMLRPC render method, and enforce
 
1327
   POST requests. (#2505)
 
1328
 - Reject unicode input to twisted.web.client._parse to reject invalid
 
1329
   unicode URLs early. (#2628)
 
1330
 - Correctly re-quote URL path segments when generating an URL string to
 
1331
   return from Request.prePathURL. (#2934)
 
1332
 - Make twisted.web.proxy.ProxyClientFactory close the connection when
 
1333
   reporting a 501 error. (#1089)
 
1334
 - Fix twisted.web.proxy.ReverseProxyResource to specify the port in the
 
1335
   host header if different from 80. (#1117)
 
1336
 - Change twisted.web.proxy.ReverseProxyResource so that it correctly encodes
 
1337
   the request URI it sends on to the server for which it is a proxy. (#3013)
 
1338
 - Make "twistd web --personal" use PBServerFactory (#2681)
 
1339
 
 
1340
Misc
 
1341
----
 
1342
 - #1996, #2382, #2211, #2633, #2634, #2640, #2752, #238, #2905
 
1343
 
 
1344
 
 
1345
Words 8.0.0 (2008-03-17)
 
1346
========================
 
1347
 
 
1348
Features
 
1349
--------
 
1350
 - Provide function for creating XMPP response stanzas. (#2614, #2614)
 
1351
 - Log exceptions raised in Xish observers. (#2616)
 
1352
 - Add 'and' and 'or' operators for Xish XPath expressions. (#2502)
 
1353
 - Make JIDs hashable. (#2770)
 
1354
 
 
1355
Fixes
 
1356
-----
 
1357
 - Respect the hostname and servername parameters to IRCClient.register. (#1649)
 
1358
 - Make EventDispatcher remove empty callback lists. (#1652)
 
1359
 - Use legacy base64 API to support Python 2.3 (#2461)
 
1360
 - Fix support of DIGEST-MD5 challenge parsing with multi-valued directives.
 
1361
   (#2606)
 
1362
 - Fix reuse of dict of prefixes in domish.Element.toXml (#2609)
 
1363
 - Properly process XMPP stream headers (#2615)
 
1364
 - Use proper namespace for XMPP stream errors. (#2630)
 
1365
 - Properly parse XMPP stream errors. (#2771)
 
1366
 - Fix toResponse for XMPP stanzas without an id attribute. (#2773)
 
1367
 - Move XMPP stream header procesing to authenticators. (#2772)
 
1368
 
 
1369
Misc
 
1370
----
 
1371
 - #2617, #2640, #2741, #2063, #2570, #2847
 
1372
 
 
1373
 
 
1374
Mail 8.0.0 (2008-03-17)
 
1375
=======================
 
1376
 
 
1377
Features
 
1378
--------
 
1379
 - Support CAPABILITY responses that include atoms of the form "FOO" and
 
1380
   "FOO=BAR" in IMAP4 (#2695)
 
1381
 - Parameterize error handling behavior of imap4.encoder and imap4.decoder.
 
1382
   (#2929)
 
1383
 
 
1384
Fixes
 
1385
-----
 
1386
 - Handle empty passwords in SMTP auth. (#2521)
 
1387
 - Fix IMAP4Client's parsing of literals which are not preceeded by whitespace.
 
1388
   (#2700)
 
1389
 - Handle MX lookup suceeding without answers. (#2807)
 
1390
 - Fix issues with aliases(5) process support. (#2729)
 
1391
 
 
1392
Misc
 
1393
----
 
1394
 - #2371, #2123, #2378, #739, #2640, #2746, #1917, #2266, #2864, #2832, #2063,
 
1395
   #2865, #2847
 
1396
 
 
1397
 
 
1398
Names 8.0.0 (2008-03-17)
 
1399
========================
 
1400
 
 
1401
Fixes
 
1402
-----
 
1403
 
 
1404
 - Refactor DNSDatagramProtocol and DNSProtocol to use same base class (#2414)
 
1405
 - Change Resolver to query specified nameservers in specified order, instead
 
1406
   of reverse order. (#2290)
 
1407
 - Make SRVConnector work with bad results and NXDOMAIN responses.
 
1408
   (#1908, #2777)
 
1409
 - Handle write errors happening in dns queries, to have correct deferred
 
1410
   failures. (#2492)
 
1411
 - Fix the value of OP_NOTIFY and add a definition for OP_UPDATE. (#2945)
 
1412
 
 
1413
Misc
 
1414
----
 
1415
 - #2685, #2936, #2581, #2847
 
1416