forked from twisted/twisted
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNEWS
2896 lines (2433 loc) · 110 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Ticket numbers in this file can be looked up by visiting
http://twistedmatrix.com/trac/ticket/<number>
Twisted Core 12.0.0 (2012-02-10)
================================
Features
--------
- The interface argument to IReactorTCP.listenTCP may now be an IPv6
address literal, allowing the creation of IPv6 TCP servers. (#5084)
- twisted.python.constants.Names now provides a way to define
collections of named constants, similar to the "enum type" feature
of C or Java. (#5382)
- twisted.python.constants.Values now provides a way to define
collections of named constants with arbitrary values. (#5383)
Bugfixes
--------
- Fixed an obscure case where connectionLost wasn't called on the
protocol when using half-close. (#3037)
- UDP ports handle socket errors better on Windows. (#3396)
- When idle, the gtk2 and glib2 reactors no longer wake up 10 times a
second. (#4376)
- Prevent a rare situation involving TLS transports, where a producer
may be erroneously left unpaused. (#5347)
- twisted.internet.iocpreactor.iocpsupport now has fewer 64-bit
compile warnings. (#5373)
- The GTK2 reactor is now more responsive on Windows. (#5396)
- TLS transports now correctly handle producer registration after the
connection has been lost. (#5439)
- twisted.protocols.htb.Bucket now empties properly with a non-zero
drip rate. (#5448)
- IReactorSSL and ITCPTransport.startTLS now synchronously propagate
errors from the getContext method of context factories, instead of
being capturing them and logging them as unhandled. (#5449)
Improved Documentation
----------------------
- The multicast documentation has been expanded. (#4262)
- twisted.internet.defer.Deferred now documents more return values.
(#5399)
- Show a better starting page at
http://twistedmatrix.com/documents/current (#5429)
Deprecations and Removals
-------------------------
- Remove the deprecated module twisted.enterprise.reflector. (#4108)
- Removed the deprecated module twisted.enterprise.row. (#4109)
- Remove the deprecated module twisted.enterprise.sqlreflector.
(#4110)
- Removed the deprecated module twisted.enterprise.util, as well as
twisted.enterprise.adbapi.safe. (#4111)
- Python 2.4 is no longer supported on any platform. (#5060)
- Removed printTraceback and noOperation from twisted.spread.pb,
deprecated since Twisted 8.2. (#5370)
Other
-----
- #1712, #2725, #5284, #5325, #5331, #5362, #5364, #5371, #5407,
#5427, #5430, #5431, #5440, #5441
Twisted Conch 12.0.0 (2012-02-10)
=================================
Features
--------
- use Python shadow module for authentication if it's available
(#3242)
Bugfixes
--------
- twisted.conch.ssh.transport.messages no longer ends with with old
message IDs on platforms with differing dict() orderings (#5352)
Other
-----
- #5225
Twisted Lore 12.0.0 (2012-02-10)
================================
No significant changes have been made for this release.
Twisted Mail 12.0.0 (2012-02-10)
================================
No significant changes have been made for this release.
Twisted Names 12.0.0 (2012-02-10)
=================================
Bugfixes
--------
- twisted.names.dns.Message now sets the `auth` flag on RRHeader
instances it creates to reflect the authority of the message
itself. (#5421)
Twisted News 12.0.0 (2012-02-10)
================================
No significant changes have been made for this release.
Twisted Pair 12.0.0 (2012-02-10)
================================
No significant changes have been made for this release.
Twisted Runner 12.0.0 (2012-02-10)
==================================
No significant changes have been made for this release.
Twisted Web 12.0.0 (2012-02-10)
===============================
Features
--------
- twisted.web.util.redirectTo now raises TypeError if the URL passed
to it is a unicode string instead of a byte string. (#5236)
- The new class twisted.web.template.CharRef provides support for
inserting numeric character references in output generated by
twisted.web.template. (#5408)
Improved Documentation
----------------------
- The Twisted Web howto now has a section on proxies and reverse
proxies. (#399)
- The web client howto now covers ContentDecoderAgent and links to an
example of its use. (#5415)
Other
-----
- #5404, #5438
Twisted Words 12.0.0 (2012-02-10)
=================================
Improved Documentation
----------------------
- twisted.words.im.basechat now has improved API documentation.
(#2458)
Other
-----
- #5401
Twisted Core 11.1.0 (2011-11-15)
================================
Features
--------
- TCP and TLS transports now support abortConnection() which, unlike
loseConnection(), always closes the connection immediately. (#78)
- Failures received over PB when tracebacks are disabled now display
the wrapped exception value when they are printed. (#581)
- twistd now has a --logger option, allowing the use of custom log
observers. (#638)
- The default reactor is now poll(2) on platforms that support it.
(#2234)
- twisted.internet.defer.inlineCallbacks(f) now raises TypeError when
f returns something other than a generator or uses returnValue as a
non-generator. (#2501)
- twisted.python.usage.Options now supports performing Zsh tab-
completion on demand. Tab-completion for Twisted commands is
supported out-of-the-box on any recent zsh release. Third-party
commands may take advantage of zsh completion by copying the
provided stub file. (#3078)
- twisted.protocols.portforward now uses flow control between its
client and server connections to avoid having to buffer an
unbounded amount of data when one connection is slower than the
other. (#3350)
- On Windows, the select, IOCP, and Gtk2 reactors now implement
IReactorWin32Events (most notably adding support for serial ports
to these reactors). (#4862)
- twisted.python.failure.Failure no longer captures the state of
locals and globals of all stack frames by default, because it is
expensive to do and rarely used. You can pass captureVars=True to
Failure's constructor if you want to capture this data. (#5011)
- twisted.web.client now supports automatic content-decoding via
twisted.web.client.ContentDecoderAgent, gzip being supported for
now. (#5053)
- Protocols may now implement ILoggingContext to customize their
logging prefix. twisted.protocols.policies.ProtocolWrapper and the
endpoints wrapper now take advantage of this feature to ensure the
application protocol is still reflected in logs. (#5062)
- AMP's raw message-parsing performance was increased by
approximately 12%. (#5075)
- Twisted is now installable on PyPy, because some incompatible C
extensions are no longer built. (#5158)
- twisted.internet.defer.gatherResults now accepts a consumeErrors
parameter, with the same meaning as the corresponding argument for
DeferredList. (#5159)
- Added RMD (remove directory) support to the FTP client. (#5259)
- Server factories may now implement ILoggingContext to customize the
name that is logged when the reactor uses one to start listening on
a port. (#5292)
- The implementations of ITransport.writeSequence will now raise
TypeError if passed unicode strings. (#3896)
- iocp reactor now operates correctly on 64 bit Python runtimes.
(#4669)
- twistd ftp now supports the cred plugin. (#4752)
- twisted.python.filepath.FilePath now has an API to retrieve the
permissions of the underlying file, and two methods to determine
whether it is a block device or a socket. (#4813)
- twisted.trial.unittest.TestCase is now compatible with Python 2.7's
assertDictEqual method. (#5291)
Bugfixes
--------
- The IOCP reactor now does not try to erroneously pause non-
streaming producers. (#745)
- Unicode print statements no longer blow up when using Twisted's
logging system. (#1990)
- Process transports on Windows now support the `writeToChild` method
(but only for stdin). (#2838)
- Zsh tab-completion of Twisted commands no longer relies on
statically generated files, but instead generates results on-the-
fly - ensuring accurate tab-completion for the version of Twisted
actually in use. (#3078)
- LogPublishers don't use the global log publisher for reporting
broken observers anymore. (#3307)
- trial and twistd now add the current directory to sys.path even
when running as root or on Windows. mktap, tapconvert, and
pyhtmlizer no longer add the current directory to sys.path. (#3526)
- twisted.internet.win32eventreactor now stops immediately if
reactor.stop() is called from an IWriteDescriptor.doWrite
implementation instead of delaying shutdown for an arbitrary period
of time. (#3824)
- twisted.python.log now handles RuntimeErrors more gracefully, and
always restores log observers after an exception is raised. (#4379)
- twisted.spread now supports updating new-style RemoteCache
instances. (#4447)
- twisted.spread.pb.CopiedFailure will no longer be thrown into a
generator as a (deprecated) string exception but as a
twisted.spread.pb.RemoteException. (#4520)
- trial now gracefully handles the presence of objects in sys.modules
which respond to attributes being set on them by modifying
sys.modules. (#4748)
- twisted.python.deprecate.deprecatedModuleAttribute no longer
spuriously warns twice when used to deprecate a module within a
package. This should make it easier to write unit tests for
deprecated modules. (#4806)
- When pyOpenSSL 0.10 or newer is available, SSL support now uses
Twisted for all I/O and only relies on OpenSSL for cryptography,
avoiding a number of tricky, potentially broken edge cases. (#4854)
- IStreamClientEndpointStringParser.parseStreamClient now correctly
describes how it will be called by clientFromString (#4956)
- twisted.internet.defer.Deferreds are 10 times faster at handling
exceptions raised from callbacks, except when setDebugging(True)
has been called. (#5011)
- twisted.python.filepath.FilePath.copyTo now raises OSError(ENOENT)
if the source path being copied does not exist. (#5017)
- twisted.python.modules now supports iterating over namespace
packages without yielding duplicates. (#5030)
- reactor.spawnProcess now uses the resource module to guess the
maximum possible open file descriptor when /dev/fd exists but gives
incorrect results. (#5052)
- The memory BIO TLS/SSL implementation now supports producers
correctly. (#5063)
- twisted.spread.pb.Broker no longer creates an uncollectable
reference cycle when the logout callback holds a reference to the
client mind object. (#5079)
- twisted.protocols.tls, and SSL/TLS support in general, now do clean
TLS close alerts when disconnecting. (#5118)
- twisted.persisted.styles no longer uses the deprecated allYourBase
function (#5193)
- Stream client endpoints now start (doStart) and stop (doStop) the
factory passed to the connect method, instead of a different
implementation-detail factory. (#5278)
- SSL ports now consistently report themselves as SSL rather than TCP
when logging their close message. (#5292)
- Serial ports now deliver connectionLost to the protocol when
closed. (#3690)
- win32eventreactor now behaves better in certain rare cases in which
it previously would have failed to deliver connection lost
notification to a protocol. (#5233)
Improved Documentation
----------------------
- Test driven development with Twisted and Trial is now documented in
a how-to. (#2443)
- A new howto-style document covering twisted.protocols.amp has been
added. (#3476)
- Added sample implementation of a Twisted push producer/consumer
system. (#3835)
- The "Deferred in Depth" tutorial now includes accurate output for
the deferred_ex2.py example. (#3941)
- The server howto now covers the Factory.buildProtocol method.
(#4761)
- The testing standard and the trial tutorial now recommend the
`assertEqual` form of assertions rather than the `assertEquals` to
coincide with the standard library unittest's preference. (#4989)
- twisted.python.filepath.FilePath's methods now have more complete
API documentation (docstrings). (#5027)
- The Clients howto now uses buildProtocol more explicitly, hopefully
making it easier to understand where Protocol instances come from.
(#5044)
Deprecations and Removals
-------------------------
- twisted.internet.interfaces.IFinishableConsumer is now deprecated.
(#2661)
- twisted.python.zshcomp is now deprecated in favor of the tab-
completion system in twisted.python.usage (#3078)
- The unzip and unzipIter functions in twisted.python.zipstream are
now deprecated. (#3666)
- Options.optStrings, deprecated for 7 years, has been removed. Use
Options.optParameters instead. (#4552)
- Removed the deprecated twisted.python.dispatch module. (#5023)
- Removed the twisted.runner.procutils module that was deprecated in
Twisted 2.3. (#5049)
- Removed twisted.trial.runner.DocTestSuite, deprecated in Twisted
8.0. (#5111)
- twisted.scripts.tkunzip is now deprecated. (#5140)
- Deprecated option --password-file in twistd ftp (#4752)
- mktap, deprecated since Twisted 8.0, has been removed. (#5293)
Other
-----
- #1946, #2562, #2674, #3074, #3077, #3776, #4227, #4539, #4587,
#4619, #4624, #4629, #4683, #4690, #4702, #4778, #4944, #4945,
#4949, #4952, #4957, #4979, #4980, #4987, #4990, #4994, #4995,
#4997, #5003, #5008, #5009, #5012, #5019, #5042, #5046, #5051,
#5065, #5083, #5088, #5089, #5090, #5101, #5108, #5109, #5112,
#5114, #5125, #5128, #5131, #5136, #5139, #5144, #5146, #5147,
#5156, #5160, #5165, #5191, #5205, #5215, #5217, #5218, #5223,
#5243, #5244, #5250, #5254, #5261, #5266, #5273, #5299, #5301,
#5302, #5304, #5308, #5311, #5321, #5322, #5327, #5328, #5332,
#5336
Twisted Conch 11.1.0 (2011-11-15)
=================================
Features
--------
- twisted.conch.ssh.filetransfer.FileTransferClient now handles short
status messages, not strictly allowed by the RFC, but sent by some
SSH implementations. (#3009)
- twisted.conch.manhole now supports CTRL-A and CTRL-E to trigger
HOME and END functions respectively. (#5252)
Bugfixes
--------
- When run from an unpacked source tarball or a VCS checkout, the
bin/conch/ scripts will now use the version of Twisted they are
part of. (#3526)
- twisted.conch.insults.window.ScrolledArea now passes no extra
arguments to object.__init__ (which works on more versions of
Python). (#4197)
- twisted.conch.telnet.ITelnetProtocol now has the correct signature
for its unhandledSubnegotiation() method. (#4751)
- twisted.conch.ssh.userauth.SSHUserAuthClient now more closely
follows the RFC 4251 definition of boolean values when negotiating
for key-based authentication, allowing better interoperability with
other SSH implementations. (#5241)
- twisted.conch.recvline.RecvLine now ignores certain function keys
in its keystrokeReceived method instead of raising an exception.
(#5246)
Deprecations and Removals
-------------------------
- The --user option to `twistd manhole' has been removed as it was
dead code with no functionality associated with it. (#5283)
Other
-----
- #5107, #5256, #5349
Twisted Lore 11.1.0 (2011-11-15)
================================
Bugfixes
--------
- When run from an unpacked source tarball or a VCS checkout,
bin/lore/lore will now use the version of Twisted it is part of.
(#3526)
Deprecations and Removals
-------------------------
- Removed compareMarkPos and comparePosition from lore.tree,
deprecated in Twisted 9.0. (#5127)
Twisted Mail 11.1.0 (2011-11-15)
================================
Features
--------
- twisted.mail.smtp.LOGINCredentials now generates challenges with
":" instead of "\0" for interoperability with Microsoft Outlook.
(#4692)
Bugfixes
--------
- When run from an unpacked source tarball or a VCS checkout,
bin/mail/mailmail will now use the version of Twisted it is part
of. (#3526)
Other
-----
- #4796, #5006
Twisted Names 11.1.0 (2011-11-15)
=================================
Features
--------
- twisted.names.dns.Message now parses records of unknown type into
instances of a new `UnknownType` class. (#4603)
Bugfixes
--------
- twisted.names.dns.Name now detects loops in names it is decoding
and raises an exception. Previously it would follow the loop
forever, allowing a remote denial of service attack against any
twisted.names client or server. (#5064)
- twisted.names.hosts.Resolver now supports IPv6 addresses; its
lookupAddress method now filters them out and its lookupIPV6Address
method is now implemented. (#5098)
Twisted News 11.1.0 (2011-11-15)
================================
No significant changes have been made for this release.
Twisted Pair 11.1.0 (2011-11-15)
================================
No significant changes have been made for this release.
Twisted Runner 11.1.0 (2011-11-15)
==================================
No significant changes have been made for this release.
Twisted Web 11.1.0 (2011-11-15)
===============================
Features
--------
- twisted.web.client.ProxyAgent is a new HTTP/1.1 web client which
adds proxy support. (#1774)
- twisted.web.client.Agent now takes optional connectTimeout and
bindAddress arguments which are forwarded to the subsequent
connectTCP/connectSSL call. (#3450)
- The new class twisted.web.client.FileBodyProducer makes it easy to
upload data in HTTP requests made using the Agent client APIs.
(#4017)
- twisted.web.xmlrpc.XMLRPC now allows its lookupProcedure method to
be overridden to change how XML-RPC procedures are dispatched.
(#4836)
- A new HTTP cookie-aware Twisted Web Agent wrapper is included in
twisted.web.client.CookieAgent (#4922)
- New class twisted.web.template.TagLoader provides an
ITemplateLoader implementation which loads already-created
twisted.web.iweb.IRenderable providers. (#5040)
- The new class twisted.web.client.RedirectAgent adds redirect
support to the HTTP 1.1 client stack. (#5157)
- twisted.web.template now supports HTML tags from the HTML5
standard, including <canvas> and <video>. (#5306)
Bugfixes
--------
- twisted.web.client.getPage and .downloadPage now only fire their
result Deferred after the underlying connection they use has been
closed. (#3796)
- twisted.web.server now omits the default Content-Type header from
NOT MODIFIED responses. (#4156)
- twisted.web.server now responds correctly to 'Expect: 100-continue'
headers, although this is not yet usefully exposed to user code.
(#4673)
- twisted.web.client.Agent no longer raises an exception if a server
responds and closes the connection before the request has been
fully transmitted. (#5013)
- twisted.web.http_headers.Headers now correctly capitalizes the
header names Content-MD5, DNT, ETag, P3P, TE, and X-XSS-Protection.
(#5054)
- twisted.web.template now escapes more inputs to comments which
require escaping in the output. (#5275)
Improved Documentation
----------------------
- The twisted.web.template howto now documents the common idiom of
yielding tag clones from a renderer. (#5286)
- CookieAgent is now documented in the twisted.web.client how-to.
(#5110)
Deprecations and Removals
-------------------------
- twisted.web.google is now deprecated. (#5209)
Other
-----
- #4951, #5057, #5175, #5288, #5316
Twisted Words 11.1.0 (2011-11-15)
=================================
Features
--------
- twisted.words.protocols.irc.IRCClient now uses a PING heartbeat as
a keepalive to avoid losing an IRC connection without being aware
of it. (#5047)
Bugfixes
--------
- twisted.words.protocols.irc.IRCClient now replies only once to
known CTCP queries per message and not at all to unknown CTCP
queries. (#5029)
- IRCClient.msg now determines a safe maximum command length,
drastically reducing the chance of relayed text being truncated on
the server side. (#5176)
Deprecations and Removals
-------------------------
- twisted.words.protocols.irc.IRCClient.me was deprecated in Twisted
9.0 and has been removed. Use IRCClient.describe instead. (#5059)
Other
-----
- #5025, #5330
Twisted Core 11.0.0 (2011-04-01)
================================
Features
--------
- The reactor is not restartable, but it would previously fail to
complain. Now, when you restart an unrestartable reactor, you get
an exception. (#2066)
- twisted.plugin now only emits a short log message, rather than a
full traceback, if there is a problem writing out the dropin cache
file. (#2409)
- Added a 'replacement' parameter to the
'twisted.python.deprecate.deprecated' decorator. This allows
deprecations to unambiguously specify what they have been
deprecated in favor of. (#3047)
- Added access methods to FilePath for FilePath.statinfo's st_ino,
st_dev, st_nlink, st_uid, and st_gid fields. This is in
preparation for the deprecation of FilePath.statinfo. (#4712)
- IPv4Address and UNIXAddress now have a __hash__ method. (#4783)
- twisted.protocols.ftp.FTP.ftp_STOR now catches `FTPCmdError`s
raised by the file writer, and returns the error back to the
client. (#4909)
Bugfixes
--------
- twistd will no longer fail if a non-root user passes --uid 'myuid'
as a command-line argument. Instead, it will emit an error message.
(#3172)
- IOCPReactor now sends immediate completions to the main loop
(#3233)
- trial can now load test methods from multiple classes, even if the
methods all happen to be inherited from the same base class.
(#3383)
- twisted.web.server will now produce a correct Allow header when a
particular render_FOO method is missing. (#3678)
- HEAD requests made to resources whose HEAD handling defaults to
calling render_GET now always receive a response with no body.
(#3684)
- trial now loads decorated test methods whether or not the decorator
preserves the original method name. (#3909)
- t.p.amp.AmpBox.serialize will now correctly consistently complain
when being fed Unicode. (#3931)
- twisted.internet.wxreactor now supports stopping more reliably.
(#3948)
- reactor.spawnProcess on Windows can now handle ASCII-encodable
Unicode strings in the system environment (#3964)
- When C-extensions are not complied for twisted, on python2.4, skip
a test in twisted.internet.test.test_process that may hang due to a
SIGCHLD related problem. Running 'python setup.py build_ext
--inplace' will compile the extension and cause the test to both
run and pass. (#4331)
- twisted.python.logfile.LogFile now raises a descriptive exception
when passed a log directoy which does not exist. (#4701)
- Fixed a bug where Inotify will fail to add a filepatch to watchlist
after it has been added/ignored previously. (#4708)
- IPv4Address and UNIXAddress object comparison operators fixed
(#4817)
- twisted.internet.task.Clock now sorts the list of pending calls
before and after processing each call (#4823)
- ConnectionLost is now in twisted.internet.error.__all__ instead of
twisted.words.protocols.jabber.xmlstream.__all__. (#4856)
- twisted.internet.process now detects the most appropriate mechanism
to use for detecting the open file descriptors on a system, getting
Twisted working on FreeBSD even when fdescfs is not mounted.
(#4881)
- twisted.words.services referenced nonexistent
twisted.words.protocols.irc.IRC_NOSUCHCHANNEL. This has been fixed.
Related code has also received test cases. (#4915)
Improved Documentation
----------------------
- The INSTALL file now lists all of Twisted's dependencies. (#967)
- Added the stopService and startService methods to all finger
example files. (#3375)
- Missing reactor.run() calls were added in the UDP and client howto
documents. (#3834)
- The maxRetries attribute of
twisted.internet.protocols.RetryingClientFactory now has API
documentation. (#4618)
- Lore docs pointed to a template that no longer existed, this has
been fixed. (#4682)
- The `servers` argument to `twisted.names.client.createResolver` now
has more complete API documentation. (#4713)
- Linked to the Twisted endpoints tutorial from the Twisted core
howto list. (#4773)
- The Endpoints howto now links to the API documentation. (#4774)
- The Quotes howto is now more clear in its PYTHONPATH setup
instructions. (#4785)
- The API documentation for DeferredList's fireOnOneCallback
parameter now gives the correct order of the elements of the result
tuple. (#4882)
Deprecations and Removals
-------------------------
- returning a value other than None from IProtocol.dataReceived was
deprecated (#2491)
- Deprecated the --extra option in trial. (#3372)
- twisted.protocols._c_urlarg has been removed. (#4162)
- Remove the --report-profile option for twistd, deprecated since
2007. (#4236)
- Deprecated twisted.persisted.journal. This library is no longer
maintained. (#4298)
- Removed twisted.protocols.loopback.loopback, which has been
deprecated since Twisted 2.5. (#4547)
- __getitem__ __getslice__ and __eq__ (tuple comparison, indexing)
removed from twisted.internet.address.IPv4Address and
twisted.internet.address.UNIXAddress classes UNIXAddress and
IPv4Address properties _bwHack are now deprecated in
twisted.internet.address (#4817)
- twisted.python.reflect.allYourBase is now no longer used, replaced
with inspect.getmro (#4928)
- allYourBase and accumulateBases are now deprecated in favor of
inspect.getmro. (#4946)
Other
-----
- #555, #1982, #2618, #2665, #2666, #4035, #4247, #4567, #4636,
#4717, #4733, #4750, #4821, #4842, #4846, #4853, #4857, #4858,
#4863, #4864, #4865, #4866, #4867, #4868, #4869, #4870, #4871,
#4872, #4873, #4874, #4875, #4876, #4877, #4878, #4879, #4905,
#4906, #4908, #4934, #4955, #4960
Twisted Conch 11.0.0 (2011-04-01)
=================================
Bugfixes
--------
- The transport for subsystem protocols now declares that it
implements ITransport and implements the getHost and getPeer
methods. (#2453)
- twisted.conch.ssh.transport.SSHTransportBase now responds to key
exchange messages at any time during a connection (instead of only
at connection setup). It also queues non-key exchange messages
sent during key exchange to avoid corrupting the connection state.
(#4395)
- Importing twisted.conch.ssh.common no longer breaks pow(base, exp[,
modulus]) when the gmpy package is installed and base is not an
integer. (#4803)
- twisted.conch.ls.lsLine now returns a time string which does not
consider the locale. (#4937)
Improved Documentation
----------------------
- Changed the man page for ckeygen to accurately reflect what it
does, and corrected its synposis so that a second "ckeygen" is not
a required part of the ckeygen command line. (#4738)
Other
-----
- #2112
Twisted Lore 11.0.0 (2011-04-01)
================================
No significant changes have been made for this release.
Twisted Mail 11.0.0 (2011-04-01)
================================
Features
--------
- The `twistd mail` command line now accepts endpoint descriptions
for POP3 and SMTP servers. (#4739)
- The twistd mail plugin now accepts new authentication options via
strcred.AuthOptionMixin. These include --auth, --auth-help, and
authentication type-specific help options. (#4740)
Bugfixes
--------
- twisted.mail.imap4.IMAP4Server now generates INTERNALDATE strings
which do not consider the locale. (#4937)
Improved Documentation
----------------------
- Added a simple SMTP example, showing how to use sendmail. (#4042)
Other
-----
- #4162
Twisted Names 11.0.0 (2011-04-01)
=================================
No significant changes have been made for this release.
Twisted News 11.0.0 (2011-04-01)
================================
No significant changes have been made for this release.
Other
-----
- #4580
Twisted Pair 11.0.0 (2011-04-01)
================================
No significant changes have been made for this release.
Twisted Runner 11.0.0 (2011-04-01)
==================================
No significant changes have been made for this release.
Twisted Web 11.0.0 (2011-04-01)
===============================
Features
--------
- twisted.web._newclient.HTTPParser (and therefore Agent) now handles
HTTP headers delimited by bare LF newlines. (#3833)
- twisted.web.client.downloadPage now accepts the `afterFoundGet`
parameter, with the same meaning as the `getPage` parameter of the
same name. (#4364)
- twisted.web.xmlrpc.Proxy constructor now takes additional 'timeout'
and 'reactor' arguments. The 'timeout' argument defaults to 30
seconds. (#4741)
- Twisted Web now has a templating system, twisted.web.template,
which is a direct, simplified derivative of Divmod Nevow. (#4939)
Bugfixes
--------
- HTTPPageGetter now adds the port to the host header if it is not
the default for that scheme. (#3857)
- twisted.web.http.Request.write now raises an exception if it is
called after response generation has already finished. (#4317)
- twisted.web.client.HTTPPageGetter and twisted.web.client.getPage
now no longer make two requests when using afterFoundGet. (#4760)
- twisted.web.twcgi no longer adds an extra "content-type" header to
CGI responses. (#4786)
- twisted.web will now properly specify an encoding (UTF-8) on error,
redirect, and directory listing pages, so that IE7 and previous
will not improperly guess the 'utf7' encoding in these cases.
Please note that Twisted still sets a *default* content-type of
'text/html', and you shouldn't rely on that: you should set the
encoding appropriately in your application. (#4900)
- twisted.web.http.Request.setHost now sets the port in the host
header if it is not the default. (#4918)
- default NOT_IMPLEMENTED and NOT_ALLOWED pages now quote the request
method and URI respectively, to protect against browsers which
don't quote those values for us. (#4978)
Improved Documentation
----------------------
- The XML-RPC howto now includes an example demonstrating how to
access the HTTP request object in a server-side XML-RPC method.
(#4732)
- The Twisted Web client howto now uses the correct, public name for
twisted.web.client.Response. (#4769)
- Some broken links were fixed, descriptions were updated, and new
API links were added in the Resource Templating documentation
(resource-templates.xhtml) (#4968)
Other
-----
- #2271, #2386, #4162, #4733, #4855, #4911, #4973
Twisted Words 11.0.0 (2011-04-01)
=================================
Features
--------
- twisted.words.protocols.irc.IRCClient now has an invite method.
(#4820)
Bugfixes
--------
- twisted.words.protocols.irc.IRCClient.say is once again able to
send messages when using the default value for the length limit
argument. (#4758)
- twisted.words.protocols.jabber.jstrports is once again able to
parse jstrport description strings. (#4771)
- twisted.words.protocols.msn.NotificationClient now calls the
loginFailure callback when it is unable to connect to the Passport
server due to missing SSL dependencies. (#4801)
- twisted.words.protocols.jabber.xmpp_stringprep now always uses
Unicode version 3.2 for stringprep normalization. (#4850)
Improved Documentation
----------------------
- Removed the non-working AIM bot example, depending on the obsolete
twisted.words.protocols.toc functionality. (#4007)
- Outdated GUI-related information was removed from the IM howto.
(#4054)
Deprecations and Removals
-------------------------
- Remove twisted.words.protocols.toc, that was largely non-working
and useless since AOL disabled TOC on their AIM network. (#4363)
Other
-----
- #4733, #4902
Twisted Core 10.2.0 (2010-11-29)
================================
Features
--------
- twisted.internet.cfreactor has been significantly improved. It now
runs, and passes, the test suite. Many, many bugs in it have been
fixed, including several segfaults, as it now uses PyObjC and
longer requires C code in Twisted. (#1833)
- twisted.protocols.ftp.FTPRealm now accepts a parameter to override
"/home" as the container for user directories. The new
BaseFTPRealm class in the same module also allows easy
implementation of custom user directory schemes. (#2179)
- twisted.python.filepath.FilePath and twisted.python.zippath.ZipPath
now have a descendant method to simplify code which calls the child
method repeatedly. (#3169)
- twisted.python.failure._Frame objects now support fake f_locals
attribute. (#4045)
- twisted.internet.endpoints now has 'serverFromString' and
'clientFromString' APIs for constructing endpoints from descriptive
strings. (#4473)
- The default trial reporter now combines reporting of tests with the
same result to shorten its summary output. (#4487)
- The new class twisted.protocols.ftp.SystemFTPRealm implements an
FTP realm which uses system accounts to select home directories.
(#4494)
- twisted.internet.reactor.spawnProcess now wastes less time trying
to close non-existent file descriptors on POSIX platforms. (#4522)
- twisted.internet.win32eventreactor now declares that it implements
a new twisted.internet.interfaces.IReactorWin32Events interface.
(#4523)
- twisted.application.service.IProcess now documents its attributes
using zope.interface.Attribute. (#4534)
- twisted.application.app.ReactorSelectionMixin now saves the value
of the --reactor option in the "reactor" key of the options object.
(#4563)
- twisted.internet.endpoints.serverFromString and clientFromString,
and therefore also twisted.application.strports.service, now
support plugins, so third parties may implement their own endpoint
types. (#4695)
Bugfixes
--------
- twisted.internet.defer.Deferred now handles chains iteratively
instead of recursively, preventing RuntimeError due to excessive
recursion when handling long Deferred chains. (#411)
- twisted.internet.cfreactor now works with trial. (#2556)
- twisted.enterprise.adbapi.ConnectionPool.close may now be called
even if the connection pool has not yet been started. This will
prevent the pool from ever starting. (#2680)
- twisted.protocols.basic.NetstringReceiver raises
NetstringParseErrors for invalid netstrings now. It handles empty
netstrings ("0:,") correctly, and the performance for receiving
netstrings has been improved. (#4378)
- reactor.listenUDP now returns an object which declares that it
implements IListeningPort. (#4462)
- twisted.python.randbytes no longer uses PyCrypto as a secure random
number source (since it is not one). (#4468)
- twisted.internet.main.installReactor now blocks installation of
another reactor when using python -O (#4476)
- twisted.python.deprecate.deprecatedModuleAttribute now emits only
one warning when used to deprecate a package attribute which is a
module. (#4492)
- The "brief" mode of twisted.python.failure.Failure.getTraceback now
handles exceptions raised by the underlying exception's __str__
method. (#4501)
- twisted.words.xish.domish now correctly parses XML with namespaces
which include whitespace. (#4503)
- twisted.names.authority.FileAuthority now generates correct
negative caching hints, marks its referral NS RRs as non-
authoritative, and correctly generates referrals for ALL_RECORDS
requests. (#4513)
- twisted.internet.test.reactormixins.ReactorBuilder's attribute
`requiredInterface` (which should an interface) is now
`requiredInterfaces` (a list of interfaces) as originally described
per the documentation. (#4527)
- twisted.python.zippath.ZipPath.__repr__ now correctly formats paths
with ".." in them (by including it). (#4535)
- twisted.names.hosts.searchFileFor has been fixed against
refcounting dependency. (#4540)
- The POSIX process transports now declare that they implement
IProcessTransport. (#4585)
- Twisted can now be built with the LLVM clang compiler, with
'CC=clang python setup.py build'. C code that caused errors with
this compiler has been removed. (#4652)
- trial now puts coverage data in the path specified by --temp-
directory, even if that option comes after --coverage on the
command line. (#4657)
- The unregisterProducer method of connection-oriented transports
will now cause the connection to be closed if there was a prior
call to loseConnection. (#4719)
- Fixed an issue where the new StreamServerEndpointService didn't log
listen errors. (This was a bug not present in any previous
releases, as this class is new.) (#4731)
Improved Documentation
----------------------
- The trial man page now documents the meaning of the final line of
output of the default reporter. (#1384)
- The API documentation for twisted.internet.defer.DeferredList now
goes into more depth about the effects each of the __init__ flags
that class accepts. (#3595)
- There is now narrative documentation for the endpoints APIs, in the
'endpoints' core howto, as well as modifications to the 'writing
clients' and 'writing servers' core howto documents to indicate
that endpoints are now the preferred style of listening and
connecting. (#4478)
- trial's man page now documents the --disablegc option in more
detail. (#4511)
- trial's coverage output format is now documented in the trial man
page. (#4512)
- Broken links and spelling errors in the finger tutorial are now
fixed. (#4516)
- twisted.internet.threads.blockingCallFromThread's docstring is now
explicit about Deferred support. (#4517)
- twisted.python.zippath.ZipPath.child now documents its handling of
".." (which is not special, making it different from
FilePath.child). (#4535)
- The API docs for twisted.internet.defer.Deferred now cover several
more of its (less interesting) attributes. (#4538)
- LineReceiver, NetstringReceiver, and IntNStringReceiver from
twisted.protocols.basic now have improved API documentation for
read callbacks and write methods. (#4542)
- Tidied up the Twisted Conch documentation for easier conversion.
(#4566)
- Use correct Twisted version for when cancellation was introduced in
the Deferred docstring. (#4614)
- The logging howto is now more clear about how the standard library
logging module and twisted.python.log can be integrated. (#4642)
- The finger tutorial still had references to .tap files. This
reference has now been removed. The documentation clarifies
"finger.tap" is a module and not a filename. (#4679)
- The finger tutorial had a broken link to the
twisted.application.service.Service class, which is now fixed.
Additionally, a minor typo ('verison') was fixed. (#4681)
- twisted.protocols.policies.TimeoutMixin now has clearer API
documentation. (#4684)
Deprecations and Removals
-------------------------
- twisted.internet.defer.Deferred.setTimeout has been removed, after
being deprecated since Twisted 2.0. (#1702)
- twisted.internet.interfaces.IReactorTime.cancelCallLater
(deprecated since 2007) and
twisted.internet.interfaces.base.ReactorBase.cancelCallLater
(deprecated since 2002) have been removed. (#4076)
- Removed twisted.cred.util.py, which has been deprecated since
Twisted 8.3. (#4107)
- twisted.python.text.docstringLStrip was deprecated. (#4328)
- The module attributes `LENGTH`, `DATA`, `COMMA`, and `NUMBER` of
twisted.protocols.basic (previously used by `NetstringReceiver`)
are now deprecated. (#4541)
- twisted.protocols.basic.SafeNetstringReceiver, deprecated since