forked from twisted/twisted
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
6683 lines (5305 loc) · 230 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 16.6.0 (2016-11-17)
================================
Features
--------
- The twist script can now be run by invoking python -m twisted.
(#8657)
- twisted.protocols.sip has been ported to Python 3. (#8669)
- twisted.persisted.dirdbm has been ported to Python 3. (#8888)
Bugfixes
--------
- twisted.internet.defer.Deferred now implements send, not __send__,
which means that it is now a conforming generator. (#8861)
- The IOCP reactor no longer transmits the contents of uninitialized
memory when writing large amounts of data. (#8870)
- Deferreds awaited/yielded from in a
twisted.internet.defer.ensureDeferred wrapped coroutine will now
properly raise exceptions. Additionally, it more closely models
asyncio.ensure_future and will pass through Deferreds. (#8878)
- Deferreds that are paused or chained on other Deferreds will now
return a result when yielded/awaited in a twisted.internet.defer
.ensureDeferred-wrapped coroutine, instead of returning the
Deferred it was chained to. (#8890)
Improved Documentation
----------------------
- twisted.test.proto_helpers is now explicitly covered by the
compatibility policy. (#8857)
Other
-----
- #8281, #8823, #8862
Twisted Conch 16.6.0 (2016-11-17)
=================================
Features
--------
- twisted.conch.ssh.keys supports ECDSA keys (#8798)
- scripts/ckeygen can now generate ecdsa keys. (#8828)
- ckeygen has been ported to Python 3 (#8855)
Deprecations and Removals
-------------------------
- twisted.conch.ssh no longer uses gmpy, if available. gmpy is
unmaintained, does not have binary wheels for any platforms, and an
alternative for higher performance is available in the form of
PyPy. (#8079)
Twisted Mail 16.6.0 (2016-11-17)
================================
No significant changes have been made for this release.
Twisted Names 16.6.0 (2016-11-17)
=================================
No significant changes have been made for this release.
Twisted News 16.6.0 (2016-11-17)
================================
No significant changes have been made for this release.
Twisted Pair 16.6.0 (2016-11-17)
================================
No significant changes have been made for this release.
Twisted Runner 16.6.0 (2016-11-17)
==================================
No significant changes have been made for this release.
Twisted Web 16.6.0 (2016-11-17)
===============================
Features
--------
- twisted.web.server.Site's HTTP/2 server support now emits vastly
fewer WINDOW_UPDATE frames than previously. (#8681)
Bugfixes
--------
- twisted.web.Agent now tolerates receiving unexpected status codes
in the 100 range by discarding them, which is what RFC 7231
recommends doing. (#8885)
- twisted.web._http.H2Stream's getHost and getPeer implementations
now actually return the host and peer instead of None. (#8893)
Twisted Words 16.6.0 (2016-11-17)
=================================
Features
--------
- twisted.words.protocols.irc has been ported to Python 3 (#6320)
Twisted Core 16.5.0 (2016-10-28)
================================
Features
--------
- Added twisted.internet.defer.Deferred.addTimeout method to enable
timeouts of deferreds. (#5786)
- Perspective Broker (the twisted.spread package) has been ported to
Python 3 (#7598)
- 'yield from' can now be used on Deferreds inside generators, when
the generator is wrapped with
twisted.internet.defer.ensureDeferred. (#8087)
- twisted.internet.asyncioreactor has been added, which is a Twisted
reactor on top of Python 3.4+'s native asyncio reactor. It can be
selected by passing "--reactor=asyncio" to Twisted tools (twistd,
Trial, etc) on platforms that support it (Python 3.4+). (#8367)
- twisted.python.zippath now works on Windows with Python 3. (#8747)
- twisted.internet.cfreactor is ported to Python 3 and supported on
2.7 and 3.5+. (#8838)
Bugfixes
--------
- twisted.internet.test.test_iocp and twisted.internet.test.test_tcp
have been fixed to work under Python 3 with the Windows IOCP
reactor (#8631)
- Arguments to processes on Windows are now passed mbcs-encoded
arguments. This prevents process-related tests from hanging on
Windows with Python 3. (#8735)
- Client and server TLS connections made via the client TLS endpoint
and the server SSL endpoint, as well as any other code that uses
twisted.internet.ssl.CertificateOptions, no longer accept 3DES-
based cipher suites by default, to defend against SWEET32. (#8781)
- twisted.logger.jsonFileLogObserver no longer emits non-JSON
tracebacks into its file; additionally,
twisted.logger.formatEventAsClassicLogText now includes traceback
information for the log event it formats. (#8858)
- twisted.python.version now exports a version of Incremental that is
16.10.1 or higher, making t.p.v.Version package name comparisons
case-insensitive. (#8863)
- twisted.python.reflect.safe_str encodes unicode as ascii with
backslashreplace error handling on Python 2. (#8864)
Improved Documentation
----------------------
- The twisted.internet.interfaces.IProtocol.dataReceived() method
takes one parameter of type bytes. This has been clarified in the
doc string. (#8763)
Deprecations and Removals
-------------------------
- twisted.python.constants is deprecated in preference to constantly
on PyPI, which is the same code rolled into its own package.
(#7351)
- twisted.python.dist3 has been made private API. (#8761)
- When the source code is checked out, bin/trial is no longer in the
tree. Developers working on the Twisted source code itself should
either (1) run all tests under tox, or (2) run 'python setup.py
develop' to install trial before running any tests. (#8765)
- twisted.protocols.gps, deprecated since Twisted 15.2, has been
removed. (#8787)
Other
-----
- #4926, #7868, #8209, #8214, #8271, #8308, #8324, #8348, #8367,
#8377, #8378, #8379, #8380, #8381, #8383, #8385, #8387, #8388,
#8389, #8391, #8392, #8393, #8394, #8397, #8406, #8410, #8412,
#8413, #8414, #8421, #8425, #8426, #8430, #8432, #8434, #8435,
#8437, #8438, #8439, #8444, #8451, #8452, #8453, #8454, #8456,
#8457, #8459, #8462, #8463, #8465, #8468, #8469, #8479, #8482,
#8483, #8486, #8490, #8493, #8494, #8496, #8497, #8498, #8499,
#8501, #8503, #8504, #8507, #8508, #8510, #8513, #8514, #8515,
#8516, #8517, #8520, #8521, #8522, #8523, #8524, #8527, #8528,
#8529, #8531, #8532, #8534, #8536, #8537, #8538, #8543, #8544,
#8548, #8552, #8553, #8554, #8555, #8557, #8560, #8563, #8565,
#8568, #8569, #8572, #8573, #8574, #8580, #8581, #8582, #8586,
#8589, #8590, #8592, #8593, #8598, #8603, #8604, #8606, #8609,
#8615, #8616, #8617, #8618, #8619, #8621, #8622, #8624, #8627,
#8628, #8630, #8632, #8634, #8640, #8644, #8645, #8646, #8647,
#8662, #8664, #8666, #8668, #8671, #8672, #8677, #8678, #8684,
#8691, #8702, #8705, #8706, #8716, #8719, #8724, #8725, #8727,
#8734, #8741, #8749, #8752, #8754, #8755, #8756, #8757, #8758,
#8767, #8773, #8776, #8779, #8780, #8785, #8788, #8789, #8790,
#8792, #8793, #8799, #8808, #8817, #8839, #8845, #8852
Twisted Conch 16.5.0 (2016-10-28)
=================================
Features
--------
- SSH key fingerprints can be generated using base64 encoded SHA256
hashes. (#8701)
Bugfixes
--------
- SSHUserAuthServer does not crash on keyboard interactive
authentication when running on Python 3 (#8771)
- twisted.conch.insults.insults.ServerProtocol no longer corrupts a
client's display when attempting to set the cursor position, and
its ECMA-48 terminal manipulation works on Python 3. (#8803)
Other
-----
- #8495, #8511, #8715, #8851
Twisted Mail 16.5.0 (2016-10-28)
================================
Deprecations and Removals
-------------------------
- twisted.mail.protocols.DomainSMTP and DomainESMTP, deprecated since
2003, have been removed. (#8772)
Other
-----
- #6289, #8525, #8786, #8830
Twisted Names 16.5.0 (2016-10-28)
=================================
No significant changes have been made for this release.
Other
-----
- #8625, #8663
Twisted News 16.5.0 (2016-10-28)
================================
No significant changes have been made for this release.
Twisted Pair 16.5.0 (2016-10-28)
================================
Features
--------
- twisted.pair has been ported to Python 3 (#8744)
Twisted Runner 16.5.0 (2016-10-28)
==================================
No significant changes have been made for this release.
Twisted Web 16.5.0 (2016-10-28)
===============================
Bugfixes
--------
- twisted.web.client.HTTPConnectionPool and anything that uses it,
like twisted.web.client.Agent, have had their logic for resuming
transports changed so that transports are resumed after state
machine transitions are complete, rather than before. This change
allows the HTTP client infrastructure to work with alternative HTTP
implementations such as HTTP/2 which may be able to deliver a
complete response synchronously when producing is resumed. (#8720)
Other
-----
- #8519, #8530, #8629, #8707, #8777, #8778, #8844
Twisted Words 16.5.0 (2016-10-28)
=================================
No significant changes have been made for this release.
Other
-----
- #8360, #8460
Twisted Core 16.4.1 (2016-09-07)
================================
Features
--------
- Client and server TLS connections made via the client TLS endpoint
and the server SSL endpoint, as well as any other code that uses
twisted.internet.ssl.CertificateOptions, now support ChaCha20
ciphers when available from the OpenSSL on the system. (#8760)
Bugfixes
--------
- Client and server TLS connections made via the client TLS endpoint
and the server SSL endpoint, as well as any other code that uses
twisted.internet.ssl.CertificateOptions, no longer accept 3DES-
based cipher suites by default, to defend against SWEET32. (#8781)
Twisted Conch 16.4.1 (2016-09-07)
=================================
No significant changes have been made for this release.
Twisted Mail 16.4.1 (2016-09-07)
================================
No significant changes have been made for this release.
Twisted Names 16.4.1 (2016-09-07)
=================================
No significant changes have been made for this release.
Twisted News 16.4.1 (2016-09-07)
================================
No significant changes have been made for this release.
Twisted Pair 16.4.1 (2016-09-07)
================================
No significant changes have been made for this release.
Twisted Runner 16.4.1 (2016-09-07)
==================================
No significant changes have been made for this release.
Twisted Web 16.4.1 (2016-09-07)
===============================
No significant changes have been made for this release.
Twisted Words 16.4.1 (2016-09-07)
=================================
No significant changes have been made for this release.
Twisted Core 16.4.0 (2016-08-25)
================================
Features
--------
- Add twisted.application.twist, meant to eventually replace twistd
with a simpler interface. Add twisted.application.runner API,
currently private, which twist is built on. (#5705)
- The new interface IHandshakeListener that can be implemented by any
Protocol provides a callback that is called when the TLS handshake
has been completed, allowing Protocols to make decisions about the
TLS configuration before application data is sent. (#6024)
- twisted.python.syslog has been ported to Python 3. (#7957)
- twisted.internet.defer.ensureDeferred has been added, similar to
asyncio's ensure_future. Wrapping a coroutine (the result of a
function defined using async def, available only on Python 3.5+)
with it allows you to use the "await" keyword with Deferreds inside
the coroutine, similar to "yield" when using inlineCallbacks.
(#8088)
- twisted.internet.inotify have been ported to Python 3 (#8211)
- twisted.enterprise has been ported to Python 3. The third-party
pysqlite2 package has not been ported to Python 3, so any database
connector based on pysqlite2 cannot be used. Instead the sqlite3
module included with Python 3 should be used. (#8303)
- Scripts such as cftp, ckeygen, conch, mailmail, pyhtmlizer,
tkconch, twistd and trial have been updated to be setuptools
console scripts. (#8491)
- twisted.pair.raw and twisted.pair.rawudp have been ported to Python
3 (#8545)
- twisted.internet.baseprocess has been ported to Python 3. (#8546)
- twisted.python.dist has been ported to Python 3 (#8556)
- twisted.internet.interfaces.IOpenSSLContextFactory has been added,
which defines the interface provided both by the old-style
twisted.internet.ssl.ContextFactory class and the newer
twisted.interface.ssl.CertificateOptions class. This is a precursor
to formally deprecating the former class in favour of the latter.
(#8597)
- twisted.python.zipstream has been ported to Python 3 (#8607)
- Zip file entries returned by ChunkingZipFile.readfile() are now
context managers. (#8641)
- twisted.protocols.socks has been ported to Python 3 (#8665)
- twisted.spread.banana has been ported to Python 3 (#8667)
- Trial can now be invoked via "python -m twisted.trial". (#8712)
- twisted.protocols.postfix has been ported to Python 3 (#8713)
- twisted.protocols.wire and twisted.protocols.portforwarding have
been ported to Python 3 (#8717)
- twisted.protocols.stateful has been ported to Python 3 (#8718)
- twisted.protocols.memcache is now compatible with Python 3. (#8726)
- twisted.protocols.dict has been ported to Python 3 (#8732)
Bugfixes
--------
- pip install -e ".[dev]" now works on Python 3, but it will not
install twistedchecker or pydoctor, which have not yet been ported.
(#7807)
- twistd can now properly daemonize on Linux/Unix when run under
Python3 and will not hang indefinitely. (#8155)
- tox can now be used to run Twisted's tests on Windows (#8578)
- twisted.python.filepath.setContent() and
twisted.python.filepath.moveTo() now work on Windows with Python 3
(#8610)
- twisted.internet.win32eventreactor works on Python 3 in Windows
(#8626)
- The TLS payload buffer size was reduced in
twisted.protocols.tls.TLSMemoryBIOProtocol. This fixes writing of
very long strings using the TLSv1_1 method from the OpenSSL
library. (#8693)
- twisted.logger._flatten.flattenEvent() now does not crash if passed
a unicode string. (#8699)
- twisted.application.strports.service (and thus twistd) no longer
swallow asynchronous exceptions from IStreamServerEndpoint.listen.
(#8710)
- _twistd_unix now reports the name and encoded message of an
exception raised during daemonization on Python 2 and 3. (#8731)
- twisted.protocols.amp now handles floats on Python 3. Previously,
sending a float would raise a ValueError. (#8746)
Improved Documentation
----------------------
- Some broken links to xprogramming in the unit test documentation
have been fixed. (#8579)
- The Twisted Tutorial "The Evolution of Finger" has been updated to
use endpoints throughout. (#8588)
- Updated the mail examples to use endpoints and better TLS. (#8595)
- Changed the Twisted Web howto to use endpoints and modern TLS.
(#8596)
- Updated bug report URL in man pages. (#8600)
- In twisted.internet.udp.Port, write() takes a parameter of type
bytes. This is clarified in the docstring. (#8635)
- twisted.internet.interfaces.ITransport.write() and
twisted.internet.interfaces.ITransport.writeSequence() take bytes
parameters. (#8636)
- twisted.python.filepath.AbstractFilePath.getContent() returns
bytes. The docstring was updated to clarify this. (#8637)
- Updated release notes to reflect that 15.4 is the last version that
supported Python 2.6, not 15.5. (#8651)
- A missing space in defer.rst resulted in badly rendered output. The
space was added. (#8723)
Deprecations and Removals
-------------------------
- Dropped support for pyOpenSSL versions less than 16.0.0. (#8441)
Other
-----
- #4926, #7868, #8209, #8271, #8276, #8308, #8324, #8348, #8367,
#8377, #8378, #8379, #8380, #8381, #8383, #8385, #8386, #8387,
#8388, #8389, #8391, #8392, #8393, #8394, #8397, #8406, #8410,
#8412, #8413, #8414, #8421, #8425, #8426, #8428, #8429, #8430,
#8432, #8434, #8435, #8437, #8438, #8439, #8444, #8451, #8452,
#8453, #8454, #8456, #8457, #8459, #8462, #8463, #8465, #8468,
#8469, #8479, #8482, #8483, #8486, #8490, #8493, #8494, #8496,
#8497, #8498, #8499, #8501, #8503, #8504, #8507, #8508, #8510,
#8513, #8514, #8515, #8516, #8517, #8520, #8521, #8522, #8523,
#8524, #8527, #8528, #8529, #8531, #8532, #8534, #8536, #8537,
#8538, #8540, #8541, #8543, #8548, #8552, #8553, #8554, #8555,
#8557, #8560, #8563, #8565, #8568, #8569, #8572, #8573, #8574,
#8577, #8580, #8581, #8582, #8584, #8586, #8589, #8590, #8592,
#8593, #8598, #8603, #8604, #8606, #8609, #8615, #8616, #8617,
#8618, #8619, #8621, #8624, #8627, #8628, #8630, #8632, #8634,
#8640, #8644, #8645, #8646, #8647, #8648, #8662, #8664, #8666,
#8668, #8671, #8672, #8684, #8691, #8702, #8703, #8705, #8706,
#8716, #8719, #8724, #8725, #8727, #8733, #8734, #8741
Twisted Conch 16.4.0 (2016-08-25)
=================================
Features
--------
- twisted.conch.ssh.address is now ported to Python 3. (#8495)
- twisted.conch.ssh.transport is now ported to Python 3. (#8638)
- twisted.conch.ssh.channel is now ported to Python 3. (#8649)
- twisted.conch.ssh.userauth is now ported to Python 3. (#8654)
- twisted.conch.ssh.connection is now ported to Python 3. (#8660)
- twisted.conch.ssh.session is now ported to Python 3. (#8661)
- twisted.conch.ssh.filetransfer is now ported to Python 3. (#8675)
- twisted.conch.ssh.agent is now ported to Python 3. (#8686)
- twisted.conch.ssh is now ported to Python 3. (#8690)
- twisted.conch.openssh_compat.* is now ported to Python 3. (#8694)
- twisted.conch.client.knownhosts is now ported to Python 3. (#8697)
- twisted.conch.insults.insults has been ported to Python 3 (#8698)
- twisted.conch.client.default is now ported to Python 3. (#8700)
- twisted.conch.recvline has been ported to Python 3 (#8709)
- twisted.conch.endpoints is now ported to Python 3. (#8722)
Bugfixes
--------
- The SSHService is now a bytestring (#8653)
- The name field in SShChannel is now a bytestring (#8683)
Improved Documentation
----------------------
- Fixed syntax errors in cftp man page. (#8601)
Other
-----
- #8495, #8511, #8715
Twisted Mail 16.4.0 (2016-08-25)
================================
Deprecations and Removals
-------------------------
- twisted.mail.mail.DomainWithDefaultDict.has_key is now deprecated
in favor of the `in` keyword. (#8361)
- twisted.mail.protocols.SSLContextFactory, deprecated since Twisted
12.0, has been removed. (#8591)
Other
-----
- #8525
Twisted Names 16.4.0 (2016-08-25)
=================================
Features
--------
- twisted.names.srvconnect is now ported to Python 3. (#8262)
- twisted.names.resolve and twisted.names.tap have been ported to
Python 3 (#8550)
Other
-----
- #8625, #8663
Twisted News 16.4.0 (2016-08-25)
================================
No significant changes have been made for this release.
Twisted Pair 16.4.0 (2016-08-25)
================================
No significant changes have been made for this release.
Twisted Runner 16.4.0 (2016-08-25)
==================================
Features
--------
- twisted.runner has been ported to Python 3. (#8739)
Twisted Web 16.4.0 (2016-08-25)
===============================
Features
--------
- Twisted web HTTP/2 servers now time out HTTP/2 connections in the
same manner as HTTP/1.1 connections. (#8480)
Bugfixes
--------
- A bug in twisted.web.server.Site.makeSession which may lead to
predictable session IDs was fixed. Session IDs are now generated
securely using `os.urandom`. (#3460)
- twisted.web.server.Request.getSession will now, for a request sent
over HTTPS, set a "Secure" cookie, preventing the secure session
from being sent over plain-text HTTP. (#3461)
- If called multiple times, twisted.web.http.Request.setLastModified
now correctly observes the greatest supplied value. (#3807)
- The HTTP server now correctly times connections out. (broken in
16.2) (#8481)
- Twisted's HTTP/2 support no longer throws priority exceptions when
WINDOW_UDPATE frames are received after a response has been
completed. (#8558)
- twisted.web.twcgi.CGIScript will now not pass the "Proxy" header to
CGI scripts, as a mitigation to CVE-2016-1000111. (#8623)
- Twisted Web's HTTP/2 server can now tolerate streams being reset by
the client midway through a data upload without throwing
exceptions. (#8682)
- twisted.web.http.Request now swallows header writes on reset HTTP/2
streams, rather than erroring out. (#8685)
- twisted.web's HTTP/2 server now tolerates receiving WINDOW_UPDATE
frames for streams for which it has no outstanding data to send.
(#8695)
- twisted.web.http.HTTPChannel now resumes producing on finished,
non-persistent connections. This prevents HTTP/1 servers using TLS
from leaking a CLOSE_WAIT socket per request. (#8766)
Other
-----
- #8519, #8530, #8629, #8707
Twisted Words 16.4.0 (2016-08-25)
=================================
Features
--------
- twisted.words.xish is now ported to Python 3 (#8337)
- twisted.words.protocols.jabber is now ported to Python 3 (#8423)
- twisted.words.protocols.irc.ERR_TOOMANYMATCHES was introduced
according to the RFC 2812 errata. (#8585)
Bugfixes
--------
- twisted.words.protocols.irc.RPL_ADMINLOC was removed and replaced
with twisted.words.protocols.irc.RPL_ADMINLOC1 and
twisted.words.protocols.irc.RPL_ADMINLOC2 to match the admin
commands defined in RFC 2812. (#8585)
- twisted.words.protocols.jabber.sasl_mechanisms has been fixed for
Python 3.3 (#8738)
Improved Documentation
----------------------
- The XMPP client example now works on Python 3. (#8509)
Other
-----
- #8360, #8460
Twisted Core 16.3.0 (2016-07-05)
================================
Features
--------
- Defined a new interface, IProtocolNegotiationFactory, that can be
implemented by IOpenSSLClientConnectionCreator or
IOpenSSLServerConnectionCreator factories to allow them to offer
protocols for negotiation using ALPN or NPN during the TLS
handshake. (#8188)
- twisted.trial.unittest.SynchronousTestCase.assertRegex is now
available to provide Python 2.7 and Python 3 compatibility. (#8372)
Improved Documentation
----------------------
- Development documentation has been updated to refer to Git instead
of SVN. (#8335)
Deprecations and Removals
-------------------------
- twisted.python.reflect's deprecated functions have been removed.
This includes funcinfo (deprecated since Twisted 2.5), allYourBase
and accumulateBases (deprecated since Twisted 11.0), getcurrent and
isinst (deprecated since Twisted 14.0). (#8293)
- twisted.scripts.tap2deb and twisted.scripts.tap2rpm (along with the
associated executables), deprecated since Twisted 15.2, have now
been removed. (#8326)
- twisted.spread.ui has been removed. (#8329)
- twisted.manhole -- not to be confused with manhole in Conch -- has
been removed. This includes the semi-functional Glade reactor, the
manhole application, and the manhole-old twistd plugin. (#8330)
- twisted.protocols.sip.DigestAuthorizer, BasicAuthorizer, and
related functions have been removed. (#8445)
Other
-----
- #7229, #7826, #8290, #8323, #8331, #8336, #8341, #8344, #8345,
#8347, #8351, #8363, #8365, #8366, #8374, #8382, #8384, #8390,
#8395, #8396, #8398, #8399, #8400, #8401, #8403, #8404, #8405,
#8407, #8408, #8409, #8415, #8416, #8417, #8418, #8419, #8420,
#8427, #8433, #8436, #8461
Twisted Conch 16.3.0 (2016-07-05)
=================================
No significant changes have been made for this release.
Twisted Mail 16.3.0 (2016-07-05)
================================
No significant changes have been made for this release.
Twisted Names 16.3.0 (2016-07-05)
=================================
Bugfixes
--------
- twisted.names.client.Resolver as well as all resolvers inheriting
from twisted.names.common.ResolverBase can now understand DNS
answers that come back in a different case than the query. Example:
querying for www.google.com and the answer comes back with an A
record for www.google.COM will now work. (#8343)
Twisted News 16.3.0 (2016-07-05)
================================
No significant changes have been made for this release.
Twisted Pair 16.3.0 (2016-07-05)
================================
No significant changes have been made for this release.
Twisted Runner 16.3.0 (2016-07-05)
==================================
No significant changes have been made for this release.
Twisted Web 16.3.0 (2016-07-05)
===============================
Features
--------
- twisted.web.http.HTTPChannel now implements ITransport. Along with
this change, twisted.web.http.Request now directs all its writes to
the HTTPChannel, rather than to the backing transport. This change
is required for future HTTP/2 work. (#8191)
- twisted.web.http.HTTPChannel now has a HTTP/2 implementation which
will be used if the transport has negotiated using it through
ALPN/NPN (see #8188). (#8194)
Bugfixes
--------
- twisted.web.client.Agent and twisted.web.client.ProxyAgent now add
brackets to IPv6 literal addresses in the host header they send.
(#8369)
- The HTTP server now correctly times connections out. (broken in
16.2) (#8481)
Deprecations and Removals
-------------------------
- twisted.web would previously dispatch pipelined requests
simultaneously and queue the responses. This behaviour did not
enforce any of the guarantees required by RFC 7230 or make it
possible for users to enforce those requirements. For this reason,
the parallel dispatch of requests has been removed. Pipelined
requests are now processed serially. (#8320)
Twisted Words 16.3.0 (2016-07-05)
=================================
No significant changes have been made for this release.
Twisted Core 16.2.0 (2016-05-18)
================================
Features
--------
- twisted.protocols.haproxy.proxyEndpoint provides an endpoint that
wraps any other stream server endpoint with the PROXY protocol that
retains information about the original client connection handled by
the proxy; this wrapper is also exposed via the string description
prefix 'haproxy'; for example 'twistd web --port haproxy:tcp:8765'.
(#8203)
- twisted.application.app.AppLogger (used by twistd) now uses the new
logging system. (#8235)
Bugfixes
--------
- twisted.application-using applications (trial, twistd, etc) now
work with the --reactor option on Python 3. (#8299)
- Failures are now logged by STDLibLogObserver. (#8316)
Improved Documentation
----------------------
- Deprecation documentation was extended to include a quick check
list for developers. (#5645)
- The Twisted Deprecation Policy is now documented in the Twisted
Development Policy. (#8082)
- The documentation examples for UDP now work on Python 3. (#8280)
Deprecations and Removals
-------------------------
- Passing a factory that produces log observers that do not implement
twisted.logger.ILogObserver or twisted.python.log.ILogObserver to
twisted.application.app.AppLogger has been deprecated. This is
primarily used by twistd's --logger option. Please use factories
that produce log observers implementing twisted.logger.ILogObserver
or the legacy twisted.python.log.ILogObserver. (#8235)
- twisted.internet.qtreactor, a stub that imported the external
qtreactor, has been removed. (#8288)
Other
-----
- #6266, #8231, #8244, #8256, #8266, #8269, #8275, #8277, #8286,
#8291, #8292, #8304, #8315
Twisted Conch 16.2.0 (2016-05-18)
=================================
No significant changes have been made for this release.
Other
-----
- #8279
Twisted Mail 16.2.0 (2016-05-18)
================================
No significant changes have been made for this release.
Twisted Names 16.2.0 (2016-05-18)
=================================
Features
--------
- twisted.names.server is now ported to Python 3 (#8195)
- twisted.names.authority and twisted.names.secondary have been
ported to Python 3 (#8259)
Twisted News 16.2.0 (2016-05-18)
================================
No significant changes have been made for this release.
Twisted Pair 16.2.0 (2016-05-18)
================================
No significant changes have been made for this release.
Twisted Runner 16.2.0 (2016-05-18)
==================================
Deprecations and Removals
-------------------------
- twisted.runner.inetdtap and twisted.runner.inetdconf RPC support
was deprecated as it was broken for a long time. (#8123)
Twisted Web 16.2.0 (2016-05-18)
===============================
Features
--------
- twisted.web.http.HTTPFactory's constructor now accepts a reactor
argument, for explicit reactor selection. (#8246)
Bugfixes
--------
- twisted.web.http.HTTPChannel.headerReceived now respond with 400
and disconnect when a malformed header is received. (#8101)
- twisted.web.http.Request once again has a reference to the
HTTPFactory which created it, the absence of which was preventing
log messages from being created. (#8272)
- twisted.web.http.HTTPChannel no longer processes requests that have
invalid headers as the final header in their header block. (#8317)
- twisted.web.client.HTTPClientFactory (and the getPage and
downloadPage APIs) now timeouts correctly on TLS connections where
the remote party is not responding on the connection. (#8318)
Other
-----
- #8300
Twisted Words 16.2.0 (2016-05-18)
=================================
Deprecations and Removals
-------------------------
- twisted.words.protocols.msn, deprecated since Twisted 15.1, has
been removed. (#8253)
- twisted.words.protocols.oscar is deprecated. (#8260)
Twisted Core 16.1.1 (2016-04-08)
================================
No significant changes have been made for this release.
Twisted Conch 16.1.1 (2016-04-08)
=================================
No significant changes have been made for this release.
Twisted Mail 16.1.1 (2016-04-08)
================================
No significant changes have been made for this release.
Twisted Names 16.1.1 (2016-04-08)
=================================
No significant changes have been made for this release.
Twisted News 16.1.1 (2016-04-08)
================================
No significant changes have been made for this release.
Twisted Pair 16.1.1 (2016-04-08)
================================
No significant changes have been made for this release.
Twisted Runner 16.1.1 (2016-04-08)
==================================
No significant changes have been made for this release.
Twisted Web 16.1.1 (2016-04-08)
===============================
Bugfixes
--------
- twisted.web.http.Request once again has a reference to the
HTTPFactory which created it, the absence of which was preventing
log messages from being created. (#8272)
Twisted Words 16.1.1 (2016-04-08)
=================================
No significant changes have been made for this release.
Twisted Core 16.1.0 (2016-04-04)
================================
Features
--------
- twisted.application.internet.ClientService, a service that
maintains a persistent outgoing endpoint-based connection; a
replacement for ReconnectingClientFactory that uses modern APIs.
(#4735)
- Twisted now uses setuptools' sdist to build tarballs. (#7985)
Bugfixes
--------
- Twisted is now compatible with OpenSSL 1.0.2f. (#8189)
Other
-----
- #4543, #8124, #8193, #8210, #8220, #8223, #8226, #8242
Twisted Conch 16.1.0 (2016-04-04)
=================================
Features
--------
- twisted.conch.checkers is now ported to Python 3. (#8225)
- twisted.conch.telnet is now ported to Python 3. (#8228)
- twisted.conch.manhole_ssh.ConchFactory (used by `twistd manhole`)
no longer uses a hardcoded SSH server key, and will generate a
persistent one, saving it in your user appdir. If you use
ConchFactory, you will now need to provide your own SSH server key.
(#8229)
Other
-----
- #8237, #8240
Twisted Mail 16.1.0 (2016-04-04)
================================
No significant changes have been made for this release.
Twisted Names 16.1.0 (2016-04-04)
=================================
No significant changes have been made for this release.
Twisted News 16.1.0 (2016-04-04)
================================
No significant changes have been made for this release.
Twisted Pair 16.1.0 (2016-04-04)
================================
No significant changes have been made for this release.