~justin-fathomdb/nova/justinsb-openstack-api-volumes

« back to all changes in this revision

Viewing changes to vendor/Twisted-10.0.0/twisted/topfiles/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 Core 9.0.0 (2009-11-24)
 
108
===============================
 
109
 
 
110
Features
 
111
--------
 
112
 - LineReceiver.clearLineBuffer now returns the bytes that it cleared (#3573)
 
113
 - twisted.protocols.amp now raises InvalidSignature when bad arguments are
 
114
   passed to Command.makeArguments (#2808)
 
115
 - IArgumentType was added to represent an existing but previously unspecified
 
116
   interface in amp (#3468)
 
117
 - Obscure python tricks have been removed from the finger tutorials (#2110)
 
118
 - The digest auth implementations in twisted.web and twisted.protocolos.sip
 
119
   have been merged together in twisted.cred (#3575)
 
120
 - FilePath and ZipPath now has a parents() method which iterates up all of its
 
121
   parents (#3588)
 
122
 - reactors which support threads now have a getThreadPool method (#3591)
 
123
 - The MemCache client implementation now allows arguments to the "stats"
 
124
   command (#3661)
 
125
 - The MemCache client now has a getMultiple method which allows fetching of
 
126
   multiple values (#3171)
 
127
 - twisted.spread.jelly can now unserialize some new-style classes (#2950)
 
128
 - twisted.protocols.loopback.loopbackAsync now accepts a parameter to control
 
129
   the data passed between client and server (#3820)
 
130
 - The IOCP reactor now supports SSL (#593)
 
131
 - Tasks in a twisted.internet.task.Cooperator can now be paused, resumed, and
 
132
   cancelled (#2712)
 
133
 - AmpList arguments can now be made optional (#3891)
 
134
 - The syslog output observer now supports log levels (#3300)
 
135
 - LoopingCall now supports reporting the number of intervals missed if it
 
136
   isn't able to schedule calls fast enough (#3671)
 
137
 
 
138
Fixes
 
139
-----
 
140
 - The deprecated md5 and sha modules are no longer used if the stdlib hashlib
 
141
   module is available (#2763)
 
142
 - An obscure deadlock involving waking up the reactor within signal handlers
 
143
   in particular threads was fixed (#1997)
 
144
 - The passivePortRange attribute of FTPFactory is now honored (#3593)
 
145
 - TestCase.flushWarnings now flushes warnings even if they were produced by a
 
146
   file that was renamed since it was byte compiled (#3598)
 
147
 - Some internal file descriptors are now marked as close-on-exec, so these will
 
148
   no longer be leaked to child processes (#3576)
 
149
 - twisted.python.zipstream now correctly extracts the first file in a directory
 
150
   as a file, and not an empty directory (#3625)
 
151
 - proxyForInterface now returns classes which correctly *implement* interfaces
 
152
   rather than *providing* them (#3646)
 
153
 - SIP Via header parameters should now be correctly generated (#2194)
 
154
 - The Deferred returned by stopListening would sometimes previously never fire
 
155
   if an exception was raised by the underlying file descriptor's connectionLost
 
156
   method. Now the Deferred will fire with a failure (#3654)
 
157
 - The command-line tool "manhole" should now work with newer versions of pygtk
 
158
   (#2464)
 
159
 - When a DefaultOpenSSLContextFactory is instantiated with invalid parameters,
 
160
   it will now raise an exception immediately instead of waiting for the first
 
161
   connection (#3700)
 
162
 - Twisted command line scripts should now work when installed in a virtualenv
 
163
   (#3750)
 
164
 - Trial will no longer delete temp directories which it did not create (#3481)
 
165
 - Processes started on Windows should now be cleaned up properly in more cases
 
166
   (#3893)
 
167
 - Certain misbehaving importers will no longer cause twisted.python.modules
 
168
   (and thus trial) to raise an exception, but rather issue a warning (#3913)
 
169
 - MemCache client protocol methods will now fail when the transport has been
 
170
   disconnected (#3643)
 
171
 - In the AMP method callRemoteString, the requiresAnswer parameter is now
 
172
   honored (#3999)
 
173
 - Spawning a "script" (a file which starts with a #! line) on Windows running
 
174
   Python 2.6 will now work instead of raising an exception about file mode
 
175
   "ru" (#3567)
 
176
 - FilePath's walk method now calls its "descend" parameter even on the first
 
177
   level of children, instead of only on grandchildren. This allows for better
 
178
   symlink cycle detection (#3911)
 
179
 - Attempting to write unicode data to process pipes on Windows will no longer
 
180
   result in arbitrarily encoded messages being written to the pipe, but instead
 
181
   will immediately raise an error (#3930)
 
182
 - The various twisted command line utilities will no longer print
 
183
   ModuleType.__doc__ when Twisted was installed with setuptools (#4030)
 
184
 - A Failure object will now be passed to connectionLost on stdio connections
 
185
   on Windows, instead of an Exception object (#3922)
 
186
 
 
187
Deprecations and Removals
 
188
-------------------------
 
189
 - twisted.persisted.marmalade was deleted after a long period of deprecation
 
190
   (#876)
 
191
 - Some remaining references to the long-gone plugins.tml system were removed
 
192
   (#3246)
 
193
 - SSLv2 is now disabled by default, but it can be re-enabled explicitly
 
194
   (#3330)
 
195
 - twisted.python.plugin has been removed (#1911)
 
196
 - reactor.run will now raise a ReactorAlreadyRunning exception when it is
 
197
   called reentrantly instead of warning a DeprecationWarning (#1785)
 
198
 - twisted.spread.refpath is now deprecated because it is unmaintained,
 
199
   untested, and has dubious value (#3723)
 
200
 - The unused --quiet flag has been removed from the twistd command (#3003)
 
201
 
 
202
Other
 
203
-----
 
204
 - #3545, #3490, #3544, #3537, #3455, #3315, #2281, #3564, #3570, #3571, #3486,
 
205
   #3241, #3599, #3220, #1522, #3611, #3596, #3606, #3609, #3602, #3637, #3647,
 
206
   #3632, #3675, #3673, #3686, #2217, #3685, #3688, #2456, #506, #3635, #2153,
 
207
   #3581, #3708, #3714, #3717, #3698, #3747, #3704, #3707, #3713, #3720, #3692,
 
208
   #3376, #3652, #3695, #3735, #3786, #3783, #3699, #3340, #3810, #3822, #3817,
 
209
   #3791, #3859, #2459, #3677, #3883, #3894, #3861, #3822, #3852, #3875, #2722,
 
210
   #3768, #3914, #3885, #2719, #3905, #3942, #2820, #3990, #3954, #1627, #2326,
 
211
   #2972, #3253, #3937, #4058, #1200, #3639, #4079, #4063, #4050
 
212
 
 
213
 
 
214
Core 8.2.0 (2008-12-16)
 
215
=======================
 
216
 
 
217
Features
 
218
--------
 
219
 - Reactors are slowly but surely becoming more isolated, thus improving
 
220
   testability (#3198)
 
221
 - FilePath has gained a realpath method, and FilePath.walk no longer infinitely
 
222
   recurses in the case of a symlink causing a self-recursing filesystem tree
 
223
   (#3098)
 
224
 - FilePath's moveTo and copyTo methods now have an option to disable following
 
225
   of symlinks (#3105)
 
226
 - Private APIs are now included in the API documentation (#3268)
 
227
 - hotshot is now the default profiler for the twistd --profile parameter and
 
228
   using cProfile is now documented (#3355, #3356)
 
229
 - Process protocols can now implement a processExited method, which is
 
230
   distinct from processEnded in that it is called immediately when the child
 
231
   has died, instead of waiting for all the file descriptors to be closed
 
232
   (#1291)
 
233
 - twistd now has a --umask option (#966, #3024)
 
234
 - A new deferToThreadPool function exists in twisted.internet.threads (#2845)
 
235
 - There is now an example of writing an FTP server in examples/ftpserver.py
 
236
   (#1579)
 
237
 - A new runAsEffectiveUser function has been added to twisted.python.util
 
238
   (#2607)
 
239
 - twisted.internet.utils.getProcessOutput now offers a mechanism for
 
240
   waiting for the process to actually end, in the event of data received on
 
241
   stderr (#3239)
 
242
 - A fullyQualifiedName function has been added to twisted.python.reflect
 
243
   (#3254)
 
244
 - strports now defaults to managing access to a UNIX socket with a lock;
 
245
   lockfile=0 can be included in the strports specifier to disable this
 
246
   behavior (#2295)
 
247
 - FTPClient now has a 'rename' method (#3335)
 
248
 - FTPClient now has a 'makeDirectory' method (#3500)
 
249
 - FTPClient now has a 'removeFile' method (#3491)
 
250
 - flushWarnings, A new Trial method for testing warnings, has been added
 
251
   (#3487, #3427, #3506)
 
252
 - The log observer can now be configured in .tac files (#3534)
 
253
 
 
254
Fixes
 
255
-----
 
256
 - TLS Session Tickets are now disabled by default, allowing connections to
 
257
   certain servers which hang when an empty session ticket is received (like 
 
258
   GTalk) (#3463)
 
259
 - twisted.enterprise.adbapi.ConnectionPool's noisy attribute now defaults to
 
260
   False, as documented (#1806)
 
261
 - Error handling and logging in adbapi is now much improved (#3244)
 
262
 - TCP listeners can now be restarted (#2913)
 
263
 - Doctests can now be rerun with trial's --until-failure option (#2713)
 
264
 - Some memory leaks have been fixed in trial's --until-failure
 
265
   implementation (#3119, #3269)
 
266
 - Trial's summary reporter now prints correct runtime information and handles
 
267
   the case of 0 tests (#3184)
 
268
 - Trial and any other user of the 'namedAny' function now has better error
 
269
   reporting in the case of invalid module names (#3259)
 
270
 - Multiple instances of trial can now run in parallel in the same directory
 
271
   by creating _trial_temp directories with an incremental suffix (#2338)
 
272
 - Trial's failUnlessWarns method now works on Python 2.6 (#3223)
 
273
 - twisted.python.log now hooks into the warnings system in a way compatible
 
274
   with Python 2.6 (#3211)
 
275
 - The GTK2 reactor is now better supported on Windows, but still not passing
 
276
   the entire test suite (#3203)
 
277
 - low-level failure handling in spawnProcess has been improved and no longer
 
278
   leaks file descriptors (#2305, #1410)
 
279
 - Perspective Broker avatars now have their logout functions called in more
 
280
   cases (#392)
 
281
 - Log observers which raise exceptions are no longer removed (#1069)
 
282
 - transport.getPeer now always includes an IP address in the Address returned
 
283
   instead of a hostname (#3059)
 
284
 - Functions in twisted.internet.utils which spawn processes now avoid calling
 
285
   chdir in the case where no working directory is passed, to avoid some
 
286
   obscure permission errors (#3159)
 
287
 - twisted.spread.publish.Publishable no longer corrupts line endings on
 
288
   Windows (#2327)
 
289
 - SelectReactor now properly detects when a TLS/TCP connection has been
 
290
   disconnected (#3218)
 
291
 - twisted.python.lockfile no longer raises an EEXIST OSError and is much
 
292
   better supported on Windows (#3367)
 
293
 - When ITLSTransport.startTLS is called while there is data in the write
 
294
   buffer, TLS negotiation will now be delayed instead of the method raising
 
295
   an exception (#686)
 
296
 - The userAnonymous argument to FTPFactory is now honored (#3390)
 
297
 - twisted.python.modules no longer tries to "fix" sys.modules after an import
 
298
   error, which was just causing problems (#3388)
 
299
 - setup.py no longer attempts to build extension modules when run with Jython
 
300
   (#3410)
 
301
 - AMP boxes can now be sent in IBoxReceiver.startReceivingBoxes (#3477)
 
302
 - AMP connections are closed as soon as a key length larger than 255 is
 
303
   received (#3478)
 
304
 - Log events with timezone offsets between -1 and -59 minutes are now
 
305
   correctly reported as negative (#3515)
 
306
 
 
307
Deprecations and Removals
 
308
-------------------------
 
309
 - Trial's setUpClass and tearDownClass methods are now deprecated (#2903)
 
310
 - problemsFromTransport has been removed in favor of the argument passed to
 
311
   connectionLost (#2874)
 
312
 - The mode parameter to methods of IReactorUNIX and IReactorUNIXDatagram are
 
313
   deprecated in favor of applications taking other security precautions, since
 
314
   the mode of a Unix socket is often not respected (#1068)
 
315
 - Index access on instances of twisted.internet.defer.FirstError has been
 
316
   removed in favor of the subFailure attribute (#3298)
 
317
 - The 'changeDirectory' method of FTPClient has been deprecated in favor of
 
318
   the 'cwd' method (#3491)
 
319
 
 
320
Other
 
321
-----
 
322
 
 
323
 - #3202, #2869, #3225, #2955, #3237, #3196, #2355, #2881, #3054, #2374, #2918,
 
324
   #3210, #3052, #3267, #3288, #2985, #3295, #3297, #2512, #3302, #1222, #2631,
 
325
   #3306, #3116, #3215, #1489, #3319, #3320, #3321, #1255, #2169, #3182, #3323,
 
326
   #3301, #3318, #3029, #3338, #3346, #1144, #3173, #3165, #685, #3357, #2582,
 
327
   #3370, #2438, #1253, #637, #1971, #2208, #979, #1790, #1888, #1882, #1793,
 
328
   #754, #1890, #1931, #1246, #1025, #3177, #2496, #2567, #3400, #2213, #2027,
 
329
   #3415, #1262, #3422, #2500, #3414, #3045, #3111, #2974, #2947, #3222, #2878,
 
330
   #3402, #2909, #3423, #1328, #1852, #3382, #3393, #2029, #3489, #1853, #2026,
 
331
   #2375, #3502, #3482, #3504, #3505, #3507, #2605, #3519, #3520, #3121, #3484,
 
332
   #3439, #3216, #3511, #3524, #3521, #3197, #2486, #2449, #2748, #3381, #3236,
 
333
   #671
 
334
 
 
335
 
 
336
8.1.0 (2008-05-18)
 
337
==================
 
338
 
 
339
Features
 
340
--------
 
341
 
 
342
 - twisted.internet.error.ConnectionClosed is a new exception which is the
 
343
   superclass of ConnectionLost and ConnectionDone (#3137)
 
344
 - Trial's CPU and memory performance should be better now (#3034)
 
345
 - twisted.python.filepath.FilePath now has a chmod method (#3124)
 
346
 
 
347
Fixes
 
348
-----
 
349
 
 
350
 - Some reactor re-entrancy regressions were fixed (#3146, #3168)
 
351
 - A regression was fixed whereby constructing a Failure for an exception and
 
352
   traceback raised out of a Pyrex extension would fail (#3132)
 
353
 - CopyableFailures in PB can again be created from CopiedFailures (#3174)
 
354
 - FilePath.remove, when called on a FilePath representing a symlink to a
 
355
   directory, no longer removes the contents of the targeted directory, and
 
356
   instead removes the symlink (#3097)
 
357
 - FilePath now has a linkTo method for creating new symlinks (#3122)
 
358
 - The docstring for Trial's addCleanup method now correctly specifies when
 
359
   cleanup functions are run (#3131)
 
360
 - assertWarns now deals better with multiple identical warnings (#2904)
 
361
 - Various windows installer bugs were fixed (#3115, #3144, #3150, #3151, #3164)
 
362
 - API links in the howto documentation have been corrected (#3130)
 
363
 - The Win32 Process transport object now has a pid attribute (#1836)
 
364
 - A doc bug in the twistd plugin howto which would inevitably lead to
 
365
   confusion was fixed (#3183)
 
366
 - A regression breaking IOCP introduced after the last release was fixed
 
367
   (#3200)
 
368
 
 
369
 
 
370
Deprecations and Removals
 
371
-------------------------
 
372
 
 
373
 - mktap is now fully deprecated, and will emit DeprecationWarnings when used
 
374
   (#3127)
 
375
 
 
376
Other
 
377
-----
 
378
 - #3079, #3118, #3120, #3145, #3069, #3149, #3186, #3208, #2762
 
379
 
 
380
 
 
381
8.0.1 (2008-03-26)
 
382
==================
 
383
 
 
384
Fixes
 
385
-----
 
386
 - README no longer refers to obsolete trial command line option
 
387
 - twistd no longer causes a bizarre DeprecationWarning about mktap
 
388
 
 
389
 
 
390
8.0.0 (2008-03-17)
 
391
==================
 
392
 
 
393
Features
 
394
--------
 
395
 
 
396
 - The IOCP reactor has had many changes and is now greatly improved
 
397
   (#1760, #3055)
 
398
 - The main Twisted distribution is now easy_installable (#1286, #3110)
 
399
 - twistd can now profile with cProfile (#2469)
 
400
 - twisted.internet.defer contains a DeferredFilesystemLock which gives a
 
401
   Deferred interface to lock file acquisition (#2180)
 
402
 - twisted.python.modules is a new system for representing and manipulating
 
403
   module paths (i.e. sys.path) (#1951)
 
404
 - twisted.internet.fdesc now contains a writeToFD function, along with other
 
405
   minor fixes (#2419)
 
406
 - twisted.python.usage now allows optional type enforcement (#739)
 
407
 - The reactor now has a blockingCallFromThread method for non-reactor threads
 
408
   to use to wait for a reactor-scheduled call to return a result (#1042, #3030)
 
409
 - Exceptions raised inside of inlineCallbacks-using functions now have a
 
410
   better chance of coming with a meaningful traceback (#2639, #2803)
 
411
 - twisted.python.randbytes now contains code for generating secure random
 
412
   bytes (#2685)
 
413
 - The classes in twisted.application.internet now accept a reactor parameter
 
414
   for specifying the reactor to use for underlying calls to allow for better
 
415
   testability (#2937)
 
416
 - LoopingCall now allows you to specify the reactor to use to schedule new
 
417
   calls, allowing much better testing techniques (#2633, #2634)
 
418
 - twisted.internet.task.deferLater is a new API for scheduling calls and
 
419
   getting deferreds which are fired with their results (#1875)
 
420
 - objgrep now knows how to search through deque objects (#2323)
 
421
 - twisted.python.log now contains a Twisted log observer which can forward
 
422
   messages to the Python logging system (#1351)
 
423
 - Log files now include seconds in the timestamps (#867)
 
424
 - It is now possible to limit the number of log files to create during log
 
425
   rotation (#1095)
 
426
 - The interface required by the log context system is now documented as
 
427
   ILoggingContext, and abstract.FileDescriptor now declares that it implements
 
428
   it (#1272)
 
429
 - There is now an example cred checker that uses a database via adbapi (#460)
 
430
 - The epoll reactor is now documented in the choosing-reactors howto (#2539)
 
431
 - There were improvements to the client howto (#222)
 
432
 - Int8Receiver was added (#2315)
 
433
 - Various refactorings to AMP introduced better testability and public
 
434
   interfaces (#2657, #2667, #2656, #2664, #2810)
 
435
 - twisted.protocol.policies.TrafficLoggingFactory now has a resetCounter
 
436
   method (#2757)
 
437
 - The FTP client can be told which port range within which to bind passive
 
438
   transfer ports (#1904)
 
439
 - twisted.protocols.memcache contains a new asynchronous memcache client
 
440
   (#2506, #2957)
 
441
 - PB now supports anonymous login (#439, #2312)
 
442
 - twisted.spread.jelly now supports decimal objects (#2920)
 
443
 - twisted.spread.jelly now supports all forms of sets (#2958)
 
444
 - There is now an interface describing the API that process protocols must
 
445
   provide (#3020)
 
446
 - Trial reporting to core unittest TestResult objects has been improved (#2495)
 
447
 - Trial's TestCase now has an addCleanup method which allows easy setup of
 
448
   tear-down code (#2610, #2899)
 
449
 - Trial's TestCase now has an assertIsInstance method (#2749)
 
450
 - Trial's memory footprint and speed are greatly improved (#2275)
 
451
 - At the end of trial runs, "PASSED" and "FAILED" messages are now colorized
 
452
   (#2856)
 
453
 - Tests which leave global state around in the reactor will now fail in
 
454
   trial. A new option, --unclean-warnings, will convert these errors back into
 
455
   warnings (#2091)
 
456
 - Trial now has a --without-module command line for testing code in an
 
457
   environment that lacks a particular Python module (#1795)
 
458
 - Error reporting of failed assertEquals assertions now has much nicer
 
459
   formatting (#2893)
 
460
 - Trial now has methods for monkey-patching (#2598)
 
461
 - Trial now has an ITestCase (#2898, #1950)
 
462
 - The trial reporter API now has a 'done' method which is called at the end of
 
463
   a test run (#2883)
 
464
 - TestCase now has an assertWarns method which allows testing that functions
 
465
   emit warnings (#2626, #2703)
 
466
 - There are now no string exceptions in the entire Twisted code base (#2063)
 
467
 - There is now a system for specifying credentials checkers with a string
 
468
   (#2570)
 
469
 
 
470
Fixes
 
471
-----
 
472
 
 
473
 - Some tests which were asserting the value of stderr have been changed
 
474
   because Python uncontrollably writes bytes to stderr (#2405)
 
475
 - Log files handle time zones with DST better (#2404)
 
476
 - Subprocesses using PTYs on OS X that are handled by Twisted will now be able
 
477
   to more reliably write the final bytes before they exit, allowing Twisted
 
478
   code to more reliably receive them (#2371, #2858)
 
479
 - Trial unit test reporting has been improved (#1901)
 
480
 - The kqueue reactor handles connection failures better (#2172)
 
481
 - It's now possible to run "trial foo/bar/" without an exception: trailing
 
482
   slashes no longer cause problems (#2005)
 
483
 - cred portals now better deal with implementations of inherited interfaces
 
484
   (#2523)
 
485
 - FTP error handling has been improved (#1160, 1107)
 
486
 - Trial behaves better with respect to file locking on Windows (#2482)
 
487
 - The FTP server now gives a better error when STOR is attempted during an
 
488
   anonymous session (#1575)
 
489
 - Trial now behaves better with tests that use the reactor's threadpool (#1832)
 
490
 - twisted.python.reload now behaves better with new-style objects (#2297)
 
491
 - LogFile's defaultMode parameter is now better implemented, preventing
 
492
   potential security exploits (#2586)
 
493
 - A minor obscure leak in thread pools was corrected (#1134)
 
494
 - twisted.internet.task.Clock now returns the correct DelayedCall from
 
495
   callLater, instead of returning the one scheduled for the furthest in the
 
496
   future (#2691)
 
497
 - twisted.spread.util.FilePager no longer unnecessarily buffers data in
 
498
   memory (#1843, 2321)
 
499
 - Asking for twistd or trial to use an unavailable reactor no longer prints a
 
500
   traceback (#2457)
 
501
 - System event triggers have fewer obscure bugs (#2509)
 
502
 - Plugin discovery code is much better behaved, allowing multiple
 
503
   installations of a package with plugins (#2339, #2769)
 
504
 - Process and PTYProcess have been merged and some minor bugs have been fixed
 
505
   (#2341)
 
506
 - The reactor has less global state (#2545)
 
507
 - Failure can now correctly represent and format errors caused by string
 
508
   exceptions (#2830)
 
509
 - The epoll reactor now has better error handling which now avoids the bug
 
510
   causing 100% CPU usage in some cases (#2809)
 
511
 - Errors raised during trial setUp or tearDown methods are now handled better
 
512
   (#2837)
 
513
 - A problem when deferred callbacks add new callbacks to the deferred that
 
514
   they are a callback of was fixed (#2849)
 
515
 - Log messages that are emitted during connectionMade now have the protocol
 
516
   prefix correctly set (#2813)
 
517
 - The string representation of a TCP Server connection now contains the actual
 
518
   port that it's bound to when it was configured to listen on port 0 (#2826)
 
519
 - There is better reporting of error codes for TCP failures on Windows (#2425)
 
520
 - Process spawning has been made slightly more robust by disabling garbage
 
521
   collection temporarily immediately after forking so that finalizers cannot
 
522
   be executed in an unexpected environment (#2483)
 
523
 - namedAny now detects import errors better (#698)
 
524
 - Many fixes and improvements to the twisted.python.zipstream module have
 
525
   been made (#2996)
 
526
 - FilePager no longer blows up on empty files (#3023)
 
527
 - twisted.python.util.FancyEqMixin has been improved to cooperate with objects
 
528
   of other types (#2944)
 
529
 - twisted.python.FilePath.exists now restats to prevent incorrect result
 
530
   (#2896)
 
531
 - twisted.python.util.mergeFunctionMetadata now also merges the __module__
 
532
   attribute (#3049)
 
533
 - It is now possible to call transport.pauseProducing within connectionMade on
 
534
   TCP transports without it being ignored (#1780)
 
535
 - twisted.python.versions now understands new SVN metadata format for fetching
 
536
   the SVN revision number (#3058)
 
537
 - It's now possible to use reactor.callWhenRunning(reactor.stop) on gtk2 and
 
538
   glib2 reactors (#3011)
 
539
 
 
540
Deprecations and removals
 
541
-------------------------
 
542
 - twisted.python.timeoutqueue is now deprecated (#2536)
 
543
 - twisted.enterprise.row and twisted.enterprise.reflector are now deprecated
 
544
   (#2387)
 
545
 - twisted.enterprise.util is now deprecated (#3022)
 
546
 - The dispatch and dispatchWithCallback methods of ThreadPool are now
 
547
   deprecated (#2684)
 
548
 - Starting the same reactor multiple times is now deprecated (#1785)
 
549
 - The visit method of various test classes in trial has been deprecated (#2897)
 
550
 - The --report-profile option to twistd and twisted.python.dxprofile are
 
551
   deprecated (#2908)
 
552
 - The upDownError method of Trial reporters is deprecated (#2883)
 
553
 
 
554
Other
 
555
-----
 
556
 
 
557
 - #2396, #2211, #1921, #2378, #2247, #1603, #2463, #2530, #2426, #2356, #2574,
 
558
 - #1844, #2575, #2655, #2640, #2670, #2688, #2543, #2743, #2744, #2745, #2746,
 
559
 - #2742, #2741, #1730, #2831, #2216, #1192, #2848, #2767, #1220, #2727, #2643,
 
560
 - #2669, #2866, #2867, #1879, #2766, #2855, #2547, #2857, #2862, #1264, #2735,
 
561
 - #942, #2885, #2739, #2901, #2928, #2954, #2906, #2925, #2942, #2894, #2793,
 
562
 - #2761, #2977, #2968, #2895, #3000, #2990, #2919, #2969, #2921, #3005, #421,
 
563
 - #3031, #2940, #1181, #2783, #1049, #3053, #2847, #2941, #2876, #2886, #3086,
 
564
 - #3095, #3109
 
565
 
 
566
 
 
567
2.5.0 (2006-12-29)
 
568
==================
 
569
 
 
570
Twisted 2.5.0 is a major feature release, with several interesting new
 
571
developments and a great number of bug fixes. Some of the highlights
 
572
follow.
 
573
 
 
574
 * AMP, the Asynchronous Messaging Protocol, was introduced.  AMP is
 
575
   a protocol which provides request/response semantics over a
 
576
   persistent connection in a very simple and extensible manner.
 
577
 
 
578
 * An Epoll-based reactor was added, which can be used with twistd or
 
579
   trial by passing "-r epoll" on the command line. This may improve
 
580
   performance of certain high-traffic network applications.
 
581
 
 
582
 * The 'twistd' command can now accept sub-commands which name an
 
583
   application to run. For example, 'twistd web --path .' will start a
 
584
   web server serving files out of the current directory. This
 
585
   functionality is meant to replace the old way of doing things with
 
586
   'mktap' and 'twistd -f'.
 
587
 
 
588
 * Python 2.5 is now supported. Previous releases of Twisted were
 
589
   broken by changes in the release of Python 2.5.
 
590
 
 
591
 * 'inlineCallbacks' was added, which allows taking advantage of the
 
592
   new 'yield' expression syntax in Python 2.5 to avoid writing
 
593
   callbacks for Deferreds.
 
594
 
 
595
In addition to these changes, there are many other minor features and
 
596
a large number of bug fixes.
 
597
 
 
598
Features
 
599
--------
 
600
 - log.err can now take a second argument for specifying information
 
601
   about an error (#1399)
 
602
 - A time-simulating test helper class, twisted.internet.task.Clock,
 
603
   was added (#1757)
 
604
 - Trial docstring improvements were made (#1604, #2133)
 
605
 - New SSL features were added to twisted.internet.ssl, such as client
 
606
   validation (#302)
 
607
 - Python 2.5 is now supported (#1867)
 
608
 - Trial's assertFailure now provides more information on failure (#1869)
 
609
 - Trial can now be run on tests within a zipfile (#1940)
 
610
 - AMP, a new simple protocol for asynchronous messaging, was added (#1715)
 
611
 - Trial's colorful reporter now works on win32 (#1646)
 
612
 - Trial test modules may now dynamically construct TestSuites (#1638, #2165)
 
613
 - twistd can now make use of plugins to run applications (#1922, #2013)
 
614
 - Twisted now works with the latest (unreleased) zope.interface (#2160)
 
615
 - An epoll-based reactor, epollreactor, was added. It is selectable
 
616
   with the -r options to twistd and trial (#1953)
 
617
 - twistd and trial now use the plugin system to find reactors which
 
618
   can be selected (#719)
 
619
 - twisted.internet.defer.inlineCallbacks was added. It takes
 
620
   advantage of Python 2.5's generators to offer a way to deal with
 
621
   Deferreds without callbacks (#2100)
 
622
 
 
623
Fixes
 
624
-----
 
625
 - Traceback formatting in Trial was improved (#1454, #1610)
 
626
 - twisted.python.filepath.FilePath.islink now actually returns True when
 
627
   appropriate (#1773)
 
628
 - twisted.plugin now no longer raises spurious errors (#926)
 
629
 - twisted.pb Cacheables may now be new-style classes (#1324)
 
630
 - FileDescriptor now deals with producers in a more
 
631
   interface-compliant and robust manner (#2286, #811)
 
632
 - "setup.py build" and other setup.py commands which don't actually
 
633
   install the software now work (#1835)
 
634
 - wxreactor has had various fixes (#1235, #1574, #1688)
 
635
 
 
636
Deprecations and Removals
 
637
-------------------------
 
638
 - The old twisted.cred API (Perspectives, Identities and such) was
 
639
   removed (#1440)
 
640
 - twisted.spread.newjelly was removed (#1831)
 
641
 - Various deprecated things in twisted.python.components were
 
642
   removed: Interface, MetaInterface, getAdapterClass, and
 
643
   getAdapterClassWithInheritance (#1636)
 
644
 - twisted.enterprise.xmlreflector was removed (#661)
 
645
 - mktap is slowly on its way out, now that twistd supports plugins. It
 
646
   is not yet officially deprecated (#2013)
 
647
 - tkmktap was removed, because it wasn't working anyway (#2020)
 
648
 - reactor.iterate calls made inside of a Trial test case are
 
649
   deprecated (#2090)
 
650
 - twisted.internet.qtreactor was removed: It has been moved to a
 
651
   separate project. See http://twistedmatrix.com/trac/wiki/QTReactor
 
652
   (#2130, #2137)
 
653
 - threadedselectreactor is now not a directly usable reactor; it is
 
654
   only meant to help in writing other reactors (#2126)
 
655
 - twisted.python.reflect.funcinfo is deprecated (#2079)
 
656
 - twisted.spread.sturdy, which was already completely broken, was
 
657
   removed (#2299)
 
658
 
 
659
 
 
660
Other
 
661
-----
 
662
The following changes are minor or closely related to other changes.
 
663
 
 
664
 - #1783, #1786, #1788, #1648, #1734, #1609, #1800, #1818,
 
665
   #1629, #1829, #491, #1816, #1824, #1855, #1797, #1637, #1371,
 
666
   #1892, #1887, #1897, #1563, #1741, #1943, #1952, #1276,
 
667
   #1837, #1726, #1963, #1965, #1973, #1976, #1991, #1936, #1113,
 
668
   #630, #2002, #2040, #2044, #1617, #2045, #2055, #2056, #2022,
 
669
   #2052, #1552, #1999, #1507, #2054, #1970, #1968, #662, #1910,
 
670
   #1694, #1999, #1409, #2150, #2127, #2155, #1983, #2014, #2222,
 
671
   #1067, #2136, #2065, #1430, #2173, #2212, #1871, #2147, #1199,
 
672
   #2273, #428, #992, #815, #2024, #2292, #2125, #2139, #2291, #2174,
 
673
   #2306, #2228, #2309, #2319, #2317, #2313, #2154, #1985, #1201
 
674
 
 
675
 
 
676
2.4.0 (2006-05-21)
 
677
==================
 
678
 
 
679
Features
 
680
--------
 
681
 - twisted.internet.task.Cooperator (Added along with #1701).
 
682
 
 
683
Fixes
 
684
-----
 
685
 - Errors in UDP protocols no longer unbind the UDP port (#1695).
 
686
 - Misc: #1717, #1705, #1563, #1719, #1721, #1722, #1728.
 
687
 
 
688
 
 
689
2.3.0 (2006-05-14)
 
690
==================
 
691
 
 
692
Features
 
693
--------
 
694
 - twisted-dev-mode's F9 now uses trial's --testmodule feature, rather than
 
695
   trying to guess what tests to run.  This will break files using the "-x"
 
696
   test-case-name hack (just use a comma separated list instead).
 
697
 - API Documentation improvements.
 
698
 - A new Producer/Consumer guide (#53)
 
699
 - Better-defined error behavior in IReactorMulticast (#1578)
 
700
 - IOCP Multicast support (#1500)
 
701
 - Improved STDIO support on Windows. (#1553)
 
702
 - LoopingCall supports Deferreds such that it will wait until a
 
703
   Deferred has fired before rescheduling the next call (#1487)
 
704
 - Added twisted.python.versions.Version, a structured representation
 
705
   of Version information, including support for SVN revision numbers
 
706
   (#1663)
 
707
 
 
708
Fixes
 
709
-----
 
710
 
 
711
 - Many trial fixes, as usual 
 
712
 - All API documentation is now correctly formatted as epytext (#1545)
 
713
 - twisted.python.filepath.FilePath.__repr__ is safer.
 
714
 - Fix trial's "until-failure" mode. (#1453)
 
715
 - deferredGenerator now no longer causes handled exceptions (or
 
716
   results) to propagate to the resulting Deferred (#1709).
 
717
 - Misc: #1483, #1495, #1503, #1532, #1539, #1559, #1509, #1538,
 
718
   #1571, #1331, #1561, #737, #1562, #1573, #1594, #1607, #1407, #1615,
 
719
   #1645, #1634, #1620, #1664, #1666, #1650, #1670, #1675, #1692, #1710,
 
720
   #1668.
 
721
 
 
722
Deprecations
 
723
------------
 
724
 
 
725
 - Removal of already-deprecated trial APIs: the assertions module,
 
726
   util.deferredResult, util.deferredError, util.fireWhenDoneFunc,
 
727
   util.spinUntil, util.spinWhile, util.extract_tb,
 
728
   util.format_exception, util.suppress_warnings, unittest.wait,
 
729
   util.wait
 
730
 - The backwards compatibility layer of twisted.python.components
 
731
   (e.g., backwardsCompatImplements, fixClassImplements, etc) has been
 
732
   disabled. The functions still exist, but do nothing as to not break
 
733
   user code outright (#1511)
 
734
 - Deprecate the usage of the 'default' argument as a keyword argument
 
735
   in Interface.__call__. Passing a second positional argument to
 
736
   specify the default return value of the adaptation is still
 
737
   supported.
 
738
 
 
739
 
 
740
2.2.0 (2006-02-12)
 
741
==================
 
742
 
 
743
Features
 
744
--------
 
745
 - Twisted no longer works with Python 2.2
 
746
 - FTP server supports more clients
 
747
 - Process support on Windows
 
748
 - twisted.internet.stdio improved (including Windows support!)
 
749
 - Trial:
 
750
   - Continued Trial refactoring
 
751
   - Default trial reporter is verbose black&white when color isn't supported
 
752
   - Deferreds returned in trial tests that don't fire before the
 
753
     unittest timeout now have their errback fired with a TimeoutError
 
754
   - raising SkipTest in setUp and setUpClass skips tests
 
755
   - Test suites are failed if there are import errors
 
756
 
 
757
Fixes
 
758
-----
 
759
 - iocpreactor fixes
 
760
 - Threadpool fixes
 
761
 - Fixed infinite loops in datagramReceived edge cases
 
762
 - Issues resolved: 654, 773, 998, 1005, 1008, 1116, 1123, 1198, 1221,
 
763
   1232, 1233, 1236, 1240, 1244, 1258, 1263, 1265, 1266, 1271, 1275,
 
764
   1293, 1294, 1298, 1308, 1316, 1317, 1321, 1341, 1344, 1353, 1359,
 
765
   1372, 1374, 1377, 1379, 1380, 1385, 1388, 1389, 1413, 1422, 1426,
 
766
   1434, 1435, 1448, 1449, 1456
 
767
 
 
768
Deprecations
 
769
------------
 
770
 - Trial:
 
771
   - spinWhile and spinUntil
 
772
   - util.wait
 
773
   - extract_tb and format_exception
 
774
   - util.suppressWarnings
 
775
   - runReactor is gone
 
776
 
 
777
 
 
778
2.1.0 (2005-11-06)
 
779
==================
 
780
 
 
781
Features
 
782
--------
 
783
 - threadedselectreactor, a reactor which potentially makes
 
784
   integration with foreign event loops much simpler.
 
785
 - major improvements to twisted.conch.insults, including many new widgets.
 
786
 - adbapi ConnectionPools now have 'runWithConnection' which is
 
787
   similar to runInteraction but gives you a connection object instead of
 
788
   a transaction. [975]
 
789
 - __file__ is now usable in tac files
 
790
 - twisted.cred.pamauth now contains a PAM checker (moved from twisted.conch)
 
791
 - twisted.protocols.policies.LimitTotalConnectionsFactory now exists,
 
792
   which does as the name suggests
 
793
 - twisted.protocols.ident now uses /proc/net/tcp on Linux [233]
 
794
 - trial now recurses packages by default (a la the old -R parameter)
 
795
 - (PB) Calling a remote method that doesn't exist now raises
 
796
   NoSuchMethod instead of AttributeError.
 
797
 
 
798
Fixes
 
799
-----
 
800
 - FTP client and server improvements
 
801
 - Trial improvements: The code is now much simpler, and more stable.
 
802
 - twisted.protocols.basic.FileSender now works with empty files 
 
803
 - Twisted should now be much more usable on Pythons without thread support.
 
804
 - minor improvements to process code in win32eventreactor
 
805
 - twistd -y (--python) now implies -o (--nosave). [539]
 
806
 - improved lockfile handling especially with respect to unix sockets.
 
807
 - deferredGenerator now no longer overuses the stack, which sometimes
 
808
   caused stack overflows.
 
809
 - Failure.raiseException now at least always raises the correct Exception.
 
810
 - minor improvements to serialport code
 
811
 
 
812
Deprecations
 
813
------------
 
814
 - twisted.python.componts.getAdapter. Use IFoo(o) instead.
 
815
 - Adapter persistence (IFoo(x, persist=True)). Just don't use it.
 
816
 - log.debug. It was equivalent to log.msg(), just use that.
 
817
 - twisted.protocols.telnet. twisted.conch.telnet replaces it.
 
818
 - Setting a trial reporter using a flag to 'trial'. Instead of 'trial
 
819
   --bwverbose', for example, use 'trial --reporter=bwverbose'.
 
820
 - trial --coverage will become a flag in Twisted 2.2.
 
821
 - passing a fully-qualified python name to --reporter is
 
822
   deprecated. Pass only names of Reporter plugins.
 
823
 - trial --psyco.
 
824
 - trial -R (--recurse) is now the default, so passing it is deprecated.
 
825
 - trial --reporter-args. Use the plugin system to do this sort of thing.
 
826
 - trial.assertions.assertionMethod and trial.unittest.assertionMethod
 
827
   are both deprecated. Use instance methods on TestCases instead.
 
828
 - trial's deferredResult, deferredError, and wait functions. Return
 
829
   Deferreds from your test methods instead of using them.
 
830
 - Raising unittest.SkipTest with no arguments. Give a reason for your skip.
 
831
 - The Failure returned from a gatherResults and DeferredList is now
 
832
   of type FirstError instead of a tuple of (Exception, index). It
 
833
   supports a firstError[idx] syntax but that is deprecated. Use
 
834
   firstError.subFailure and firstError.index instead.
 
835
 - whenThreaded now simply calls the passed function synchronously.
 
836
 
 
837
2.0.1 (2005-05-09)
 
838
===================
 
839
Minor bug fix release.
 
840
 
 
841
SVN rev (file) - [bug number] description
 
842
-----------------------------------------
 
843
13307 (twisted/topfiles/README) - Mention support for python 2.4, too
 
844
13324 (twisted/internet/defer.py) - [947] Fix DeferredQueue backlog/size limit.
 
845
13354 (twisted/plugins/__init__.py) - Correct maintainer address.
 
846
13355 (twisted/test/test_defer.py) - improvements to DeferredQueue test case
 
847
13387 (setup.py) - add news to list of subprojects to install
 
848
13332 (twisted/internet/posixbase.py) - Fix spelling error
 
849
13366 (twisted/internet/qtreactor.py) - [957] [954] reactor.iterate fixes
 
850
13368 (twisted/test/test_internet.py) - Fix DelayedCall test case
 
851
13422 (twisted/internet/posixbase.py) - Remove log from _Win32Waker creation.
 
852
13437 (twisted/plugin.py) - [958] Only write cache if there were changes.
 
853
13666 (twisted/internet/gtkreactor.py,gtk2reactor.py) - Don't run callbacks
 
854
          until the reactor is actually up and running
 
855
13748 (twisted/internet/gtk2reactor.py) - [552] [994] Initialize threading properly.
 
856
 
 
857
 
 
858
2.0.0 (2005-03-25)
 
859
==================
 
860
 
 
861
Major new features
 
862
------------------
 
863
 - Replaced home-grown components system with zope.interface.
 
864
 - Split Twisted into multiple pieces.
 
865
 - Relicensed: Now under the MIT license, rather than LGPL.
 
866
 - Python 2.4 compatibility fixes
 
867
 - Major efficiency improvements in TCP buffering algorithm.
 
868
 - Major efficiency improvements in reactor.callLater/DelayedCall.
 
869
 - Half-close support for TCP/SSL. (loseWriteConnection).
 
870
 
 
871
Miscellaneous features/fixes
 
872
----------------------------
 
873
 - New plugin system: twisted.plugin
 
874
 - Better debugging support. Control-C will break you into PDB.
 
875
 - The twistd command has --uid --gid command line arguments.
 
876
 - *Incompatibility: mktap defaults to not change UID/GID, instead of saving
 
877
   the invoking user's UID/GID.
 
878
 - Removed some functions that were deprecated since Twisted 1.0.
 
879
 - ZSH tab-completion for twisted commands.
 
880
 
 
881
 - More correct daemonization in twistd.
 
882
 - twisted.python.log: do not close the log because of invalid format string.
 
883
 - Disabled automatic import of cBanana. 
 
884
 - Boolean support for twisted.persisted.marmalade.
 
885
 - Refactor of plugin and application HOWTO documentation
 
886
 - Async HOWTO expanded greatly.
 
887
 - twisted.python.usage outputs the actual defaults, not passed in values.
 
888
 
 
889
twisted.trial
 
890
-------------
 
891
 - Rewritten, a bunch of bugs fixed, a few more added.
 
892
 
 
893
twisted.internet
 
894
----------------
 
895
 - Multi-listen UDP multicast support
 
896
 - protocol.ClientCreator has a connectSSL.
 
897
 - defer.deferredGenerator: allows you to write Deferred code w/o callbacks.
 
898
 - Deferred.setTimeout is now deprecated.
 
899
 - New defer.DeferredLock/DeferredSemaphore/DeferredQueue.
 
900
 - Add utils.getProcessOutputAndValue to get stdout/err/value.
 
901
 
 
902
 - Default DNS resolver is now non-blocking.
 
903
 - Increased default TCP accept backlog from 5 to 50.
 
904
 - Make buffering large amounts of TCP data work on Windows.
 
905
 - Fixed SSL disconnect to not wait for remote host. Fixes issue with firefox.
 
906
 - Separate state for Deferred finalization so that GC-loops preventing
 
907
   finalization don't occur.
 
908
 - Many Process bugfixes
 
909
 - Processes spawned on windows can successfully use sockets
 
910
 - gtk2reactor can optionally use glib event loop instead of gtk
 
911
 - gtk2reactor notifies gobject to initialize thread support
 
912
 - Fix registering a streaming producer on a transport.
 
913
 - Close client sockets explicitly after failed connections.
 
914
 - ReconnectingClientFactory now continues attempting to reconnect after all
 
915
   errors, not just those which are not UserErrors.
 
916
 
 
917
twisted.protocols
 
918
-----------------
 
919
 - Portforward doesn't start reading from a client until a connection is made.
 
920
 - Bugfixes in twisted.protocols.loopback
 
921
 - Improve speed of twisted.protocols.LineReceiver.
 
922
 - LineReceiver implements IProducer. (stop/pause/resumeProducing)
 
923
 - SOCKSv4 properly closes connections
 
924
 
 
925
twisted.enterprise
 
926
------------------
 
927
 - Add "new connection" callback to adbapi.ConnectionPool to allow for
 
928
   custom db connection setup (cp_openfun)
 
929
 - adbapi.ConnectionPool automatic reconnection support
 
930
 - Don't log exceptions extraneously
 
931
 
 
932
 
 
933
1.3.0 (2004-05-14)
 
934
==================
 
935
 
 
936
- Address objects for IPv4 and Unix addresses throughout twisted.internet.
 
937
- Improved connected UDP APIs.
 
938
- Refactored SSH client support.
 
939
- Initial implementation of Windows I/O Completion Ports event loop.
 
940
- Bug fixes and feature enhancements.
 
941
- Nevow support for Lore (so your Lore documents can use Nevow directives).
 
942
- This is the last release before Twisted begins splitting up.