Twisted Core 15.2.1 (2015-05-23)
================================
Bugfixes
--------
- twisted.logger now marks the `isError` key correctly on legacy
events generated by writes to stderr. (#7903)
Improved Documentation
----------------------
- twisted.logger's documentation is now correctly listed in the table
of contents. (#7904)
Twisted Core 15.2.0 (2015-05-18)
================================
Features
--------
- twisted.internet.process has now been ported to Python 3. (#5987)
- twisted.cred.credentials is now ported to Python 3. (#6176)
- twisted.trial.unittest.TestCase's assertEqual, assertTrue, and
assertFalse methods now pass through the standard library's more
informative failure messages. (#6306)
- The new package twisted.logger provides a new, fully tested, and
feature-rich logging framework. The old module twisted.python.log
is now implemented using the new framework. The new logger HOWTO
documents the new framework. (#6750)
- twisted.python.modules is now ported to Python 3. (#7804)
- twisted.python.filepath.FilePath now supports Unicode (text) paths.
Like the os module, instantiating it with a Unicode path will
return a Unicode-mode FilePath, instantiating with a bytes path
will return a bytes-mode FilePath. (#7805)
- twisted.internet.kqreactor is now ported to Python 3 (#7823)
- twisted.internet.endpoints.ProcessEndpoint is now ported to Python
3. (#7824)
- twisted.python.filepath.FilePath now has asBytesMode and asTextMode
methods which return a FilePath in the requested mode. (#7830)
- twisted.python.components.proxyForInterface now creates method
proxies that can be used with functools.wraps. (#7832)
- The tls optional dependency will now also install the idna package
to validate idna2008 names. (#7853)
Bugfixes
--------
- Don't raise an exception if `DefaultLogObserver.emit()` gets an
event with a message that raises when `repr()` is called on it.
Specifically: use `textFromEventDict()` instead of a separate (and
inferior) message rendering implementation. (#6569)
- twisted.cred.credentials.DigestedCredentials incorrectly handled
md5-sess hashing according to the RFC, which has now been fixed.
(#7835)
- Fixed an issue with twisted.internet.task.LoopingCall.withCount
where sometimes the passed callable would be invoked with "0" when
we got close to tricky floating point boundary conditions. (#7836)
- twisted.internet.defer now properly works with the new logging
system. (#7851)
- Change `messages` key to `log_io` for events generated by
`LoggingFile`. (#7852)
- twisted.logger had literal characters in docstrings that are now
quoted. (#7854)
- twisted.logger now correctly formats a log event with a key named
`message` when passed to a legacy log observer. (#7855)
- twisted.internet.endpoints.HostnameEndpoint now uses getaddrinfo
properly on Python 3.4 and above. (#7886)
Improved Documentation
----------------------
- Fix a typo in narrative documentation for logger (#7875)
Deprecations and Removals
-------------------------
- tkunzip and tapconvert in twisted.scripts were deprecated in 11.0
and 12.1 respectively, and are now removed. (#6747)
- twisted.protocols.gps is deprecated in preference to
twisted.positioning. (#6810)
- twisted.scripts.tap2deb and twisted.scripts.tap2rpm are now
deprecated. (#7682)
- twisted.trial.reporter.TestResult and
twisted.trial.reporter.Reporter contained deprecated methods (since
8.0) which have now been removed. (#7815)
Other
-----
- #6027, #7287, #7701, #7727, #7758, #7776, #7786, #7812, #7819,
#7831, #7838, #7865, #7866, #7869, #7872, #7877, #7878, #7885
Twisted Conch 15.2.0 (2015-05-18)
=================================
Features
--------
- twisted.conch.ssh.forwarding now supports local->remote forwarding
of IPv6 (#7751)
Twisted Mail 15.2.0 (2015-05-18)
================================
Features
--------
- twisted.mail.smtp.sendmail now uses ESMTP. It will
opportunistically enable encryption and allow the use of
authentication. (#7257)
Twisted Web 15.2.0 (2015-05-18)
===============================
Features
--------
- twisted.web.static is now ported to Python 3. (#6177)
- twisted.web.server.Site accepts requestFactory as constructor
argument. (#7016)
Deprecations and Removals
-------------------------
- twisted.web.util had some HTML generation functions deprecated
since 12.1 that have now been removed. (#7828)
Other
-----
- #6927, #7797, #7802, #7846
Twisted Words 15.2.0 (2015-05-18)
=================================
Bugfixes
--------
- The resumeOffset argument to
twisted.words.protocol.irc.DccFileReceive now works as it is
documented. (#7775)
Twisted Core 15.1.0 (2015-04-02)
================================
Features
--------
- Optional dependencies can be installed using the extra_requires
facility provided by setuptools. (#3696)
Improved Documentation
----------------------
- Twisted Trial's basics documentation now has a link to the
documentation about how Trial finds tests. (#4526)
Deprecations and Removals
-------------------------
- twisted.application.internet.UDPClient, deprecated since Twisted
13.1.0, has been removed. (#7702)
Other
-----
- #6988, #7005, #7006, #7007, #7008, #7044, #7335, #7666, #7723,
#7724, #7725, #7748, #7763, #7765, #7766, #7768
Twisted Mail 15.1.0 (2015-04-02)
================================
Bugfixes
--------
- twisted.mail.smtp.ESMTPClient now does not fall back to plain SMTP
if authentication or TLS is required and not able to occur. (#7258)
Other
-----
- #6705
Twisted Names 15.1.0 (2015-04-02)
=================================
No significant changes have been made for this release.
Other
-----
- #7728
Twisted Runner 15.1.0 (2015-04-02)
==================================
No significant changes have been made for this release.
Other
-----
- #7726
Twisted Web 15.1.0 (2015-04-02)
===============================
Features
--------
- twisted.web.static.File allows defining a custom resource for
rendering forbidden pages. (#6951)
Other
-----
- #7000, #7485, #7750, #7762
Twisted Words 15.1.0 (2015-04-02)
=================================
Deprecations and Removals
-------------------------
- twisted.words.protocols.msn is now deprecated (#6395)
Other
-----
- #6494
Twisted Core 15.0.0 (2015-01-24)
================================
Features
--------
- twisted.internet.protocol.ClientFactory (and subclasses) may now
return None from buildProtocol to immediately close the connection.
(#710)
- twisted.trial.unittest.SynchronousTestCase.assertRaises can now
return a context manager. (#5339)
- Implementations of
twisted.internet.interfaces.IStreamClientEndpoint included in
Twisted itself will now handle None being returned from the client
factory's buildProtocol method by immediately closing the
connection and firing the waiting Deferred with a Failure. (#6976)
- inlineCallbacks now supports using the return statement with a
value on Python 3 (#7624)
- twisted.spread.banana.Banana.sendEncoded() now raises a more
informative error message if the user tries to encode objects of
unsupported type. (#7663)
Bugfixes
--------
- twisted.internet.interfaces.IReactorMulticast.listenMultiple works
again RHEL 6's python 2.6. (#7159)
- Allow much more of the code within Twisted to use ProcessEndpoint
by adding IPushProducer and IConsumer interfaces to its resulting
transport. (#7436)
- twisted.internet.ssl.Certificate(...).getPublicKey().keyHash() now
produces a stable value regardless of OpenSSL version.
Unfortunately this means that it is different than the value
produced by older Twisted versions. (#7651)
- twisted.python.reflect.safe_str on Python 3 converts utf-8 encoded
bytes to clean str instead of "b'a'" (#7660)
- twisted.spread.banana.Banana now raises NotImplementedError when
receiving pb messages without pb being the selected dialect (#7662)
- The SSL server string endpoint parser
(twisted.internet.endpoints.serverFromString) now constructs
endpoints which, by default, disable the insecure SSLv3 protocol.
(#7684)
- The SSL client string endpoint parser
(twisted.internet.endpoints.clientFromString) now constructs
endpoints which, by default, disable the insecure SSLv3 protocol.
(#7686)
Improved Documentation
----------------------
- inlineCallbacks now has introductory documentation. (#1009)
- The echoclient example now uses twisted.internet.task.react.
(#7083)
- Twisted Trial's how-to documentation now has a link to Twisted's
contribution guidelines and has been reformatted. (#7475)
- Fixed a path error in the make.bat file for building Sphinx
documentation, so that it is now possible to build the documenation
using make.bat on Windows. (#7542)
Deprecations and Removals
-------------------------
- twisted.python.filepath.FilePath.statinfo was deprecated. (#4450)
- twisted.internet.defer.deferredGenerator is now deprecated.
twisted.internet.defer.inlineCallbacks should be used instead.
(#6044)
- Pickling twisted.internet.ssl.OptionSSLCertificationOptions and
twisted.internet.ssl.Keypair is no longer supported. __getstate__
and __setstate__ methods of these classes have been deprecated.
(#6166)
- twisted.spread.jelly's support for unjellying "instance" atoms is
now deprecated. (#7653)
Other
-----
- #3404, #4711, #5730, #6042, #6626, #6947, #6953, #6989, #7032,
#7038, #7039, #7097, #7098, #7142, #7143, #7154, #7155, #7156,
#7157, #7158, #7160, #7161, #7162, #7164, #7165, #7176, #7234,
#7252, #7329, #7333, #7355, #7369, #7370, #7419, #7529, #7531,
#7534, #7537, #7538, #7620, #7621, #7633, #7636, #7637, #7638,
#7640, #7641, #7642, #7643, #7665, #7667, #7713, #7719
Twisted Conch 15.0.0 (2015-01-24)
=================================
Features
--------
- The new APIs: twisted.conch.checkers.IAuthorizedKeysDB,
twisted.conch.checkers.InMemorySSHKeyDB,
twisted.conch.checkers.UNIXAuthorizedKeyFiles, and
twisted.conch.checkers.SSHPublicKeyChecker have been added to
provide functionality to check the validity of SSH public keys and
specify where authorized keys are to be found. (#7144)
Deprecations and Removals
-------------------------
- twisted.conch.checkers.SSHPublicKeyDatabase is now deprecated in
favor of a twisted.conch.checkers.SSHPublicKeyChecker instantiated
with a twisted.conch.checkers.UNIXAuthorizedKeyFiles. (#7144)
Other
-----
- #6626, #7002, #7526, #7532, #7698
Twisted Lore 15.0.0 (2015-01-24)
================================
No significant changes have been made for this release.
Twisted Mail 15.0.0 (2015-01-24)
================================
No significant changes have been made for this release.
Other
-----
- #6999, #7708
Twisted Names 15.0.0 (2015-01-24)
=================================
Bugfixes
--------
- twisted.names.secondary.SecondaryAuthority can now answer queries
again (broken since 13.2.0). (#7408)
Other
-----
- #7352
Twisted News 15.0.0 (2015-01-24)
================================
No significant changes have been made for this release.
Other
-----
- #7703
Twisted Pair 15.0.0 (2015-01-24)
================================
No significant changes have been made for this release.
Other
-----
- #7722
Twisted Runner 15.0.0 (2015-01-24)
==================================
No significant changes have been made for this release.
Twisted Web 15.0.0 (2015-01-24)
===============================
Features
--------
- twisted.web.client.Agent.usingEndpointFactory allows creating an
Agent that connects in non-standard ways, e.g. via a proxy or a
UNIX socket. (#6634)
- The Deferred returned by twisted.web.client.readBody can now be
cancelled. (#6686)
Deprecations and Removals
-------------------------
- twisted.web.iweb.IRequest.getClient is now deprecated. Its
implementation in Twisted, twisted.web.http.Request.getClient, is
also deprecated and will no longer attempt to resolve the client IP
address to a hostname. (#2252)
Other
-----
- #7247, #7302, #7680, #7689
Twisted Words 15.0.0 (2015-01-24)
=================================
No significant changes have been made for this release.
Other
-----
- #6994, #7163, #7622
On behalf of Twisted Matrix Laboratories, Iâm releasing Twisted
14.0.1, a security release for Twisted 14.0. It is strongly suggested
that users of 14.0.0 upgrade to this release.
This patches a bug in Twisted Webâs Agent, where BrowserLikePolicyForHTTPS
would not honour the trust root given, and would use the system
trust root instead. This would have broken, for example, attempting
to pin the issuer for your HTTPS application because you only trust
one issuer.
Note: on OS X, with the system OpenSSL, you still can't fully rely
on this API for issuer pinning, due to modifications by Apple â
please see https://hynek.me/articles/apple-openssl-verification-surprises/
for more details.
Some parts are ported to python-3, but most parts not, so leave
it disabled for now.
Twisted Core 14.0.0 (2014-05-08)
================================
Features
--------
- twisted.internet.interfaces.IUDPTransport - and that interface's
implementations in Twisted - now supports enabling broadcasting.
(#454)
- trial's TestCase will now report a test method as an error if that
test method is a generator function, preventing an issue when a
user forgets to decorate a test method with defer.inlineCallbacks,
causing the test method to not run. (#3917)
- twisted.positioning, a new API for positioning systems such as GPS,
has been added. It comes with an implementation of NMEA, the most
common wire protocol for GPS devices. It will supersede
twisted.protoocols.gps. (#3926)
- The new interface twisted.internet.interfaces.IStreamClientEndpoint
StringParserWithReactor will supply the reactor to its
parseStreamClient method, passed along from
twisted.internet.endpoints.clientFromString. (#5069)
- IReactorUDP.listenUDP, IUDPTransport.write and
IUDPTransport.connect now accept ipv6 address literals. (#5086)
- A new API, twisted.internet.ssl.optionsForClientTLS, allows clients
to specify and verify the identity of the peer they're communicating
with. When used with the service_identity library from PyPI, this
provides support for service identity verification from RFC 6125, as
well as server name indication from RFC 6066. (#5190)
- Twisted's TLS support now provides a way to ask for user-configured
trust roots rather than having to manually configure such
certificate authority certificates yourself.
twisted.internet.ssl.CertificateOptions now accepts a new argument,
trustRoot, which combines verification flags and trust sources, as
well as a new function that provides a value for that argument,
twisted.internet.ssl.platformTrust, which allows using the trusted
platform certificate authorities from OpenSSL for certificate
verification. (#5446)
- Constants are now comparable/orderable based on the order in which
they are defined. (#6523)
- "setup.py install" and "pip install" now work on Python 3.3,
installing the subset of Twisted that has been ported to Python 3.
(#6539)
- twisted.internet.ssl.CertificateOptions now supports ECDHE for
servers by default on pyOpenSSL 0.14 and later, if the underlying
versions of cryptography.io and OpenSSL support it. (#6586)
- twisted.internet.ssl.CertificateOptions now allows the user to set
acceptable ciphers and uses secure ones by default. (#6663)
- The Deferred returned by
twisted.internet.defer.DeferredFilesystemLock.deferUntilLocked can
now be cancelled. (#6720)
- twisted.internet.ssl.CertificateOptions now enables TLSv1.1 and
TLSv1.2 by default (in addition to TLSv1.0) if the underlying
version of OpenSSL supports these protocol versions. (#6772)
- twisted.internet.ssl.CertificateOptions now supports Diffie-Hellman
key exchange. (#6799)
- twisted.internet.ssl.CertificateOptions now disables TLS
compression to avoid CRIME attacks and, for servers, uses server
preference to choose the cipher. (#6801)
- SSL server endpoint string descriptions now support the
specification of Diffie-Hellman key exchange parameter files.
(#6924)
- twisted.python.reflect.requireModule was added to handle
conditional imports of python modules and work around pyflakes
warnings of unused imports code. (#7014)
Bugfixes
--------
- If a ProcessProtocol.processExited method raised an exception a
broken process handler would be left in the global process state
leading to errors later on. This has been fixed and now an error
will be logged instead. (#5151)
- Twisted now builds on Solaris. Note that lacking a Buildbot slave
(see http://buildbot.twistedmatrix.com/boxes-supported) Solaris is
not a supported Twisted platform. (#5728)
- twisted.internet.utils is now correctly installed on Python 3.
(#6929)
- twisted.python.threadpool.ThreadPool no longer starts new workers
when its pool size is changed while the pool is not running.
(#7011)
Improved Documentation
----------------------
- Twisted now uses the Sphinx documentation generator for its
narrative documentation, which means that the source format for
narrative documentation has been converted to ReStructuredText.
(#4500)
- The Sphinx documentation is now also configured to allow
intersphinx links to standard library documentation. (#4582)
- The docstring for twisted.internet.task.react now better documents
the main parameter (#6071)
- The writing standard now explicitly mandates the usage of
ungendered pronouns. (#6858)
Deprecations and Removals
-------------------------
- test_import.py was removed as it was redundant. (#2053)
- Support for versions of pyOpenSSL older than 0.10 has been removed.
Affected users should upgrade pyOpenSSL. (#5014)
- twisted.internet.interfaces.IStreamClientEndpointStringParser is
now deprecated in favor of twisted.internet.interfaces.IStreamClien
tEndpointStringParserWithReactor. (#5069)
- unsignedID and setIDFunction, previously part of
twisted.python.util and deprecated since 13.0, have now been
removed. (#6707)
- FTPClient.changeDirectory was deprecated in 8.2 and is now removed.
(#6759)
- twisted.internet.stdio.StandardIO.closeStdin, an alias for
loseWriteConnection only available on POSIX and deprecated since
2.1, has been removed. (#6785)
- twisted.python.reflect.getcurrent is now deprecated and must not be
used. twisted.python.reflect.isinst is now deprecated in favor of
the built-in isinstance. (#6859)
Other
-----
- #1822, #5929, #6239, #6537, #6565, #6614, #6632, #6690, #6784,
#6792, #6795, #6821, #6843, #6846, #6854, #6856, #6857, #6872,
#6892, #6902, #6906, #6922, #6926, #6936, #6941, #6942, #6943,
#6944, #6945, #6946, #6948, #6979, #7001, #7049, #7051, #7094,
#7098
Twisted Conch 14.0.0 (2014-05-08)
=================================
Improved Documentation
----------------------
- The docstring for twisted.conch.ssh.userauth.SSHUserAuthClient is
now clearer on how the preferredOrder instance variable is handled.
(#6850)
Other
-----
- #6696, #6807, #7054
Twisted Lore 14.0.0 (2014-05-08)
================================
Deprecations and Removals
-------------------------
- twisted.lore is now deprecated in favor of Sphinx. (#6907)
Other
-----
- #6998
Twisted Mail 14.0.0 (2014-05-08)
================================
Improved Documentation
----------------------
- twisted.mail.alias now has full API documentation. (#6637)
- twisted.mail.tap now has full API documentation. (#6648)
- twisted.mail.maildir now has full API documentation. (#6651)
- twisted.mail.pop3client now has full API documentation. (#6653)
- twisted.mail.protocols now has full API documentation. (#6654)
- twisted.mail.pop now has full API documentation. (#6666)
- twisted.mail.relay and twisted.mail.relaymanager now have full API
documentation. (#6739)
- twisted.mail.pop3client public classes now appear as part of the
twisted.mail.pop3 API. (#6761)
Other
-----
- #6696
Twisted Names 14.0.0 (2014-05-08)
=================================
Features
--------
- twisted.names.root.Resolver now accepts a resolverFactory argument,
which makes it possible to control how root.Resolver performs
iterative queries to authoritative nameservers. (#6095)
- twisted.names.dns.Message now has a repr method which shows only
those instance flags, fields and sections which are set to non-
default values. (#6847)
- twisted.names.dns.Message now support rich comparison. (#6848)
Bugfixes
--------
- twisted.names.server.DNSServerFactory now responds with messages
whose flags and fields are reset to their default values instead of
copying these from the request. This means that AD and CD flags,
and EDNS OPT records in the request are no longer mirrored back to
the client. (#6645)
Improved Documentation
----------------------
- twisted.names now has narrative documentation showing how to create
a custom DNS server. (#6864)
- twisted.names.server now has full API documentation. (#6886)
- twisted.names now has narrative documentation explaining how to use
its client APIs. (#6925)
- twisted.names now has narrative documentation and examples showing
how to perform reverse DNS lookups. (#6969)
Other
-----
- #5675, #6222, #6672, #6696, #6887, #6940, #6975, #6990
Twisted News 14.0.0 (2014-05-08)
================================
No significant changes have been made for this release.
Other
-----
- #6991
Twisted Pair 14.0.0 (2014-05-08)
================================
Features
--------
- twisted.pair.tuntap now has complete test coverage, basic
documentation, and works without the difficult-to-find system
bindings it used to require. (#6169)
Other
-----
- #6898, #6931, #6993
Twisted Runner 14.0.0 (2014-05-08)
==================================
No significant changes have been made for this release.
Other
-----
- #6992
Twisted Web 14.0.0 (2014-05-08)
===============================
Features
--------
- twisted.web.http.proxiedLogFormatter can now be used with
twisted.web.http.HTTPFactory (and subclasses) to record X
-Forwarded-For values to the access log when the HTTP server is
deployed behind a reverse proxy. (#1468)
- twisted.web.client.Agent now uses
twisted.internet.ssl.CertificateOptions for SSL/TLS and benefits
from its continuous improvements. (#6893)
Bugfixes
--------
- twisted.web.client.Agent now correctly manage flow-control on
pooled connections, and therefore requests will no longer hang
sometimes when deliverBody is not called synchronously within the
callback on Request. (#6751)
- twisted.web.client.Agent now verifies that the provided server
certificate in a TLS connection is trusted by the platform. (#7042)
- When requesting an HTTPS URL with twisted.web.client.Agent, the
hostname of the presented certificate will be checked against the
requested hostname; mismatches will now result in an error rather
than a man-in-the-middle opportunity for attackers. This may break
existing code that incorrectly depended on insecure behavior, but
such code was erroneous and should be updated. (#4888)
Other
-----
- #5004, #6881, #6956
Twisted Words 14.0.0 (2014-05-08)
=================================
Bugfixes
--------
- twisted.words.protocols.jabber.sasl_mechansisms.DigestMD5 now works
with unicode arguments. (#5066)
Other
-----
- #6696
either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
* Twisted now includes a HostnameEndpoint implementation which uses IPv4 and IPv6 in parallel, speeding up the connection by using whichever connects first (the 'Happy Eyeballs'/RFC 6555 algorithm).
* Improved support for Cancellable Deferreds by kaizhang, our GSoC student.
* Improved Twisted.Mail documentation by shira, our Outreach Program for Women intern.
* twistd now waits for the application to start successfully before exiting after daemonization.
* SSL server endpoint string descriptions now support the specification of chain certificates.
* Over 70 closed tickets since 13.1.0.
- trial now has an --exitfirst flag which stops the test run after
the first error or failure.
- twisted.internet.ssl.CertificateOptions now supports chain
certificates.
- twisted.internet.endpoints now provides ProcessEndpoint, a child
process endpoint.
- Factory now has a forProtocol classmethod that constructs an
instance and sets its protocol attribute.
- twisted.internet.endpoints.connectProtocol allows connecting to a
client endpoint using only a protocol instance, rather than
requiring a factory.
- twisted.trial.unittest.SynchronousTestCase.assertNoResult no longer
swallows the result, if the assertion succeeds.
- twisted.python.constants.FlagConstant implements __iter__ so that
it can be iterated upon to find the flags that went into a flag
set, and implements __nonzero__ to test as false when empty.
- assertIs and assertIsNot have now been added to
twisted.trial.unittest.TestCase.
- twisted.trial.unittest.TestCase.failureResultOf now takes an
optional expected failure type argument.
- The POSIX implementation of
twisted.internet.interfaces.IReactorProcess now does not change the
parent process UID or GID in order to run child processes with a
different UID or GID.
Twisted Core 12.3.0 (2012-12-20)
================================
Features
--------
- The new -j flag to trial provides a trial runner supporting
multiple worker processes on the local machine, for parallel
testing. (#1784)
- twisted.internet.task.react, a new function, provides a simple API
for running the reactor until a single asynchronous function
completes. (#3270)
- twisted.protocols.ftp.FTP now handles FEAT and OPTS commands.
(#4515)
- trial now supports specifying a debugger other than pdb with the
--debugger command line flag. (#5794)
- twisted.python.util.runWithWarningsSuppressed has been added; it
runs a function with specified warning filters. (#5950)
- trial's skipping feature is now implemented in a way compatible with the
standard library unittest's runner. (#6006)
- The setup3.py script is now provided to provisionally support
building and installing an experimental, incomplete version of
Twisted in a Python 3 environment. (#6040)
- twisted.python.util.FancyStrMixin now supports arbitrary callables
to format attribute values. (#6063)
- Several new methods of twisted.trial.unittest.SynchronousTestCase
- `successResultOf`, `failureResultOf`, and `assertNoResult` -
have been added to make testing `Deferred`-using code easier.
(#6105)
Deprecations and Removals
-------------------------
- The minimum required version of zope.interface is now 3.6.0.
(#5683)
- twisted.internet.interfaces.IReactorArbitrary and
twisted.application.internet.GenericServer and GenericClient,
deprecated since Twisted 10.1, have been removed. (#5943)
- twisted.internet.interfaces.IFinishableConsumer, deprecated since
Twisted 11.1, has been removed. (#5944)
- twisted.python.failure has removed all support for string
exceptions. (#5948)
- assertTrue, assertEqual, and the other free-functions in
twisted.trial.unittest for writing assertions, deprecated since
prior to Twisted 2.3, have been removed. (#5963)
- Ports, connectors, wakers and other reactor-related types no longer
log a nice warning when they are erroneously pickled. Pickling of
such objects continues to be unsupported. (#5979)
- twisted.python.components.Componentized no longer inherits from
Versioned. (#5983)
- twisted.protocols.basic.NetstringReceiver.sendString no longer
accepts objects other than bytes; the removed behavior was
deprecated in Twisted 10.0. (#6025)
- The lookupRecord method of twisted.internet.interfaces.IResolver,
never implemented or called by Twisted, has been removed. (#6091)
Twisted Names 12.3.0 (2012-12-20)
=================================
Deprecations and Removals
-------------------------
- The `protocol` attribute of twisted.names.client.Resolver,
deprecated since Twisted 8.2, has been removed. (#6045)
- twisted.names.hosts.Resolver is no longer a
`twisted.persisted.styles.Versioned` subclass. (#6092)
Twisted Web 12.3.0 (2012-12-20)
===============================
Features
--------
- twisted.web.server.Site now supports an encoders argument to encode
request content, twisted.web.server.GzipEncoderFactory being the
first one provided. (#104)
Twisted Core 12.2.0 (2012-08-26)
================================
Features
--------
- twisted.protocols.sip.MessageParser now handles multiline headers.
(#2198)
- twisted.internet.endpoints now provides StandardIOEndpoint, a
Standard I/O endpoint. (#4697)
- If a FTPCmdError occurs during twisted.protocols.ftp.FTP.ftp_RETR
sending the file (i.e. it is raised by the IReadFile.send method it
invokes), then it will use that to return an error to the client
rather than necessarily sending a 426 CNX_CLOSED_TXFR_ABORTED
error. (#4913)
- twisted.internet.interfaces.IReactorSocket.adoptStreamConnection is
implemented by some reactors as a way to add an existing
established connection to them. (#5570)
- twisted.internet.endpoints now provides TCP6ServerEndpoint, an IPv6
TCP server endpoint. (#5694)
- twisted.internet.endpoints now provides TCP6ClientEndpoint, an IPv6
TCP client endpoint. (#5695)
- twisted.internet.endpoints.serverFromString, the endpoint string
description feature, can now be used to create IPv6 TCP servers.
(#5699)
- twisted.internet.endpoints.serverFromString, the endpoint string
description feature, can now be used to create servers that run on
Standard I/O. (#5729)
- twisted.trial.unittest now offers SynchronousTestCase, a test case
base class that provides usability improvements but not reactor-
based testing features. (#5853)
Twisted Conch 12.2.0 (2012-08-26)
=================================
Features
--------
- twisted.conch.ssh.transport.SSHTransport now returns an
SSHTransportAddress from the getPeer() and getHost() methods.
(#2997)
Twisted Mail 12.2.0 (2012-08-26)
================================
Deprecations and Removals
-------------------------
- twisted.mail.protocols.SSLContextFactory is now deprecated. (#4963)
- The --passwordfile option to twistd mail is now removed. (#5541)
Twisted Names 12.2.0 (2012-08-26)
=================================
Features
--------
- twisted.names.srvconnect.SRVConnector now takes a default port to
use when SRV lookup fails. (#3456)
Twisted Web 12.2.0 (2012-08-26)
===============================
Deprecations and Removals
-------------------------
- twisted.web.static.FileTransfer, deprecated since 9.0, is removed
now. Use a subclass of StaticProducer instead. (#5651)
- ErrorPage, NoResource and ForbiddenResource in twisted.web.error
were deprecated since 9.0 and are removed now. (#5659)
- twisted.web.google, deprecated since Twisted 11.1, is removed now.
(#5768)
Twisted Core 12.1.0 (2012-06-02)
================================
Features
--------
- The kqueue reactor has been revived. (#1918)
- twisted.python.filepath now provides IFilePath, an interface for
file path objects. (#2176)
- New gtk3 and gobject-introspection reactors have been added.
(#4558)
- gtk and glib reactors now run I/O and scheduled events with lower
priority, to ensure the UI stays responsive. (#5067)
- IReactorTCP.connectTCP() can now accept IPv6 address literals
(although not hostnames) in order to support connecting to IPv6
hosts. (#5085)
- twisted.internet.interfaces.IReactorSocket, a new interface, is now
supported by some reactors to listen on sockets set up by external
software (eg systemd or launchd). (#5248)
- twisted.internet.endpoints.clientFromString now also supports
strings in the form of tcp:example.com:80 and ssl:example.com:4321
(#5358)
- twisted.python.constants.Flags now provides a way to define
collections of flags for bitvector-type uses. (#5384)
- The epoll(7)-based reactor is now the default reactor on Linux.
(#5478)
- twisted.python.runtime.platform.isLinux can be used to check if
Twisted is running on Linux. (#5491)
- twisted.internet.endpoints.serverFromString now recognizes a
"systemd" endpoint type, for listening on a server port inherited
from systemd. (#5575)
- Connections created using twisted.internet.interfaces.IReactorUNIX
now support sending and receiving file descriptors between
different processes. (#5615)
- twisted.internet.endpoints.clientFromString now supports UNIX
client endpoint strings with the path argument specified like
"unix:/foo/bar" in addition to the old style, "unix:path=/foo/bar".
(#5640)
- twisted.protocols.amp.Descriptor is a new AMP argument type which
supports passing file descriptors as AMP command arguments over
UNIX connections. (#5650)
Deprecations and Removals
-------------------------
- The 'unsigned' flag to twisted.scripts.tap2rpm.MyOptions is now
deprecated. (#4086)
- Removed the unreachable _fileUrandom method from
twisted.python.randbytes.RandomFactory. (#4530)
- twisted.persisted.journal is removed, deprecated since Twisted
11.0. (#4805)
- Support for pyOpenSSL 0.9 and older is now deprecated. pyOpenSSL
0.10 or newer will soon be required in order to use Twisted's SSL
features. (#4974)
- backwardsCompatImplements and fixClassImplements are removed from
twisted.python.components, deprecated in 2006. (#5034)
- twisted.python.reflect.macro was removed, deprecated since Twisted
8.2. (#5035)
- twisted.python.text.docstringLStrip, deprecated since Twisted
10.2.0, has been removed (#5036)
- Removed the deprecated dispatch and dispatchWithCallback methods
from twisted.python.threadpool.ThreadPool (deprecated since 8.0)
(#5037)
- twisted.scripts.tapconvert is now deprecated. (#5038)
- twisted.python.reflect's Settable, AccessorType, PropertyAccessor,
Accessor, OriginalAccessor and Summer are now deprecated. (#5451)
- twisted.python.threadpool.ThreadSafeList (deprecated in 10.1) is
removed. (#5473)
- twisted.application.app.initialLog, deprecated since Twisted 8.2.0,
has been removed. (#5480)
- twisted.spread.refpath was deleted, deprecated since Twisted 9.0.
(#5482)
- twisted.python.otp, deprecated since 9.0, is removed. (#5493)
- Removed `dsu`, `moduleMovedForSplit`, and `dict` from
twisted.python.util (deprecated since 10.2) (#5516)
Twisted Conch 12.1.0 (2012-06-02)
=================================
Features
--------
- twisted.conch.tap now supports cred plugins (#4753)
Twisted Names 12.1.0 (2012-06-02)
=================================
Features
--------
- "twistd dns" secondary server functionality and
twisted.names.secondary now support retrieving zone information
from a master running on a non-standard DNS port. (#5468)
Twisted News 12.1.0 (2012-06-02)
================================
Deprecations and Removals
-------------------------
- The ability to pass a string article to NNTPServer._gotBody and
NNTPServer._gotArticle in t.news.nntp has been deprecated for years
and is now removed. (#4548)
Twisted Runner 12.1.0 (2012-06-02)
==================================
Deprecations and Removals
-------------------------
- ProcessMonitor.active, consistencyDelay, and consistency in
twisted.runner.procmon were deprecated since 10.1 have been
removed. (#5517)
Twisted Web 12.1.0 (2012-06-02)
===============================
Features
--------
- twisted.web.client.Agent and ProxyAgent now support persistent
connections. (#3420)
- Added twisted.web.template.renderElement, a function which renders
an Element to a response. (#5395)
- twisted.web.client.HTTPConnectionPool now ensures that failed
queries on persistent connections are retried, when possible.
(#5479)
- twisted.web.template.XMLFile now supports FilePath objects. (#5509)
- twisted.web.template.renderElement takes a doctype keyword
argument, which will be written as the first line of the response,
defaulting to the HTML5 doctype. (#5560)
Deprecations and Removals
-------------------------
- PHP3Script and PHPScript were removed from twisted.web.twcgi,
deprecated since 10.1. Use twcgi.FilteredScript instead. (#5456)
- twisted.web.template.XMLFile's support for file objects and
filenames is now deprecated. Use the new support for FilePath
objects. (#5509)
- twisted.web.server.date_time_string and
twisted.web.server.string_date_time are now deprecated in favor of
twisted.web.http.datetimeToString and twisted.web.
http.stringToDatetime (#5535)
Features
--------
- The interface argument to IReactorTCP.listenTCP may now be an IPv6
address literal, allowing the creation of IPv6 TCP servers.
- twisted.python.constants.Names now provides a way to define
collections of named constants, similar to the "enum type" feature
of C or Java.
- twisted.python.constants.Values now provides a way to define
collections of named constants with arbitrary values.
Bugfixes
--------
- Fixed an obscure case where connectionLost wasn't called on the
protocol when using half-close.
- UDP ports handle socket errors better on Windows.
- When idle, the gtk2 and glib2 reactors no longer wake up 10 times a
second.
- Prevent a rare situation involving TLS transports, where a producer
may be erroneously left unpaused.
- twisted.internet.iocpreactor.iocpsupport now has fewer 64-bit
compile warnings.
- The GTK2 reactor is now more responsive on Windows.
- TLS transports now correctly handle producer registration after the
connection has been lost.
- twisted.protocols.htb.Bucket now empties properly with a non-zero
drip rate.
- IReactorSSL and ITCPTransport.startTLS now synchronously propagate
errors from the getContext method of context factories, instead of
being capturing them and logging them as unhandled.
Improved Documentation
----------------------
- The multicast documentation has been expanded.
- twisted.internet.defer.Deferred now documents more return values.
- Show a better starting page at
http://twistedmatrix.com/documents/current
Deprecations and Removals
-------------------------
- Remove the deprecated module twisted.enterprise.reflector.
- Removed the deprecated module twisted.enterprise.row.
- Remove the deprecated module twisted.enterprise.sqlreflector.
- Removed the deprecated module twisted.enterprise.util, as well as
twisted.enterprise.adbapi.safe.
- Python 2.4 is no longer supported on any platform.
- Removed printTraceback and noOperation from twisted.spread.pb,
deprecated since Twisted 8.2.
* Add linux inotify support, allowing monitoring of file system
events.
* Deferreds now support cancellation.
* Added new "endpoint" interfaces in twisted.internet.interfaces,
which abstractly describe stream transport endpoints which can be
listened on or connected to. Implementations for TCP and SSL
clients and servers are present in twisted.internet.endpoints.
Notably, client endpoints' connect() methods return cancellable
Deferreds, so code written to use them can bypass the awkward
"ClientFactory.clientConnectionFailed" and
"Connector.stopConnecting" methods, and handle errbacks from or
cancel the returned deferred, respectively.
* twisted.protocols.amp.Integer's documentation now clarifies that
integers of arbitrary size are supported and that the wire format
is a base-10 representation.
* twisted.protocols.amp now includes support for transferring
timestamps (amp.DateTime) and decimal values (amp.Decimal).
* twisted.protocol.ftp.IWriteFile now has a close() method, which can
return a Deferred. Previously a STOR command would finish
immediately upon the receipt of the last byte of the uploaded file.
With close(), the backend can delay the finish until it has
performed some other slow action (like storing the data to a
virtual filesystem).
* FilePath now calls os.stat() only when new status information is
required, rather than immediately when anything changes. For some
applications this may result in fewer stat() calls. Additionally,
FilePath has a new method, 'changed', which applications may use to
indicate that the FilePath may have been changed on disk and
therefore the next status information request must fetch a new
stat result. This is useful if external systems, such as C
libraries, may have changed files that Twisted applications are
referencing via a FilePath.
* Documentation improvements are now summarized in the NEWS file.
* twisted.internet.task.deferLater now returns a cancellable
Deferred.
* The connect methods of twisted.internet.protocol.ClientCreator now
return cancellable Deferreds.
* twisted.spread.pb now has documentation covering some of its
limitations.
* twisted.spread.jelly now supports jellying and unjellying classes
defined with slots if they also implement __getstate__ and
__setstate__.
* twisted.protocols.amp.ListOf arguments can now be specified as
optional.
* Bugfixes
Based on PR#42918 by Wen Heping
Pkgsrc changes:
* set LICENSE to mit
* add handling of plugin cache file
Upstream changes:
from 8.1.0 to 10.0.0 is too long to put here.
please refer: http://twistedmatrix.com/trac/browser/trunk/NEWS
pkgsrc changes:
- Move more definitions to Makefile.common, drop some that had default values.
- Depend on py-OpenSSL and py-ZopeInterface.
- Add do-test target.
- Remove patch-aa and install all bin/ script with plain names, not with
${PYVERSSUFFIX} appended. setup.py is now much, much simpler, and rewriting
the patch would be difficult. It doesn't matter anyway, as I tried really
hard to install py-OpenSSL for both python24 and python25 and it just
doesn't work.
- assume that Python 2.4 and 2.5 are compatible and allow checking for
fallout.
- remove PYTHON_VERSIONS_COMPATIBLE that are obsoleted by the 2.3+
default. Modify the others to deal with the removals.
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
python*-pth packages into meta-packages which will install the non-pth
packages. Bump PKGREVISIONs on the non-pth versions to propagate the
thread change, but leave the *-pth versions untouched to not affect
existing installations.
Sync all PYTHON_VERSIONS_AFFECTED lines in package Makefiles.
patch provided by Michal Pasternak in PR pkg/25705
changes:
- Address objects for IPv4 and Unix addresses throughout twisted.internet.
- Improved connected UDP APIs.
- Refactored SSH client support.
- Initial implementation of Windows I/O Completion Ports event loop.
- Bug fixes and feature enhancements.
- Nevow support for Lore (so your Lore documents can use Nevow directives).
- This is the last release before Twisted begins splitting up.
provided by Michal Pasternak via pkgsrc-wip
Twisted is a framework, written in Python, for writing networked applications.
It includes implementations of a number of commonly used network services such
as a web server, an IRC chat server, a mail server, a relational database
interface and an object broker. Developers can build applications using all of
these services as well as custom services that they write themselves. Twisted
also includes a user authentication system that controls access to services
and provides services with user context information to implement their own
security models.