NEWS 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766
  1. Ticket numbers in this file can be looked up by visiting
  2. http://twistedmatrix.com/trac/ticket/<number>
  3. Core 8.2.0 (2008-12-16)
  4. =======================
  5. Features
  6. --------
  7. - Reactors are slowly but surely becoming more isolated, thus improving
  8. testability (#3198)
  9. - FilePath has gained a realpath method, and FilePath.walk no longer infinitely
  10. recurses in the case of a symlink causing a self-recursing filesystem tree
  11. (#3098)
  12. - FilePath's moveTo and copyTo methods now have an option to disable following
  13. of symlinks (#3105)
  14. - Private APIs are now included in the API documentation (#3268)
  15. - hotshot is now the default profiler for the twistd --profile parameter and
  16. using cProfile is now documented (#3355, #3356)
  17. - Process protocols can now implement a processExited method, which is
  18. distinct from processEnded in that it is called immediately when the child
  19. has died, instead of waiting for all the file descriptors to be closed
  20. (#1291)
  21. - twistd now has a --umask option (#966, #3024)
  22. - A new deferToThreadPool function exists in twisted.internet.threads (#2845)
  23. - There is now an example of writing an FTP server in examples/ftpserver.py
  24. (#1579)
  25. - A new runAsEffectiveUser function has been added to twisted.python.util
  26. (#2607)
  27. - twisted.internet.utils.getProcessOutput now offers a mechanism for
  28. waiting for the process to actually end, in the event of data received on
  29. stderr (#3239)
  30. - A fullyQualifiedName function has been added to twisted.python.reflect
  31. (#3254)
  32. - strports now defaults to managing access to a UNIX socket with a lock;
  33. lockfile=0 can be included in the strports specifier to disable this
  34. behavior (#2295)
  35. - FTPClient now has a 'rename' method (#3335)
  36. - FTPClient now has a 'makeDirectory' method (#3500)
  37. - FTPClient now has a 'removeFile' method (#3491)
  38. - flushWarnings, A new Trial method for testing warnings, has been added
  39. (#3487, #3427, #3506)
  40. - The log observer can now be configured in .tac files (#3534)
  41. Fixes
  42. -----
  43. - TLS Session Tickets are now disabled by default, allowing connections to
  44. certain servers which hang when an empty session ticket is received (like
  45. GTalk) (#3463)
  46. - twisted.enterprise.adbapi.ConnectionPool's noisy attribute now defaults to
  47. False, as documented (#1806)
  48. - Error handling and logging in adbapi is now much improved (#3244)
  49. - TCP listeners can now be restarted (#2913)
  50. - Doctests can now be rerun with trial's --until-failure option (#2713)
  51. - Some memory leaks have been fixed in trial's --until-failure
  52. implementation (#3119, #3269)
  53. - Trial's summary reporter now prints correct runtime information and handles
  54. the case of 0 tests (#3184)
  55. - Trial and any other user of the 'namedAny' function now has better error
  56. reporting in the case of invalid module names (#3259)
  57. - Multiple instances of trial can now run in parallel in the same directory
  58. by creating _trial_temp directories with an incremental suffix (#2338)
  59. - Trial's failUnlessWarns method now works on Python 2.6 (#3223)
  60. - twisted.python.log now hooks into the warnings system in a way compatible
  61. with Python 2.6 (#3211)
  62. - The GTK2 reactor is now better supported on Windows, but still not passing
  63. the entire test suite (#3203)
  64. - low-level failure handling in spawnProcess has been improved and no longer
  65. leaks file descriptors (#2305, #1410)
  66. - Perspective Broker avatars now have their logout functions called in more
  67. cases (#392)
  68. - Log observers which raise exceptions are no longer removed (#1069)
  69. - transport.getPeer now always includes an IP address in the Address returned
  70. instead of a hostname (#3059)
  71. - Functions in twisted.internet.utils which spawn processes now avoid calling
  72. chdir in the case where no working directory is passed, to avoid some
  73. obscure permission errors (#3159)
  74. - twisted.spread.publish.Publishable no longer corrupts line endings on
  75. Windows (#2327)
  76. - SelectReactor now properly detects when a TLS/TCP connection has been
  77. disconnected (#3218)
  78. - twisted.python.lockfile no longer raises an EEXIST OSError and is much
  79. better supported on Windows (#3367)
  80. - When ITLSTransport.startTLS is called while there is data in the write
  81. buffer, TLS negotiation will now be delayed instead of the method raising
  82. an exception (#686)
  83. - The userAnonymous argument to FTPFactory is now honored (#3390)
  84. - twisted.python.modules no longer tries to "fix" sys.modules after an import
  85. error, which was just causing problems (#3388)
  86. - setup.py no longer attempts to build extension modules when run with Jython
  87. (#3410)
  88. - AMP boxes can now be sent in IBoxReceiver.startReceivingBoxes (#3477)
  89. - AMP connections are closed as soon as a key length larger than 255 is
  90. received (#3478)
  91. - Log events with timezone offsets between -1 and -59 minutes are now
  92. correctly reported as negative (#3515)
  93. Deprecations and Removals
  94. -------------------------
  95. - Trial's setUpClass and tearDownClass methods are now deprecated (#2903)
  96. - problemsFromTransport has been removed in favor of the argument passed to
  97. connectionLost (#2874)
  98. - The mode parameter to methods of IReactorUNIX and IReactorUNIXDatagram are
  99. deprecated in favor of applications taking other security precautions, since
  100. the mode of a Unix socket is often not respected (#1068)
  101. - Index access on instances of twisted.internet.defer.FirstError has been
  102. removed in favor of the subFailure attribute (#3298)
  103. - The 'changeDirectory' method of FTPClient has been deprecated in favor of
  104. the 'cwd' method (#3491)
  105. Other
  106. -----
  107. - #3202, #2869, #3225, #2955, #3237, #3196, #2355, #2881, #3054, #2374, #2918,
  108. #3210, #3052, #3267, #3288, #2985, #3295, #3297, #2512, #3302, #1222, #2631,
  109. #3306, #3116, #3215, #1489, #3319, #3320, #3321, #1255, #2169, #3182, #3323,
  110. #3301, #3318, #3029, #3338, #3346, #1144, #3173, #3165, #685, #3357, #2582,
  111. #3370, #2438, #1253, #637, #1971, #2208, #979, #1790, #1888, #1882, #1793,
  112. #754, #1890, #1931, #1246, #1025, #3177, #2496, #2567, #3400, #2213, #2027,
  113. #3415, #1262, #3422, #2500, #3414, #3045, #3111, #2974, #2947, #3222, #2878,
  114. #3402, #2909, #3423, #1328, #1852, #3382, #3393, #2029, #3489, #1853, #2026,
  115. #2375, #3502, #3482, #3504, #3505, #3507, #2605, #3519, #3520, #3121, #3484,
  116. #3439, #3216, #3511, #3524, #3521, #3197, #2486, #2449, #2748, #3381, #3236,
  117. #671
  118. Conch 8.2.0 (2008-12-16)
  119. ========================
  120. Features
  121. --------
  122. - The type of the protocols instantiated by SSHFactory is now parameterized
  123. (#3443)
  124. Fixes
  125. -----
  126. - A file descriptor leak has been fixed (#3213, #1789)
  127. - "File Already Exists" errors are now handled more correctly (#3033)
  128. - Handling of CR IAC in TelnetClient is now improved (#3305)
  129. - SSHAgent is no longer completely unusable (#3332)
  130. - The performance of insults.ClientProtocol is now greatly increased by
  131. delivering more than one byte at a time to application code (#3386)
  132. - Manhole and the conch server no longer need to be run as root when not
  133. necessary (#2607)
  134. - The value of FILEXFER_ATTR_ACMODTIME has been corrected (#2902)
  135. - The management of known_hosts and host key verification has been overhauled
  136. (#1376, #1301, #3494, #3496, #1292, #3499)
  137. Other
  138. -----
  139. - #3193, #1633
  140. Lore 8.2.0 (2008-12-16)
  141. =======================
  142. Other
  143. -----
  144. - #2207, #2514
  145. Mail 8.2.0 (2008-12-16)
  146. =======================
  147. Fixes
  148. -----
  149. - The mailmail tool now provides better error messages for usage errors (#3339)
  150. - The SMTP protocol implementation now works on PyPy (#2976)
  151. Other
  152. -----
  153. - #3475
  154. Names 8.2.0 (2008-12-16)
  155. ========================
  156. Features
  157. --------
  158. - The NAPTR record type is now supported (#2276)
  159. Fixes
  160. -----
  161. - Make client.Resolver less vulnerable to the Birthday Paradox attack by
  162. avoiding sending duplicate queries when it's not necessary (#3347)
  163. - client.Resolver now uses a random source port for each DNS request (#3342)
  164. - client.Resolver now uses a full 16 bits of randomness for message IDs,
  165. instead of 10 which it previously used (#3342)
  166. - All record types now have value-based equality and a string representation
  167. (#2935)
  168. Other
  169. -----
  170. - #1622, #3424
  171. Web 8.2.0 (2008-12-16)
  172. ======================
  173. Features
  174. --------
  175. - The web server can now deal with multi-value headers in the new attributes of
  176. Request, requestHeaders and responseHeaders (#165)
  177. - There is now a resource-wrapper which implements HTTP Basic and Digest auth
  178. in terms of twisted.cred (#696)
  179. - It's now possible to limit the number of redirects that client.getPage will
  180. follow (#2412)
  181. - The directory-listing code no longer uses Woven (#3257)
  182. - static.File now supports Range headers with a single range (#1493)
  183. - twisted.web now has a rudimentary WSGI container (#2753)
  184. - The web server now supports chunked encoding in requests (#3385)
  185. Fixes
  186. -----
  187. - The xmlrpc client now raises an error when the server sends an empty
  188. response (#3399)
  189. - HTTPPageGetter no longer duplicates default headers when they're explicitly
  190. overridden in the headers parameter (#1382)
  191. - The server will no longer timeout clients which are still sending request
  192. data (#1903)
  193. - microdom's isEqualToNode now returns False when the nodes aren't equal
  194. (#2542)
  195. Deprecations and Removals
  196. -------------------------
  197. - Request.headers and Request.received_headers are not quite deprecated, but
  198. they are discouraged in favor of requestHeaders and responseHeaders (#165)
  199. Other
  200. -----
  201. - #909, #687, #2938, #1152, #2930, #2025, #2683, #3471
  202. Web2 8.2.0 (2008-12-16)
  203. =======================
  204. Note: Twisted Web2 is being phased out in preference for Twisted Web, but some
  205. maintenance changes have been made.
  206. Fixes
  207. -----
  208. - The main twisted.web2 docstring now indicates the current state of the
  209. project (#2028)
  210. - Headers which require unusual bytes are now quoted (#2346)
  211. - Some links in the introduction documentation have been fixed (#2552)
  212. Words 8.2.0 (2008-12-16)
  213. ========================
  214. Feature
  215. -------
  216. - There is now a standalone XMPP router included in twisted.words: it can be
  217. used with the 'twistd xmpp-router' command line (#3407)
  218. - A server factory for Jabber XML Streams has been added (#3435)
  219. - Domish now allows for iterating child elements with specific qualified names
  220. (#2429)
  221. - IRCClient now has a 'back' method which removes the away status (#3366)
  222. - IRCClient now has a 'whois' method (#3133)
  223. Fixes
  224. -----
  225. - The IRC Client implementation can now deal with compound mode changes (#3230)
  226. - The MSN protocol implementation no longer requires the CVR0 protocol to
  227. be included in the VER command (#3394)
  228. - In the IRC server implementation, topic messages will no longer be sent for
  229. a group which has no topic (#2204)
  230. - An infinite loop (which caused infinite memory usage) in irc.split has been
  231. fixed. This was triggered any time a message that starts with a delimiter
  232. was sent (#3446)
  233. - Jabber's toResponse now generates a valid stanza even when stanzaType is not
  234. specified (#3467)
  235. - The lifetime of authenticator instances in XmlStreamServerFactory is no
  236. longer artificially extended (#3464)
  237. Other
  238. -----
  239. - #3365
  240. Core 8.1.0 (2008-05-18)
  241. =======================
  242. Features
  243. --------
  244. - twisted.internet.error.ConnectionClosed is a new exception which is the
  245. superclass of ConnectionLost and ConnectionDone (#3137)
  246. - Trial's CPU and memory performance should be better now (#3034)
  247. - twisted.python.filepath.FilePath now has a chmod method (#3124)
  248. Fixes
  249. -----
  250. - Some reactor re-entrancy regressions were fixed (#3146, #3168)
  251. - A regression was fixed whereby constructing a Failure for an exception and
  252. traceback raised out of a Pyrex extension would fail (#3132)
  253. - CopyableFailures in PB can again be created from CopiedFailures (#3174)
  254. - FilePath.remove, when called on a FilePath representing a symlink to a
  255. directory, no longer removes the contents of the targeted directory, and
  256. instead removes the symlink (#3097)
  257. - FilePath now has a linkTo method for creating new symlinks (#3122)
  258. - The docstring for Trial's addCleanup method now correctly specifies when
  259. cleanup functions are run (#3131)
  260. - assertWarns now deals better with multiple identical warnings (#2904)
  261. - Various windows installer bugs were fixed (#3115, #3144, #3150, #3151, #3164)
  262. - API links in the howto documentation have been corrected (#3130)
  263. - The Win32 Process transport object now has a pid attribute (#1836)
  264. - A doc bug in the twistd plugin howto which would inevitably lead to
  265. confusion was fixed (#3183)
  266. - A regression breaking IOCP introduced after the last release was fixed
  267. (#3200)
  268. Deprecations and Removals
  269. -------------------------
  270. - mktap is now fully deprecated, and will emit DeprecationWarnings when used
  271. (#3127)
  272. Other
  273. -----
  274. - #3079, #3118, #3120, #3145, #3069, #3149, #3186, #3208, #2762
  275. Conch 8.1.0 (2008-05-18)
  276. ========================
  277. Fixes
  278. -----
  279. - A regression was fixed whereby the publicKeys and privateKeys attributes of
  280. SSHFactory would not be interpreted as strings (#3141)
  281. - The sshsimpleserver.py example had a minor bug fix (#3135)
  282. - The deprecated mktap API is no longer used (#3127)
  283. - An infelicity was fixed whereby a NameError would be raised in certain
  284. circumstances during authentication when a ConchError should have been
  285. (#3154)
  286. - A workaround was added to conch.insults for a bug in gnome-terminal whereby
  287. it would not scroll correctly (#3189)
  288. Lore 8.1.0 (2008-05-18)
  289. =======================
  290. Fixes
  291. -----
  292. - The deprecated mktap API is no longer used (#3127)
  293. News 8.1.0 (2008-05-18)
  294. =======================
  295. Fixes
  296. -----
  297. - The deprecated mktap API is no longer used (#3127)
  298. Web 8.1.0 (2008-05-18)
  299. ======================
  300. Fixes
  301. -----
  302. - Fixed an XMLRPC bug whereby sometimes a callRemote Deferred would
  303. accidentally be fired twice when a connection was lost during the handling of
  304. a response (#3152)
  305. - Fixed a bug in the "Using Twisted Web" document which prevented an example
  306. resource from being renderable (#3147)
  307. - The deprecated mktap API is no longer used (#3127)
  308. Words 8.1.0 (2008-05-18)
  309. ========================
  310. Features
  311. --------
  312. - JID objects now have a nice __repr__ (#3156)
  313. - Extending XMPP protocols is now easier (#2178)
  314. Fixes
  315. -----
  316. - The deprecated mktap API is no longer used (#3127)
  317. - A bug whereby one-time XMPP observers would be enabled permanently was fixed
  318. (#3066)
  319. Mail 8.1.0 (2008-05-18)
  320. =======================
  321. Fixes
  322. -----
  323. - The deprecated mktap API is no longer used (#3127)
  324. Names 8.1.0 (2008-05-18)
  325. ========================
  326. Fixes
  327. -----
  328. - The deprecated mktap API is no longer used (#3127)
  329. Web2 8.1.0 (2008-05-18)
  330. =======================
  331. Fixes
  332. -----
  333. - The deprecated mktap API is no longer used (#3127)
  334. Core 8.0.1 (2008-03-26)
  335. =======================
  336. Fixes
  337. -----
  338. - README no longer refers to obsolete trial command line option
  339. - twistd no longer causes a bizarre DeprecationWarning about mktap
  340. Core 8.0.0 (2008-03-17)
  341. =======================
  342. Features
  343. --------
  344. - The IOCP reactor has had many changes and is now greatly improved
  345. (#1760, #3055)
  346. - The main Twisted distribution is now easy_installable (#1286, #3110)
  347. - twistd can now profile with cProfile (#2469)
  348. - twisted.internet.defer contains a DeferredFilesystemLock which gives a
  349. Deferred interface to lock file acquisition (#2180)
  350. - twisted.python.modules is a new system for representing and manipulating
  351. module paths (i.e. sys.path) (#1951)
  352. - twisted.internet.fdesc now contains a writeToFD function, along with other
  353. minor fixes (#2419)
  354. - twisted.python.usage now allows optional type enforcement (#739)
  355. - The reactor now has a blockingCallFromThread method for non-reactor threads
  356. to use to wait for a reactor-scheduled call to return a result (#1042, #3030)
  357. - Exceptions raised inside of inlineCallbacks-using functions now have a
  358. better chance of coming with a meaningful traceback (#2639, #2803)
  359. - twisted.python.randbytes now contains code for generating secure random
  360. bytes (#2685)
  361. - The classes in twisted.application.internet now accept a reactor parameter
  362. for specifying the reactor to use for underlying calls to allow for better
  363. testability (#2937)
  364. - LoopingCall now allows you to specify the reactor to use to schedule new
  365. calls, allowing much better testing techniques (#2633, #2634)
  366. - twisted.internet.task.deferLater is a new API for scheduling calls and
  367. getting deferreds which are fired with their results (#1875)
  368. - objgrep now knows how to search through deque objects (#2323)
  369. - twisted.python.log now contains a Twisted log observer which can forward
  370. messages to the Python logging system (#1351)
  371. - Log files now include seconds in the timestamps (#867)
  372. - It is now possible to limit the number of log files to create during log
  373. rotation (#1095)
  374. - The interface required by the log context system is now documented as
  375. ILoggingContext, and abstract.FileDescriptor now declares that it implements
  376. it (#1272)
  377. - There is now an example cred checker that uses a database via adbapi (#460)
  378. - The epoll reactor is now documented in the choosing-reactors howto (#2539)
  379. - There were improvements to the client howto (#222)
  380. - Int8Receiver was added (#2315)
  381. - Various refactorings to AMP introduced better testability and public
  382. interfaces (#2657, #2667, #2656, #2664, #2810)
  383. - twisted.protocol.policies.TrafficLoggingFactory now has a resetCounter
  384. method (#2757)
  385. - The FTP client can be told which port range within which to bind passive
  386. transfer ports (#1904)
  387. - twisted.protocols.memcache contains a new asynchronous memcache client
  388. (#2506, #2957)
  389. - PB now supports anonymous login (#439, #2312)
  390. - twisted.spread.jelly now supports decimal objects (#2920)
  391. - twisted.spread.jelly now supports all forms of sets (#2958)
  392. - There is now an interface describing the API that process protocols must
  393. provide (#3020)
  394. - Trial reporting to core unittest TestResult objects has been improved (#2495)
  395. - Trial's TestCase now has an addCleanup method which allows easy setup of
  396. tear-down code (#2610, #2899)
  397. - Trial's TestCase now has an assertIsInstance method (#2749)
  398. - Trial's memory footprint and speed are greatly improved (#2275)
  399. - At the end of trial runs, "PASSED" and "FAILED" messages are now colorized
  400. (#2856)
  401. - Tests which leave global state around in the reactor will now fail in
  402. trial. A new option, --unclean-warnings, will convert these errors back into
  403. warnings (#2091)
  404. - Trial now has a --without-module command line for testing code in an
  405. environment that lacks a particular Python module (#1795)
  406. - Error reporting of failed assertEquals assertions now has much nicer
  407. formatting (#2893)
  408. - Trial now has methods for monkey-patching (#2598)
  409. - Trial now has an ITestCase (#2898, #1950)
  410. - The trial reporter API now has a 'done' method which is called at the end of
  411. a test run (#2883)
  412. - TestCase now has an assertWarns method which allows testing that functions
  413. emit warnings (#2626, #2703)
  414. - There are now no string exceptions in the entire Twisted code base (#2063)
  415. - There is now a system for specifying credentials checkers with a string
  416. (#2570)
  417. Fixes
  418. -----
  419. - Some tests which were asserting the value of stderr have been changed
  420. because Python uncontrollably writes bytes to stderr (#2405)
  421. - Log files handle time zones with DST better (#2404)
  422. - Subprocesses using PTYs on OS X that are handled by Twisted will now be able
  423. to more reliably write the final bytes before they exit, allowing Twisted
  424. code to more reliably receive them (#2371, #2858)
  425. - Trial unit test reporting has been improved (#1901)
  426. - The kqueue reactor handles connection failures better (#2172)
  427. - It's now possible to run "trial foo/bar/" without an exception: trailing
  428. slashes no longer cause problems (#2005)
  429. - cred portals now better deal with implementations of inherited interfaces
  430. (#2523)
  431. - FTP error handling has been improved (#1160, 1107)
  432. - Trial behaves better with respect to file locking on Windows (#2482)
  433. - The FTP server now gives a better error when STOR is attempted during an
  434. anonymous session (#1575)
  435. - Trial now behaves better with tests that use the reactor's threadpool (#1832)
  436. - twisted.python.reload now behaves better with new-style objects (#2297)
  437. - LogFile's defaultMode parameter is now better implemented, preventing
  438. potential security exploits (#2586)
  439. - A minor obscure leak in thread pools was corrected (#1134)
  440. - twisted.internet.task.Clock now returns the correct DelayedCall from
  441. callLater, instead of returning the one scheduled for the furthest in the
  442. future (#2691)
  443. - twisted.spread.util.FilePager no longer unnecessarily buffers data in
  444. memory (#1843, 2321)
  445. - Asking for twistd or trial to use an unavailable reactor no longer prints a
  446. traceback (#2457)
  447. - System event triggers have fewer obscure bugs (#2509)
  448. - Plugin discovery code is much better behaved, allowing multiple
  449. installations of a package with plugins (#2339, #2769)
  450. - Process and PTYProcess have been merged and some minor bugs have been fixed
  451. (#2341)
  452. - The reactor has less global state (#2545)
  453. - Failure can now correctly represent and format errors caused by string
  454. exceptions (#2830)
  455. - The epoll reactor now has better error handling which now avoids the bug
  456. causing 100% CPU usage in some cases (#2809)
  457. - Errors raised during trial setUp or tearDown methods are now handled better
  458. (#2837)
  459. - A problem when deferred callbacks add new callbacks to the deferred that
  460. they are a callback of was fixed (#2849)
  461. - Log messages that are emitted during connectionMade now have the protocol
  462. prefix correctly set (#2813)
  463. - The string representation of a TCP Server connection now contains the actual
  464. port that it's bound to when it was configured to listen on port 0 (#2826)
  465. - There is better reporting of error codes for TCP failures on Windows (#2425)
  466. - Process spawning has been made slightly more robust by disabling garbage
  467. collection temporarily immediately after forking so that finalizers cannot
  468. be executed in an unexpected environment (#2483)
  469. - namedAny now detects import errors better (#698)
  470. - Many fixes and improvements to the twisted.python.zipstream module have
  471. been made (#2996)
  472. - FilePager no longer blows up on empty files (#3023)
  473. - twisted.python.util.FancyEqMixin has been improved to cooperate with objects
  474. of other types (#2944)
  475. - twisted.python.FilePath.exists now restats to prevent incorrect result
  476. (#2896)
  477. - twisted.python.util.mergeFunctionMetadata now also merges the __module__
  478. attribute (#3049)
  479. - It is now possible to call transport.pauseProducing within connectionMade on
  480. TCP transports without it being ignored (#1780)
  481. - twisted.python.versions now understands new SVN metadata format for fetching
  482. the SVN revision number (#3058)
  483. - It's now possible to use reactor.callWhenRunning(reactor.stop) on gtk2 and
  484. glib2 reactors (#3011)
  485. Deprecations and removals
  486. -------------------------
  487. - twisted.python.timeoutqueue is now deprecated (#2536)
  488. - twisted.enterprise.row and twisted.enterprise.reflector are now deprecated
  489. (#2387)
  490. - twisted.enterprise.util is now deprecated (#3022)
  491. - The dispatch and dispatchWithCallback methods of ThreadPool are now
  492. deprecated (#2684)
  493. - Starting the same reactor multiple times is now deprecated (#1785)
  494. - The visit method of various test classes in trial has been deprecated (#2897)
  495. - The --report-profile option to twistd and twisted.python.dxprofile are
  496. deprecated (#2908)
  497. - The upDownError method of Trial reporters is deprecated (#2883)
  498. Other
  499. -----
  500. - #2396, #2211, #1921, #2378, #2247, #1603, #2463, #2530, #2426, #2356, #2574,
  501. - #1844, #2575, #2655, #2640, #2670, #2688, #2543, #2743, #2744, #2745, #2746,
  502. - #2742, #2741, #1730, #2831, #2216, #1192, #2848, #2767, #1220, #2727, #2643,
  503. - #2669, #2866, #2867, #1879, #2766, #2855, #2547, #2857, #2862, #1264, #2735,
  504. - #942, #2885, #2739, #2901, #2928, #2954, #2906, #2925, #2942, #2894, #2793,
  505. - #2761, #2977, #2968, #2895, #3000, #2990, #2919, #2969, #2921, #3005, #421,
  506. - #3031, #2940, #1181, #2783, #1049, #3053, #2847, #2941, #2876, #2886, #3086,
  507. - #3095, #3109
  508. Conch 8.0.0 (2008-03-17)
  509. ========================
  510. Features
  511. --------
  512. - Add DEC private mode manipulation methods to ITerminalTransport. (#2403)
  513. Fixes
  514. -----
  515. - Parameterize the scheduler function used by the insults TopWindow widget.
  516. This change breaks backwards compatibility in the TopWindow initializer.
  517. (#2413)
  518. - Notify subsystems, like SFTP, of connection close. (#2421)
  519. - Change the process file descriptor "connection lost" code to reverse the
  520. setNonBlocking operation done during initialization. (#2371)
  521. - Change ConsoleManhole to wait for connectionLost notification before
  522. stopping the reactor. (#2123, #2371)
  523. - Make SSHUserAuthServer.ssh_USERAUTH_REQUEST return a Deferred. (#2528)
  524. - Manhole's initializer calls its parent class's initializer with its
  525. namespace argument. (#2587)
  526. - Handle ^C during input line continuation in manhole by updating the prompt
  527. and line buffer correctly. (#2663)
  528. - Make twisted.conch.telnet.Telnet by default reject all attempts to enable
  529. options. (#1967)
  530. - Reduce the number of calls into application code to deliver application-level
  531. data in twisted.conch.telnet.Telnet.dataReceived (#2107)
  532. - Fix definition and management of extended attributes in conch file transfer.
  533. (#3010)
  534. - Fix parsing of OpenSSH-generated RSA keys with differing ASN.1 packing style.
  535. (#3008)
  536. - Fix handling of missing $HOME in twisted.conch.client.unix. (#3061)
  537. Misc
  538. ----
  539. - #2267, #2378, #2604, #2707, #2341, #2685, #2679, #2912, #2977, #2678, #2709
  540. #2063, #2847
  541. Lore 8.0.0 (2008-03-17)
  542. =======================
  543. Fixes
  544. -----
  545. - Change twisted.lore.tree.setIndexLin so that it removes node with index-link
  546. class when the specified index filename is None. (#812)
  547. - Fix the conversion of the list of options in man pages to Lore format.
  548. (#3017)
  549. - Fix conch man pages generation. (#3075)
  550. - Fix management of the interactive command tag in man2lore. (#3076)
  551. Misc
  552. ----
  553. - #2847
  554. News 8.0.0 (2008-03-17)
  555. =======================
  556. Misc
  557. ----
  558. - Remove all "API Stability" markers (#2847)
  559. Runner 8.0.0 (2008-03-17)
  560. =========================
  561. Misc
  562. ----
  563. - Remove all "API Stability" markers (#2847)
  564. Web 8.0.0 (2008-03-17)
  565. ======================
  566. Features
  567. --------
  568. - Add support to twisted.web.client.getPage for the HTTP HEAD method. (#2750)
  569. Fixes
  570. -----
  571. - Set content-type in xmlrpc responses to "text/xml" (#2430)
  572. - Add more error checking in the xmlrpc.XMLRPC render method, and enforce
  573. POST requests. (#2505)
  574. - Reject unicode input to twisted.web.client._parse to reject invalid
  575. unicode URLs early. (#2628)
  576. - Correctly re-quote URL path segments when generating an URL string to
  577. return from Request.prePathURL. (#2934)
  578. - Make twisted.web.proxy.ProxyClientFactory close the connection when
  579. reporting a 501 error. (#1089)
  580. - Fix twisted.web.proxy.ReverseProxyResource to specify the port in the
  581. host header if different from 80. (#1117)
  582. - Change twisted.web.proxy.ReverseProxyResource so that it correctly encodes
  583. the request URI it sends on to the server for which it is a proxy. (#3013)
  584. - Make "twistd web --personal" use PBServerFactory (#2681)
  585. Misc
  586. ----
  587. - #1996, #2382, #2211, #2633, #2634, #2640, #2752, #238, #2905
  588. Words 8.0.0 (2008-03-17)
  589. ========================
  590. Features
  591. --------
  592. - Provide function for creating XMPP response stanzas. (#2614, #2614)
  593. - Log exceptions raised in Xish observers. (#2616)
  594. - Add 'and' and 'or' operators for Xish XPath expressions. (#2502)
  595. - Make JIDs hashable. (#2770)
  596. Fixes
  597. -----
  598. - Respect the hostname and servername parameters to IRCClient.register. (#1649)
  599. - Make EventDispatcher remove empty callback lists. (#1652)
  600. - Use legacy base64 API to support Python 2.3 (#2461)
  601. - Fix support of DIGEST-MD5 challenge parsing with multi-valued directives.
  602. (#2606)
  603. - Fix reuse of dict of prefixes in domish.Element.toXml (#2609)
  604. - Properly process XMPP stream headers (#2615)
  605. - Use proper namespace for XMPP stream errors. (#2630)
  606. - Properly parse XMPP stream errors. (#2771)
  607. - Fix toResponse for XMPP stanzas without an id attribute. (#2773)
  608. - Move XMPP stream header procesing to authenticators. (#2772)
  609. Misc
  610. ----
  611. - #2617, #2640, #2741, #2063, #2570, #2847
  612. Mail 8.0.0 (2008-03-17)
  613. =======================
  614. Features
  615. --------
  616. - Support CAPABILITY responses that include atoms of the form "FOO" and
  617. "FOO=BAR" in IMAP4 (#2695)
  618. - Parameterize error handling behavior of imap4.encoder and imap4.decoder.
  619. (#2929)
  620. Fixes
  621. -----
  622. - Handle empty passwords in SMTP auth. (#2521)
  623. - Fix IMAP4Client's parsing of literals which are not preceeded by whitespace.
  624. (#2700)
  625. - Handle MX lookup suceeding without answers. (#2807)
  626. - Fix issues with aliases(5) process support. (#2729)
  627. Misc
  628. ----
  629. - #2371, #2123, #2378, #739, #2640, #2746, #1917, #2266, #2864, #2832, #2063,
  630. #2865, #2847
  631. Names 8.0.0 (2008-03-17)
  632. ========================
  633. Fixes
  634. -----
  635. - Refactor DNSDatagramProtocol and DNSProtocol to use same base class (#2414)
  636. - Change Resolver to query specified nameservers in specified order, instead
  637. of reverse order. (#2290)
  638. - Make SRVConnector work with bad results and NXDOMAIN responses.
  639. (#1908, #2777)
  640. - Handle write errors happening in dns queries, to have correct deferred
  641. failures. (#2492)
  642. - Fix the value of OP_NOTIFY and add a definition for OP_UPDATE. (#2945)
  643. Misc
  644. ----
  645. - #2685, #2936, #2581, #2847