4
Twisted 2.5.0 is a major feature release, with several interesting new
5
developments and a great number of bug fixes. Some of the highlights
8
* AMP, the Asynchronous Messaging Protocol, was introduced. AMP is
9
a protocol which provides request/response semantics over a
10
persistent connection in a very simple and extensible manner.
12
* An Epoll-based reactor was added, which can be used with twistd or
13
trial by passing "-r epoll" on the command line. This may improve
14
performance of certain high-traffic network applications.
16
* The 'twistd' command can now accept sub-commands which name an
17
application to run. For example, 'twistd web --path .' will start a
18
web server serving files out of the current directory. This
19
functionality is meant to replace the old way of doing things with
20
'mktap' and 'twistd -f'.
22
* Python 2.5 is now supported. Previous releases of Twisted were
23
broken by changes in the release of Python 2.5.
25
* 'inlineCallbacks' was added, which allows taking advantage of the
26
new 'yield' expression syntax in Python 2.5 to avoid writing
27
callbacks for Deferreds.
29
In addition to these changes, there are many other minor features and
30
a large number of bug fixes.
34
- log.err can now take a second argument for specifying information
35
about an error (#1399)
36
- A time-simulating test helper class, twisted.internet.task.Clock,
38
- Trial docstring improvements were made (#1604, #2133)
39
- New SSL features were added to twisted.internet.ssl, such as client
41
- Python 2.5 is now supported (#1867)
42
- Trial's assertFailure now provides more information on failure (#1869)
43
- Trial can now be run on tests within a zipfile (#1940)
44
- AMP, a new simple protocol for asynchronous messaging, was added (#1715)
45
- Trial's colorful reporter now works on win32 (#1646)
46
- Trial test modules may now dynamically construct TestSuites (#1638, #2165)
47
- twistd can now make use of plugins to run applications (#1922, #2013)
48
- Twisted now works with the latest (unreleased) zope.interface (#2160)
49
- An epoll-based reactor, epollreactor, was added. It is selectable
50
with the -r options to twistd and trial (#1953)
51
- twistd and trial now use the plugin system to find reactors which
52
can be selected (#719)
53
- twisted.internet.defer.inlineCallbacks was added. It takes
54
advantage of Python 2.5's generators to offer a way to deal with
55
Deferreds without callbacks (#2100)
59
- Traceback formatting in Trial was improved (#1454, #1610)
60
- twisted.python.filepath.FilePath.islink now actually returns True when
62
- twisted.plugin now no longer raises spurious errors (#926)
63
- twisted.pb Cacheables may now be new-style classes (#1324)
64
- FileDescriptor now deals with producers in a more
65
interface-compliant and robust manner (#2286, #811)
66
- "setup.py build" and other setup.py commands which don't actually
67
install the software now work (#1835)
68
- wxreactor has had various fixes (#1235, #1574, #1688)
70
Deprecations and Removals
71
-------------------------
72
- The old twisted.cred API (Perspectives, Identities and such) was
74
- twisted.spread.newjelly was removed (#1831)
75
- Various deprecated things in twisted.python.components were
76
removed: Interface, MetaInterface, getAdapterClass, and
77
getAdapterClassWithInheritance (#1636)
78
- twisted.enterprise.xmlreflector was removed (#661)
79
- mktap is slowly on its way out, now that twistd supports plugins. It
80
is not yet officially deprecated (#2013)
81
- tkmktap was removed, because it wasn't working anyway (#2020)
82
- reactor.iterate calls made inside of a Trial test case are
84
- twisted.internet.qtreactor was removed: It has been moved to a
85
separate project. See http://twistedmatrix.com/trac/wiki/QTReactor
87
- threadedselectreactor is now not a directly usable reactor; it is
88
only meant to help in writing other reactors (#2126)
89
- twisted.python.reflect.funcinfo is deprecated (#2079)
90
- twisted.spread.sturdy, which was already completely broken, was
96
The following changes are minor or closely related to other changes.
98
- #1783, #1786, #1788, #1648, #1734, #1609, #1800, #1818,
99
#1629, #1829, #491, #1816, #1824, #1855, #1797, #1637, #1371,
100
#1892, #1887, #1897, #1563, #1741, #1943, #1952, #1276,
101
#1837, #1726, #1963, #1965, #1973, #1976, #1991, #1936, #1113,
102
#630, #2002, #2040, #2044, #1617, #2045, #2055, #2056, #2022,
103
#2052, #1552, #1999, #1507, #2054, #1970, #1968, #662, #1910,
104
#1694, #1999, #1409, #2150, #2127, #2155, #1983, #2014, #2222,
105
#1067, #2136, #2065, #1430, #2173, #2212, #1871, #2147, #1199,
106
#2273, #428, #992, #815, #2024, #2292, #2125, #2139, #2291, #2174,
107
#2306, #2228, #2309, #2319, #2317, #2313, #2154, #1985, #1201