aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/topfiles/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/topfiles/NEWS')
-rw-r--r--lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/topfiles/NEWS1809
1 files changed, 0 insertions, 1809 deletions
diff --git a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/topfiles/NEWS b/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/topfiles/NEWS
deleted file mode 100644
index e0f7e219..00000000
--- a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/topfiles/NEWS
+++ /dev/null
@@ -1,1809 +0,0 @@
-Ticket numbers in this file can be looked up by visiting
-http://twistedmatrix.com/trac/ticket/<number>
-
-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)
-
-Bugfixes
---------
- - twisted.internet.Process.signalProcess now catches ESRCH raised by
- os.kill call and raises ProcessExitedAlready instead. (#2420)
- - TLSMemoryBIOProtocol (and therefore all SSL transports if pyOpenSSL
- >= 0.10) now provides the interfaces already provided by the
- underlying transport. (#5182)
-
-Deprecations and Removals
--------------------------
- - Python 2.5 is no longer supported. (#5553)
- - The --extra option of trial, deprecated since 11.0, is removed now.
- (#3374)
- - addPluginDir and getPluginDirs in twisted.python.util are
- deprecated now. (#4533)
- - twisted.trial.runner.DocTestCase, deprecated in Twisted 8.0, has
- been removed. (#5554)
- - startKeepingErrors, flushErrors, ignoreErrors, and clearIgnores in
- twisted.python.log (deprecated since Twisted 2.5) are removed now.
- (#5765)
- - unzip, unzipIter, and countZipFileEntries in
- twisted.python.zipstream (deprecated in Twisted 11.0) are removed
- now. (#5766)
- - twisted.test.time_helpers, deprecated since Twisted 10.0, has been
- removed. (#5820)
-
-Other
------
- - #4244, #4532, #4930, #4999, #5129, #5138, #5385, #5521, #5655,
- #5674, #5679, #5687, #5688, #5689, #5692, #5707, #5734, #5736,
- #5745, #5746, #5747, #5749, #5784, #5816, #5817, #5818, #5819,
- #5830, #5857, #5858, #5859, #5869, #5632
-
-
-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)
-
-Bugfixes
---------
- - twisted.internet.abstract.FileDescriptor implements
- twisted.internet.interfaces.IPushProducer instead of
- twisted.internet.interfaces.IProducer.
- twisted.internet.iocpreactor.abstract.FileHandle implements
- twisted.internet.interfaces.IPushProducer instead of
- twisted.internet.interfaces.IProducer. (#4386)
- - The epoll reactor now supports reading/writing to regular files on
- stdin/stdout. (#4429)
- - Calling .cancel() on any Twisted-provided client endpoint
- (TCP4ClientEndpoint, UNIXClientEndpoint, SSL4ClientEndpoint) now
- works as documented, rather than logging an AlreadyCalledError.
- (#4710)
- - A leak of OVERLAPPED structures in some IOCP error cases has been
- fixed. (#5372)
- - twisted.internet._pollingfile._PollableWritePipe now checks for
- outgoing unicode data in write() and writeSequence() instead of
- checkWork(). (#5412)
-
-Improved Documentation
-----------------------
- - "Working from Twisted's Subversion repository" links to UQDS and
- Combinator are now updated. (#5545)
- - Added tkinterdemo.py, an example of Tkinter integration. (#5631)
-
-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)
-
-Other
------
- - #2723, #3114, #3398, #4388, #4489, #5055, #5116, #5242, #5380,
- #5392, #5447, #5457, #5484, #5489, #5492, #5494, #5512, #5523,
- #5558, #5572, #5583, #5593, #5620, #5621, #5623, #5625, #5637,
- #5652, #5653, #5656, #5657, #5660, #5673
-
-
-Twisted Core 12.0.0 (2012-02-10)
-================================
-
-Features
---------
- - The interface argument to IReactorTCP.listenTCP may now be an IPv6
- address literal, allowing the creation of IPv6 TCP servers. (#5084)
- - twisted.python.constants.Names now provides a way to define
- collections of named constants, similar to the "enum type" feature
- of C or Java. (#5382)
- - twisted.python.constants.Values now provides a way to define
- collections of named constants with arbitrary values. (#5383)
-
-Bugfixes
---------
- - Fixed an obscure case where connectionLost wasn't called on the
- protocol when using half-close. (#3037)
- - UDP ports handle socket errors better on Windows. (#3396)
- - When idle, the gtk2 and glib2 reactors no longer wake up 10 times a
- second. (#4376)
- - Prevent a rare situation involving TLS transports, where a producer
- may be erroneously left unpaused. (#5347)
- - twisted.internet.iocpreactor.iocpsupport now has fewer 64-bit
- compile warnings. (#5373)
- - The GTK2 reactor is now more responsive on Windows. (#5396)
- - TLS transports now correctly handle producer registration after the
- connection has been lost. (#5439)
- - twisted.protocols.htb.Bucket now empties properly with a non-zero
- drip rate. (#5448)
- - 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. (#5449)
-
-Improved Documentation
-----------------------
- - The multicast documentation has been expanded. (#4262)
- - twisted.internet.defer.Deferred now documents more return values.
- (#5399)
- - Show a better starting page at
- http://twistedmatrix.com/documents/current (#5429)
-
-Deprecations and Removals
--------------------------
- - Remove the deprecated module twisted.enterprise.reflector. (#4108)
- - Removed the deprecated module twisted.enterprise.row. (#4109)
- - Remove the deprecated module twisted.enterprise.sqlreflector.
- (#4110)
- - Removed the deprecated module twisted.enterprise.util, as well as
- twisted.enterprise.adbapi.safe. (#4111)
- - Python 2.4 is no longer supported on any platform. (#5060)
- - Removed printTraceback and noOperation from twisted.spread.pb,
- deprecated since Twisted 8.2. (#5370)
-
-Other
------
- - #1712, #2725, #5284, #5325, #5331, #5362, #5364, #5371, #5407,
- #5427, #5430, #5431, #5440, #5441
-
-
-Twisted Core 11.1.0 (2011-11-15)
-================================
-
-Features
---------
- - TCP and TLS transports now support abortConnection() which, unlike
- loseConnection(), always closes the connection immediately. (#78)
- - Failures received over PB when tracebacks are disabled now display
- the wrapped exception value when they are printed. (#581)
- - twistd now has a --logger option, allowing the use of custom log
- observers. (#638)
- - The default reactor is now poll(2) on platforms that support it.
- (#2234)
- - twisted.internet.defer.inlineCallbacks(f) now raises TypeError when
- f returns something other than a generator or uses returnValue as a
- non-generator. (#2501)
- - twisted.python.usage.Options now supports performing Zsh tab-
- completion on demand. Tab-completion for Twisted commands is
- supported out-of-the-box on any recent zsh release. Third-party
- commands may take advantage of zsh completion by copying the
- provided stub file. (#3078)
- - twisted.protocols.portforward now uses flow control between its
- client and server connections to avoid having to buffer an
- unbounded amount of data when one connection is slower than the
- other. (#3350)
- - On Windows, the select, IOCP, and Gtk2 reactors now implement
- IReactorWin32Events (most notably adding support for serial ports
- to these reactors). (#4862)
- - twisted.python.failure.Failure no longer captures the state of
- locals and globals of all stack frames by default, because it is
- expensive to do and rarely used. You can pass captureVars=True to
- Failure's constructor if you want to capture this data. (#5011)
- - twisted.web.client now supports automatic content-decoding via
- twisted.web.client.ContentDecoderAgent, gzip being supported for
- now. (#5053)
- - Protocols may now implement ILoggingContext to customize their
- logging prefix. twisted.protocols.policies.ProtocolWrapper and the
- endpoints wrapper now take advantage of this feature to ensure the
- application protocol is still reflected in logs. (#5062)
- - AMP's raw message-parsing performance was increased by
- approximately 12%. (#5075)
- - Twisted is now installable on PyPy, because some incompatible C
- extensions are no longer built. (#5158)
- - twisted.internet.defer.gatherResults now accepts a consumeErrors
- parameter, with the same meaning as the corresponding argument for
- DeferredList. (#5159)
- - Added RMD (remove directory) support to the FTP client. (#5259)
- - Server factories may now implement ILoggingContext to customize the
- name that is logged when the reactor uses one to start listening on
- a port. (#5292)
- - The implementations of ITransport.writeSequence will now raise
- TypeError if passed unicode strings. (#3896)
- - iocp reactor now operates correctly on 64 bit Python runtimes.
- (#4669)
- - twistd ftp now supports the cred plugin. (#4752)
- - twisted.python.filepath.FilePath now has an API to retrieve the
- permissions of the underlying file, and two methods to determine
- whether it is a block device or a socket. (#4813)
- - twisted.trial.unittest.TestCase is now compatible with Python 2.7's
- assertDictEqual method. (#5291)
-
-Bugfixes
---------
- - The IOCP reactor now does not try to erroneously pause non-
- streaming producers. (#745)
- - Unicode print statements no longer blow up when using Twisted's
- logging system. (#1990)
- - Process transports on Windows now support the `writeToChild` method
- (but only for stdin). (#2838)
- - Zsh tab-completion of Twisted commands no longer relies on
- statically generated files, but instead generates results on-the-
- fly - ensuring accurate tab-completion for the version of Twisted
- actually in use. (#3078)
- - LogPublishers don't use the global log publisher for reporting
- broken observers anymore. (#3307)
- - trial and twistd now add the current directory to sys.path even
- when running as root or on Windows. mktap, tapconvert, and
- pyhtmlizer no longer add the current directory to sys.path. (#3526)
- - twisted.internet.win32eventreactor now stops immediately if
- reactor.stop() is called from an IWriteDescriptor.doWrite
- implementation instead of delaying shutdown for an arbitrary period
- of time. (#3824)
- - twisted.python.log now handles RuntimeErrors more gracefully, and
- always restores log observers after an exception is raised. (#4379)
- - twisted.spread now supports updating new-style RemoteCache
- instances. (#4447)
- - twisted.spread.pb.CopiedFailure will no longer be thrown into a
- generator as a (deprecated) string exception but as a
- twisted.spread.pb.RemoteException. (#4520)
- - trial now gracefully handles the presence of objects in sys.modules
- which respond to attributes being set on them by modifying
- sys.modules. (#4748)
- - twisted.python.deprecate.deprecatedModuleAttribute no longer
- spuriously warns twice when used to deprecate a module within a
- package. This should make it easier to write unit tests for
- deprecated modules. (#4806)
- - When pyOpenSSL 0.10 or newer is available, SSL support now uses
- Twisted for all I/O and only relies on OpenSSL for cryptography,
- avoiding a number of tricky, potentially broken edge cases. (#4854)
- - IStreamClientEndpointStringParser.parseStreamClient now correctly
- describes how it will be called by clientFromString (#4956)
- - twisted.internet.defer.Deferreds are 10 times faster at handling
- exceptions raised from callbacks, except when setDebugging(True)
- has been called. (#5011)
- - twisted.python.filepath.FilePath.copyTo now raises OSError(ENOENT)
- if the source path being copied does not exist. (#5017)
- - twisted.python.modules now supports iterating over namespace
- packages without yielding duplicates. (#5030)
- - reactor.spawnProcess now uses the resource module to guess the
- maximum possible open file descriptor when /dev/fd exists but gives
- incorrect results. (#5052)
- - The memory BIO TLS/SSL implementation now supports producers
- correctly. (#5063)
- - twisted.spread.pb.Broker no longer creates an uncollectable
- reference cycle when the logout callback holds a reference to the
- client mind object. (#5079)
- - twisted.protocols.tls, and SSL/TLS support in general, now do clean
- TLS close alerts when disconnecting. (#5118)
- - twisted.persisted.styles no longer uses the deprecated allYourBase
- function (#5193)
- - Stream client endpoints now start (doStart) and stop (doStop) the
- factory passed to the connect method, instead of a different
- implementation-detail factory. (#5278)
- - SSL ports now consistently report themselves as SSL rather than TCP
- when logging their close message. (#5292)
- - Serial ports now deliver connectionLost to the protocol when
- closed. (#3690)
- - win32eventreactor now behaves better in certain rare cases in which
- it previously would have failed to deliver connection lost
- notification to a protocol. (#5233)
-
-Improved Documentation
-----------------------
- - Test driven development with Twisted and Trial is now documented in
- a how-to. (#2443)
- - A new howto-style document covering twisted.protocols.amp has been
- added. (#3476)
- - Added sample implementation of a Twisted push producer/consumer
- system. (#3835)
- - The "Deferred in Depth" tutorial now includes accurate output for
- the deferred_ex2.py example. (#3941)
- - The server howto now covers the Factory.buildProtocol method.
- (#4761)
- - The testing standard and the trial tutorial now recommend the
- `assertEqual` form of assertions rather than the `assertEquals` to
- coincide with the standard library unittest's preference. (#4989)
- - twisted.python.filepath.FilePath's methods now have more complete
- API documentation (docstrings). (#5027)
- - The Clients howto now uses buildProtocol more explicitly, hopefully
- making it easier to understand where Protocol instances come from.
- (#5044)
-
-Deprecations and Removals
--------------------------
- - twisted.internet.interfaces.IFinishableConsumer is now deprecated.
- (#2661)
- - twisted.python.zshcomp is now deprecated in favor of the tab-
- completion system in twisted.python.usage (#3078)
- - The unzip and unzipIter functions in twisted.python.zipstream are
- now deprecated. (#3666)
- - Options.optStrings, deprecated for 7 years, has been removed. Use
- Options.optParameters instead. (#4552)
- - Removed the deprecated twisted.python.dispatch module. (#5023)
- - Removed the twisted.runner.procutils module that was deprecated in
- Twisted 2.3. (#5049)
- - Removed twisted.trial.runner.DocTestSuite, deprecated in Twisted
- 8.0. (#5111)
- - twisted.scripts.tkunzip is now deprecated. (#5140)
- - Deprecated option --password-file in twistd ftp (#4752)
- - mktap, deprecated since Twisted 8.0, has been removed. (#5293)
-
-Other
------
- - #1946, #2562, #2674, #3074, #3077, #3776, #4227, #4539, #4587,
- #4619, #4624, #4629, #4683, #4690, #4702, #4778, #4944, #4945,
- #4949, #4952, #4957, #4979, #4980, #4987, #4990, #4994, #4995,
- #4997, #5003, #5008, #5009, #5012, #5019, #5042, #5046, #5051,
- #5065, #5083, #5088, #5089, #5090, #5101, #5108, #5109, #5112,
- #5114, #5125, #5128, #5131, #5136, #5139, #5144, #5146, #5147,
- #5156, #5160, #5165, #5191, #5205, #5215, #5217, #5218, #5223,
- #5243, #5244, #5250, #5254, #5261, #5266, #5273, #5299, #5301,
- #5302, #5304, #5308, #5311, #5321, #5322, #5327, #5328, #5332,
- #5336
-
-
-Twisted Core 11.0.0 (2011-04-01)
-================================
-
-Features
---------
- - The reactor is not restartable, but it would previously fail to
- complain. Now, when you restart an unrestartable reactor, you get
- an exception. (#2066)
- - twisted.plugin now only emits a short log message, rather than a
- full traceback, if there is a problem writing out the dropin cache
- file. (#2409)
- - Added a 'replacement' parameter to the
- 'twisted.python.deprecate.deprecated' decorator. This allows
- deprecations to unambiguously specify what they have been
- deprecated in favor of. (#3047)
- - Added access methods to FilePath for FilePath.statinfo's st_ino,
- st_dev, st_nlink, st_uid, and st_gid fields. This is in
- preparation for the deprecation of FilePath.statinfo. (#4712)
- - IPv4Address and UNIXAddress now have a __hash__ method. (#4783)
- - twisted.protocols.ftp.FTP.ftp_STOR now catches `FTPCmdError`s
- raised by the file writer, and returns the error back to the
- client. (#4909)
-
-Bugfixes
---------
- - twistd will no longer fail if a non-root user passes --uid 'myuid'
- as a command-line argument. Instead, it will emit an error message.
- (#3172)
- - IOCPReactor now sends immediate completions to the main loop
- (#3233)
- - trial can now load test methods from multiple classes, even if the
- methods all happen to be inherited from the same base class.
- (#3383)
- - twisted.web.server will now produce a correct Allow header when a
- particular render_FOO method is missing. (#3678)
- - HEAD requests made to resources whose HEAD handling defaults to
- calling render_GET now always receive a response with no body.
- (#3684)
- - trial now loads decorated test methods whether or not the decorator
- preserves the original method name. (#3909)
- - t.p.amp.AmpBox.serialize will now correctly consistently complain
- when being fed Unicode. (#3931)
- - twisted.internet.wxreactor now supports stopping more reliably.
- (#3948)
- - reactor.spawnProcess on Windows can now handle ASCII-encodable
- Unicode strings in the system environment (#3964)
- - When C-extensions are not complied for twisted, on python2.4, skip
- a test in twisted.internet.test.test_process that may hang due to a
- SIGCHLD related problem. Running 'python setup.py build_ext
- --inplace' will compile the extension and cause the test to both
- run and pass. (#4331)
- - twisted.python.logfile.LogFile now raises a descriptive exception
- when passed a log directoy which does not exist. (#4701)
- - Fixed a bug where Inotify will fail to add a filepatch to watchlist
- after it has been added/ignored previously. (#4708)
- - IPv4Address and UNIXAddress object comparison operators fixed
- (#4817)
- - twisted.internet.task.Clock now sorts the list of pending calls
- before and after processing each call (#4823)
- - ConnectionLost is now in twisted.internet.error.__all__ instead of
- twisted.words.protocols.jabber.xmlstream.__all__. (#4856)
- - twisted.internet.process now detects the most appropriate mechanism
- to use for detecting the open file descriptors on a system, getting
- Twisted working on FreeBSD even when fdescfs is not mounted.
- (#4881)
- - twisted.words.services referenced nonexistent
- twisted.words.protocols.irc.IRC_NOSUCHCHANNEL. This has been fixed.
- Related code has also received test cases. (#4915)
-
-Improved Documentation
-----------------------
- - The INSTALL file now lists all of Twisted's dependencies. (#967)
- - Added the stopService and startService methods to all finger
- example files. (#3375)
- - Missing reactor.run() calls were added in the UDP and client howto
- documents. (#3834)
- - The maxRetries attribute of
- twisted.internet.protocols.RetryingClientFactory now has API
- documentation. (#4618)
- - Lore docs pointed to a template that no longer existed, this has
- been fixed. (#4682)
- - The `servers` argument to `twisted.names.client.createResolver` now
- has more complete API documentation. (#4713)
- - Linked to the Twisted endpoints tutorial from the Twisted core
- howto list. (#4773)
- - The Endpoints howto now links to the API documentation. (#4774)
- - The Quotes howto is now more clear in its PYTHONPATH setup
- instructions. (#4785)
- - The API documentation for DeferredList's fireOnOneCallback
- parameter now gives the correct order of the elements of the result
- tuple. (#4882)
-
-Deprecations and Removals
--------------------------
- - returning a value other than None from IProtocol.dataReceived was
- deprecated (#2491)
- - Deprecated the --extra option in trial. (#3372)
- - twisted.protocols._c_urlarg has been removed. (#4162)
- - Remove the --report-profile option for twistd, deprecated since
- 2007. (#4236)
- - Deprecated twisted.persisted.journal. This library is no longer
- maintained. (#4298)
- - Removed twisted.protocols.loopback.loopback, which has been
- deprecated since Twisted 2.5. (#4547)
- - __getitem__ __getslice__ and __eq__ (tuple comparison, indexing)
- removed from twisted.internet.address.IPv4Address and
- twisted.internet.address.UNIXAddress classes UNIXAddress and
- IPv4Address properties _bwHack are now deprecated in
- twisted.internet.address (#4817)
- - twisted.python.reflect.allYourBase is now no longer used, replaced
- with inspect.getmro (#4928)
- - allYourBase and accumulateBases are now deprecated in favor of
- inspect.getmro. (#4946)
-
-Other
------
- - #555, #1982, #2618, #2665, #2666, #4035, #4247, #4567, #4636,
- #4717, #4733, #4750, #4821, #4842, #4846, #4853, #4857, #4858,
- #4863, #4864, #4865, #4866, #4867, #4868, #4869, #4870, #4871,
- #4872, #4873, #4874, #4875, #4876, #4877, #4878, #4879, #4905,
- #4906, #4908, #4934, #4955, #4960
-
-
-Twisted Core 10.2.0 (2010-11-29)
-================================
-
-Features
---------
- - twisted.internet.cfreactor has been significantly improved. It now
- runs, and passes, the test suite. Many, many bugs in it have been
- fixed, including several segfaults, as it now uses PyObjC and
- longer requires C code in Twisted. (#1833)
- - twisted.protocols.ftp.FTPRealm now accepts a parameter to override
- "/home" as the container for user directories. The new
- BaseFTPRealm class in the same module also allows easy
- implementation of custom user directory schemes. (#2179)
- - twisted.python.filepath.FilePath and twisted.python.zippath.ZipPath
- now have a descendant method to simplify code which calls the child
- method repeatedly. (#3169)
- - twisted.python.failure._Frame objects now support fake f_locals
- attribute. (#4045)
- - twisted.internet.endpoints now has 'serverFromString' and
- 'clientFromString' APIs for constructing endpoints from descriptive
- strings. (#4473)
- - The default trial reporter now combines reporting of tests with the
- same result to shorten its summary output. (#4487)
- - The new class twisted.protocols.ftp.SystemFTPRealm implements an
- FTP realm which uses system accounts to select home directories.
- (#4494)
- - twisted.internet.reactor.spawnProcess now wastes less time trying
- to close non-existent file descriptors on POSIX platforms. (#4522)
- - twisted.internet.win32eventreactor now declares that it implements
- a new twisted.internet.interfaces.IReactorWin32Events interface.
- (#4523)
- - twisted.application.service.IProcess now documents its attributes
- using zope.interface.Attribute. (#4534)
- - twisted.application.app.ReactorSelectionMixin now saves the value
- of the --reactor option in the "reactor" key of the options object.
- (#4563)
- - twisted.internet.endpoints.serverFromString and clientFromString,
- and therefore also twisted.application.strports.service, now
- support plugins, so third parties may implement their own endpoint
- types. (#4695)
-
-Bugfixes
---------
- - twisted.internet.defer.Deferred now handles chains iteratively
- instead of recursively, preventing RuntimeError due to excessive
- recursion when handling long Deferred chains. (#411)
- - twisted.internet.cfreactor now works with trial. (#2556)
- - twisted.enterprise.adbapi.ConnectionPool.close may now be called
- even if the connection pool has not yet been started. This will
- prevent the pool from ever starting. (#2680)
- - twisted.protocols.basic.NetstringReceiver raises
- NetstringParseErrors for invalid netstrings now. It handles empty
- netstrings ("0:,") correctly, and the performance for receiving
- netstrings has been improved. (#4378)
- - reactor.listenUDP now returns an object which declares that it
- implements IListeningPort. (#4462)
- - twisted.python.randbytes no longer uses PyCrypto as a secure random
- number source (since it is not one). (#4468)
- - twisted.internet.main.installReactor now blocks installation of
- another reactor when using python -O (#4476)
- - twisted.python.deprecate.deprecatedModuleAttribute now emits only
- one warning when used to deprecate a package attribute which is a
- module. (#4492)
- - The "brief" mode of twisted.python.failure.Failure.getTraceback now
- handles exceptions raised by the underlying exception's __str__
- method. (#4501)
- - twisted.words.xish.domish now correctly parses XML with namespaces
- which include whitespace. (#4503)
- - twisted.names.authority.FileAuthority now generates correct
- negative caching hints, marks its referral NS RRs as non-
- authoritative, and correctly generates referrals for ALL_RECORDS
- requests. (#4513)
- - twisted.internet.test.reactormixins.ReactorBuilder's attribute
- `requiredInterface` (which should an interface) is now
- `requiredInterfaces` (a list of interfaces) as originally described
- per the documentation. (#4527)
- - twisted.python.zippath.ZipPath.__repr__ now correctly formats paths
- with ".." in them (by including it). (#4535)
- - twisted.names.hosts.searchFileFor has been fixed against
- refcounting dependency. (#4540)
- - The POSIX process transports now declare that they implement
- IProcessTransport. (#4585)
- - Twisted can now be built with the LLVM clang compiler, with
- 'CC=clang python setup.py build'. C code that caused errors with
- this compiler has been removed. (#4652)
- - trial now puts coverage data in the path specified by --temp-
- directory, even if that option comes after --coverage on the
- command line. (#4657)
- - The unregisterProducer method of connection-oriented transports
- will now cause the connection to be closed if there was a prior
- call to loseConnection. (#4719)
- - Fixed an issue where the new StreamServerEndpointService didn't log
- listen errors. (This was a bug not present in any previous
- releases, as this class is new.) (#4731)
-
-Improved Documentation
-----------------------
- - The trial man page now documents the meaning of the final line of
- output of the default reporter. (#1384)
- - The API documentation for twisted.internet.defer.DeferredList now
- goes into more depth about the effects each of the __init__ flags
- that class accepts. (#3595)
- - There is now narrative documentation for the endpoints APIs, in the
- 'endpoints' core howto, as well as modifications to the 'writing
- clients' and 'writing servers' core howto documents to indicate
- that endpoints are now the preferred style of listening and
- connecting. (#4478)
- - trial's man page now documents the --disablegc option in more
- detail. (#4511)
- - trial's coverage output format is now documented in the trial man
- page. (#4512)
- - Broken links and spelling errors in the finger tutorial are now
- fixed. (#4516)
- - twisted.internet.threads.blockingCallFromThread's docstring is now
- explicit about Deferred support. (#4517)
- - twisted.python.zippath.ZipPath.child now documents its handling of
- ".." (which is not special, making it different from
- FilePath.child). (#4535)
- - The API docs for twisted.internet.defer.Deferred now cover several
- more of its (less interesting) attributes. (#4538)
- - LineReceiver, NetstringReceiver, and IntNStringReceiver from
- twisted.protocols.basic now have improved API documentation for
- read callbacks and write methods. (#4542)
- - Tidied up the Twisted Conch documentation for easier conversion.
- (#4566)
- - Use correct Twisted version for when cancellation was introduced in
- the Deferred docstring. (#4614)
- - The logging howto is now more clear about how the standard library
- logging module and twisted.python.log can be integrated. (#4642)
- - The finger tutorial still had references to .tap files. This
- reference has now been removed. The documentation clarifies
- "finger.tap" is a module and not a filename. (#4679)
- - The finger tutorial had a broken link to the
- twisted.application.service.Service class, which is now fixed.
- Additionally, a minor typo ('verison') was fixed. (#4681)
- - twisted.protocols.policies.TimeoutMixin now has clearer API
- documentation. (#4684)
-
-Deprecations and Removals
--------------------------
- - twisted.internet.defer.Deferred.setTimeout has been removed, after
- being deprecated since Twisted 2.0. (#1702)
- - twisted.internet.interfaces.IReactorTime.cancelCallLater
- (deprecated since 2007) and
- twisted.internet.interfaces.base.ReactorBase.cancelCallLater
- (deprecated since 2002) have been removed. (#4076)
- - Removed twisted.cred.util.py, which has been deprecated since
- Twisted 8.3. (#4107)
- - twisted.python.text.docstringLStrip was deprecated. (#4328)
- - The module attributes `LENGTH`, `DATA`, `COMMA`, and `NUMBER` of
- twisted.protocols.basic (previously used by `NetstringReceiver`)
- are now deprecated. (#4541)
- - twisted.protocols.basic.SafeNetstringReceiver, deprecated since
- 2001 (before Twisted 2.0), was removed. (#4546)
- - twisted.python.threadable.whenThreaded, deprecated since Twisted
- 2.2.0, has been removed. (#4550)
- - twisted.python.timeoutqueue, deprecated since Twisted 8.0, has been
- removed. (#4551)
- - iocpreactor transports can no longer be pickled. (#4617)
-
-Other
------
- - #4300, #4475, #4477, #4504, #4556, #4562, #4564, #4569, #4608,
- #4616, #4617, #4626, #4630, #4650, #4705
-
-
-Twisted Core 10.1.0 (2010-06-27)
-================================
-
-Features
---------
- - Add linux inotify support, allowing monitoring of file system
- events. (#972)
- - Deferreds now support cancellation. (#990)
- - 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. (#1442)
- - 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. (#2650)
- - twisted.protocols.amp now includes support for transferring
- timestamps (amp.DateTime) and decimal values (amp.Decimal). (#2651)
- - 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). (#3462)
- - 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. (#4130)
- - Documentation improvements are now summarized in the NEWS file.
- (#4224)
- - twisted.internet.task.deferLater now returns a cancellable
- Deferred. (#4318)
- - The connect methods of twisted.internet.protocol.ClientCreator now
- return cancellable Deferreds. (#4329)
- - twisted.spread.pb now has documentation covering some of its
- limitations. (#4402)
- - twisted.spread.jelly now supports jellying and unjellying classes
- defined with slots if they also implement __getstate__ and
- __setstate__. (#4430)
- - twisted.protocols.amp.ListOf arguments can now be specified as
- optional. (#4474)
-
-Bugfixes
---------
- - On POSIX platforms, reactors now support child processes in a way
- which doesn't cause other syscalls to sometimes fail with EINTR (if
- running on Python 2.6 or if Twisted's extension modules have been
- built). (#733)
- - Substrings are escaped before being passed to a regular expression
- for searching to ensure that they don't get interpreted as part of
- the expression. (#1893)
- - twisted.internet.stdio now supports stdout being redirected to a
- normal file (except when using epollreactor). (#2259)
- - (#2367)
- - The tap2rpm script now works with modern versions of RPM. (#3292)
- - twisted.python.modules.walkModules will now handle packages
- explicitly precluded from importing by a None placed in
- sys.modules. (#3419)
- - ConnectedDatagramPort now uses stopListening when a connection
- fails instead of the deprecated loseConnection. (#3425)
- - twisted.python.filepath.FilePath.setContent is now safe for
- multiple processes to use concurrently. (#3694)
- - The mode argument to the methods of
- twisted.internet.interfaces.IReactorUNIX is no longer deprecated.
- (#4078)
- - Do not include blacklisted projects when generating NEWS. (#4190)
- - When generating NEWS for a project that had no significant changes,
- include a section for that project and say that there were no
- interesting changes. (#4191)
- - Redundant 'b' mode is no longer passed to calls to FilePath.open
- and FilePath.open itself now corrects the mode when multiple 'b'
- characters are present, ensuring only one instance of 'b' is
- provided, as a workaround for http://bugs.python.org/issue7686.
- (#4207)
- - HTML tags inside <pre> tags in the code snippets are now escaped.
- (#4336)
- - twisted.protocols.amp.CommandLocator now allows subclasses to
- override responders inherited from base classes. (#4343)
- - Fix a bunch of small but important defects in the INSTALL, README
- and so forth. (#4346)
- - The poll, epoll, glib2, and gtk2 reactors now all support half-
- close in the twisted.internet.stdio.StandardIO transport. (#4352)
- - twisted.application.internet no longer generates an extra and
- invalid entry in its __all__ list for the nonexistent
- MulticastClient. (#4373)
- - Choosing a reactor documentation now says that only the select-
- based reactor is a truly cross-platform reactor. (#4384)
- - twisted.python.filepath.FilePath now no longer leaves files open,
- to be closed by the garbage collector, when an exception is raised
- in the implementation of setContent, getContent, or copyTo. (#4400)
- - twisted.test.proto_helpers.StringTransport's getHost and getPeer
- methods now return IPv4Address instances by default. (#4401)
- - twisted.protocols.amp.BinaryBoxProtocol will no longer deliver an
- empty string to a switched-to protocol's dataReceived method when
- the BinaryBoxProtocol's buffer happened to be empty at the time of
- the protocol switch. (#4405)
- - IReactorUNIX.listenUNIX implementations now support abstract
- namespace sockets on Linux. (#4421)
- - Files opened with FilePath.create() (and therefore also files
- opened via FilePath.open() on a path with alwaysCreate=True) will
- now be opened in binary mode as advertised, so that they will
- behave portably across platforms. (#4453)
- - The subunit reporter now correctly reports import errors as errors,
- rather than by crashing with an unrelated error. (#4496)
-
-Improved Documentation
-----------------------
- - The finger tutorial example which introduces services now avoids
- double-starting the loop to re-read its users file. (#4420)
- - twisted.internet.defer.Deferred.callback's docstring now mentions
- the implicit chaining feature. (#4439)
- - doc/core/howto/listing/pb/chatclient.py can now actually send a
- group message. (#4459)
-
-Deprecations and Removals
--------------------------
- - twisted.internet.interfaces.IReactorArbitrary,
- twisted.application.internet.GenericServer, and
- twisted.application.internet.GenericClient are now deprecated.
- (#367)
- - twisted.internet.gtkreactor is now deprecated. (#2833)
- - twisted.trial.util.findObject has been deprecated. (#3108)
- - twisted.python.threadpool.ThreadSafeList is deprecated and Jython
- platform detection in Twisted core removed (#3725)
- - twisted.internet.interfaces.IUDPConnectedTransport has been removed
- (deprecated since Twisted 9.0). (#4077)
- - Removed twisted.application.app.runWithProfiler, which has been
- deprecated since Twisted 8.0. (#4090)
- - Removed twisted.application.app.runWithHotshot, which has been
- deprecated since Twisted 8.0. (#4091)
- - Removed twisted.application.app.ApplicationRunner.startLogging,
- which has been deprecated (doesn't say since when), as well as
- support for the legacy
- twisted.application.app.ApplicationRunner.getLogObserver method.
- (#4092)
- - twisted.application.app.reportProfile has been removed. (#4093)
- - twisted.application.app.getLogFile has been removed. (#4094)
- - Removed twisted.cred.util.py, which has been deprecated since
- Twisted 8.3. (#4107)
- - twisted.python.util.dsu is now deprecated. (#4339)
- - In twisted.trial.util: FailureError, DirtyReactorWarning,
- DirtyReactorError, and PendingTimedCallsError, which have all been
- deprecated since Twisted 8.0, have been removed. (#4505)
-
-Other
------
- - #1363, #1742, #3170, #3359, #3431, #3738, #4088, #4206, #4221,
- #4239, #4257, #4272, #4274, #4287, #4291, #4293, #4309, #4316,
- #4319, #4324, #4332, #4335, #4348, #4358, #4394, #4399, #4409,
- #4418, #4443, #4449, #4479, #4485, #4486, #4497
-
-
-Twisted Core 10.0.0 (2010-03-01)
-================================
-
-Features
---------
- - The twistd man page now has a SIGNALS section. (#689)
-
- - reactor.spawnProcess now will not emit a PotentialZombieWarning
- when called before reactor.run, and there will be no potential for
- zombie processes in this case. (#2078)
-
- - High-throughput applications based on Perspective Broker should now
- run noticably faster thanks to the use of a more efficient decoding
- function in Twisted Spread. (#2310)
-
- - Documentation for trac-post-commit-hook functionality in svn-dev
- policy. (#3867)
-
- - twisted.protocols.socks.SOCKSv4 now supports the SOCKSv4a protocol.
- (#3886)
-
- - Trial can now output test results according to the subunit
- protocol, as long as Subunit is installed (see
- https://launchpad.net/subunit). (#4004)
-
- - twisted.protocols.amp now provides a ListOf argument type which can
- be composed with some other argument types to create a zero or more
- element sequence of that type. (#4116)
-
- - If returnValue is invoked outside of a function decorated with
- @inlineCallbacks, but causes a function thusly decorated to exit, a
- DeprecationWarning will be emitted explaining this potentially
- confusing behavior. In a future release, this will cause an
- exception. (#4157)
-
- - twisted.python.logfile.BaseLogFile now has a reopen method allowing
- you to use an external logrotate mechanism. (#4255)
-
-Bugfixes
---------
- - FTP.ftp_NLST now handles requests on invalid paths in a way
- consistent with RFC 959. (#1342)
-
- - twisted.python.util.initgroups now calls the low-level C initgroups
- by default if available: the python version can create lots of I/O
- with certain authentication setup to retrieve all the necessary
- information. (#3226)
-
- - startLogging now does nothing on subsequent invocations, thus
- fixing a terrible infinite recursion bug that's only on edge case.
- (#3289)
-
- - Stringify non-string data to NetstringReceiver.sendString before
- calculating the length so that the calculated length is equal to
- the actual length of the transported data. (#3299)
-
- - twisted.python.win32.cmdLineQuote now correctly quotes empty
- strings arguments (#3876)
-
- - Change the behavior of the Gtk2Reactor to register only one source
- watch for each file descriptor, instead of one for reading and one
- for writing. In particular, it fixes a bug with Glib under Windows
- where we failed to notify when a client is connected. (#3925)
-
- - Twisted Trial no longer crashes if it can't remove an old
- _trial_temp directory. (#4020)
-
- - The optional _c_urlarg extension now handles unquote("") correctly
- on platforms where malloc(0) returns NULL, such as AIX. It also
- compiles with less warnings. (#4142)
-
- - On POSIX, child processes created with reactor.spawnProcess will no
- longer automatically ignore the signals which the parent process
- has set to be ignored. (#4199)
-
- - All SOCKSv4a tests now use a dummy reactor with a deterministic
- resolve method. (#4275)
-
- - Prevent extraneous server, date and content-type headers in proxy
- responses. (#4277)
-
-Deprecations and Removals
--------------------------
- - twisted.internet.error.PotentialZombieWarning is now deprecated.
- (#2078)
-
- - twisted.test.time_helpers is now deprecated. (#3719)
-
- - The deprecated connectUDP method of IReactorUDP has now been
- removed. (#4075)
-
- - twisted.trial.unittest.TestCase now ignores the previously
- deprecated setUpClass and tearDownClass methods. (#4175)
-
-Other
------
- - #917, #2406, #2481, #2608, #2689, #2884, #3056, #3082, #3199,
- #3480, #3592, #3718, #3935, #4066, #4083, #4154, #4166, #4169,
- #4176, #4183, #4186, #4188, #4189, #4194, #4201, #4204, #4209,
- #4222, #4234, #4235, #4238, #4240, #4245, #4251, #4264, #4268,
- #4269, #4282
-
-
-Twisted Core 9.0.0 (2009-11-24)
-===============================
-
-Features
---------
- - LineReceiver.clearLineBuffer now returns the bytes that it cleared (#3573)
- - twisted.protocols.amp now raises InvalidSignature when bad arguments are
- passed to Command.makeArguments (#2808)
- - IArgumentType was added to represent an existing but previously unspecified
- interface in amp (#3468)
- - Obscure python tricks have been removed from the finger tutorials (#2110)
- - The digest auth implementations in twisted.web and twisted.protocolos.sip
- have been merged together in twisted.cred (#3575)
- - FilePath and ZipPath now has a parents() method which iterates up all of its
- parents (#3588)
- - reactors which support threads now have a getThreadPool method (#3591)
- - The MemCache client implementation now allows arguments to the "stats"
- command (#3661)
- - The MemCache client now has a getMultiple method which allows fetching of
- multiple values (#3171)
- - twisted.spread.jelly can now unserialize some new-style classes (#2950)
- - twisted.protocols.loopback.loopbackAsync now accepts a parameter to control
- the data passed between client and server (#3820)
- - The IOCP reactor now supports SSL (#593)
- - Tasks in a twisted.internet.task.Cooperator can now be paused, resumed, and
- cancelled (#2712)
- - AmpList arguments can now be made optional (#3891)
- - The syslog output observer now supports log levels (#3300)
- - LoopingCall now supports reporting the number of intervals missed if it
- isn't able to schedule calls fast enough (#3671)
-
-Fixes
------
- - The deprecated md5 and sha modules are no longer used if the stdlib hashlib
- module is available (#2763)
- - An obscure deadlock involving waking up the reactor within signal handlers
- in particular threads was fixed (#1997)
- - The passivePortRange attribute of FTPFactory is now honored (#3593)
- - TestCase.flushWarnings now flushes warnings even if they were produced by a
- file that was renamed since it was byte compiled (#3598)
- - Some internal file descriptors are now marked as close-on-exec, so these will
- no longer be leaked to child processes (#3576)
- - twisted.python.zipstream now correctly extracts the first file in a directory
- as a file, and not an empty directory (#3625)
- - proxyForInterface now returns classes which correctly *implement* interfaces
- rather than *providing* them (#3646)
- - SIP Via header parameters should now be correctly generated (#2194)
- - The Deferred returned by stopListening would sometimes previously never fire
- if an exception was raised by the underlying file descriptor's connectionLost
- method. Now the Deferred will fire with a failure (#3654)
- - The command-line tool "manhole" should now work with newer versions of pygtk
- (#2464)
- - When a DefaultOpenSSLContextFactory is instantiated with invalid parameters,
- it will now raise an exception immediately instead of waiting for the first
- connection (#3700)
- - Twisted command line scripts should now work when installed in a virtualenv
- (#3750)
- - Trial will no longer delete temp directories which it did not create (#3481)
- - Processes started on Windows should now be cleaned up properly in more cases
- (#3893)
- - Certain misbehaving importers will no longer cause twisted.python.modules
- (and thus trial) to raise an exception, but rather issue a warning (#3913)
- - MemCache client protocol methods will now fail when the transport has been
- disconnected (#3643)
- - In the AMP method callRemoteString, the requiresAnswer parameter is now
- honored (#3999)
- - Spawning a "script" (a file which starts with a #! line) on Windows running
- Python 2.6 will now work instead of raising an exception about file mode
- "ru" (#3567)
- - FilePath's walk method now calls its "descend" parameter even on the first
- level of children, instead of only on grandchildren. This allows for better
- symlink cycle detection (#3911)
- - Attempting to write unicode data to process pipes on Windows will no longer
- result in arbitrarily encoded messages being written to the pipe, but instead
- will immediately raise an error (#3930)
- - The various twisted command line utilities will no longer print
- ModuleType.__doc__ when Twisted was installed with setuptools (#4030)
- - A Failure object will now be passed to connectionLost on stdio connections
- on Windows, instead of an Exception object (#3922)
-
-Deprecations and Removals
--------------------------
- - twisted.persisted.marmalade was deleted after a long period of deprecation
- (#876)
- - Some remaining references to the long-gone plugins.tml system were removed
- (#3246)
- - SSLv2 is now disabled by default, but it can be re-enabled explicitly
- (#3330)
- - twisted.python.plugin has been removed (#1911)
- - reactor.run will now raise a ReactorAlreadyRunning exception when it is
- called reentrantly instead of warning a DeprecationWarning (#1785)
- - twisted.spread.refpath is now deprecated because it is unmaintained,
- untested, and has dubious value (#3723)
- - The unused --quiet flag has been removed from the twistd command (#3003)
-
-Other
------
- - #3545, #3490, #3544, #3537, #3455, #3315, #2281, #3564, #3570, #3571, #3486,
- #3241, #3599, #3220, #1522, #3611, #3596, #3606, #3609, #3602, #3637, #3647,
- #3632, #3675, #3673, #3686, #2217, #3685, #3688, #2456, #506, #3635, #2153,
- #3581, #3708, #3714, #3717, #3698, #3747, #3704, #3707, #3713, #3720, #3692,
- #3376, #3652, #3695, #3735, #3786, #3783, #3699, #3340, #3810, #3822, #3817,
- #3791, #3859, #2459, #3677, #3883, #3894, #3861, #3822, #3852, #3875, #2722,
- #3768, #3914, #3885, #2719, #3905, #3942, #2820, #3990, #3954, #1627, #2326,
- #2972, #3253, #3937, #4058, #1200, #3639, #4079, #4063, #4050
-
-
-Core 8.2.0 (2008-12-16)
-=======================
-
-Features
---------
- - Reactors are slowly but surely becoming more isolated, thus improving
- testability (#3198)
- - FilePath has gained a realpath method, and FilePath.walk no longer infinitely
- recurses in the case of a symlink causing a self-recursing filesystem tree
- (#3098)
- - FilePath's moveTo and copyTo methods now have an option to disable following
- of symlinks (#3105)
- - Private APIs are now included in the API documentation (#3268)
- - hotshot is now the default profiler for the twistd --profile parameter and
- using cProfile is now documented (#3355, #3356)
- - Process protocols can now implement a processExited method, which is
- distinct from processEnded in that it is called immediately when the child
- has died, instead of waiting for all the file descriptors to be closed
- (#1291)
- - twistd now has a --umask option (#966, #3024)
- - A new deferToThreadPool function exists in twisted.internet.threads (#2845)
- - There is now an example of writing an FTP server in examples/ftpserver.py
- (#1579)
- - A new runAsEffectiveUser function has been added to twisted.python.util
- (#2607)
- - twisted.internet.utils.getProcessOutput now offers a mechanism for
- waiting for the process to actually end, in the event of data received on
- stderr (#3239)
- - A fullyQualifiedName function has been added to twisted.python.reflect
- (#3254)
- - strports now defaults to managing access to a UNIX socket with a lock;
- lockfile=0 can be included in the strports specifier to disable this
- behavior (#2295)
- - FTPClient now has a 'rename' method (#3335)
- - FTPClient now has a 'makeDirectory' method (#3500)
- - FTPClient now has a 'removeFile' method (#3491)
- - flushWarnings, A new Trial method for testing warnings, has been added
- (#3487, #3427, #3506)
- - The log observer can now be configured in .tac files (#3534)
-
-Fixes
------
- - TLS Session Tickets are now disabled by default, allowing connections to
- certain servers which hang when an empty session ticket is received (like
- GTalk) (#3463)
- - twisted.enterprise.adbapi.ConnectionPool's noisy attribute now defaults to
- False, as documented (#1806)
- - Error handling and logging in adbapi is now much improved (#3244)
- - TCP listeners can now be restarted (#2913)
- - Doctests can now be rerun with trial's --until-failure option (#2713)
- - Some memory leaks have been fixed in trial's --until-failure
- implementation (#3119, #3269)
- - Trial's summary reporter now prints correct runtime information and handles
- the case of 0 tests (#3184)
- - Trial and any other user of the 'namedAny' function now has better error
- reporting in the case of invalid module names (#3259)
- - Multiple instances of trial can now run in parallel in the same directory
- by creating _trial_temp directories with an incremental suffix (#2338)
- - Trial's failUnlessWarns method now works on Python 2.6 (#3223)
- - twisted.python.log now hooks into the warnings system in a way compatible
- with Python 2.6 (#3211)
- - The GTK2 reactor is now better supported on Windows, but still not passing
- the entire test suite (#3203)
- - low-level failure handling in spawnProcess has been improved and no longer
- leaks file descriptors (#2305, #1410)
- - Perspective Broker avatars now have their logout functions called in more
- cases (#392)
- - Log observers which raise exceptions are no longer removed (#1069)
- - transport.getPeer now always includes an IP address in the Address returned
- instead of a hostname (#3059)
- - Functions in twisted.internet.utils which spawn processes now avoid calling
- chdir in the case where no working directory is passed, to avoid some
- obscure permission errors (#3159)
- - twisted.spread.publish.Publishable no longer corrupts line endings on
- Windows (#2327)
- - SelectReactor now properly detects when a TLS/TCP connection has been
- disconnected (#3218)
- - twisted.python.lockfile no longer raises an EEXIST OSError and is much
- better supported on Windows (#3367)
- - When ITLSTransport.startTLS is called while there is data in the write
- buffer, TLS negotiation will now be delayed instead of the method raising
- an exception (#686)
- - The userAnonymous argument to FTPFactory is now honored (#3390)
- - twisted.python.modules no longer tries to "fix" sys.modules after an import
- error, which was just causing problems (#3388)
- - setup.py no longer attempts to build extension modules when run with Jython
- (#3410)
- - AMP boxes can now be sent in IBoxReceiver.startReceivingBoxes (#3477)
- - AMP connections are closed as soon as a key length larger than 255 is
- received (#3478)
- - Log events with timezone offsets between -1 and -59 minutes are now
- correctly reported as negative (#3515)
-
-Deprecations and Removals
--------------------------
- - Trial's setUpClass and tearDownClass methods are now deprecated (#2903)
- - problemsFromTransport has been removed in favor of the argument passed to
- connectionLost (#2874)
- - The mode parameter to methods of IReactorUNIX and IReactorUNIXDatagram are
- deprecated in favor of applications taking other security precautions, since
- the mode of a Unix socket is often not respected (#1068)
- - Index access on instances of twisted.internet.defer.FirstError has been
- removed in favor of the subFailure attribute (#3298)
- - The 'changeDirectory' method of FTPClient has been deprecated in favor of
- the 'cwd' method (#3491)
-
-Other
------
-
- - #3202, #2869, #3225, #2955, #3237, #3196, #2355, #2881, #3054, #2374, #2918,
- #3210, #3052, #3267, #3288, #2985, #3295, #3297, #2512, #3302, #1222, #2631,
- #3306, #3116, #3215, #1489, #3319, #3320, #3321, #1255, #2169, #3182, #3323,
- #3301, #3318, #3029, #3338, #3346, #1144, #3173, #3165, #685, #3357, #2582,
- #3370, #2438, #1253, #637, #1971, #2208, #979, #1790, #1888, #1882, #1793,
- #754, #1890, #1931, #1246, #1025, #3177, #2496, #2567, #3400, #2213, #2027,
- #3415, #1262, #3422, #2500, #3414, #3045, #3111, #2974, #2947, #3222, #2878,
- #3402, #2909, #3423, #1328, #1852, #3382, #3393, #2029, #3489, #1853, #2026,
- #2375, #3502, #3482, #3504, #3505, #3507, #2605, #3519, #3520, #3121, #3484,
- #3439, #3216, #3511, #3524, #3521, #3197, #2486, #2449, #2748, #3381, #3236,
- #671
-
-
-8.1.0 (2008-05-18)
-==================
-
-Features
---------
-
- - twisted.internet.error.ConnectionClosed is a new exception which is the
- superclass of ConnectionLost and ConnectionDone (#3137)
- - Trial's CPU and memory performance should be better now (#3034)
- - twisted.python.filepath.FilePath now has a chmod method (#3124)
-
-Fixes
------
-
- - Some reactor re-entrancy regressions were fixed (#3146, #3168)
- - A regression was fixed whereby constructing a Failure for an exception and
- traceback raised out of a Pyrex extension would fail (#3132)
- - CopyableFailures in PB can again be created from CopiedFailures (#3174)
- - FilePath.remove, when called on a FilePath representing a symlink to a
- directory, no longer removes the contents of the targeted directory, and
- instead removes the symlink (#3097)
- - FilePath now has a linkTo method for creating new symlinks (#3122)
- - The docstring for Trial's addCleanup method now correctly specifies when
- cleanup functions are run (#3131)
- - assertWarns now deals better with multiple identical warnings (#2904)
- - Various windows installer bugs were fixed (#3115, #3144, #3150, #3151, #3164)
- - API links in the howto documentation have been corrected (#3130)
- - The Win32 Process transport object now has a pid attribute (#1836)
- - A doc bug in the twistd plugin howto which would inevitably lead to
- confusion was fixed (#3183)
- - A regression breaking IOCP introduced after the last release was fixed
- (#3200)
-
-
-Deprecations and Removals
--------------------------
-
- - mktap is now fully deprecated, and will emit DeprecationWarnings when used
- (#3127)
-
-Other
------
- - #3079, #3118, #3120, #3145, #3069, #3149, #3186, #3208, #2762
-
-
-8.0.1 (2008-03-26)
-==================
-
-Fixes
------
- - README no longer refers to obsolete trial command line option
- - twistd no longer causes a bizarre DeprecationWarning about mktap
-
-
-8.0.0 (2008-03-17)
-==================
-
-Features
---------
-
- - The IOCP reactor has had many changes and is now greatly improved
- (#1760, #3055)
- - The main Twisted distribution is now easy_installable (#1286, #3110)
- - twistd can now profile with cProfile (#2469)
- - twisted.internet.defer contains a DeferredFilesystemLock which gives a
- Deferred interface to lock file acquisition (#2180)
- - twisted.python.modules is a new system for representing and manipulating
- module paths (i.e. sys.path) (#1951)
- - twisted.internet.fdesc now contains a writeToFD function, along with other
- minor fixes (#2419)
- - twisted.python.usage now allows optional type enforcement (#739)
- - The reactor now has a blockingCallFromThread method for non-reactor threads
- to use to wait for a reactor-scheduled call to return a result (#1042, #3030)
- - Exceptions raised inside of inlineCallbacks-using functions now have a
- better chance of coming with a meaningful traceback (#2639, #2803)
- - twisted.python.randbytes now contains code for generating secure random
- bytes (#2685)
- - The classes in twisted.application.internet now accept a reactor parameter
- for specifying the reactor to use for underlying calls to allow for better
- testability (#2937)
- - LoopingCall now allows you to specify the reactor to use to schedule new
- calls, allowing much better testing techniques (#2633, #2634)
- - twisted.internet.task.deferLater is a new API for scheduling calls and
- getting deferreds which are fired with their results (#1875)
- - objgrep now knows how to search through deque objects (#2323)
- - twisted.python.log now contains a Twisted log observer which can forward
- messages to the Python logging system (#1351)
- - Log files now include seconds in the timestamps (#867)
- - It is now possible to limit the number of log files to create during log
- rotation (#1095)
- - The interface required by the log context system is now documented as
- ILoggingContext, and abstract.FileDescriptor now declares that it implements
- it (#1272)
- - There is now an example cred checker that uses a database via adbapi (#460)
- - The epoll reactor is now documented in the choosing-reactors howto (#2539)
- - There were improvements to the client howto (#222)
- - Int8Receiver was added (#2315)
- - Various refactorings to AMP introduced better testability and public
- interfaces (#2657, #2667, #2656, #2664, #2810)
- - twisted.protocol.policies.TrafficLoggingFactory now has a resetCounter
- method (#2757)
- - The FTP client can be told which port range within which to bind passive
- transfer ports (#1904)
- - twisted.protocols.memcache contains a new asynchronous memcache client
- (#2506, #2957)
- - PB now supports anonymous login (#439, #2312)
- - twisted.spread.jelly now supports decimal objects (#2920)
- - twisted.spread.jelly now supports all forms of sets (#2958)
- - There is now an interface describing the API that process protocols must
- provide (#3020)
- - Trial reporting to core unittest TestResult objects has been improved (#2495)
- - Trial's TestCase now has an addCleanup method which allows easy setup of
- tear-down code (#2610, #2899)
- - Trial's TestCase now has an assertIsInstance method (#2749)
- - Trial's memory footprint and speed are greatly improved (#2275)
- - At the end of trial runs, "PASSED" and "FAILED" messages are now colorized
- (#2856)
- - Tests which leave global state around in the reactor will now fail in
- trial. A new option, --unclean-warnings, will convert these errors back into
- warnings (#2091)
- - Trial now has a --without-module command line for testing code in an
- environment that lacks a particular Python module (#1795)
- - Error reporting of failed assertEquals assertions now has much nicer
- formatting (#2893)
- - Trial now has methods for monkey-patching (#2598)
- - Trial now has an ITestCase (#2898, #1950)
- - The trial reporter API now has a 'done' method which is called at the end of
- a test run (#2883)
- - TestCase now has an assertWarns method which allows testing that functions
- emit warnings (#2626, #2703)
- - There are now no string exceptions in the entire Twisted code base (#2063)
- - There is now a system for specifying credentials checkers with a string
- (#2570)
-
-Fixes
------
-
- - Some tests which were asserting the value of stderr have been changed
- because Python uncontrollably writes bytes to stderr (#2405)
- - Log files handle time zones with DST better (#2404)
- - Subprocesses using PTYs on OS X that are handled by Twisted will now be able
- to more reliably write the final bytes before they exit, allowing Twisted
- code to more reliably receive them (#2371, #2858)
- - Trial unit test reporting has been improved (#1901)
- - The kqueue reactor handles connection failures better (#2172)
- - It's now possible to run "trial foo/bar/" without an exception: trailing
- slashes no longer cause problems (#2005)
- - cred portals now better deal with implementations of inherited interfaces
- (#2523)
- - FTP error handling has been improved (#1160, 1107)
- - Trial behaves better with respect to file locking on Windows (#2482)
- - The FTP server now gives a better error when STOR is attempted during an
- anonymous session (#1575)
- - Trial now behaves better with tests that use the reactor's threadpool (#1832)
- - twisted.python.reload now behaves better with new-style objects (#2297)
- - LogFile's defaultMode parameter is now better implemented, preventing
- potential security exploits (#2586)
- - A minor obscure leak in thread pools was corrected (#1134)
- - twisted.internet.task.Clock now returns the correct DelayedCall from
- callLater, instead of returning the one scheduled for the furthest in the
- future (#2691)
- - twisted.spread.util.FilePager no longer unnecessarily buffers data in
- memory (#1843, 2321)
- - Asking for twistd or trial to use an unavailable reactor no longer prints a
- traceback (#2457)
- - System event triggers have fewer obscure bugs (#2509)
- - Plugin discovery code is much better behaved, allowing multiple
- installations of a package with plugins (#2339, #2769)
- - Process and PTYProcess have been merged and some minor bugs have been fixed
- (#2341)
- - The reactor has less global state (#2545)
- - Failure can now correctly represent and format errors caused by string
- exceptions (#2830)
- - The epoll reactor now has better error handling which now avoids the bug
- causing 100% CPU usage in some cases (#2809)
- - Errors raised during trial setUp or tearDown methods are now handled better
- (#2837)
- - A problem when deferred callbacks add new callbacks to the deferred that
- they are a callback of was fixed (#2849)
- - Log messages that are emitted during connectionMade now have the protocol
- prefix correctly set (#2813)
- - The string representation of a TCP Server connection now contains the actual
- port that it's bound to when it was configured to listen on port 0 (#2826)
- - There is better reporting of error codes for TCP failures on Windows (#2425)
- - Process spawning has been made slightly more robust by disabling garbage
- collection temporarily immediately after forking so that finalizers cannot
- be executed in an unexpected environment (#2483)
- - namedAny now detects import errors better (#698)
- - Many fixes and improvements to the twisted.python.zipstream module have
- been made (#2996)
- - FilePager no longer blows up on empty files (#3023)
- - twisted.python.util.FancyEqMixin has been improved to cooperate with objects
- of other types (#2944)
- - twisted.python.FilePath.exists now restats to prevent incorrect result
- (#2896)
- - twisted.python.util.mergeFunctionMetadata now also merges the __module__
- attribute (#3049)
- - It is now possible to call transport.pauseProducing within connectionMade on
- TCP transports without it being ignored (#1780)
- - twisted.python.versions now understands new SVN metadata format for fetching
- the SVN revision number (#3058)
- - It's now possible to use reactor.callWhenRunning(reactor.stop) on gtk2 and
- glib2 reactors (#3011)
-
-Deprecations and removals
--------------------------
- - twisted.python.timeoutqueue is now deprecated (#2536)
- - twisted.enterprise.row and twisted.enterprise.reflector are now deprecated
- (#2387)
- - twisted.enterprise.util is now deprecated (#3022)
- - The dispatch and dispatchWithCallback methods of ThreadPool are now
- deprecated (#2684)
- - Starting the same reactor multiple times is now deprecated (#1785)
- - The visit method of various test classes in trial has been deprecated (#2897)
- - The --report-profile option to twistd and twisted.python.dxprofile are
- deprecated (#2908)
- - The upDownError method of Trial reporters is deprecated (#2883)
-
-Other
------
-
- - #2396, #2211, #1921, #2378, #2247, #1603, #2463, #2530, #2426, #2356, #2574,
- - #1844, #2575, #2655, #2640, #2670, #2688, #2543, #2743, #2744, #2745, #2746,
- - #2742, #2741, #1730, #2831, #2216, #1192, #2848, #2767, #1220, #2727, #2643,
- - #2669, #2866, #2867, #1879, #2766, #2855, #2547, #2857, #2862, #1264, #2735,
- - #942, #2885, #2739, #2901, #2928, #2954, #2906, #2925, #2942, #2894, #2793,
- - #2761, #2977, #2968, #2895, #3000, #2990, #2919, #2969, #2921, #3005, #421,
- - #3031, #2940, #1181, #2783, #1049, #3053, #2847, #2941, #2876, #2886, #3086,
- - #3095, #3109
-
-
-2.5.0 (2006-12-29)
-==================
-
-Twisted 2.5.0 is a major feature release, with several interesting new
-developments and a great number of bug fixes. Some of the highlights
-follow.
-
- * AMP, the Asynchronous Messaging Protocol, was introduced. AMP is
- a protocol which provides request/response semantics over a
- persistent connection in a very simple and extensible manner.
-
- * An Epoll-based reactor was added, which can be used with twistd or
- trial by passing "-r epoll" on the command line. This may improve
- performance of certain high-traffic network applications.
-
- * The 'twistd' command can now accept sub-commands which name an
- application to run. For example, 'twistd web --path .' will start a
- web server serving files out of the current directory. This
- functionality is meant to replace the old way of doing things with
- 'mktap' and 'twistd -f'.
-
- * Python 2.5 is now supported. Previous releases of Twisted were
- broken by changes in the release of Python 2.5.
-
- * 'inlineCallbacks' was added, which allows taking advantage of the
- new 'yield' expression syntax in Python 2.5 to avoid writing
- callbacks for Deferreds.
-
-In addition to these changes, there are many other minor features and
-a large number of bug fixes.
-
-Features
---------
- - log.err can now take a second argument for specifying information
- about an error (#1399)
- - A time-simulating test helper class, twisted.internet.task.Clock,
- was added (#1757)
- - Trial docstring improvements were made (#1604, #2133)
- - New SSL features were added to twisted.internet.ssl, such as client
- validation (#302)
- - Python 2.5 is now supported (#1867)
- - Trial's assertFailure now provides more information on failure (#1869)
- - Trial can now be run on tests within a zipfile (#1940)
- - AMP, a new simple protocol for asynchronous messaging, was added (#1715)
- - Trial's colorful reporter now works on win32 (#1646)
- - Trial test modules may now dynamically construct TestSuites (#1638, #2165)
- - twistd can now make use of plugins to run applications (#1922, #2013)
- - Twisted now works with the latest (unreleased) zope.interface (#2160)
- - An epoll-based reactor, epollreactor, was added. It is selectable
- with the -r options to twistd and trial (#1953)
- - twistd and trial now use the plugin system to find reactors which
- can be selected (#719)
- - twisted.internet.defer.inlineCallbacks was added. It takes
- advantage of Python 2.5's generators to offer a way to deal with
- Deferreds without callbacks (#2100)
-
-Fixes
------
- - Traceback formatting in Trial was improved (#1454, #1610)
- - twisted.python.filepath.FilePath.islink now actually returns True when
- appropriate (#1773)
- - twisted.plugin now no longer raises spurious errors (#926)
- - twisted.pb Cacheables may now be new-style classes (#1324)
- - FileDescriptor now deals with producers in a more
- interface-compliant and robust manner (#2286, #811)
- - "setup.py build" and other setup.py commands which don't actually
- install the software now work (#1835)
- - wxreactor has had various fixes (#1235, #1574, #1688)
-
-Deprecations and Removals
--------------------------
- - The old twisted.cred API (Perspectives, Identities and such) was
- removed (#1440)
- - twisted.spread.newjelly was removed (#1831)
- - Various deprecated things in twisted.python.components were
- removed: Interface, MetaInterface, getAdapterClass, and
- getAdapterClassWithInheritance (#1636)
- - twisted.enterprise.xmlreflector was removed (#661)
- - mktap is slowly on its way out, now that twistd supports plugins. It
- is not yet officially deprecated (#2013)
- - tkmktap was removed, because it wasn't working anyway (#2020)
- - reactor.iterate calls made inside of a Trial test case are
- deprecated (#2090)
- - twisted.internet.qtreactor was removed: It has been moved to a
- separate project. See http://twistedmatrix.com/trac/wiki/QTReactor
- (#2130, #2137)
- - threadedselectreactor is now not a directly usable reactor; it is
- only meant to help in writing other reactors (#2126)
- - twisted.python.reflect.funcinfo is deprecated (#2079)
- - twisted.spread.sturdy, which was already completely broken, was
- removed (#2299)
-
-
-Other
------
-The following changes are minor or closely related to other changes.
-
- - #1783, #1786, #1788, #1648, #1734, #1609, #1800, #1818,
- #1629, #1829, #491, #1816, #1824, #1855, #1797, #1637, #1371,
- #1892, #1887, #1897, #1563, #1741, #1943, #1952, #1276,
- #1837, #1726, #1963, #1965, #1973, #1976, #1991, #1936, #1113,
- #630, #2002, #2040, #2044, #1617, #2045, #2055, #2056, #2022,
- #2052, #1552, #1999, #1507, #2054, #1970, #1968, #662, #1910,
- #1694, #1999, #1409, #2150, #2127, #2155, #1983, #2014, #2222,
- #1067, #2136, #2065, #1430, #2173, #2212, #1871, #2147, #1199,
- #2273, #428, #992, #815, #2024, #2292, #2125, #2139, #2291, #2174,
- #2306, #2228, #2309, #2319, #2317, #2313, #2154, #1985, #1201
-
-
-2.4.0 (2006-05-21)
-==================
-
-Features
---------
- - twisted.internet.task.Cooperator (Added along with #1701).
-
-Fixes
------
- - Errors in UDP protocols no longer unbind the UDP port (#1695).
- - Misc: #1717, #1705, #1563, #1719, #1721, #1722, #1728.
-
-
-2.3.0 (2006-05-14)
-==================
-
-Features
---------
- - twisted-dev-mode's F9 now uses trial's --testmodule feature, rather than
- trying to guess what tests to run. This will break files using the "-x"
- test-case-name hack (just use a comma separated list instead).
- - API Documentation improvements.
- - A new Producer/Consumer guide (#53)
- - Better-defined error behavior in IReactorMulticast (#1578)
- - IOCP Multicast support (#1500)
- - Improved STDIO support on Windows. (#1553)
- - LoopingCall supports Deferreds such that it will wait until a
- Deferred has fired before rescheduling the next call (#1487)
- - Added twisted.python.versions.Version, a structured representation
- of Version information, including support for SVN revision numbers
- (#1663)
-
-Fixes
------
-
- - Many trial fixes, as usual
- - All API documentation is now correctly formatted as epytext (#1545)
- - twisted.python.filepath.FilePath.__repr__ is safer.
- - Fix trial's "until-failure" mode. (#1453)
- - deferredGenerator now no longer causes handled exceptions (or
- results) to propagate to the resulting Deferred (#1709).
- - Misc: #1483, #1495, #1503, #1532, #1539, #1559, #1509, #1538,
- #1571, #1331, #1561, #737, #1562, #1573, #1594, #1607, #1407, #1615,
- #1645, #1634, #1620, #1664, #1666, #1650, #1670, #1675, #1692, #1710,
- #1668.
-
-Deprecations
-------------
-
- - Removal of already-deprecated trial APIs: the assertions module,
- util.deferredResult, util.deferredError, util.fireWhenDoneFunc,
- util.spinUntil, util.spinWhile, util.extract_tb,
- util.format_exception, util.suppress_warnings, unittest.wait,
- util.wait
- - The backwards compatibility layer of twisted.python.components
- (e.g., backwardsCompatImplements, fixClassImplements, etc) has been
- disabled. The functions still exist, but do nothing as to not break
- user code outright (#1511)
- - Deprecate the usage of the 'default' argument as a keyword argument
- in Interface.__call__. Passing a second positional argument to
- specify the default return value of the adaptation is still
- supported.
-
-
-2.2.0 (2006-02-12)
-==================
-
-Features
---------
- - Twisted no longer works with Python 2.2
- - FTP server supports more clients
- - Process support on Windows
- - twisted.internet.stdio improved (including Windows support!)
- - Trial:
- - Continued Trial refactoring
- - Default trial reporter is verbose black&white when color isn't supported
- - Deferreds returned in trial tests that don't fire before the
- unittest timeout now have their errback fired with a TimeoutError
- - raising SkipTest in setUp and setUpClass skips tests
- - Test suites are failed if there are import errors
-
-Fixes
------
- - iocpreactor fixes
- - Threadpool fixes
- - Fixed infinite loops in datagramReceived edge cases
- - Issues resolved: 654, 773, 998, 1005, 1008, 1116, 1123, 1198, 1221,
- 1232, 1233, 1236, 1240, 1244, 1258, 1263, 1265, 1266, 1271, 1275,
- 1293, 1294, 1298, 1308, 1316, 1317, 1321, 1341, 1344, 1353, 1359,
- 1372, 1374, 1377, 1379, 1380, 1385, 1388, 1389, 1413, 1422, 1426,
- 1434, 1435, 1448, 1449, 1456
-
-Deprecations
-------------
- - Trial:
- - spinWhile and spinUntil
- - util.wait
- - extract_tb and format_exception
- - util.suppressWarnings
- - runReactor is gone
-
-
-2.1.0 (2005-11-06)
-==================
-
-Features
---------
- - threadedselectreactor, a reactor which potentially makes
- integration with foreign event loops much simpler.
- - major improvements to twisted.conch.insults, including many new widgets.
- - adbapi ConnectionPools now have 'runWithConnection' which is
- similar to runInteraction but gives you a connection object instead of
- a transaction. [975]
- - __file__ is now usable in tac files
- - twisted.cred.pamauth now contains a PAM checker (moved from twisted.conch)
- - twisted.protocols.policies.LimitTotalConnectionsFactory now exists,
- which does as the name suggests
- - twisted.protocols.ident now uses /proc/net/tcp on Linux [233]
- - trial now recurses packages by default (a la the old -R parameter)
- - (PB) Calling a remote method that doesn't exist now raises
- NoSuchMethod instead of AttributeError.
-
-Fixes
------
- - FTP client and server improvements
- - Trial improvements: The code is now much simpler, and more stable.
- - twisted.protocols.basic.FileSender now works with empty files
- - Twisted should now be much more usable on Pythons without thread support.
- - minor improvements to process code in win32eventreactor
- - twistd -y (--python) now implies -o (--nosave). [539]
- - improved lockfile handling especially with respect to unix sockets.
- - deferredGenerator now no longer overuses the stack, which sometimes
- caused stack overflows.
- - Failure.raiseException now at least always raises the correct Exception.
- - minor improvements to serialport code
-
-Deprecations
-------------
- - twisted.python.componts.getAdapter. Use IFoo(o) instead.
- - Adapter persistence (IFoo(x, persist=True)). Just don't use it.
- - log.debug. It was equivalent to log.msg(), just use that.
- - twisted.protocols.telnet. twisted.conch.telnet replaces it.
- - Setting a trial reporter using a flag to 'trial'. Instead of 'trial
- --bwverbose', for example, use 'trial --reporter=bwverbose'.
- - trial --coverage will become a flag in Twisted 2.2.
- - passing a fully-qualified python name to --reporter is
- deprecated. Pass only names of Reporter plugins.
- - trial --psyco.
- - trial -R (--recurse) is now the default, so passing it is deprecated.
- - trial --reporter-args. Use the plugin system to do this sort of thing.
- - trial.assertions.assertionMethod and trial.unittest.assertionMethod
- are both deprecated. Use instance methods on TestCases instead.
- - trial's deferredResult, deferredError, and wait functions. Return
- Deferreds from your test methods instead of using them.
- - Raising unittest.SkipTest with no arguments. Give a reason for your skip.
- - The Failure returned from a gatherResults and DeferredList is now
- of type FirstError instead of a tuple of (Exception, index). It
- supports a firstError[idx] syntax but that is deprecated. Use
- firstError.subFailure and firstError.index instead.
- - whenThreaded now simply calls the passed function synchronously.
-
-2.0.1 (2005-05-09)
-===================
-Minor bug fix release.
-
-SVN rev (file) - [bug number] description
------------------------------------------
-13307 (twisted/topfiles/README) - Mention support for python 2.4, too
-13324 (twisted/internet/defer.py) - [947] Fix DeferredQueue backlog/size limit.
-13354 (twisted/plugins/__init__.py) - Correct maintainer address.
-13355 (twisted/test/test_defer.py) - improvements to DeferredQueue test case
-13387 (setup.py) - add news to list of subprojects to install
-13332 (twisted/internet/posixbase.py) - Fix spelling error
-13366 (twisted/internet/qtreactor.py) - [957] [954] reactor.iterate fixes
-13368 (twisted/test/test_internet.py) - Fix DelayedCall test case
-13422 (twisted/internet/posixbase.py) - Remove log from _Win32Waker creation.
-13437 (twisted/plugin.py) - [958] Only write cache if there were changes.
-13666 (twisted/internet/gtkreactor.py,gtk2reactor.py) - Don't run callbacks
- until the reactor is actually up and running
-13748 (twisted/internet/gtk2reactor.py) - [552] [994] Initialize threading properly.
-
-
-2.0.0 (2005-03-25)
-==================
-
-Major new features
-------------------
- - Replaced home-grown components system with zope.interface.
- - Split Twisted into multiple pieces.
- - Relicensed: Now under the MIT license, rather than LGPL.
- - Python 2.4 compatibility fixes
- - Major efficiency improvements in TCP buffering algorithm.
- - Major efficiency improvements in reactor.callLater/DelayedCall.
- - Half-close support for TCP/SSL. (loseWriteConnection).
-
-Miscellaneous features/fixes
-----------------------------
- - New plugin system: twisted.plugin
- - Better debugging support. Control-C will break you into PDB.
- - The twistd command has --uid --gid command line arguments.
- - *Incompatibility: mktap defaults to not change UID/GID, instead of saving
- the invoking user's UID/GID.
- - Removed some functions that were deprecated since Twisted 1.0.
- - ZSH tab-completion for twisted commands.
-
- - More correct daemonization in twistd.
- - twisted.python.log: do not close the log because of invalid format string.
- - Disabled automatic import of cBanana.
- - Boolean support for twisted.persisted.marmalade.
- - Refactor of plugin and application HOWTO documentation
- - Async HOWTO expanded greatly.
- - twisted.python.usage outputs the actual defaults, not passed in values.
-
-twisted.trial
--------------
- - Rewritten, a bunch of bugs fixed, a few more added.
-
-twisted.internet
-----------------
- - Multi-listen UDP multicast support
- - protocol.ClientCreator has a connectSSL.
- - defer.deferredGenerator: allows you to write Deferred code w/o callbacks.
- - Deferred.setTimeout is now deprecated.
- - New defer.DeferredLock/DeferredSemaphore/DeferredQueue.
- - Add utils.getProcessOutputAndValue to get stdout/err/value.
-
- - Default DNS resolver is now non-blocking.
- - Increased default TCP accept backlog from 5 to 50.
- - Make buffering large amounts of TCP data work on Windows.
- - Fixed SSL disconnect to not wait for remote host. Fixes issue with firefox.
- - Separate state for Deferred finalization so that GC-loops preventing
- finalization don't occur.
- - Many Process bugfixes
- - Processes spawned on windows can successfully use sockets
- - gtk2reactor can optionally use glib event loop instead of gtk
- - gtk2reactor notifies gobject to initialize thread support
- - Fix registering a streaming producer on a transport.
- - Close client sockets explicitly after failed connections.
- - ReconnectingClientFactory now continues attempting to reconnect after all
- errors, not just those which are not UserErrors.
-
-twisted.protocols
------------------
- - Portforward doesn't start reading from a client until a connection is made.
- - Bugfixes in twisted.protocols.loopback
- - Improve speed of twisted.protocols.LineReceiver.
- - LineReceiver implements IProducer. (stop/pause/resumeProducing)
- - SOCKSv4 properly closes connections
-
-twisted.enterprise
-------------------
- - Add "new connection" callback to adbapi.ConnectionPool to allow for
- custom db connection setup (cp_openfun)
- - adbapi.ConnectionPool automatic reconnection support
- - Don't log exceptions extraneously
-
-
-1.3.0 (2004-05-14)
-==================
-
-- 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.