2004-05-04 Jp Calderone * twisted.news, twisted.protocols.nntp: Moved back into trunk pending an alternate split-up strategy. 2004-05-04 Itamar Shtull-Trauring * twisted.internet.reactor.listenUDP: transport.write() on UDP ports no longer supports unresolved hostnames (though deprecated support still exists). 2004-4-18 Christopher Armstrong * twisted/lore/nevowlore.py, twisted/plugins.tml: Added Nevow support for lore. See docstring of twisted.lore.nevowlore. 2004-4-18 Christopher Armstrong * twisted.news, twisted.protocols.nntp: Moved into a third party package. Deprecated backwards-compatibility exists by importing from the third-party package if available. 2004-4-11 Paul Swartz * twisted.conch: refactored the Conch client to separate connecting to a server from user authentication from client-specific actions. 2004-03-23 Andrew Bennetts * twisted.protocols.http: Small optimisation to HTTP implementation. This changes return value of toChunk to a tuple of strings, rather than one string. 2004-4-3 Paul Swartz * twisted.python.lockfile: added lockfile support, based on liblockfile. * twisted.internet.unix.Port: added a wantPID kwarg. If True, it checks for and gets a lockfile for the UNIX socket. * twisted.internet.unix.Connector: added a checkPID kwarg. If True, it checks that the lockfile for the socket is current. 2004-03-23 Pavel Pergamenshchik * twisted.internet.iocp: Support for Windows IO Completion Ports. Use with "--reactor=iocp" parameter to twistd or trial. 2004-03-20 Itamar Shtull-Trauring * twisted.internet: getHost(), getPeer(), buildProtocol() etc. all use address objects from twisted.internet.address. * twisted/internet/udp.py: Connected UDP support is now part of the standard listenUDP-resulting UDP transport using a connect() method. 2004-03-18 Jp Calderone * twisted/application/internet.py: Changed TimerService to log errors from the function it calls. * twisted/application/test_application.py: Added test case for logging of exceptions from functions TimerService calls. 2004-03-07 Christopher Armstrong * .: Releasing Twisted 1.2.1alpha1. 2004-03-03 Christopher Armstrong * twisted/web/server.py: Fix UnsupportedMethod so that users' allowedMethods are actually honored. * twisted/web/resource.py: (Resource.render) If the resource has an 'allowedMethods' attribute, pass it to UnsupportedMethod. 2004-02-27 Andrew Bennetts * twisted/internet/defer.py: Add consumeErrors flag to DeferredList. This takes care of the most common use-case for the recently deprecated addDeferred method. 2004-02-28 Dave Peticolas * setup.py: install tap2rpm as a bin script * twisted/test/test_enterprise.py: Test Firebird db. Fix typos. 2004-02-27 Andrew Bennetts * twisted/internet/defer.py: Deprecated DeferredList.addDeferred. It isn't as useful as it looks, and can have surprising behaviour. 2004-02-25 Christopher Armstrong * twisted/protocols/dns.py: Fixed a bug in TCP support: It wouldn't process any messages after the first, causing AXFR queries to be totally broken (in addition to other problems in the implementation of AXFR). * twisted/names/client.py: Fixed the AXFR client (lookupZone), thanks to DJB's wonderful documentation of the horribleness of DNS. 2004-02-25 Christopher Armstrong * .: Releasing Twisted 1.2.0 final! Same as rc3. 2004-02-24 Christopher Armstrong * .: Releasing Twisted 1.2.0rc3 (same as rc2, with cBanana bug fixed). 2004-02-19 Kevin Turner * twisted/application/service.py (IService.disownServiceParent) (IServiceCollection.removeService): These may return Deferred if they have asynchronous side effects. 2004-02-18 Christopher Armstrong * .: Releasing Twisted 1.2.0rc2. Brown-paper bag release bug. 2004-02-17 Christopher Armstrong * .: Releasing Twisted 1.2.0rc1. 2004-02-13 Brian Warner * doc/howto/faq.xhtml: add entry on transport.getPeer() 2004-01-31 Christopher Armstrong * .: Releasing Twisted 1.1.2alpha2 (problem with Debian packaging). 2004-01-30 Christopher Armstrong * .: Releasing Twisted 1.1.2alpha1. 2004-01-23 Christopher Armstrong * twisted/scripts/trial.py: trial now supports a --coverage option, requiring Python 2.3.3. Give it a directory name (relative to _trial_temp) to put code-coverage info in. It uses the stdlib 'trace' module. 2004-01-21 Pavel Pergamenshchik * twisted/protocols/stateful.py: A new way to write protocols! Current state is encoded as a pair (func, len). As soon as len of data arrives, func is called with that amount of data. New state is returned from func. * twisted/test/test_stateful.py: Tests and an example, an Int32StringReceiver implementation. 2004-01-18 Christopher Armstrong * twisted/web/resource.py: The default render method of Resource now supports delegating to methods of the form "render_*" where "*" is the HTTP method that was used to make the request. Examples: request_GET, request_HEAD, request_CONNECT, and so on. This won't break any existing code - when people want to use the better API, they can stop overriding 'render' and instead override individual render_* methods. 2004-01-13 Itamar Shtull-Trauring * twisted/web/soap.py: Beginning of client SOAP support. 2004-01-10 Andrew Bennetts * twisted/protocols/ftp.py: Added support for partial downloads and uploads to FTPClient (see the offset parameter of retrieveFile). 2004-01-09 Jp Calderone * twisted/protocols/imap4.py: Add IMessageCopier interface to allow for optimized implementations of message copying. 2004-01-06 Brian Warner * twisted/internet/default.py (PosixReactorBase.spawnProcess): add a 'childFDs' argument which allows the child's file descriptors to be arbitrarily mapped to parent FDs or pipes. This allows you to set up additional pipes into the child (say for a GPG passphrase or separate status information). * twisted/internet/process.py (Process): add childFDs, split out ProcessReader and ProcessWriter (so that Process itself is no longer also reading stdout). * twisted/internet/protocol.py (ProcessProtocol): add new childDataReceived and childConnectionLost methods, which default to invoking the old methods for backwards compatibility * twisted/test/test_process.py (FDTest): add test for childFDs mapping. Also add timeouts to most tests, and make all reactor.iterate() loops wait 10ms between iterations to avoid spamming the CPU quite so badly. Closes issue435. * twisted/test/process_fds.py: new child process for FDTest * doc/howto/process.xhtml: document childFDs argument, add example 2004-01-04 Itamar Shtull-Trauring * twisted/internet/gladereactor.py: logs all network traffic for TCP/SSL/Unix sockets, allowing traffic to be displayed. 2004-01-04 Dave Peticolas * twisted/test/test_enterprise.py: test deleting rows not in cache * twisted/enterprise/reflector.py: deleted rows don't have to be in cache * doc/examples/row_example.py: use KeyFactory from row_util * doc/examples/row_util.py: add KeyFactory 2003-12-31 Brian Warner * twisted/internet/defer.py (Deferred.setTimeout): if the Deferred has already been called, don't bother with the timeout. This happens when trial.util.deferredResult is used with a timeout argument and the Deferred was created by defer.succeed(). * twisted/test/test_defer.py (DeferredTestCase.testImmediateSuccess2): test for same 2003-12-31 Jp Calderone * twisted/protocols/ident.py: Client and server ident implementation * twisted/test/test_ident.py: Test cases for ident protocol 2003-12-29 Jp Calderone * twisted/spread/pb.py: Changed PBServerFactory to use "protocol" instance attribute for Broker creation. 2003-12-26 Itamar Shtull-Trauring * twisted/web/server.py: display of tracebacks on web pages can now be disabled by setting displayTracebacks to False on the Site or by using applicable tap option. Woven does not yet use this attribute. 2003-12-23 Itamar Shtull-Trauring * twisted/web/client.py: if Host header is passed, use that instead of extracting from request URL. 2003-12-14 Dave Peticolas * twisted/test/test_enterprise.py: Frederico Di Gregorio's patch adding a psycopg test case. 2003-12-09 Christopher Armstrong * .: Releasing Twisted 1.1.1, based on rc4. 2003-12-06 Itamar Shtull-Trauring * twisted/internet/wxreactor.py: Added experimental wxPython reactor, which seems to work better than the twisted.internet.wxsupport. 2003-12-05 Paul Swartz * twisted/conch/ssh/filetransfer.py, session.py: added SFTPv3 support to the Conch server. 2003-12-04 Christopher Armstrong * .: Releasing Twisted 1.1.1rc4, based on rc2. rc3 never happened! 2003-12-04 Brian Warner * twisted/persisted/sob.py (Persistent): fix misspelled class name, add compatibility binding to "Persistant" (sic). * twisted/test/test_sob.py: use Persistent * twisted/application/service.py (Application): use Persistent 2003-12-03 Jp Calderone * twisted/protocols/imap4.py: Added support for the IDLE command (RFC 2177). 2003-12-03 Jp Calderone * twisted/python/log.py: Added exception handling to log publishing code. Observers which raise exceptions will now be removed from the observer list. 2003-12-02 Jp Calderone * .: Releasing Twisted 1.1.1rc3. 2003-12-01 Christopher Armstrong * .: Releasing Twisted 1.1.1rc2 (from CVS HEAD). 2003-12-01 Jp Calderone * twisted/python/runtime.py: Added seconds method to Platform class. * twisted/internet/base.py, twisted/internet/task.py: Changed use of time.time() to use Platform.seconds() instead. 2003-11-24 Jp Calderone * twisted/internet/abstract.py: Changed FileDescriptor's registerProducer method to immediately call the given producer's stopProducing method if the FileDescriptor is in the process of or has finished disconnecting. 2003-11-24 Jp Calderone * twisted/protocols/imap4.py: Fix incorrect behavior of closing the mailbox in response to an EXPUNGE command. 2003-11-21 Jp Calderone * twisted/trial/runner.py: Added missing calls to setUpClass and tearDownClass in SingletonRunner. 2003-11-21 Christopher Armstrong * .: Releasing Twisted 1.1.1rc1. 2003-11-20 Jp Calderone * twisted/protocols/imap4.py: Fixed incorrect generation of INTERNALDATE information. 2003-11-20 Jp Calderone * twisted/internet/abstract.py: Added an assert to FileDescriptor.resumeProducing to prevent it from being called when the transport is no longer connected. 2003-11-20 Jp Calderone * twisted/internet/tasks.py: LoopingCall added. 2003-10-14 Itamar Shtull-Trauring * twisted/internet/tasks.py: Deprecated scheduling API removed. 2003-11-18 Jonathan Simms * twisted/protocols/ftp.py: refactored to add cred support, pipelining, security. * twisted/test/test_ftp.py: tests for the new ftp 2003-11-18 Sam Jordan * twisted/protocols/msn.py: support for MSNP8 * doc/examples/msn_example.py: small msn example 2003-11-13 Paul Swartz * twisted/conch/ssh/agent.py: support for the OpenSSH agent protocol * twisted/conch/ssh/connection.py: fix broken channel retrieval code * twisted/conch/ssh/userauth.py: refactoring to allow use of the agent * twisted/conch/ssj/transport.py: fix intermittent test failure * twisted/internet/protocol.py: add UNIX socket support to ClientCreator * twisted/scripts/conch.py: use the key agent if available, also agent forwarding 2003-11-07 Brian Warner * twisted/application/app.py (getApplication): provide a more constructive error message when a .tac file doesn't define 'application'. Closes issue387. 2003-11-01 Paul Swartz * twisted/conch/ssh/common.py: use GMPy for faster math if it's available 2003-10-24 Christopher Armstrong * .: Releasing Twisted 1.1.0 final. Same codebase as rc2. 2003-10-24 Brian Warner * doc/howto/test-standard.xhtml: Add section on how to clean up. * twisted/test/test_conch.py: improve post-test cleanup. Addresses problems seen in issue343. * twisted/internet/base.py (ReactorBase.callLater): prefix "internal" parameter names with an underscore, to avoid colliding with named parameters in the user's callback invocation. Closes issue347. (ReactorBase.addSystemEventTrigger) (ReactorBase.callWhenRunning) (ReactorBase.callInThread): same * doc/howto/coding-standard.xhtml (Callback Arguments): explain why 2003-10-22 Christopher Armstrong * .: Releasing Twisted 1.1.0rc2. 2003-10-21 Andrew Bennetts * twisted/lore/tree.py, twisted/lore/lint.py, doc/howto/stylesheet.css: add a plain 'listing' class, for file listings that aren't python source or HTML. This has slightly changed the classes in the generated HTML, so custom stylesheets may need updating. 2003-10-16 Christopher Armstrong * .: Releasing Twisted 1.1.0alpha3. 2003-10-16 Brian Warner * doc/howto/pb-cred.xhtml: update for newcred. Closes issue172. 2003-10-15 Brian Warner * twisted/internet/base.py: add optional debug code, enabled with base.DelayedCall.debug=True . If active, the call stack which invoked reactor.callLater will be recorded in each DelayedCall. If an exception happens when the timer function is run, the creator stack will be logged in addition to the usual log.deferr(). * twisted/internet/defer.py: add some optional debug code, enabled with defer.Deferred.debug=True . If active, it will record a stack trace when the Deferred is created, and another when it is first invoked. AlreadyCalledErrors will be given these two stack traces, making it slightly easier to find the source of the problem. 2003-10-15 Christopher Armstrong * .: Releasing Twisted 1.1.0alpha2 (alpha1 was dead in the water). 2003-10-15 Brian Warner * setup.py: remove cReactor/ to the sandbox. Closes issue318. 2003-10-14 Itamar Shtull-Trauring * twisted/web/static.py: registry no longer has support for getting services based on their interfaces. 2003-10-14 Christopher Armstrong * .: Releasing Twisted 1.1.0alpha1. 2003-10-13 Bob Ippolito * doc/howto/choosing-reactor.xhtml: Added cfreactor/Cocoa information. * doc/examples/cocoaDemo: Removed, replaced by doc/examples/Cocoa cfreactor demos. * doc/examples/Cocoa: Moved from sandbox/etrepum/examples/PyObjC, cleaned up. * twisted/internet/cfsupport, twisted/internet/cfreactor.py: Moved from sandbox/etrepum, cleaned up. * twisted/application/app.py: Added 'cf' -> twisted.internet.cfreactor to reactorTypes * setup.py: sys.platform=='darwin' - build cfsupport, do not build cReactor. * INSTALL: Changed URL of pimp repository to shorter version. 2003-10-12 Jp Calderone * bin/tktwistd, twisted/scripts/tktwistd.py, doc/man/tktwistd.1: Removed. 2003-10-12 Itamar Shtull-Trauring * twisted/spread/pb.py: Perspective Broker no longer sends detailed tracebacks over the wire unless the "unsafeTracebacks" attribute is set of the factory. 2003-10-02 Jp Calderone * setup.py, twisted/test/test_dir.py, twisted/python/_c_dir.c: Removed _c_dir extension module for portability and maintenance reasons. 2003-10-03 Moshe Zadka * twisted/spread/util.py twisted/test/test_spread.py: Fix issue 286 2003-10-01 Brian Warner * twisted/web/client.py (HTTPDownloader): accept either a filename or a file-like object (it must respond to .write and .close, and partial requests will not be used with file-like objects). errback the deferred if an IOError occurs in .open, .write. or .close, usually something like "permission denied" or "file system full". Closes issue234. * twisted/test/test_webclient.py (WebClientTestCase.write): verify that the errback gets called * twisted/scripts/trial.py (run): add --until-failure option to re-run the test until something fails. Closes issue87. 2003-09-30 Brian Warner * twisted/test/test_conch.py (testOurServerOpenSSHClient): replace reactor.run() with .iterate calls: when using .run, exceptions in the server cause a hang. 2003-9-29 Moshe Zadka * twisted/tap/procmon.py twisted/plugins.tml: remove procmon tap. It was crufty and hard to port properly to new application. 2003-09-29 Brian Warner * twisted/scripts/trial.py (Options.opt_reactor): make trial accept the same reactor-name abbreviations as twistd does. Closes issue69. (top): add test-case-name tag * doc/man/trial.1: document the change 2003-09-28 Christopher Armstrong * .: Releasing Twisted 1.0.8alpha3. 2003-09-27 Cory Dodt * win32/main.aap win32/pyx.x-foo.iss.template win32/README.win32: Be nice to people who don't install Python for "All Users" on win32. 2003-9-18 Moshe Zadka * twisted/application/strports.py twisted/test/test_strports.py: New API/mini-language for defining ports 2003-9-18 Moshe Zadka * twisted/web/spider.py: removed, it was unmaintained. 2003-09-19 Christopher Armstrong * twisted/names/authority.py twisted/test/test_names.py twisted/protocols/dns.py: Client and server support for TTLs on all records. All Record_* types now take a ttl= keyword argument. You can pass the ttl= argument to all the record classes in your pyzones, too. 2003-09-19 Moshe Zadka * twisted/application/__init__.py twisted/application/app.py twisted/application/compat.py twisted/application/internet.py twisted/application/service.py twisted/scripts/twistd.py twisted/scripts/twistw.py twisted/scripts/mktap.py twisted/scripts/tapconvert.py bin/twistw: Update to new-style applications. 2003-09-19 Jp Calderone * twisted/names/client.py: Instantiation of theResolver global made lazy. As a result importing it directly will now fail if it has not yet been created. It should not be used directly anymore; instead, use the module-scope lookup methods, or instantiate your own resolver. * twisted/mail/relaymanager.py: Instantiation of MXCalculator made lazy. 2003-09-18 Stephen Thorne * twisted/web/distrib.py: Removed dependancy on twisted.web.widgets, and instead using woven. 2003-09-18 Stephen Thorne * doc/howto/woven-reference.html: Added this new documentation file. * doc/howto/index.html: Added woven-reference to index * admin/: Added woven-reference.tex to book.tex 2003-09-18 Stephen Thorne * twisted/web/woven/widgets.py: Stop the 'Option' widget from having a name="" attribute. Closes issue255. 2003-09-16 Christopher Armstrong * .: Releasing Twisted 1.0.8alpha1. * .: Releasing Twisted 1.0.8alpha2 (Fixed Debian packages). 2003-09-13 Christopher Armstrong * .: Releasing Twisted 1.0.7 (no code changes since 1.0.7rc1). * twisted/web/vhost.py: Un-gobble the path segment that a vhost eats when the resource we're wrapping isLeaf. Potentially closes issue125. 2003-09-12 Itamar Shtull-Trauring * twisted/web/microdom.py: lenient mode correctly handles