DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (3bdb54e31023)

VCS Links

Line Code
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 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161
Ticket numbers in this file can be looked up by visiting
http://twistedmatrix.com/trac/ticket/<number>

Twisted Core 9.0.0 (2009-11-24)
===============================

Features
--------
 - LineReceiver.clearLineBuffer now returns the bytes that it cleared (#3573)
 - twisted.protocols.amp now raises InvalidSignature when bad arguments are
   passed to Command.makeArguments (#2808)
 - IArgumentType was added to represent an existing but previously unspecified
   interface in amp (#3468)
 - Obscure python tricks have been removed from the finger tutorials (#2110)
 - The digest auth implementations in twisted.web and twisted.protocolos.sip
   have been merged together in twisted.cred (#3575)
 - FilePath and ZipPath now has a parents() method which iterates up all of its
   parents (#3588)
 - reactors which support threads now have a getThreadPool method (#3591)
 - The MemCache client implementation now allows arguments to the "stats"
   command (#3661)
 - The MemCache client now has a getMultiple method which allows fetching of
   multiple values (#3171)
 - twisted.spread.jelly can now unserialize some new-style classes (#2950)
 - twisted.protocols.loopback.loopbackAsync now accepts a parameter to control
   the data passed between client and server (#3820)
 - The IOCP reactor now supports SSL (#593)
 - Tasks in a twisted.internet.task.Cooperator can now be paused, resumed, and
   cancelled (#2712)
 - AmpList arguments can now be made optional (#3891)
 - The syslog output observer now supports log levels (#3300)
 - LoopingCall now supports reporting the number of intervals missed if it
   isn't able to schedule calls fast enough (#3671)

Fixes
-----
 - The deprecated md5 and sha modules are no longer used if the stdlib hashlib
   module is available (#2763)
 - An obscure deadlock involving waking up the reactor within signal handlers
   in particular threads was fixed (#1997)
 - The passivePortRange attribute of FTPFactory is now honored (#3593)
 - TestCase.flushWarnings now flushes warnings even if they were produced by a
   file that was renamed since it was byte compiled (#3598)
 - Some internal file descriptors are now marked as close-on-exec, so these will
   no longer be leaked to child processes (#3576)
 - twisted.python.zipstream now correctly extracts the first file in a directory
   as a file, and not an empty directory (#3625)
 - proxyForInterface now returns classes which correctly *implement* interfaces
   rather than *providing* them (#3646)
 - SIP Via header parameters should now be correctly generated (#2194)
 - The Deferred returned by stopListening would sometimes previously never fire
   if an exception was raised by the underlying file descriptor's connectionLost
   method. Now the Deferred will fire with a failure (#3654)
 - The command-line tool "manhole" should now work with newer versions of pygtk
   (#2464)
 - When a DefaultOpenSSLContextFactory is instantiated with invalid parameters,
   it will now raise an exception immediately instead of waiting for the first
   connection (#3700)
 - Twisted command line scripts should now work when installed in a virtualenv
   (#3750)
 - Trial will no longer delete temp directories which it did not create (#3481)
 - Processes started on Windows should now be cleaned up properly in more cases
   (#3893)
 - Certain misbehaving importers will no longer cause twisted.python.modules
   (and thus trial) to raise an exception, but rather issue a warning (#3913)
 - MemCache client protocol methods will now fail when the transport has been
   disconnected (#3643)
 - In the AMP method callRemoteString, the requiresAnswer parameter is now
   honored (#3999)
 - Spawning a "script" (a file which starts with a #! line) on Windows running
   Python 2.6 will now work instead of raising an exception about file mode
   "ru" (#3567)
 - FilePath's walk method now calls its "descend" parameter even on the first
   level of children, instead of only on grandchildren. This allows for better
   symlink cycle detection (#3911)
 - Attempting to write unicode data to process pipes on Windows will no longer
   result in arbitrarily encoded messages being written to the pipe, but instead
   will immediately raise an error (#3930)
 - The various twisted command line utilities will no longer print
   ModuleType.__doc__ when Twisted was installed with setuptools (#4030)
 - A Failure object will now be passed to connectionLost on stdio connections
   on Windows, instead of an Exception object (#3922)

Deprecations and Removals
-------------------------
 - twisted.persisted.marmalade was deleted after a long period of deprecation
   (#876)
 - Some remaining references to the long-gone plugins.tml system were removed
   (#3246)
 - SSLv2 is now disabled by default, but it can be re-enabled explicitly
   (#3330)
 - twisted.python.plugin has been removed (#1911)
 - reactor.run will now raise a ReactorAlreadyRunning exception when it is
   called reentrantly instead of warning a DeprecationWarning (#1785)
 - twisted.spread.refpath is now deprecated because it is unmaintained,
   untested, and has dubious value (#3723)
 - The unused --quiet flag has been removed from the twistd command (#3003)

Other
-----
 - #3545, #3490, #3544, #3537, #3455, #3315, #2281, #3564, #3570, #3571, #3486,
   #3241, #3599, #3220, #1522, #3611, #3596, #3606, #3609, #3602, #3637, #3647,
   #3632, #3675, #3673, #3686, #2217, #3685, #3688, #2456, #506, #3635, #2153,
   #3581, #3708, #3714, #3717, #3698, #3747, #3704, #3707, #3713, #3720, #3692,
   #3376, #3652, #3695, #3735, #3786, #3783, #3699, #3340, #3810, #3822, #3817,
   #3791, #3859, #2459, #3677, #3883, #3894, #3861, #3822, #3852, #3875, #2722,
   #3768, #3914, #3885, #2719, #3905, #3942, #2820, #3990, #3954, #1627, #2326,
   #2972, #3253, #3937, #4058, #1200, #3639, #4079, #4063, #4050


Twisted Conch 9.0.0 (2009-11-24)
================================

Fixes
-----
 - The SSH key parser has been removed and conch now uses pyASN1 to parse keys.
   This should fix a number of cases where parsing a key would fail, but it now
   requires users to have pyASN1 installed (#3391)
 - The time field on SFTP file listings should now be correct (#3503)
 - The day field on SFTP file listings should now be correct on Windows (#3503)
 - The "cftp" sftp client now truncates files it is uploading over (#2519)
 - The telnet server protocol can now properly respond to subnegotiation
   requests (#3655)
 - Tests and factoring of the SSHv2 server implementation are now much better
   (#2682)
 - The SSHv2 server now sends "exit-signal" messages to the client, instead of
   raising an exception, when a process dies due to a signal (#2687)
 - cftp's client-side "exec" command now uses /bin/sh if the current user has
   no shell (#3914)

Deprecations and Removals
-------------------------
 - The buggy SSH connection sharing feature of the SSHv2 client was removed
   (#3498)
 - Use of strings and PyCrypto objects to represent keys is deprecated in favor
   of using Conch Key objects (#2682)

Other
-----
 - #3548, #3537, #3551, #3220, #3568, #3689, #3709, #3809, #2763, #3540, #3750,
   #3897, #3813, #3871, #3916, #4047, #3940, #4050


Twisted Lore 9.0.0 (2009-11-24)
===============================

Features
--------
 - Python source listings now include line numbers (#3486)

Fixes
-----
 - Lore now uses minidom instead of Twisted's microdom, which incidentally
   fixes some Lore bugs such as throwing away certain whitespace
   (#3560, #414, #3619)
 - Lore's "lint" command should no longer break on documents with links in them
   (#4051, #4115)

Deprecations and Removals
-------------------------
 - Lore no longer uses the ancient "tml" Twisted plugin system (#1911)

Other
-----
 - #3565, #3246, #3540, #3750, #4050


Twisted Mail 9.0.0 (2009-11-24)
===============================

Features
--------
 - maildir.StringListMailbox, an in-memory maildir mailbox, now supports
   deletion, undeletion, and syncing (#3547)
 - SMTPClient's callbacks are now more completely documented (#684)

Fixes
-----
 - Parse UNSEEN response data and include it in the result of
   IMAP4Client.examine (#3550)
 - The IMAP4 client now delivers more unsolicited server responses to callbacks
   rather than ignoring them, and also won't ignore solicited responses that
   arrive on the same line as an unsolicited one (#1105)
 - Several bugs in the SMTP client's idle timeout support were fixed (#3641,
   #1219)
 - A case where the SMTP client could skip some recipients when retrying
   delivery has been fixed (#3638)
 - Errors during certain data transfers will no longer be swallowed. They will
   now bubble up to the higher-level API (such as the sendmail function) (#3642)
 - Escape sequences inside quoted strings in IMAP4 should now be parsed
   correctly by the IMAP4 server protocol (#3659)
 - The "imap4-utf-7" codec that is registered by twisted.mail.imap4 had a number
   of fixes that allow it to work better with the Python codecs system, and to
   actually work (#3663)
 - The Maildir implementation now ensures time-based ordering of filenames so
   that the lexical sorting of messages matches the order in which they were
   received (#3812)
 - SASL PLAIN credentials generated by the IMAP4 protocol implementations
   (client and server) should now be RFC-compliant (#3939)
 - Searching for a set of sequences using the IMAP4 "SEARCH" command should 
   now work on the IMAP4 server protocol implementation. This at least improves
   support for the Pine mail client (#1977)

Other
-----
 - #2763, #3647, #3750, #3819, #3540, #3846, #2023, #4050


Twisted Names 9.0.0 (2009-11-24)
================================

Deprecations and Removals
-------------------------
 - client.ThreadedResolver is deprecated in favor of
   twisted.internet.base.ThreadedResolver (#3710)

Other
-----
 - #3540, #3560, #3712, #3750, #3990


Twisted News 9.0.0 (2009-11-24)
===============================

Other
-----
 - #2763, #3540


Twisted Pair 9.0.0 (2009-11-24)
===============================

Other
-----
 - #3540, #4050


Twisted Runner 9.0.0 (2009-11-24)
=================================

Features
--------
 - procmon.ProcessMonitor.addProcess now accepts an 'env' parameter which allows
   users to specify the environment in which a process will be run (#3691)

Other
-----
 - #3540


Twisted Web 9.0.0 (2009-11-24)
==============================

Features
--------
 - There is now an iweb.IRequest interface which specifies the interface that
   request objects provide (#3416)
 - downloadPage now supports the same cookie, redirect, and timeout features
   that getPage supports (#2971)
 - A chapter about WSGI has been added to the twisted.web documentation (#3510)
 - The HTTP auth support in the web server now allows anonymous sessions by
   logging in with ANONYMOUS credentials when no Authorization header is
   provided in a request (#3924, #3936)
 - HTTPClientFactory now accepts a parameter to enable a common deviation from
   the HTTP 1.1 standard by responding to redirects in a POSTed request with a
   GET instead of another POST (#3624)
 - A new basic HTTP/1.1 client API is included in twisted.web.client.Agent
   (#886, #3987)

Fixes
-----
 - Requests for "insecure" children of a static.File (such as paths containing
   encoded directory separators) will now result in a 404 instead of a 500
   (#3549, #3469)
 - When specifying a followRedirect argument to the getPage function, the state
   of redirect-following for other getPage calls should now be unaffected.  It
   was previously overwriting a class attribute which would affect outstanding
   getPage calls (#3192)
 - Downloading an URL of the form "http://example.com:/" will now work,
   ignoring the extraneous colon (#2402)
 - microdom's appendChild method will no longer issue a spurious warning, and
   microdom's methods in general should now issue more meaningful exceptions
   when invalid parameters are passed (#3421)
 - WSGI applications will no longer have spurious Content-Type headers added to
   their responses by the twisted.web server. In addition, WSGI applications
   will no longer be able to specify the server-restricted headers Server and
   Date (#3569)
 - http_headers.Headers now normalizes the case of raw headers passed directly
   to it in the same way that it normalizes the headers passed to setRawHeaders
   (#3557)
 - The distrib module no longer relies on the deprecated woven package (#3559)
 - twisted.web.domhelpers now works with both microdom and minidom (#3600)
 - twisted.web servers will now ignore invalid If-Modified-Since headers instead
   of returning a 500 error (#3601)
 - Certain request-bound memory and file resources are cleaned up slightly
   sooner by the request when the connection is lost (#1621, #3176)
 - xmlrpclib.DateTime objects should now correctly round-trip over twisted.web's
   XMLRPC support in all supported versions of Python, and errors during error
   serialization will no longer hang a twisted.web XMLRPC response (#2446)
 - request.content should now always be seeked to the beginning when
   request.process is called, so application code should never need to seek 
   back manually (#3585)
 - Fetching a child of static.File with a double-slash in the URL (such as
   "example//foo.html") should now return a 404 instead of a traceback and
   500 error (#3631)
 - downloadPage will now fire a Failure on its returned Deferred instead of
   indicating success when the connection is prematurely lost (#3645)
 - static.File will now provide a 404 instead of a 500 error when it was
   constructed with a non-existent file (#3634)
 - microdom should now serialize namespaces correctly (#3672)
 - The HTTP Auth support resource wrapper should no longer corrupt requests and
   cause them to skip a segment in the request path (#3679)
 - The twisted.web WSGI support should now include leading slashes in PATH_INFO,
   and SCRIPT_NAME will be empty if the application is at the root of the
   resource tree. This means that WSGI applications should no longer generate
   URLs with double-slashes in them even if they naively concatenate the values
   (#3721)
 - WSGI applications should now receive the requesting client's IP in the
   REMOTE_ADDR environment variable (#3730)
 - The distrib module should work again. It was unfortunately broken with the
   refactoring of twisted.web's header support (#3697)
 - static.File now supports multiple ranges specified in the Range header
   (#3574)
 - static.File should now generate a correct Content-Length value when the
   requested Range value doesn't fit entirely within the file's contents (#3814)
 - Attempting to call request.finish() after the connection has been lost will
   now immediately raise a RuntimeError (#4013)
 - An HTTP-auth resource should now be able to directly render the wrapped
   avatar, whereas before it would only allow retrieval of child resources
   (#4014)
 - twisted.web's wsgi support should no longer attempt to call request.finish
   twice, which would cause errors in certain cases (#4025)
 - WSGI applications should now be able to handle requests with large bodies
   (#4029)
 - Exceptions raised from WSGI applications should now more reliably be turned
   into 500 errors on the HTTP level (#4019)
 - DeferredResource now correctly passes through exceptions raised from the
   wrapped resource, instead of turning them all into 500 errors (#3932)
 - Agent.request now generates a Host header when no headers are passed at
   (#4131)

Deprecations and Removals
-------------------------
 - The unmaintained and untested twisted.web.monitor module was removed (#2763)
 - The twisted.web.woven package has been removed (#1522)
 - All of the error resources in twisted.web.error are now in
   twisted.web.resource, and accessing them through twisted.web.error is now
   deprecated (#3035)
 - To facilitate a simplification of the timeout logic in server.Session,
   various things have been deprecated (#3457)
   - the loopFactory attribute is now ignored
   - the checkExpired method now does nothing
   - the lifetime parameter to startCheckingExpiration is now ignored
 - The twisted.web.trp module is now deprecated (#2030)

Other
-----
 - #2763, #3540, #3575, #3610, #3605, #1176, #3539, #3750, #3761, #3779, #2677,
   #3782, #3904, #3919, #3418, #3990, #1404, #4050


Twisted Words 9.0.0 (2009-11-24)
================================

Features
--------
 - IRCClient.describe is a new method meant to replace IRCClient.me to send
   CTCP ACTION messages with less confusing behavior (#3910)
 - The XMPP client protocol implementation now supports ANONYMOUS SASL
   authentication (#4067)
 - The IRC client protocol implementation now has better support for the
   ISUPPORT server->client message, storing the data in a new
   ServerSupportedFeatures object accessible via IRCClient.supported (#3285)

Fixes
-----
 - The twisted.words IRC server now always sends an MOTD, which at least makes
   Pidgin able to successfully connect to a twisted.words IRC server (#2385)
 - The IRC client will now dispatch "RPL MOTD" messages received before a
   "RPL MOTD START" instead of raising an exception (#3676)
 - The IRC client protocol implementation no longer updates its 'nickname'
   attribute directly; instead, that attribute will be updated when the server
   acknowledges the change (#3377)
 - The IRC client protocol implementation now supports falling back to another
   nickname when a nick change request fails (#3377, #4010)

Deprecations and Removals
-------------------------
 - The TOC protocol implementation is now deprecated, since the protocol itself
   has been deprecated and obselete for quite a long time (#3580)
 - The gui "im" application has been removed, since it relied on GTK1, which is
   hard to find these days (#3699, #3340)

Other
-----
 - #2763, #3540, #3647, #3750, #3895, #3968, #4050


Core 8.2.0 (2008-12-16)
=======================

Features
--------
 - Reactors are slowly but surely becoming more isolated, thus improving
   testability (#3198)
 - FilePath has gained a realpath method, and FilePath.walk no longer infinitely
   recurses in the case of a symlink causing a self-recursing filesystem tree
   (#3098)
 - FilePath's moveTo and copyTo methods now have an option to disable following
   of symlinks (#3105)
 - Private APIs are now included in the API documentation (#3268)
 - hotshot is now the default profiler for the twistd --profile parameter and
   using cProfile is now documented (#3355, #3356)
 - Process protocols can now implement a processExited method, which is
   distinct from processEnded in that it is called immediately when the child
   has died, instead of waiting for all the file descriptors to be closed
   (#1291)
 - twistd now has a --umask option (#966, #3024)
 - A new deferToThreadPool function exists in twisted.internet.threads (#2845)
 - There is now an example of writing an FTP server in examples/ftpserver.py
   (#1579)
 - A new runAsEffectiveUser function has been added to twisted.python.util
   (#2607)
 - twisted.internet.utils.getProcessOutput now offers a mechanism for
   waiting for the process to actually end, in the event of data received on
   stderr (#3239)
 - A fullyQualifiedName function has been added to twisted.python.reflect
   (#3254)
 - strports now defaults to managing access to a UNIX socket with a lock;
   lockfile=0 can be included in the strports specifier to disable this
   behavior (#2295)
 - FTPClient now has a 'rename' method (#3335)
 - FTPClient now has a 'makeDirectory' method (#3500)
 - FTPClient now has a 'removeFile' method (#3491)
 - flushWarnings, A new Trial method for testing warnings, has been added
   (#3487, #3427, #3506)
 - The log observer can now be configured in .tac files (#3534)

Fixes
-----
 - TLS Session Tickets are now disabled by default, allowing connections to
   certain servers which hang when an empty session ticket is received (like
   GTalk) (#3463)
 - twisted.enterprise.adbapi.ConnectionPool's noisy attribute now defaults to
   False, as documented (#1806)
 - Error handling and logging in adbapi is now much improved (#3244)
 - TCP listeners can now be restarted (#2913)
 - Doctests can now be rerun with trial's --until-failure option (#2713)
 - Some memory leaks have been fixed in trial's --until-failure
   implementation (#3119, #3269)
 - Trial's summary reporter now prints correct runtime information and handles
   the case of 0 tests (#3184)
 - Trial and any other user of the 'namedAny' function now has better error
   reporting in the case of invalid module names (#3259)
 - Multiple instances of trial can now run in parallel in the same directory
   by creating _trial_temp directories with an incremental suffix (#2338)
 - Trial's failUnlessWarns method now works on Python 2.6 (#3223)
 - twisted.python.log now hooks into the warnings system in a way compatible
   with Python 2.6 (#3211)
 - The GTK2 reactor is now better supported on Windows, but still not passing
   the entire test suite (#3203)
 - low-level failure handling in spawnProcess has been improved and no longer
   leaks file descriptors (#2305, #1410)
 - Perspective Broker avatars now have their logout functions called in more
   cases (#392)
 - Log observers which raise exceptions are no longer removed (#1069)
 - transport.getPeer now always includes an IP address in the Address returned
   instead of a hostname (#3059)
 - Functions in twisted.internet.utils which spawn processes now avoid calling
   chdir in the case where no working directory is passed, to avoid some
   obscure permission errors (#3159)
 - twisted.spread.publish.Publishable no longer corrupts line endings on
   Windows (#2327)
 - SelectReactor now properly detects when a TLS/TCP connection has been
   disconnected (#3218)
 - twisted.python.lockfile no longer raises an EEXIST OSError and is much
   better supported on Windows (#3367)
 - When ITLSTransport.startTLS is called while there is data in the write
   buffer, TLS negotiation will now be delayed instead of the method raising
   an exception (#686)
 - The userAnonymous argument to FTPFactory is now honored (#3390)
 - twisted.python.modules no longer tries to "fix" sys.modules after an import
   error, which was just causing problems (#3388)
 - setup.py no longer attempts to build extension modules when run with Jython
   (#3410)
 - AMP boxes can now be sent in IBoxReceiver.startReceivingBoxes (#3477)
 - AMP connections are closed as soon as a key length larger than 255 is
   received (#3478)
 - Log events with timezone offsets between -1 and -59 minutes are now
   correctly reported as negative (#3515)

Deprecations and Removals
-------------------------
 - Trial's setUpClass and tearDownClass methods are now deprecated (#2903)
 - problemsFromTransport has been removed in favor of the argument passed to
   connectionLost (#2874)
 - The mode parameter to methods of IReactorUNIX and IReactorUNIXDatagram are
   deprecated in favor of applications taking other security precautions, since
   the mode of a Unix socket is often not respected (#1068)
 - Index access on instances of twisted.internet.defer.FirstError has been
   removed in favor of the subFailure attribute (#3298)
 - The 'changeDirectory' method of FTPClient has been deprecated in favor of
   the 'cwd' method (#3491)

Other
-----

 - #3202, #2869, #3225, #2955, #3237, #3196, #2355, #2881, #3054, #2374, #2918,
   #3210, #3052, #3267, #3288, #2985, #3295, #3297, #2512, #3302, #1222, #2631,
   #3306, #3116, #3215, #1489, #3319, #3320, #3321, #1255, #2169, #3182, #3323,
   #3301, #3318, #3029, #3338, #3346, #1144, #3173, #3165, #685, #3357, #2582,
   #3370, #2438, #1253, #637, #1971, #2208, #979, #1790, #1888, #1882, #1793,
   #754, #1890, #1931, #1246, #1025, #3177, #2496, #2567, #3400, #2213, #2027,
   #3415, #1262, #3422, #2500, #3414, #3045, #3111, #2974, #2947, #3222, #2878,
   #3402, #2909, #3423, #1328, #1852, #3382, #3393, #2029, #3489, #1853, #2026,
   #2375, #3502, #3482, #3504, #3505, #3507, #2605, #3519, #3520, #3121, #3484,
   #3439, #3216, #3511, #3524, #3521, #3197, #2486, #2449, #2748, #3381, #3236,
   #671


Conch 8.2.0 (2008-12-16)
========================

Features
--------
 - The type of the protocols instantiated by SSHFactory is now parameterized
   (#3443)

Fixes
-----
 - A file descriptor leak has been fixed (#3213, #1789)
 - "File Already Exists" errors are now handled more correctly (#3033)
 - Handling of CR IAC in TelnetClient is now improved (#3305)
 - SSHAgent is no longer completely unusable (#3332)
 - The performance of insults.ClientProtocol is now greatly increased by
   delivering more than one byte at a time to application code (#3386)
 - Manhole and the conch server no longer need to be run as root when not
   necessary (#2607)
 - The value of FILEXFER_ATTR_ACMODTIME has been corrected (#2902)
 - The management of known_hosts and host key verification has been overhauled
   (#1376, #1301, #3494, #3496, #1292, #3499)

Other
-----
 - #3193, #1633


Lore 8.2.0 (2008-12-16)
=======================

Other
-----
 - #2207, #2514


Mail 8.2.0 (2008-12-16)
=======================

Fixes
-----
 - The mailmail tool now provides better error messages for usage errors (#3339)
 - The SMTP protocol implementation now works on PyPy (#2976)

Other
-----
 - #3475


Names 8.2.0 (2008-12-16)
========================

Features
--------
 - The NAPTR record type is now supported (#2276)

Fixes
-----
 - Make client.Resolver less vulnerable to the Birthday Paradox attack by
   avoiding sending duplicate queries when it's not necessary (#3347)
 - client.Resolver now uses a random source port for each DNS request (#3342)
 - client.Resolver now uses a full 16 bits of randomness for message IDs,
   instead of 10 which it previously used (#3342)
 - All record types now have value-based equality and a string representation
   (#2935)

Other
-----
 - #1622, #3424


Web 8.2.0 (2008-12-16)
======================

Features
--------
 - The web server can now deal with multi-value headers in the new attributes of
   Request, requestHeaders and responseHeaders (#165)
 - There is now a resource-wrapper which implements HTTP Basic and Digest auth
   in terms of twisted.cred (#696)
 - It's now possible to limit the number of redirects that client.getPage will
   follow (#2412)
 - The directory-listing code no longer uses Woven (#3257)
 - static.File now supports Range headers with a single range (#1493)
 - twisted.web now has a rudimentary WSGI container (#2753)
 - The web server now supports chunked encoding in requests (#3385)

Fixes
-----
 - The xmlrpc client now raises an error when the server sends an empty
   response (#3399)
 - HTTPPageGetter no longer duplicates default headers when they're explicitly
   overridden in the headers parameter (#1382)
 - The server will no longer timeout clients which are still sending request
   data (#1903)
 - microdom's isEqualToNode now returns False when the nodes aren't equal
   (#2542)

Deprecations and Removals
-------------------------

 - Request.headers and Request.received_headers are not quite deprecated, but
   they are discouraged in favor of requestHeaders and responseHeaders (#165)

Other
-----
 - #909, #687, #2938, #1152, #2930, #2025, #2683, #3471


Web2 8.2.0 (2008-12-16)
=======================

Note: Twisted Web2 is being phased out in preference for Twisted Web, but some
maintenance changes have been made.

Fixes
-----
 - The main twisted.web2 docstring now indicates the current state of the
   project (#2028)
 - Headers which require unusual bytes are now quoted (#2346)
 - Some links in the introduction documentation have been fixed (#2552)


Words 8.2.0 (2008-12-16)
========================

Feature
-------
 - There is now a standalone XMPP router included in twisted.words: it can be
   used with the 'twistd xmpp-router' command line (#3407)
 - A server factory for Jabber XML Streams has been added (#3435)
 - Domish now allows for iterating child elements with specific qualified names
   (#2429)
 - IRCClient now has a 'back' method which removes the away status (#3366)
 - IRCClient now has a 'whois' method (#3133)

Fixes
-----
 - The IRC Client implementation can now deal with compound mode changes (#3230)
 - The MSN protocol implementation no longer requires the CVR0 protocol to
   be included in the VER command (#3394)
 - In the IRC server implementation, topic messages will no longer be sent for
   a group which has no topic (#2204)
 - An infinite loop (which caused infinite memory usage) in irc.split has been
   fixed.  This was triggered any time a message that starts with a delimiter
   was sent (#3446)
 - Jabber's toResponse now generates a valid stanza even when stanzaType is not
   specified (#3467)
 - The lifetime of authenticator instances in XmlStreamServerFactory is no
   longer artificially extended (#3464)

Other
-----
 - #3365


Core 8.1.0 (2008-05-18)
=======================

Features
--------

 - twisted.internet.error.ConnectionClosed is a new exception which is the
   superclass of ConnectionLost and ConnectionDone (#3137)
 - Trial's CPU and memory performance should be better now (#3034)
 - twisted.python.filepath.FilePath now has a chmod method (#3124)

Fixes
-----

 - Some reactor re-entrancy regressions were fixed (#3146, #3168)
 - A regression was fixed whereby constructing a Failure for an exception and
   traceback raised out of a Pyrex extension would fail (#3132)
 - CopyableFailures in PB can again be created from CopiedFailures (#3174)
 - FilePath.remove, when called on a FilePath representing a symlink to a
   directory, no longer removes the contents of the targeted directory, and
   instead removes the symlink (#3097)
 - FilePath now has a linkTo method for creating new symlinks (#3122)
 - The docstring for Trial's addCleanup method now correctly specifies when
   cleanup functions are run (#3131)
 - assertWarns now deals better with multiple identical warnings (#2904)
 - Various windows installer bugs were fixed (#3115, #3144, #3150, #3151, #3164)
 - API links in the howto documentation have been corrected (#3130)
 - The Win32 Process transport object now has a pid attribute (#1836)
 - A doc bug in the twistd plugin howto which would inevitably lead to
   confusion was fixed (#3183)
 - A regression breaking IOCP introduced after the last release was fixed
   (#3200)

Deprecations and Removals
-------------------------

 - mktap is now fully deprecated, and will emit DeprecationWarnings when used
   (#3127)

Other
-----
 - #3079, #3118, #3120, #3145, #3069, #3149, #3186, #3208, #2762


Conch 8.1.0 (2008-05-18)
========================

Fixes
-----
 - A regression was fixed whereby the publicKeys and privateKeys attributes of
   SSHFactory would not be interpreted as strings (#3141)
 - The sshsimpleserver.py example had a minor bug fix (#3135)
 - The deprecated mktap API is no longer used (#3127)
 - An infelicity was fixed whereby a NameError would be raised in certain
   circumstances during authentication when a ConchError should have been
   (#3154)
 - A workaround was added to conch.insults for a bug in gnome-terminal whereby
   it would not scroll correctly (#3189)


Lore 8.1.0 (2008-05-18)
=======================

Fixes
-----
 - The deprecated mktap API is no longer used (#3127)


News 8.1.0 (2008-05-18)
=======================

Fixes
-----
 - The deprecated mktap API is no longer used (#3127)


Web 8.1.0 (2008-05-18)
======================

Fixes
-----
 - Fixed an XMLRPC bug whereby sometimes a callRemote Deferred would
   accidentally be fired twice when a connection was lost during the handling of
   a response (#3152)
 - Fixed a bug in the "Using Twisted Web" document which prevented an example
   resource from being renderable (#3147)
 - The deprecated mktap API is no longer used (#3127)


Words 8.1.0 (2008-05-18)
========================

Features
--------
 - JID objects now have a nice __repr__ (#3156)
 - Extending XMPP protocols is now easier (#2178)

Fixes
-----
 - The deprecated mktap API is no longer used (#3127)
 - A bug whereby one-time XMPP observers would be enabled permanently was fixed
   (#3066)


Mail 8.1.0 (2008-05-18)
=======================

Fixes
-----
 - The deprecated mktap API is no longer used (#3127)


Names 8.1.0 (2008-05-18)
========================

Fixes
-----
 - The deprecated mktap API is no longer used (#3127)


Web2 8.1.0 (2008-05-18)
=======================

Fixes
-----
 - The deprecated mktap API is no longer used (#3127)


Core 8.0.1 (2008-03-26)
=======================

Fixes
-----
 - README no longer refers to obsolete trial command line option
 - twistd no longer causes a bizarre DeprecationWarning about mktap


Core 8.0.0 (2008-03-17)
=======================

Features
--------

 - The IOCP reactor has had many changes and is now greatly improved
   (#1760, #3055)
 - The main Twisted distribution is now easy_installable (#1286, #3110)
 - twistd can now profile with cProfile (#2469)
 - twisted.internet.defer contains a DeferredFilesystemLock which gives a
   Deferred interface to lock file acquisition (#2180)
 - twisted.python.modules is a new system for representing and manipulating
   module paths (i.e. sys.path) (#1951)
 - twisted.internet.fdesc now contains a writeToFD function, along with other
   minor fixes (#2419)
 - twisted.python.usage now allows optional type enforcement (#739)
 - The reactor now has a blockingCallFromThread method for non-reactor threads
   to use to wait for a reactor-scheduled call to return a result (#1042, #3030)
 - Exceptions raised inside of inlineCallbacks-using functions now have a
   better chance of coming with a meaningful traceback (#2639, #2803)
 - twisted.python.randbytes now contains code for generating secure random
   bytes (#2685)
 - The classes in twisted.application.internet now accept a reactor parameter
   for specifying the reactor to use for underlying calls to allow for better
   testability (#2937)
 - LoopingCall now allows you to specify the reactor to use to schedule new
   calls, allowing much better testing techniques (#2633, #2634)
 - twisted.internet.task.deferLater is a new API for scheduling calls and
   getting deferreds which are fired with their results (#1875)
 - objgrep now knows how to search through deque objects (#2323)
 - twisted.python.log now contains a Twisted log observer which can forward
   messages to the Python logging system (#1351)
 - Log files now include seconds in the timestamps (#867)
 - It is now possible to limit the number of log files to create during log
   rotation (#1095)
 - The interface required by the log context system is now documented as
   ILoggingContext, and abstract.FileDescriptor now declares that it implements
   it (#1272)
 - There is now an example cred checker that uses a database via adbapi (#460)
 - The epoll reactor is now documented in the choosing-reactors howto (#2539)
 - There were improvements to the client howto (#222)
 - Int8Receiver was added (#2315)
 - Various refactorings to AMP introduced better testability and public
   interfaces (#2657, #2667, #2656, #2664, #2810)
 - twisted.protocol.policies.TrafficLoggingFactory now has a resetCounter
   method (#2757)
 - The FTP client can be told which port range within which to bind passive
   transfer ports (#1904)
 - twisted.protocols.memcache contains a new asynchronous memcache client
   (#2506, #2957)
 - PB now supports anonymous login (#439, #2312)
 - twisted.spread.jelly now supports decimal objects (#2920)
 - twisted.spread.jelly now supports all forms of sets (#2958)
 - There is now an interface describing the API that process protocols must
   provide (#3020)
 - Trial reporting to core unittest TestResult objects has been improved (#2495)
 - Trial's TestCase now has an addCleanup method which allows easy setup of
   tear-down code (#2610, #2899)
 - Trial's TestCase now has an assertIsInstance method (#2749)
 - Trial's memory footprint and speed are greatly improved (#2275)
 - At the end of trial runs, "PASSED" and "FAILED" messages are now colorized
   (#2856)
 - Tests which leave global state around in the reactor will now fail in
   trial. A new option, --unclean-warnings, will convert these errors back into
   warnings (#2091)
 - Trial now has a --without-module command line for testing code in an
   environment that lacks a particular Python module (#1795)
 - Error reporting of failed assertEquals assertions now has much nicer
   formatting (#2893)
 - Trial now has methods for monkey-patching (#2598)
 - Trial now has an ITestCase (#2898, #1950)
 - The trial reporter API now has a 'done' method which is called at the end of
   a test run (#2883)
 - TestCase now has an assertWarns method which allows testing that functions
   emit warnings (#2626, #2703)
 - There are now no string exceptions in the entire Twisted code base (#2063)
 - There is now a system for specifying credentials checkers with a string
   (#2570)

Fixes
-----

 - Some tests which were asserting the value of stderr have been changed
   because Python uncontrollably writes bytes to stderr (#2405)
 - Log files handle time zones with DST better (#2404)
 - Subprocesses using PTYs on OS X that are handled by Twisted will now be able
   to more reliably write the final bytes before they exit, allowing Twisted
   code to more reliably receive them (#2371, #2858)
 - Trial unit test reporting has been improved (#1901)
 - The kqueue reactor handles connection failures better (#2172)
 - It's now possible to run "trial foo/bar/" without an exception: trailing
   slashes no longer cause problems (#2005)
 - cred portals now better deal with implementations of inherited interfaces
   (#2523)
 - FTP error handling has been improved (#1160, 1107)
 - Trial behaves better with respect to file locking on Windows (#2482)
 - The FTP server now gives a better error when STOR is attempted during an
   anonymous session (#1575)
 - Trial now behaves better with tests that use the reactor's threadpool (#1832)
 - twisted.python.reload now behaves better with new-style objects (#2297)
 - LogFile's defaultMode parameter is now better implemented, preventing
   potential security exploits (#2586)
 - A minor obscure leak in thread pools was corrected (#1134)
 - twisted.internet.task.Clock now returns the correct DelayedCall from
   callLater, instead of returning the one scheduled for the furthest in the
   future (#2691)
 - twisted.spread.util.FilePager no longer unnecessarily buffers data in
   memory (#1843, 2321)
 - Asking for twistd or trial to use an unavailable reactor no longer prints a
   traceback (#2457)
 - System event triggers have fewer obscure bugs (#2509)
 - Plugin discovery code is much better behaved, allowing multiple
   installations of a package with plugins (#2339, #2769)
 - Process and PTYProcess have been merged and some minor bugs have been fixed
   (#2341)
 - The reactor has less global state (#2545)
 - Failure can now correctly represent and format errors caused by string
   exceptions (#2830)
 - The epoll reactor now has better error handling which now avoids the bug
   causing 100% CPU usage in some cases (#2809)
 - Errors raised during trial setUp or tearDown methods are now handled better
   (#2837)
 - A problem when deferred callbacks add new callbacks to the deferred that
   they are a callback of was fixed (#2849)
 - Log messages that are emitted during connectionMade now have the protocol
   prefix correctly set (#2813)
 - The string representation of a TCP Server connection now contains the actual
   port that it's bound to when it was configured to listen on port 0 (#2826)
 - There is better reporting of error codes for TCP failures on Windows (#2425)
 - Process spawning has been made slightly more robust by disabling garbage
   collection temporarily immediately after forking so that finalizers cannot
   be executed in an unexpected environment (#2483)
 - namedAny now detects import errors better (#698)
 - Many fixes and improvements to the twisted.python.zipstream module have
   been made (#2996)
 - FilePager no longer blows up on empty files (#3023)
 - twisted.python.util.FancyEqMixin has been improved to cooperate with objects
   of other types (#2944)
 - twisted.python.FilePath.exists now restats to prevent incorrect result
   (#2896)
 - twisted.python.util.mergeFunctionMetadata now also merges the __module__
   attribute (#3049)
 - It is now possible to call transport.pauseProducing within connectionMade on
   TCP transports without it being ignored (#1780)
 - twisted.python.versions now understands new SVN metadata format for fetching
   the SVN revision number (#3058)
 - It's now possible to use reactor.callWhenRunning(reactor.stop) on gtk2 and
   glib2 reactors (#3011)

Deprecations and removals
-------------------------
 - twisted.python.timeoutqueue is now deprecated (#2536)
 - twisted.enterprise.row and twisted.enterprise.reflector are now deprecated
   (#2387)
 - twisted.enterprise.util is now deprecated (#3022)
 - The dispatch and dispatchWithCallback methods of ThreadPool are now
   deprecated (#2684)
 - Starting the same reactor multiple times is now deprecated (#1785)
 - The visit method of various test classes in trial has been deprecated (#2897)
 - The --report-profile option to twistd and twisted.python.dxprofile are
   deprecated (#2908)
 - The upDownError method of Trial reporters is deprecated (#2883)

Other
-----

 - #2396, #2211, #1921, #2378, #2247, #1603, #2463, #2530, #2426, #2356, #2574,
 - #1844, #2575, #2655, #2640, #2670, #2688, #2543, #2743, #2744, #2745, #2746,
 - #2742, #2741, #1730, #2831, #2216, #1192, #2848, #2767, #1220, #2727, #2643,
 - #2669, #2866, #2867, #1879, #2766, #2855, #2547, #2857, #2862, #1264, #2735,
 - #942, #2885, #2739, #2901, #2928, #2954, #2906, #2925, #2942, #2894, #2793,
 - #2761, #2977, #2968, #2895, #3000, #2990, #2919, #2969, #2921, #3005, #421,
 - #3031, #2940, #1181, #2783, #1049, #3053, #2847, #2941, #2876, #2886, #3086,
 - #3095, #3109


Conch 8.0.0 (2008-03-17)
========================

Features
--------
 - Add DEC private mode manipulation methods to ITerminalTransport. (#2403)

Fixes
-----
 - Parameterize the scheduler function used by the insults TopWindow widget.
   This change breaks backwards compatibility in the TopWindow initializer.
   (#2413)
 - Notify subsystems, like SFTP, of connection close. (#2421)
 - Change the process file descriptor "connection lost" code to reverse the
   setNonBlocking operation done during initialization. (#2371)
 - Change ConsoleManhole to wait for connectionLost notification before
   stopping the reactor. (#2123, #2371)
 - Make SSHUserAuthServer.ssh_USERAUTH_REQUEST return a Deferred. (#2528)
 - Manhole's initializer calls its parent class's initializer with its
   namespace argument. (#2587)
 - Handle ^C during input line continuation in manhole by updating the prompt
   and line buffer correctly. (#2663)
 - Make twisted.conch.telnet.Telnet by default reject all attempts to enable
   options. (#1967)
 - Reduce the number of calls into application code to deliver application-level
   data in twisted.conch.telnet.Telnet.dataReceived (#2107)
 - Fix definition and management of extended attributes in conch file transfer.
   (#3010)
 - Fix parsing of OpenSSH-generated RSA keys with differing ASN.1 packing style.
   (#3008)
 - Fix handling of missing $HOME in twisted.conch.client.unix. (#3061)

Misc
----
 - #2267, #2378, #2604, #2707, #2341, #2685, #2679, #2912, #2977, #2678, #2709
   #2063, #2847


Lore 8.0.0 (2008-03-17)
=======================

Fixes
-----
 - Change twisted.lore.tree.setIndexLin so that it removes node with index-link
   class when the specified index filename is None. (#812)
 - Fix the conversion of the list of options in man pages to Lore format.
   (#3017)
 - Fix conch man pages generation. (#3075)
 - Fix management of the interactive command tag in man2lore. (#3076)

Misc
----
 - #2847


News 8.0.0 (2008-03-17)
=======================

Misc
----
 - Remove all "API Stability" markers (#2847)


Runner 8.0.0 (2008-03-17)
=========================

Misc
----
 - Remove all "API Stability" markers (#2847)


Web 8.0.0 (2008-03-17)
======================

Features
--------
 - Add support to twisted.web.client.getPage for the HTTP HEAD method. (#2750)

Fixes
-----
 - Set content-type in xmlrpc responses to "text/xml" (#2430)
 - Add more error checking in the xmlrpc.XMLRPC render method, and enforce
   POST requests. (#2505)
 - Reject unicode input to twisted.web.client._parse to reject invalid
   unicode URLs early. (#2628)
 - Correctly re-quote URL path segments when generating an URL string to
   return from Request.prePathURL. (#2934)
 - Make twisted.web.proxy.ProxyClientFactory close the connection when
   reporting a 501 error. (#1089)
 - Fix twisted.web.proxy.ReverseProxyResource to specify the port in the
   host header if different from 80. (#1117)
 - Change twisted.web.proxy.ReverseProxyResource so that it correctly encodes
   the request URI it sends on to the server for which it is a proxy. (#3013)
 - Make "twistd web --personal" use PBServerFactory (#2681)

Misc
----
 - #1996, #2382, #2211, #2633, #2634, #2640, #2752, #238, #2905


Words 8.0.0 (2008-03-17)
========================

Features
--------
 - Provide function for creating XMPP response stanzas. (#2614, #2614)
 - Log exceptions raised in Xish observers. (#2616)
 - Add 'and' and 'or' operators for Xish XPath expressions. (#2502)
 - Make JIDs hashable. (#2770)

Fixes
-----
 - Respect the hostname and servername parameters to IRCClient.register. (#1649)
 - Make EventDispatcher remove empty callback lists. (#1652)
 - Use legacy base64 API to support Python 2.3 (#2461)
 - Fix support of DIGEST-MD5 challenge parsing with multi-valued directives.
   (#2606)
 - Fix reuse of dict of prefixes in domish.Element.toXml (#2609)
 - Properly process XMPP stream headers (#2615)
 - Use proper namespace for XMPP stream errors. (#2630)
 - Properly parse XMPP stream errors. (#2771)
 - Fix toResponse for XMPP stanzas without an id attribute. (#2773)
 - Move XMPP stream header procesing to authenticators. (#2772)

Misc
----
 - #2617, #2640, #2741, #2063, #2570, #2847


Mail 8.0.0 (2008-03-17)
=======================

Features
--------
 - Support CAPABILITY responses that include atoms of the form "FOO" and
   "FOO=BAR" in IMAP4 (#2695)
 - Parameterize error handling behavior of imap4.encoder and imap4.decoder.
   (#2929)

Fixes
-----
 - Handle empty passwords in SMTP auth. (#2521)
 - Fix IMAP4Client's parsing of literals which are not preceeded by whitespace.
   (#2700)
 - Handle MX lookup suceeding without answers. (#2807)
 - Fix issues with aliases(5) process support. (#2729)

Misc
----
 - #2371, #2123, #2378, #739, #2640, #2746, #1917, #2266, #2864, #2832, #2063,
   #2865, #2847


Names 8.0.0 (2008-03-17)
========================

Fixes
-----

 - Refactor DNSDatagramProtocol and DNSProtocol to use same base class (#2414)
 - Change Resolver to query specified nameservers in specified order, instead
   of reverse order. (#2290)
 - Make SRVConnector work with bad results and NXDOMAIN responses.
   (#1908, #2777)
 - Handle write errors happening in dns queries, to have correct deferred
   failures. (#2492)
 - Fix the value of OP_NOTIFY and add a definition for OP_UPDATE. (#2945)

Misc
----
 - #2685, #2936, #2581, #2847