| OLD | NEW |
| (Empty) |
| 1 Ticket numbers in this file can be looked up by visiting | |
| 2 http://twistedmatrix.com/trac/ticket/<number> | |
| 3 | |
| 4 8.1.0 (2008-05-18) | |
| 5 ================== | |
| 6 | |
| 7 Features | |
| 8 -------- | |
| 9 | |
| 10 - twisted.internet.error.ConnectionClosed is a new exception which is the | |
| 11 superclass of ConnectionLost and ConnectionDone (#3137) | |
| 12 - Trial's CPU and memory performance should be better now (#3034) | |
| 13 - twisted.python.filepath.FilePath now has a chmod method (#3124) | |
| 14 | |
| 15 Fixes | |
| 16 ----- | |
| 17 | |
| 18 - Some reactor re-entrancy regressions were fixed (#3146, #3168) | |
| 19 - A regression was fixed whereby constructing a Failure for an exception and | |
| 20 traceback raised out of a Pyrex extension would fail (#3132) | |
| 21 - CopyableFailures in PB can again be created from CopiedFailures (#3174) | |
| 22 - FilePath.remove, when called on a FilePath representing a symlink to a | |
| 23 directory, no longer removes the contents of the targeted directory, and | |
| 24 instead removes the symlink (#3097) | |
| 25 - FilePath now has a linkTo method for creating new symlinks (#3122) | |
| 26 - The docstring for Trial's addCleanup method now correctly specifies when | |
| 27 cleanup functions are run (#3131) | |
| 28 - assertWarns now deals better with multiple identical warnings (#2904) | |
| 29 - Various windows installer bugs were fixed (#3115, #3144, #3150, #3151, #3164) | |
| 30 - API links in the howto documentation have been corrected (#3130) | |
| 31 - The Win32 Process transport object now has a pid attribute (#1836) | |
| 32 - A doc bug in the twistd plugin howto which would inevitably lead to | |
| 33 confusion was fixed (#3183) | |
| 34 - A regression breaking IOCP introduced after the last release was fixed | |
| 35 (#3200) | |
| 36 | |
| 37 | |
| 38 Deprecations and Removals | |
| 39 ------------------------- | |
| 40 | |
| 41 - mktap is now fully deprecated, and will emit DeprecationWarnings when used | |
| 42 (#3127) | |
| 43 | |
| 44 Other | |
| 45 ----- | |
| 46 - #3079, #3118, #3120, #3145, #3069, #3149, #3186, #3208, #2762 | |
| 47 | |
| 48 | |
| 49 8.0.1 (2008-03-26) | |
| 50 ================== | |
| 51 | |
| 52 Fixes | |
| 53 ----- | |
| 54 - README no longer refers to obsolete trial command line option | |
| 55 - twistd no longer causes a bizarre DeprecationWarning about mktap | |
| 56 | |
| 57 | |
| 58 8.0.0 (2008-03-17) | |
| 59 ================== | |
| 60 | |
| 61 Features | |
| 62 -------- | |
| 63 | |
| 64 - The IOCP reactor has had many changes and is now greatly improved | |
| 65 (#1760, #3055) | |
| 66 - The main Twisted distribution is now easy_installable (#1286, #3110) | |
| 67 - twistd can now profile with cProfile (#2469) | |
| 68 - twisted.internet.defer contains a DeferredFilesystemLock which gives a | |
| 69 Deferred interface to lock file acquisition (#2180) | |
| 70 - twisted.python.modules is a new system for representing and manipulating | |
| 71 module paths (i.e. sys.path) (#1951) | |
| 72 - twisted.internet.fdesc now contains a writeToFD function, along with other | |
| 73 minor fixes (#2419) | |
| 74 - twisted.python.usage now allows optional type enforcement (#739) | |
| 75 - The reactor now has a blockingCallFromThread method for non-reactor threads | |
| 76 to use to wait for a reactor-scheduled call to return a result (#1042, #3030) | |
| 77 - Exceptions raised inside of inlineCallbacks-using functions now have a | |
| 78 better chance of coming with a meaningful traceback (#2639, #2803) | |
| 79 - twisted.python.randbytes now contains code for generating secure random | |
| 80 bytes (#2685) | |
| 81 - The classes in twisted.application.internet now accept a reactor parameter | |
| 82 for specifying the reactor to use for underlying calls to allow for better | |
| 83 testability (#2937) | |
| 84 - LoopingCall now allows you to specify the reactor to use to schedule new | |
| 85 calls, allowing much better testing techniques (#2633, #2634) | |
| 86 - twisted.internet.task.deferLater is a new API for scheduling calls and | |
| 87 getting deferreds which are fired with their results (#1875) | |
| 88 - objgrep now knows how to search through deque objects (#2323) | |
| 89 - twisted.python.log now contains a Twisted log observer which can forward | |
| 90 messages to the Python logging system (#1351) | |
| 91 - Log files now include seconds in the timestamps (#867) | |
| 92 - It is now possible to limit the number of log files to create during log | |
| 93 rotation (#1095) | |
| 94 - The interface required by the log context system is now documented as | |
| 95 ILoggingContext, and abstract.FileDescriptor now declares that it implements | |
| 96 it (#1272) | |
| 97 - There is now an example cred checker that uses a database via adbapi (#460) | |
| 98 - The epoll reactor is now documented in the choosing-reactors howto (#2539) | |
| 99 - There were improvements to the client howto (#222) | |
| 100 - Int8Receiver was added (#2315) | |
| 101 - Various refactorings to AMP introduced better testability and public | |
| 102 interfaces (#2657, #2667, #2656, #2664, #2810) | |
| 103 - twisted.protocol.policies.TrafficLoggingFactory now has a resetCounter | |
| 104 method (#2757) | |
| 105 - The FTP client can be told which port range within which to bind passive | |
| 106 transfer ports (#1904) | |
| 107 - twisted.protocols.memcache contains a new asynchronous memcache client | |
| 108 (#2506, #2957) | |
| 109 - PB now supports anonymous login (#439, #2312) | |
| 110 - twisted.spread.jelly now supports decimal objects (#2920) | |
| 111 - twisted.spread.jelly now supports all forms of sets (#2958) | |
| 112 - There is now an interface describing the API that process protocols must | |
| 113 provide (#3020) | |
| 114 - Trial reporting to core unittest TestResult objects has been improved (#2495) | |
| 115 - Trial's TestCase now has an addCleanup method which allows easy setup of | |
| 116 tear-down code (#2610, #2899) | |
| 117 - Trial's TestCase now has an assertIsInstance method (#2749) | |
| 118 - Trial's memory footprint and speed are greatly improved (#2275) | |
| 119 - At the end of trial runs, "PASSED" and "FAILED" messages are now colorized | |
| 120 (#2856) | |
| 121 - Tests which leave global state around in the reactor will now fail in | |
| 122 trial. A new option, --unclean-warnings, will convert these errors back into | |
| 123 warnings (#2091) | |
| 124 - Trial now has a --without-module command line for testing code in an | |
| 125 environment that lacks a particular Python module (#1795) | |
| 126 - Error reporting of failed assertEquals assertions now has much nicer | |
| 127 formatting (#2893) | |
| 128 - Trial now has methods for monkey-patching (#2598) | |
| 129 - Trial now has an ITestCase (#2898, #1950) | |
| 130 - The trial reporter API now has a 'done' method which is called at the end of | |
| 131 a test run (#2883) | |
| 132 - TestCase now has an assertWarns method which allows testing that functions | |
| 133 emit warnings (#2626, #2703) | |
| 134 - There are now no string exceptions in the entire Twisted code base (#2063) | |
| 135 - There is now a system for specifying credentials checkers with a string | |
| 136 (#2570) | |
| 137 | |
| 138 Fixes | |
| 139 ----- | |
| 140 | |
| 141 - Some tests which were asserting the value of stderr have been changed | |
| 142 because Python uncontrollably writes bytes to stderr (#2405) | |
| 143 - Log files handle time zones with DST better (#2404) | |
| 144 - Subprocesses using PTYs on OS X that are handled by Twisted will now be able | |
| 145 to more reliably write the final bytes before they exit, allowing Twisted | |
| 146 code to more reliably receive them (#2371, #2858) | |
| 147 - Trial unit test reporting has been improved (#1901) | |
| 148 - The kqueue reactor handles connection failures better (#2172) | |
| 149 - It's now possible to run "trial foo/bar/" without an exception: trailing | |
| 150 slashes no longer cause problems (#2005) | |
| 151 - cred portals now better deal with implementations of inherited interfaces | |
| 152 (#2523) | |
| 153 - FTP error handling has been improved (#1160, 1107) | |
| 154 - Trial behaves better with respect to file locking on Windows (#2482) | |
| 155 - The FTP server now gives a better error when STOR is attempted during an | |
| 156 anonymous session (#1575) | |
| 157 - Trial now behaves better with tests that use the reactor's threadpool (#1832) | |
| 158 - twisted.python.reload now behaves better with new-style objects (#2297) | |
| 159 - LogFile's defaultMode parameter is now better implemented, preventing | |
| 160 potential security exploits (#2586) | |
| 161 - A minor obscure leak in thread pools was corrected (#1134) | |
| 162 - twisted.internet.task.Clock now returns the correct DelayedCall from | |
| 163 callLater, instead of returning the one scheduled for the furthest in the | |
| 164 future (#2691) | |
| 165 - twisted.spread.util.FilePager no longer unnecessarily buffers data in | |
| 166 memory (#1843, 2321) | |
| 167 - Asking for twistd or trial to use an unavailable reactor no longer prints a | |
| 168 traceback (#2457) | |
| 169 - System event triggers have fewer obscure bugs (#2509) | |
| 170 - Plugin discovery code is much better behaved, allowing multiple | |
| 171 installations of a package with plugins (#2339, #2769) | |
| 172 - Process and PTYProcess have been merged and some minor bugs have been fixed | |
| 173 (#2341) | |
| 174 - The reactor has less global state (#2545) | |
| 175 - Failure can now correctly represent and format errors caused by string | |
| 176 exceptions (#2830) | |
| 177 - The epoll reactor now has better error handling which now avoids the bug | |
| 178 causing 100% CPU usage in some cases (#2809) | |
| 179 - Errors raised during trial setUp or tearDown methods are now handled better | |
| 180 (#2837) | |
| 181 - A problem when deferred callbacks add new callbacks to the deferred that | |
| 182 they are a callback of was fixed (#2849) | |
| 183 - Log messages that are emitted during connectionMade now have the protocol | |
| 184 prefix correctly set (#2813) | |
| 185 - The string representation of a TCP Server connection now contains the actual | |
| 186 port that it's bound to when it was configured to listen on port 0 (#2826) | |
| 187 - There is better reporting of error codes for TCP failures on Windows (#2425) | |
| 188 - Process spawning has been made slightly more robust by disabling garbage | |
| 189 collection temporarily immediately after forking so that finalizers cannot | |
| 190 be executed in an unexpected environment (#2483) | |
| 191 - namedAny now detects import errors better (#698) | |
| 192 - Many fixes and improvements to the twisted.python.zipstream module have | |
| 193 been made (#2996) | |
| 194 - FilePager no longer blows up on empty files (#3023) | |
| 195 - twisted.python.util.FancyEqMixin has been improved to cooperate with objects | |
| 196 of other types (#2944) | |
| 197 - twisted.python.FilePath.exists now restats to prevent incorrect result | |
| 198 (#2896) | |
| 199 - twisted.python.util.mergeFunctionMetadata now also merges the __module__ | |
| 200 attribute (#3049) | |
| 201 - It is now possible to call transport.pauseProducing within connectionMade on | |
| 202 TCP transports without it being ignored (#1780) | |
| 203 - twisted.python.versions now understands new SVN metadata format for fetching | |
| 204 the SVN revision number (#3058) | |
| 205 - It's now possible to use reactor.callWhenRunning(reactor.stop) on gtk2 and | |
| 206 glib2 reactors (#3011) | |
| 207 | |
| 208 Deprecations and removals | |
| 209 ------------------------- | |
| 210 - twisted.python.timeoutqueue is now deprecated (#2536) | |
| 211 - twisted.enterprise.row and twisted.enterprise.reflector are now deprecated | |
| 212 (#2387) | |
| 213 - twisted.enterprise.util is now deprecated (#3022) | |
| 214 - The dispatch and dispatchWithCallback methods of ThreadPool are now | |
| 215 deprecated (#2684) | |
| 216 - Starting the same reactor multiple times is now deprecated (#1785) | |
| 217 - The visit method of various test classes in trial has been deprecated (#2897) | |
| 218 - The --report-profile option to twistd and twisted.python.dxprofile are | |
| 219 deprecated (#2908) | |
| 220 - The upDownError method of Trial reporters is deprecated (#2883) | |
| 221 | |
| 222 Other | |
| 223 ----- | |
| 224 | |
| 225 - #2396, #2211, #1921, #2378, #2247, #1603, #2463, #2530, #2426, #2356, #2574, | |
| 226 - #1844, #2575, #2655, #2640, #2670, #2688, #2543, #2743, #2744, #2745, #2746, | |
| 227 - #2742, #2741, #1730, #2831, #2216, #1192, #2848, #2767, #1220, #2727, #2643, | |
| 228 - #2669, #2866, #2867, #1879, #2766, #2855, #2547, #2857, #2862, #1264, #2735, | |
| 229 - #942, #2885, #2739, #2901, #2928, #2954, #2906, #2925, #2942, #2894, #2793, | |
| 230 - #2761, #2977, #2968, #2895, #3000, #2990, #2919, #2969, #2921, #3005, #421, | |
| 231 - #3031, #2940, #1181, #2783, #1049, #3053, #2847, #2941, #2876, #2886, #3086, | |
| 232 - #3095, #3109 | |
| 233 | |
| 234 | |
| 235 2.5.0 (2006-12-29) | |
| 236 ================== | |
| 237 | |
| 238 Twisted 2.5.0 is a major feature release, with several interesting new | |
| 239 developments and a great number of bug fixes. Some of the highlights | |
| 240 follow. | |
| 241 | |
| 242 * AMP, the Asynchronous Messaging Protocol, was introduced. AMP is | |
| 243 a protocol which provides request/response semantics over a | |
| 244 persistent connection in a very simple and extensible manner. | |
| 245 | |
| 246 * An Epoll-based reactor was added, which can be used with twistd or | |
| 247 trial by passing "-r epoll" on the command line. This may improve | |
| 248 performance of certain high-traffic network applications. | |
| 249 | |
| 250 * The 'twistd' command can now accept sub-commands which name an | |
| 251 application to run. For example, 'twistd web --path .' will start a | |
| 252 web server serving files out of the current directory. This | |
| 253 functionality is meant to replace the old way of doing things with | |
| 254 'mktap' and 'twistd -f'. | |
| 255 | |
| 256 * Python 2.5 is now supported. Previous releases of Twisted were | |
| 257 broken by changes in the release of Python 2.5. | |
| 258 | |
| 259 * 'inlineCallbacks' was added, which allows taking advantage of the | |
| 260 new 'yield' expression syntax in Python 2.5 to avoid writing | |
| 261 callbacks for Deferreds. | |
| 262 | |
| 263 In addition to these changes, there are many other minor features and | |
| 264 a large number of bug fixes. | |
| 265 | |
| 266 Features | |
| 267 -------- | |
| 268 - log.err can now take a second argument for specifying information | |
| 269 about an error (#1399) | |
| 270 - A time-simulating test helper class, twisted.internet.task.Clock, | |
| 271 was added (#1757) | |
| 272 - Trial docstring improvements were made (#1604, #2133) | |
| 273 - New SSL features were added to twisted.internet.ssl, such as client | |
| 274 validation (#302) | |
| 275 - Python 2.5 is now supported (#1867) | |
| 276 - Trial's assertFailure now provides more information on failure (#1869) | |
| 277 - Trial can now be run on tests within a zipfile (#1940) | |
| 278 - AMP, a new simple protocol for asynchronous messaging, was added (#1715) | |
| 279 - Trial's colorful reporter now works on win32 (#1646) | |
| 280 - Trial test modules may now dynamically construct TestSuites (#1638, #2165) | |
| 281 - twistd can now make use of plugins to run applications (#1922, #2013) | |
| 282 - Twisted now works with the latest (unreleased) zope.interface (#2160) | |
| 283 - An epoll-based reactor, epollreactor, was added. It is selectable | |
| 284 with the -r options to twistd and trial (#1953) | |
| 285 - twistd and trial now use the plugin system to find reactors which | |
| 286 can be selected (#719) | |
| 287 - twisted.internet.defer.inlineCallbacks was added. It takes | |
| 288 advantage of Python 2.5's generators to offer a way to deal with | |
| 289 Deferreds without callbacks (#2100) | |
| 290 | |
| 291 Fixes | |
| 292 ----- | |
| 293 - Traceback formatting in Trial was improved (#1454, #1610) | |
| 294 - twisted.python.filepath.FilePath.islink now actually returns True when | |
| 295 appropriate (#1773) | |
| 296 - twisted.plugin now no longer raises spurious errors (#926) | |
| 297 - twisted.pb Cacheables may now be new-style classes (#1324) | |
| 298 - FileDescriptor now deals with producers in a more | |
| 299 interface-compliant and robust manner (#2286, #811) | |
| 300 - "setup.py build" and other setup.py commands which don't actually | |
| 301 install the software now work (#1835) | |
| 302 - wxreactor has had various fixes (#1235, #1574, #1688) | |
| 303 | |
| 304 Deprecations and Removals | |
| 305 ------------------------- | |
| 306 - The old twisted.cred API (Perspectives, Identities and such) was | |
| 307 removed (#1440) | |
| 308 - twisted.spread.newjelly was removed (#1831) | |
| 309 - Various deprecated things in twisted.python.components were | |
| 310 removed: Interface, MetaInterface, getAdapterClass, and | |
| 311 getAdapterClassWithInheritance (#1636) | |
| 312 - twisted.enterprise.xmlreflector was removed (#661) | |
| 313 - mktap is slowly on its way out, now that twistd supports plugins. It | |
| 314 is not yet officially deprecated (#2013) | |
| 315 - tkmktap was removed, because it wasn't working anyway (#2020) | |
| 316 - reactor.iterate calls made inside of a Trial test case are | |
| 317 deprecated (#2090) | |
| 318 - twisted.internet.qtreactor was removed: It has been moved to a | |
| 319 separate project. See http://twistedmatrix.com/trac/wiki/QTReactor | |
| 320 (#2130, #2137) | |
| 321 - threadedselectreactor is now not a directly usable reactor; it is | |
| 322 only meant to help in writing other reactors (#2126) | |
| 323 - twisted.python.reflect.funcinfo is deprecated (#2079) | |
| 324 - twisted.spread.sturdy, which was already completely broken, was | |
| 325 removed (#2299) | |
| 326 | |
| 327 | |
| 328 Other | |
| 329 ----- | |
| 330 The following changes are minor or closely related to other changes. | |
| 331 | |
| 332 - #1783, #1786, #1788, #1648, #1734, #1609, #1800, #1818, | |
| 333 #1629, #1829, #491, #1816, #1824, #1855, #1797, #1637, #1371, | |
| 334 #1892, #1887, #1897, #1563, #1741, #1943, #1952, #1276, | |
| 335 #1837, #1726, #1963, #1965, #1973, #1976, #1991, #1936, #1113, | |
| 336 #630, #2002, #2040, #2044, #1617, #2045, #2055, #2056, #2022, | |
| 337 #2052, #1552, #1999, #1507, #2054, #1970, #1968, #662, #1910, | |
| 338 #1694, #1999, #1409, #2150, #2127, #2155, #1983, #2014, #2222, | |
| 339 #1067, #2136, #2065, #1430, #2173, #2212, #1871, #2147, #1199, | |
| 340 #2273, #428, #992, #815, #2024, #2292, #2125, #2139, #2291, #2174, | |
| 341 #2306, #2228, #2309, #2319, #2317, #2313, #2154, #1985, #1201 | |
| 342 | |
| 343 | |
| 344 2.4.0 (2006-05-21) | |
| 345 ================== | |
| 346 | |
| 347 Features | |
| 348 -------- | |
| 349 - twisted.internet.task.Cooperator (Added along with #1701). | |
| 350 | |
| 351 Fixes | |
| 352 ----- | |
| 353 - Errors in UDP protocols no longer unbind the UDP port (#1695). | |
| 354 - Misc: #1717, #1705, #1563, #1719, #1721, #1722, #1728. | |
| 355 | |
| 356 | |
| 357 2.3.0 (2006-05-14) | |
| 358 ================== | |
| 359 | |
| 360 Features | |
| 361 -------- | |
| 362 - twisted-dev-mode's F9 now uses trial's --testmodule feature, rather than | |
| 363 trying to guess what tests to run. This will break files using the "-x" | |
| 364 test-case-name hack (just use a comma separated list instead). | |
| 365 - API Documentation improvements. | |
| 366 - A new Producer/Consumer guide (#53) | |
| 367 - Better-defined error behavior in IReactorMulticast (#1578) | |
| 368 - IOCP Multicast support (#1500) | |
| 369 - Improved STDIO support on Windows. (#1553) | |
| 370 - LoopingCall supports Deferreds such that it will wait until a | |
| 371 Deferred has fired before rescheduling the next call (#1487) | |
| 372 - Added twisted.python.versions.Version, a structured representation | |
| 373 of Version information, including support for SVN revision numbers | |
| 374 (#1663) | |
| 375 | |
| 376 Fixes | |
| 377 ----- | |
| 378 | |
| 379 - Many trial fixes, as usual | |
| 380 - All API documentation is now correctly formatted as epytext (#1545) | |
| 381 - twisted.python.filepath.FilePath.__repr__ is safer. | |
| 382 - Fix trial's "until-failure" mode. (#1453) | |
| 383 - deferredGenerator now no longer causes handled exceptions (or | |
| 384 results) to propagate to the resulting Deferred (#1709). | |
| 385 - Misc: #1483, #1495, #1503, #1532, #1539, #1559, #1509, #1538, | |
| 386 #1571, #1331, #1561, #737, #1562, #1573, #1594, #1607, #1407, #1615, | |
| 387 #1645, #1634, #1620, #1664, #1666, #1650, #1670, #1675, #1692, #1710, | |
| 388 #1668. | |
| 389 | |
| 390 Deprecations | |
| 391 ------------ | |
| 392 | |
| 393 - Removal of already-deprecated trial APIs: the assertions module, | |
| 394 util.deferredResult, util.deferredError, util.fireWhenDoneFunc, | |
| 395 util.spinUntil, util.spinWhile, util.extract_tb, | |
| 396 util.format_exception, util.suppress_warnings, unittest.wait, | |
| 397 util.wait | |
| 398 - The backwards compatibility layer of twisted.python.components | |
| 399 (e.g., backwardsCompatImplements, fixClassImplements, etc) has been | |
| 400 disabled. The functions still exist, but do nothing as to not break | |
| 401 user code outright (#1511) | |
| 402 - Deprecate the usage of the 'default' argument as a keyword argument | |
| 403 in Interface.__call__. Passing a second positional argument to | |
| 404 specify the default return value of the adaptation is still | |
| 405 supported. | |
| 406 | |
| 407 | |
| 408 2.2.0 (2006-02-12) | |
| 409 ================== | |
| 410 | |
| 411 Features | |
| 412 -------- | |
| 413 - Twisted no longer works with Python 2.2 | |
| 414 - FTP server supports more clients | |
| 415 - Process support on Windows | |
| 416 - twisted.internet.stdio improved (including Windows support!) | |
| 417 - Trial: | |
| 418 - Continued Trial refactoring | |
| 419 - Default trial reporter is verbose black&white when color isn't supported | |
| 420 - Deferreds returned in trial tests that don't fire before the | |
| 421 unittest timeout now have their errback fired with a TimeoutError | |
| 422 - raising SkipTest in setUp and setUpClass skips tests | |
| 423 - Test suites are failed if there are import errors | |
| 424 | |
| 425 Fixes | |
| 426 ----- | |
| 427 - iocpreactor fixes | |
| 428 - Threadpool fixes | |
| 429 - Fixed infinite loops in datagramReceived edge cases | |
| 430 - Issues resolved: 654, 773, 998, 1005, 1008, 1116, 1123, 1198, 1221, | |
| 431 1232, 1233, 1236, 1240, 1244, 1258, 1263, 1265, 1266, 1271, 1275, | |
| 432 1293, 1294, 1298, 1308, 1316, 1317, 1321, 1341, 1344, 1353, 1359, | |
| 433 1372, 1374, 1377, 1379, 1380, 1385, 1388, 1389, 1413, 1422, 1426, | |
| 434 1434, 1435, 1448, 1449, 1456 | |
| 435 | |
| 436 Deprecations | |
| 437 ------------ | |
| 438 - Trial: | |
| 439 - spinWhile and spinUntil | |
| 440 - util.wait | |
| 441 - extract_tb and format_exception | |
| 442 - util.suppressWarnings | |
| 443 - runReactor is gone | |
| 444 | |
| 445 | |
| 446 2.1.0 (2005-11-06) | |
| 447 ================== | |
| 448 | |
| 449 Features | |
| 450 -------- | |
| 451 - threadedselectreactor, a reactor which potentially makes | |
| 452 integration with foreign event loops much simpler. | |
| 453 - major improvements to twisted.conch.insults, including many new widgets. | |
| 454 - adbapi ConnectionPools now have 'runWithConnection' which is | |
| 455 similar to runInteraction but gives you a connection object instead of | |
| 456 a transaction. [975] | |
| 457 - __file__ is now usable in tac files | |
| 458 - twisted.cred.pamauth now contains a PAM checker (moved from twisted.conch) | |
| 459 - twisted.protocols.policies.LimitTotalConnectionsFactory now exists, | |
| 460 which does as the name suggests | |
| 461 - twisted.protocols.ident now uses /proc/net/tcp on Linux [233] | |
| 462 - trial now recurses packages by default (a la the old -R parameter) | |
| 463 - (PB) Calling a remote method that doesn't exist now raises | |
| 464 NoSuchMethod instead of AttributeError. | |
| 465 | |
| 466 Fixes | |
| 467 ----- | |
| 468 - FTP client and server improvements | |
| 469 - Trial improvements: The code is now much simpler, and more stable. | |
| 470 - twisted.protocols.basic.FileSender now works with empty files | |
| 471 - Twisted should now be much more usable on Pythons without thread support. | |
| 472 - minor improvements to process code in win32eventreactor | |
| 473 - twistd -y (--python) now implies -o (--nosave). [539] | |
| 474 - improved lockfile handling especially with respect to unix sockets. | |
| 475 - deferredGenerator now no longer overuses the stack, which sometimes | |
| 476 caused stack overflows. | |
| 477 - Failure.raiseException now at least always raises the correct Exception. | |
| 478 - minor improvements to serialport code | |
| 479 | |
| 480 Deprecations | |
| 481 ------------ | |
| 482 - twisted.python.componts.getAdapter. Use IFoo(o) instead. | |
| 483 - Adapter persistence (IFoo(x, persist=True)). Just don't use it. | |
| 484 - log.debug. It was equivalent to log.msg(), just use that. | |
| 485 - twisted.protocols.telnet. twisted.conch.telnet replaces it. | |
| 486 - Setting a trial reporter using a flag to 'trial'. Instead of 'trial | |
| 487 --bwverbose', for example, use 'trial --reporter=bwverbose'. | |
| 488 - trial --coverage will become a flag in Twisted 2.2. | |
| 489 - passing a fully-qualified python name to --reporter is | |
| 490 deprecated. Pass only names of Reporter plugins. | |
| 491 - trial --psyco. | |
| 492 - trial -R (--recurse) is now the default, so passing it is deprecated. | |
| 493 - trial --reporter-args. Use the plugin system to do this sort of thing. | |
| 494 - trial.assertions.assertionMethod and trial.unittest.assertionMethod | |
| 495 are both deprecated. Use instance methods on TestCases instead. | |
| 496 - trial's deferredResult, deferredError, and wait functions. Return | |
| 497 Deferreds from your test methods instead of using them. | |
| 498 - Raising unittest.SkipTest with no arguments. Give a reason for your skip. | |
| 499 - The Failure returned from a gatherResults and DeferredList is now | |
| 500 of type FirstError instead of a tuple of (Exception, index). It | |
| 501 supports a firstError[idx] syntax but that is deprecated. Use | |
| 502 firstError.subFailure and firstError.index instead. | |
| 503 - whenThreaded now simply calls the passed function synchronously. | |
| 504 | |
| 505 2.0.1 (2005-05-09) | |
| 506 =================== | |
| 507 Minor bug fix release. | |
| 508 | |
| 509 SVN rev (file) - [bug number] description | |
| 510 ----------------------------------------- | |
| 511 13307 (twisted/topfiles/README) - Mention support for python 2.4, too | |
| 512 13324 (twisted/internet/defer.py) - [947] Fix DeferredQueue backlog/size limit. | |
| 513 13354 (twisted/plugins/__init__.py) - Correct maintainer address. | |
| 514 13355 (twisted/test/test_defer.py) - improvements to DeferredQueue test case | |
| 515 13387 (setup.py) - add news to list of subprojects to install | |
| 516 13332 (twisted/internet/posixbase.py) - Fix spelling error | |
| 517 13366 (twisted/internet/qtreactor.py) - [957] [954] reactor.iterate fixes | |
| 518 13368 (twisted/test/test_internet.py) - Fix DelayedCall test case | |
| 519 13422 (twisted/internet/posixbase.py) - Remove log from _Win32Waker creation. | |
| 520 13437 (twisted/plugin.py) - [958] Only write cache if there were changes. | |
| 521 13666 (twisted/internet/gtkreactor.py,gtk2reactor.py) - Don't run callbacks | |
| 522 until the reactor is actually up and running | |
| 523 13748 (twisted/internet/gtk2reactor.py) - [552] [994] Initialize threading prope
rly. | |
| 524 | |
| 525 | |
| 526 2.0.0 (2005-03-25) | |
| 527 ================== | |
| 528 | |
| 529 Major new features | |
| 530 ------------------ | |
| 531 - Replaced home-grown components system with zope.interface. | |
| 532 - Split Twisted into multiple pieces. | |
| 533 - Relicensed: Now under the MIT license, rather than LGPL. | |
| 534 - Python 2.4 compatibility fixes | |
| 535 - Major efficiency improvements in TCP buffering algorithm. | |
| 536 - Major efficiency improvements in reactor.callLater/DelayedCall. | |
| 537 - Half-close support for TCP/SSL. (loseWriteConnection). | |
| 538 | |
| 539 Miscellaneous features/fixes | |
| 540 ---------------------------- | |
| 541 - New plugin system: twisted.plugin | |
| 542 - Better debugging support. Control-C will break you into PDB. | |
| 543 - The twistd command has --uid --gid command line arguments. | |
| 544 - *Incompatibility: mktap defaults to not change UID/GID, instead of saving | |
| 545 the invoking user's UID/GID. | |
| 546 - Removed some functions that were deprecated since Twisted 1.0. | |
| 547 - ZSH tab-completion for twisted commands. | |
| 548 | |
| 549 - More correct daemonization in twistd. | |
| 550 - twisted.python.log: do not close the log because of invalid format string. | |
| 551 - Disabled automatic import of cBanana. | |
| 552 - Boolean support for twisted.persisted.marmalade. | |
| 553 - Refactor of plugin and application HOWTO documentation | |
| 554 - Async HOWTO expanded greatly. | |
| 555 - twisted.python.usage outputs the actual defaults, not passed in values. | |
| 556 | |
| 557 twisted.trial | |
| 558 ------------- | |
| 559 - Rewritten, a bunch of bugs fixed, a few more added. | |
| 560 | |
| 561 twisted.internet | |
| 562 ---------------- | |
| 563 - Multi-listen UDP multicast support | |
| 564 - protocol.ClientCreator has a connectSSL. | |
| 565 - defer.deferredGenerator: allows you to write Deferred code w/o callbacks. | |
| 566 - Deferred.setTimeout is now deprecated. | |
| 567 - New defer.DeferredLock/DeferredSemaphore/DeferredQueue. | |
| 568 - Add utils.getProcessOutputAndValue to get stdout/err/value. | |
| 569 | |
| 570 - Default DNS resolver is now non-blocking. | |
| 571 - Increased default TCP accept backlog from 5 to 50. | |
| 572 - Make buffering large amounts of TCP data work on Windows. | |
| 573 - Fixed SSL disconnect to not wait for remote host. Fixes issue with firefox. | |
| 574 - Separate state for Deferred finalization so that GC-loops preventing | |
| 575 finalization don't occur. | |
| 576 - Many Process bugfixes | |
| 577 - Processes spawned on windows can successfully use sockets | |
| 578 - gtk2reactor can optionally use glib event loop instead of gtk | |
| 579 - gtk2reactor notifies gobject to initialize thread support | |
| 580 - Fix registering a streaming producer on a transport. | |
| 581 - Close client sockets explicitly after failed connections. | |
| 582 - ReconnectingClientFactory now continues attempting to reconnect after all | |
| 583 errors, not just those which are not UserErrors. | |
| 584 | |
| 585 twisted.protocols | |
| 586 ----------------- | |
| 587 - Portforward doesn't start reading from a client until a connection is made. | |
| 588 - Bugfixes in twisted.protocols.loopback | |
| 589 - Improve speed of twisted.protocols.LineReceiver. | |
| 590 - LineReceiver implements IProducer. (stop/pause/resumeProducing) | |
| 591 - SOCKSv4 properly closes connections | |
| 592 | |
| 593 twisted.enterprise | |
| 594 ------------------ | |
| 595 - Add "new connection" callback to adbapi.ConnectionPool to allow for | |
| 596 custom db connection setup (cp_openfun) | |
| 597 - adbapi.ConnectionPool automatic reconnection support | |
| 598 - Don't log exceptions extraneously | |
| 599 | |
| 600 | |
| 601 1.3.0 (2004-05-14) | |
| 602 ================== | |
| 603 | |
| 604 - Address objects for IPv4 and Unix addresses throughout twisted.internet. | |
| 605 - Improved connected UDP APIs. | |
| 606 - Refactored SSH client support. | |
| 607 - Initial implementation of Windows I/O Completion Ports event loop. | |
| 608 - Bug fixes and feature enhancements. | |
| 609 - Nevow support for Lore (so your Lore documents can use Nevow directives). | |
| 610 - This is the last release before Twisted begins splitting up. | |
| OLD | NEW |